@progress/kendo-vue-scheduler 10.2.0-develop.10 → 10.2.0-develop.12

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 (156) hide show
  1. package/Scheduler.d.ts +157 -56
  2. package/Scheduler.js +1 -1
  3. package/Scheduler.mjs +242 -214
  4. package/components/EventOverviewPopover.d.ts +62 -0
  5. package/components/EventOverviewPopover.js +8 -0
  6. package/components/EventOverviewPopover.mjs +191 -0
  7. package/components/MoreEventsPopover.d.ts +3 -1
  8. package/components/MoreEventsPopover.js +1 -1
  9. package/components/MoreEventsPopover.mjs +31 -27
  10. package/components/SchedulerActionButtons.js +1 -1
  11. package/components/SchedulerActionButtons.mjs +1 -0
  12. package/components/SchedulerForm.d.ts +412 -2
  13. package/components/SchedulerForm.js +1 -1
  14. package/components/SchedulerForm.mjs +162 -60
  15. package/components/SchedulerQuickCreateForm.d.ts +118 -0
  16. package/components/SchedulerQuickCreateForm.js +8 -0
  17. package/components/SchedulerQuickCreateForm.mjs +249 -0
  18. package/constants/main.d.ts +2 -0
  19. package/constants/main.js +1 -1
  20. package/constants/main.mjs +10 -9
  21. package/dist/cdn/js/kendo-vue-scheduler.js +1 -1
  22. package/editors/KeepResetCustomEventsDialog.d.ts +31 -0
  23. package/editors/KeepResetCustomEventsDialog.js +8 -0
  24. package/editors/KeepResetCustomEventsDialog.mjs +72 -0
  25. package/editors/SchedulerFormEditor.d.ts +151 -52
  26. package/editors/SchedulerFormEditor.js +1 -1
  27. package/editors/SchedulerFormEditor.mjs +192 -139
  28. package/editors/SchedulerRecurrenceDialog.d.ts +2 -2
  29. package/editors/SchedulerRecurrenceDialog.js +1 -1
  30. package/editors/SchedulerRecurrenceDialog.mjs +126 -131
  31. package/editors/ZonedSplitDateTime.d.ts +32 -3
  32. package/editors/ZonedSplitDateTime.js +1 -1
  33. package/editors/ZonedSplitDateTime.mjs +112 -47
  34. package/hooks/useCloseOnAnchorScrollOut.d.ts +10 -0
  35. package/hooks/useCloseOnAnchorScrollOut.js +8 -0
  36. package/hooks/useCloseOnAnchorScrollOut.mjs +43 -0
  37. package/hooks/useCustomEventsConfirmation.d.ts +20 -0
  38. package/hooks/useCustomEventsConfirmation.js +8 -0
  39. package/hooks/useCustomEventsConfirmation.mjs +48 -0
  40. package/hooks/useDeferredClick.d.ts +12 -0
  41. package/hooks/useDeferredClick.js +8 -0
  42. package/hooks/useDeferredClick.mjs +22 -0
  43. package/hooks/useExclusivePopover.d.ts +26 -0
  44. package/hooks/useExclusivePopover.js +8 -0
  45. package/hooks/useExclusivePopover.mjs +30 -0
  46. package/hooks/useRecurrenceSummary.d.ts +3 -0
  47. package/hooks/useRecurrenceSummary.js +1 -1
  48. package/hooks/useRecurrenceSummary.mjs +68 -41
  49. package/index.d.mts +4 -2
  50. package/index.d.ts +4 -2
  51. package/index.js +1 -1
  52. package/index.mjs +83 -78
  53. package/items/SchedulerEditItem.d.ts +116 -12
  54. package/items/SchedulerEditItem.js +1 -1
  55. package/items/SchedulerEditItem.mjs +212 -131
  56. package/items/SchedulerItem.d.ts +2 -1
  57. package/items/SchedulerItem.js +1 -1
  58. package/items/SchedulerItem.mjs +28 -23
  59. package/items/SchedulerProportionalViewItem.d.ts +1 -0
  60. package/items/SchedulerProportionalViewItem.js +1 -1
  61. package/items/SchedulerProportionalViewItem.mjs +83 -68
  62. package/items/SchedulerViewItem.d.ts +1 -0
  63. package/items/SchedulerViewItem.js +1 -1
  64. package/items/SchedulerViewItem.mjs +84 -75
  65. package/items/hooks/use-drag-item.js +1 -1
  66. package/items/hooks/use-drag-item.mjs +49 -48
  67. package/items/hooks/use-form-item.d.ts +1 -1
  68. package/items/hooks/use-remove-item.d.ts +1 -1
  69. package/items/hooks/use-resize-item.js +1 -1
  70. package/items/hooks/use-resize-item.mjs +74 -65
  71. package/messages/main.d.ts +42 -0
  72. package/messages/main.js +1 -1
  73. package/messages/main.mjs +303 -275
  74. package/models/InternalDataAction.d.ts +13 -0
  75. package/models/SchedulerView.d.ts +1 -1
  76. package/package-metadata.js +1 -1
  77. package/package-metadata.mjs +2 -2
  78. package/package.json +13 -12
  79. package/recurrence/RecurrenceEditor.js +1 -1
  80. package/recurrence/RecurrenceEditor.mjs +42 -42
  81. package/recurrence/common.d.ts +10 -0
  82. package/recurrence/common.js +1 -1
  83. package/recurrence/common.mjs +39 -35
  84. package/services/itemsService.d.ts +5 -2
  85. package/services/itemsService.js +1 -1
  86. package/services/itemsService.mjs +46 -33
  87. package/services/occurrenceService.js +1 -1
  88. package/services/occurrenceService.mjs +18 -18
  89. package/slots/SchedulerEditSlot.d.ts +70 -8
  90. package/slots/SchedulerEditSlot.js +1 -1
  91. package/slots/SchedulerEditSlot.mjs +222 -141
  92. package/slots/SchedulerSlot.js +1 -1
  93. package/slots/SchedulerSlot.mjs +20 -16
  94. package/slots/SchedulerViewSlot.d.ts +3 -0
  95. package/slots/SchedulerViewSlot.js +1 -1
  96. package/slots/SchedulerViewSlot.mjs +21 -15
  97. package/tasks/SchedulerEditTask.d.ts +13 -2
  98. package/tasks/SchedulerEditTask.js +1 -1
  99. package/tasks/SchedulerEditTask.mjs +45 -30
  100. package/utils/main.d.ts +27 -0
  101. package/utils/main.js +1 -1
  102. package/utils/main.mjs +172 -136
  103. package/views/agenda/AgendaView.d.ts +6 -2
  104. package/views/agenda/AgendaView.js +1 -1
  105. package/views/agenda/AgendaView.mjs +31 -29
  106. package/views/agenda/AgendaViewBody.d.ts +3 -3
  107. package/views/agenda/AgendaViewBody.js +1 -1
  108. package/views/agenda/AgendaViewBody.mjs +31 -29
  109. package/views/common/SchedulerDrag.d.ts +4 -2
  110. package/views/common/SchedulerDrag.js +1 -1
  111. package/views/common/SchedulerDrag.mjs +8 -7
  112. package/views/common/SchedulerResize.d.ts +4 -2
  113. package/views/common/SchedulerResize.js +1 -1
  114. package/views/common/SchedulerResize.mjs +14 -12
  115. package/views/common/VerticalResourceIterator.d.ts +3 -3
  116. package/views/common/VerticalResourceIterator.js +1 -1
  117. package/views/common/VerticalResourceIterator.mjs +34 -33
  118. package/views/day/DayView.d.ts +2 -0
  119. package/views/day/DayView.js +1 -1
  120. package/views/day/DayView.mjs +9 -7
  121. package/views/day/DayViewAllDaySlots.d.ts +7 -5
  122. package/views/day/DayViewAllDaySlots.js +1 -1
  123. package/views/day/DayViewAllDaySlots.mjs +24 -21
  124. package/views/day/DayViewMiddleRow.d.ts +7 -5
  125. package/views/day/DayViewMiddleRow.js +1 -1
  126. package/views/day/DayViewMiddleRow.mjs +18 -13
  127. package/views/day/DayViewVerticalRow.d.ts +7 -5
  128. package/views/day/DayViewVerticalRow.js +1 -1
  129. package/views/day/DayViewVerticalRow.mjs +23 -17
  130. package/views/day/DayViewVerticalSlotsRow.d.ts +7 -5
  131. package/views/day/DayViewVerticalSlotsRow.js +1 -1
  132. package/views/day/DayViewVerticalSlotsRow.mjs +34 -29
  133. package/views/day/MultiDayView.d.ts +13 -7
  134. package/views/day/MultiDayView.js +1 -1
  135. package/views/day/MultiDayView.mjs +108 -95
  136. package/views/month/MonthView.d.ts +15 -4
  137. package/views/month/MonthView.js +1 -1
  138. package/views/month/MonthView.mjs +105 -68
  139. package/views/month/MonthViewBody.d.ts +3 -3
  140. package/views/month/MonthViewBody.js +1 -1
  141. package/views/month/MonthViewBody.mjs +18 -16
  142. package/views/time/MultiDayTimelineView.d.ts +6 -4
  143. package/views/time/MultiDayTimelineView.js +1 -1
  144. package/views/time/MultiDayTimelineView.mjs +64 -63
  145. package/views/time/TimelineView.d.ts +2 -0
  146. package/views/time/TimelineView.js +1 -1
  147. package/views/time/TimelineView.mjs +5 -3
  148. package/views/time/TimelineViewBody.d.ts +7 -5
  149. package/views/time/TimelineViewBody.js +1 -1
  150. package/views/time/TimelineViewBody.mjs +29 -27
  151. package/views/week/WeekView.d.ts +2 -0
  152. package/views/week/WeekView.js +1 -1
  153. package/views/week/WeekView.mjs +11 -10
  154. package/views/week/WorkWeekView.d.ts +2 -0
  155. package/views/week/WorkWeekView.js +1 -1
  156. package/views/week/WorkWeekView.mjs +17 -16
@@ -5,13 +5,13 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { intersects as u } from "../utils/main.mjs";
9
- import { orderBy as A } from "@progress/kendo-data-query";
10
- import { ZonedDate as m } from "@progress/kendo-date-math";
11
- const S = (i, { timezone: t }, { groups: l, ranges: o }) => {
12
- const s = [];
13
- return A(
14
- i,
8
+ import { intersects as u, crossesDayBoundary as I } from "../utils/main.mjs";
9
+ import { orderBy as R } from "@progress/kendo-data-query";
10
+ import { ZonedDate as n } from "@progress/kendo-date-math";
11
+ const S = (e, { timezone: t, ignoreIsAllDay: s = !1 }, { groups: a, ranges: d }) => {
12
+ const o = [];
13
+ return R(
14
+ e,
15
15
  [
16
16
  { field: "start", dir: "asc" },
17
17
  { field: "end", dir: "desc" },
@@ -19,40 +19,53 @@ const S = (i, { timezone: t }, { groups: l, ranges: o }) => {
19
19
  { field: "title", dir: "asc" },
20
20
  { field: "uid", dir: "asc" }
21
21
  ]
22
- ).forEach((d) => {
23
- l.forEach((e) => {
24
- const n = l.length === 1 ? B(d, e) : e;
25
- E(d, n) && o.forEach((a) => {
26
- var f;
27
- if (F(d, a)) {
28
- const r = {}, p = {}, y = a.end < d.end, D = d.start < a.start, v = m.fromLocalDate(d.start, t), I = m.fromLocalDate(d.end, t), h = {
29
- ...d,
30
- refTo: p,
31
- itemRef: r,
32
- head: y,
33
- tail: D,
22
+ ).forEach((l) => {
23
+ a.forEach((r) => {
24
+ const f = a.length === 1 ? h(l, r) : r;
25
+ C(l, f) && d.forEach((i) => {
26
+ var m;
27
+ if (U(l, i, t, s)) {
28
+ const D = {}, y = {}, p = i.end < l.end, T = l.start < i.start, v = n.fromLocalDate(l.start, t), A = n.fromLocalDate(l.end, t), B = {
29
+ ...l,
30
+ refTo: y,
31
+ itemRef: D,
32
+ head: p,
33
+ tail: T,
34
34
  order: null,
35
35
  zonedStart: v,
36
- zonedEnd: I,
37
- group: n,
38
- range: a,
36
+ zonedEnd: A,
37
+ group: f,
38
+ range: i,
39
39
  slots: [],
40
- isRecurring: !!d.recurrenceRule,
41
- isException: !d.recurrenceRule && d.recurrenceId !== null && d.recurrenceId !== void 0,
42
- isAllDay: !!d.isAllDay,
43
- readonly: (f = d.readonly) != null ? f : void 0
40
+ isRecurring: !!l.recurrenceRule,
41
+ isException: !l.recurrenceRule && l.recurrenceId !== null && l.recurrenceId !== void 0,
42
+ isAllDay: !!l.isAllDay,
43
+ readonly: (m = l.readonly) != null ? m : void 0
44
44
  };
45
- s.push(h);
45
+ o.push(B);
46
46
  }
47
47
  });
48
48
  });
49
- }), s;
50
- }, B = (i, t) => ({
49
+ }), o;
50
+ }, h = (e, t) => ({
51
51
  index: 0,
52
- resources: t.resources.filter((l) => R(i, l))
53
- }), R = (i, t) => t.multiple ? (i.dataItem[t.field] || []).some((l) => t[t.valueField] === l) : i.dataItem[t.field] === t[t.valueField], E = (i, t) => !t.resources.some((l) => l.multiple ? !i.dataItem[l.field].some((o) => l[l.valueField] === o) : i.dataItem[l.field] !== l[l.valueField]), F = (i, t) => u(t.start, t.end, i.start, i.end) && (t.isAllDay === void 0 || !!i.isAllDay == !!t.isAllDay);
52
+ resources: t.resources.filter((s) => z(e, s))
53
+ }), z = (e, t) => t.multiple ? (e.dataItem[t.field] || []).some((s) => t[t.valueField] === s) : e.dataItem[t.field] === t[t.valueField], C = (e, t) => !t.resources.some((s) => s.multiple ? !e.dataItem[s.field].some((a) => s[s.valueField] === a) : e.dataItem[s.field] !== s[s.valueField]), G = (e, t, s) => {
54
+ if (t.getTime() === s.getTime())
55
+ return !0;
56
+ const a = e.range.zonedStart.toUTCDate(), d = e.range.zonedStart.toUTCDate();
57
+ a.setUTCHours(t.getHours(), t.getMinutes(), 0, 0), d.setUTCHours(s.getHours(), s.getMinutes(), 0, 0);
58
+ const o = e.range.zonedStart.timezone;
59
+ return u(
60
+ n.fromUTCDate(a, o),
61
+ n.fromUTCDate(d, o),
62
+ e.start,
63
+ e.end
64
+ );
65
+ }, U = (e, t, s, a = !1) => u(t.start, t.end, e.start, e.end) ? a || t.isAllDay === void 0 || !!e.isAllDay == !!t.isAllDay ? !0 : t.isAllDay && I(e.start, e.end, s) : !1;
54
66
  export {
55
- E as inGroup,
56
- F as inRange,
67
+ C as inGroup,
68
+ U as inRange,
69
+ G as inTimeRange,
57
70
  S as toItems
58
71
  };
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@progress/kendo-vue-common"),S=require("@progress/kendo-recurrence"),d=require("@progress/kendo-date-math"),l=require("../utils/main.js"),x=(e,{dateRange:r,fields:n,timezone:a})=>e.map(y(n)).reduce(E(r,a,n),[]).filter(c=>!l.isMaster(c.dataItem,n)),y=e=>r=>({uid:t.getter(e.id||"id")(r),start:t.getter(e.start||"start")(r),startTimezone:t.getter(e.startTimezone||"startTimezone")(r),originalStart:t.getter(e.originalStart||"originalStart")(r),end:t.getter(e.end||"end")(r),endTimezone:t.getter(e.endTimezone||"endTimezone")(r),isAllDay:t.getter(e.isAllDay||"isAllDay")(r),title:t.getter(e.title||"title")(r),description:t.getter(e.description||"description")(r),occurrenceId:t.getter("occurrenceId")(r),recurrenceRule:t.getter(e.recurrenceRule||"recurrenceRule")(r),recurrenceExceptions:t.getter(e.recurrenceExceptions||"recurrenceExceptions")(r),recurrenceId:t.getter(e.recurrenceId||"recurrenceId")(r),readonly:t.getter(e.readonly||"readonly")(r),dataItem:t.clone(r)}),E=(e,r,n)=>(a,o)=>[...a,...o.recurrenceRule&&(o.recurrenceId===null||o.recurrenceId===void 0)&&l.isMaster(o.dataItem,n)?[...m(o,{dateRange:e,timezone:r,fields:n})]:[o]],m=(e,{dateRange:r,timezone:n,fields:a})=>{const o=e.recurrenceRule,c=S.parseRule({recurrenceRule:o});if(!c)return[];c.start||(c.start=d.ZonedDate.fromLocalDate(e.start,n)),c.end||(c.end=d.ZonedDate.fromLocalDate(e.end,n));const g=e.recurrenceExceptions;g&&(c.exceptionDates=g.map(u=>d.ZonedDate.fromLocalDate(u,n)));const L=c.end.getTime()-c.start.getTime(),R=d.ZonedDate.fromLocalDate(new Date(r.zonedStart.toLocalDate().getTime()-L),n),T=r.zonedEnd,D=S.expand(c,{rangeStart:R,rangeEnd:T});return D.events.length?D.events.map((u,p)=>{const s=t.clone(e),i=t.clone(e.dataItem);return s.recurrenceId=s.uid,l.setField(i,a.recurrenceId,e.uid),s.originalStart=u.start.toLocalDate(),l.setField(i,a.originalStart,u.start.toLocalDate()),s.start=u.start.toLocalDate(),l.setField(i,a.start,u.start.toLocalDate()),s.end=u.end.toLocalDate(),l.setField(i,a.end,u.end.toLocalDate()),s.occurrenceId=String(p),l.setField(i,"occurrenceId",String(p)),s.dataItem=i,s}):[]};exports.toOccurrences=x;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@progress/kendo-vue-common"),S=require("@progress/kendo-recurrence"),d=require("@progress/kendo-date-math"),i=require("../utils/main.js"),x=(e,{dateRange:r,fields:c,timezone:a})=>e.map(y(c)).reduce(v(r,a,c),[]).filter(n=>!i.isMaster(n.dataItem,c)),y=e=>r=>({uid:t.getter(e.id||"id")(r),start:t.getter(e.start||"start")(r),startTimezone:t.getter(e.startTimezone||"startTimezone")(r),originalStart:t.getter(e.originalStart||"originalStart")(r),end:t.getter(e.end||"end")(r),endTimezone:t.getter(e.endTimezone||"endTimezone")(r),isAllDay:t.getter(e.isAllDay||"isAllDay")(r),title:t.getter(e.title||"title")(r),description:t.getter(e.description||"description")(r),occurrenceId:t.getter("occurrenceId")(r),recurrenceRule:t.getter(e.recurrenceRule||"recurrenceRule")(r),recurrenceExceptions:t.getter(e.recurrenceExceptions||"recurrenceExceptions")(r),recurrenceId:t.getter(e.recurrenceId||"recurrenceId")(r),readonly:t.getter(e.readonly||"readonly")(r),dataItem:t.clone(r)}),v=(e,r,c)=>(a,o)=>[...a,...o.recurrenceRule&&(o.recurrenceId===null||o.recurrenceId===void 0)&&i.isMaster(o.dataItem,c)?[...E(o,{dateRange:e,timezone:r,fields:c})]:[o]],E=(e,{dateRange:r,timezone:c,fields:a})=>{const o=e.recurrenceRule,n=S.parseRule({recurrenceRule:o});if(!n||!Number.isSafeInteger(n.interval)||n.interval<1)return[];n.start||(n.start=d.ZonedDate.fromLocalDate(e.start,c)),n.end||(n.end=d.ZonedDate.fromLocalDate(e.end,c));const g=e.recurrenceExceptions;g&&(n.exceptionDates=g.map(u=>d.ZonedDate.fromLocalDate(u,c)));const L=n.end.getTime()-n.start.getTime(),R=d.ZonedDate.fromLocalDate(new Date(r.zonedStart.toLocalDate().getTime()-L),c),T=r.zonedEnd,D=S.expand(n,{rangeStart:R,rangeEnd:T});return D.events.length?D.events.map((u,p)=>{const s=t.clone(e),l=t.clone(e.dataItem);return s.recurrenceId=s.uid,i.setField(l,a.recurrenceId,e.uid),s.originalStart=u.start.toLocalDate(),i.setField(l,a.originalStart,u.start.toLocalDate()),s.start=u.start.toLocalDate(),i.setField(l,a.start,u.start.toLocalDate()),s.end=u.end.toLocalDate(),i.setField(l,a.end,u.end.toLocalDate()),s.occurrenceId=String(p),i.setField(l,"occurrenceId",String(p)),s.dataItem=l,s}):[]};exports.toOccurrences=x;
@@ -8,8 +8,8 @@
8
8
  import { clone as p, getter as t } from "@progress/kendo-vue-common";
9
9
  import { parseRule as T, expand as E } from "@progress/kendo-recurrence";
10
10
  import { ZonedDate as d } from "@progress/kendo-date-math";
11
- import { isMaster as R, setField as i } from "../utils/main.mjs";
12
- const F = (e, { dateRange: r, fields: n, timezone: a }) => e.map(y(n)).reduce(z(r, a, n), []).filter((c) => !R(c.dataItem, n)), y = (e) => (r) => ({
11
+ import { isMaster as S, setField as l } from "../utils/main.mjs";
12
+ const w = (e, { dateRange: r, fields: c, timezone: a }) => e.map(v(c)).reduce(y(r, a, c), []).filter((n) => !S(n.dataItem, c)), v = (e) => (r) => ({
13
13
  uid: t(e.id || "id")(r),
14
14
  start: t(e.start || "start")(r),
15
15
  startTimezone: t(e.startTimezone || "startTimezone")(r),
@@ -25,30 +25,30 @@ const F = (e, { dateRange: r, fields: n, timezone: a }) => e.map(y(n)).reduce(z(
25
25
  recurrenceId: t(e.recurrenceId || "recurrenceId")(r),
26
26
  readonly: t(e.readonly || "readonly")(r),
27
27
  dataItem: p(r)
28
- }), z = (e, r, n) => (a, o) => [
28
+ }), y = (e, r, c) => (a, o) => [
29
29
  ...a,
30
- ...o.recurrenceRule && (o.recurrenceId === null || o.recurrenceId === void 0) && R(o.dataItem, n) ? [...I(o, { dateRange: e, timezone: r, fields: n })] : [o]
31
- ], I = (e, { dateRange: r, timezone: n, fields: a }) => {
32
- const o = e.recurrenceRule, c = T({ recurrenceRule: o });
33
- if (!c)
30
+ ...o.recurrenceRule && (o.recurrenceId === null || o.recurrenceId === void 0) && S(o.dataItem, c) ? [...I(o, { dateRange: e, timezone: r, fields: c })] : [o]
31
+ ], I = (e, { dateRange: r, timezone: c, fields: a }) => {
32
+ const o = e.recurrenceRule, n = T({ recurrenceRule: o });
33
+ if (!n || !Number.isSafeInteger(n.interval) || n.interval < 1)
34
34
  return [];
35
- c.start || (c.start = d.fromLocalDate(e.start, n)), c.end || (c.end = d.fromLocalDate(e.end, n));
35
+ n.start || (n.start = d.fromLocalDate(e.start, c)), n.end || (n.end = d.fromLocalDate(e.end, c));
36
36
  const D = e.recurrenceExceptions;
37
- D && (c.exceptionDates = D.map(
38
- (u) => d.fromLocalDate(u, n)
37
+ D && (n.exceptionDates = D.map(
38
+ (u) => d.fromLocalDate(u, c)
39
39
  ));
40
- const S = c.end.getTime() - c.start.getTime(), m = d.fromLocalDate(
41
- new Date(r.zonedStart.toLocalDate().getTime() - S),
42
- n
43
- ), x = r.zonedEnd, g = E(c, {
44
- rangeStart: m,
40
+ const m = n.end.getTime() - n.start.getTime(), R = d.fromLocalDate(
41
+ new Date(r.zonedStart.toLocalDate().getTime() - m),
42
+ c
43
+ ), x = r.zonedEnd, g = E(n, {
44
+ rangeStart: R,
45
45
  rangeEnd: x
46
46
  });
47
47
  return g.events.length ? g.events.map((u, L) => {
48
- const s = p(e), l = p(e.dataItem);
49
- return s.recurrenceId = s.uid, i(l, a.recurrenceId, e.uid), s.originalStart = u.start.toLocalDate(), i(l, a.originalStart, u.start.toLocalDate()), s.start = u.start.toLocalDate(), i(l, a.start, u.start.toLocalDate()), s.end = u.end.toLocalDate(), i(l, a.end, u.end.toLocalDate()), s.occurrenceId = String(L), i(l, "occurrenceId", String(L)), s.dataItem = l, s;
48
+ const s = p(e), i = p(e.dataItem);
49
+ return s.recurrenceId = s.uid, l(i, a.recurrenceId, e.uid), s.originalStart = u.start.toLocalDate(), l(i, a.originalStart, u.start.toLocalDate()), s.start = u.start.toLocalDate(), l(i, a.start, u.start.toLocalDate()), s.end = u.end.toLocalDate(), l(i, a.end, u.end.toLocalDate()), s.occurrenceId = String(L), l(i, "occurrenceId", String(L)), s.dataItem = i, s;
50
50
  }) : [];
51
51
  };
52
52
  export {
53
- F as toOccurrences
53
+ w as toOccurrences
54
54
  };
@@ -6,10 +6,11 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  import { DataItem, SchedulerSlotMouseEvent, SchedulerSlotKeyboardEvent, SchedulerSlotFocusEvent } from '../models/main';
9
- import { DataAction } from '../Scheduler';
9
+ import { DataAction, SchedulerProps } from '../Scheduler';
10
10
  import { SchedulerFormStateChangeEvent } from '../components/SchedulerForm';
11
+ import { SchedulerQuickCreateFormStateChangeEvent } from '../components/SchedulerQuickCreateForm';
11
12
  import { SchedulerViewSlotProps } from './SchedulerViewSlot';
12
- import { PropType } from 'vue';
13
+ import { h, PropType, VNodeChild } from 'vue';
13
14
  /**
14
15
  * Represents the props of the Kendo UI for Vue [SchedulerEditSlot]({% slug api_scheduler_schedulereditslotprops %}) component.
15
16
  */
@@ -34,10 +35,37 @@ export interface SchedulerEditSlotProps extends SchedulerViewSlotProps {
34
35
  * Called every time the `formItem` changes.
35
36
  */
36
37
  onFormItemChange?: (event: any) => void;
38
+ /**
39
+ * Overrides the quick-create form for this slot. Accepts a component, render function, or named slot.
40
+ *
41
+ * @example
42
+ * ```vue
43
+ * <SchedulerEditSlot :quick-create-form="'quickForm'" />
44
+ * ```
45
+ */
46
+ quickCreateForm?: SchedulerProps['quickCreateForm'];
47
+ /**
48
+ * Controls the draft event displayed in the quick-create popover. Set to `null` to keep it closed.
49
+ *
50
+ * @example
51
+ * ```vue
52
+ * <SchedulerEditSlot :quick-create-form-item="null" />
53
+ * ```
54
+ */
55
+ quickCreateFormItem?: DataItem | null;
56
+ /**
57
+ * Fires whenever the quick-create draft changes.
58
+ *
59
+ * @example
60
+ * ```vue
61
+ * <SchedulerEditSlot @quickcreateformitemchange="handleDraftChange" />
62
+ * ```
63
+ */
64
+ onQuickcreateformitemchange?: (event: SchedulerQuickCreateFormStateChangeEvent<DataItem | null>) => void;
37
65
  /**
38
66
  * Called when new item has been created in the slot.
39
67
  */
40
- onDataaction?: (action: DataAction, event: any) => void;
68
+ onDataAction?: (action: DataAction, event: any) => void;
41
69
  }
42
70
  /** @hidden */
43
71
  export interface SchedulerEditSlotHandle {
@@ -55,6 +83,10 @@ declare const SchedulerEditSlot: import('vue').DefineComponent<import('vue').Ext
55
83
  className: PropType<string>;
56
84
  form: PropType<any>;
57
85
  formItem: PropType<any>;
86
+ quickCreateForm: PropType<string | import('vue').Component<import('../components/SchedulerQuickCreateForm').SchedulerQuickCreateFormProps> | ((createElement: typeof h, defaultRendering: import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
87
+ [key: string]: any;
88
+ }>, props: import('../components/SchedulerQuickCreateForm').SchedulerQuickCreateFormProps) => VNodeChild)>;
89
+ quickCreateFormItem: PropType<any>;
58
90
  refTo: PropType<any>;
59
91
  items: PropType<import('../models/Item').Item[]>;
60
92
  row: PropType<number>;
@@ -82,8 +114,19 @@ declare const SchedulerEditSlot: import('vue').DefineComponent<import('vue').Ext
82
114
  navDay: PropType<boolean>;
83
115
  editable: PropType<boolean | import('../models/EditableProp').EditableProp>;
84
116
  itemsPerSlot: PropType<number>;
85
- onDataaction: PropType<(action: DataAction, event: any) => void>;
86
- }>, {}, {
117
+ onDataAction: PropType<(action: DataAction, event: any) => void>;
118
+ }>, {
119
+ quickCreateAnchor: import('vue').ShallowRef<HTMLElement, HTMLElement>;
120
+ quickCreateEnabled: import('vue').ComputedRef<boolean>;
121
+ quickCreateFormItem: import('vue').ComputedRef<any>;
122
+ deferredQuickCreate: {
123
+ schedule: (callback: () => void) => void;
124
+ cancel: () => void;
125
+ };
126
+ setQuickCreateFormItem: (value: DataItem | null, event?: Event) => void;
127
+ closeQuickCreate: (event?: Event) => void;
128
+ quickCreateFormTemplate: () => unknown;
129
+ }, {
87
130
  currentFormItem: any;
88
131
  }, {
89
132
  cSlot(): any;
@@ -91,9 +134,15 @@ declare const SchedulerEditSlot: import('vue').DefineComponent<import('vue').Ext
91
134
  computedEditable(): import('../models/EditableProp').EditableProp;
92
135
  compFormItem(): any;
93
136
  }, {
137
+ renderQuickCreateForm(): VNodeChild;
138
+ restoreSlotFocus(): void;
139
+ handleQuickCreateSubmit(event: SchedulerQuickCreateFormStateChangeEvent<DataItem>): void;
140
+ handleQuickCreateMoreOptions(event: SchedulerQuickCreateFormStateChangeEvent<DataItem>): void;
141
+ handleQuickCreateCancel(event: SchedulerQuickCreateFormStateChangeEvent<null>): void;
94
142
  handleShowMoreItemsClick(event: any): void;
95
143
  createDataItemFromSlot(): any;
96
144
  handleFocus(event: SchedulerSlotFocusEvent): void;
145
+ handleClick(event: SchedulerSlotMouseEvent): void;
97
146
  handleDoubleClick(event: SchedulerSlotMouseEvent): void;
98
147
  handleKeyDown(event: SchedulerSlotKeyboardEvent): void;
99
148
  handleEditFormSubmit(event: SchedulerFormStateChangeEvent<DataItem | null>): void;
@@ -101,7 +150,7 @@ declare const SchedulerEditSlot: import('vue').DefineComponent<import('vue').Ext
101
150
  handleEditFormClose(event: SchedulerFormStateChangeEvent<null>): void;
102
151
  handleFormItemChange(value: DataItem | null, event?: any): void;
103
152
  setFormItem(dataItem: DataItem | null, event: any): void;
104
- }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
153
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("click" | "focus" | "doubleclick" | "showmoreitems" | "dataaction" | "formitemchange" | "quickcreateformitemchange")[], "click" | "focus" | "doubleclick" | "showmoreitems" | "dataaction" | "formitemchange" | "quickcreateformitemchange", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
105
154
  role: PropType<string>;
106
155
  tabIndex: {
107
156
  type: PropType<number>;
@@ -110,6 +159,10 @@ declare const SchedulerEditSlot: import('vue').DefineComponent<import('vue').Ext
110
159
  className: PropType<string>;
111
160
  form: PropType<any>;
112
161
  formItem: PropType<any>;
162
+ quickCreateForm: PropType<string | import('vue').Component<import('../components/SchedulerQuickCreateForm').SchedulerQuickCreateFormProps> | ((createElement: typeof h, defaultRendering: import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
163
+ [key: string]: any;
164
+ }>, props: import('../components/SchedulerQuickCreateForm').SchedulerQuickCreateFormProps) => VNodeChild)>;
165
+ quickCreateFormItem: PropType<any>;
113
166
  refTo: PropType<any>;
114
167
  items: PropType<import('../models/Item').Item[]>;
115
168
  row: PropType<number>;
@@ -137,8 +190,16 @@ declare const SchedulerEditSlot: import('vue').DefineComponent<import('vue').Ext
137
190
  navDay: PropType<boolean>;
138
191
  editable: PropType<boolean | import('../models/EditableProp').EditableProp>;
139
192
  itemsPerSlot: PropType<number>;
140
- onDataaction: PropType<(action: DataAction, event: any) => void>;
141
- }>> & Readonly<{}>, {
193
+ onDataAction: PropType<(action: DataAction, event: any) => void>;
194
+ }>> & Readonly<{
195
+ onClick?: (...args: any[]) => any;
196
+ onFocus?: (...args: any[]) => any;
197
+ onDoubleclick?: (...args: any[]) => any;
198
+ onShowmoreitems?: (...args: any[]) => any;
199
+ onDataaction?: (...args: any[]) => any;
200
+ onFormitemchange?: (...args: any[]) => any;
201
+ onQuickcreateformitemchange?: (...args: any[]) => any;
202
+ }>, {
142
203
  tabIndex: number;
143
204
  isWorkDay: boolean;
144
205
  isWorkHour: boolean;
@@ -146,5 +207,6 @@ declare const SchedulerEditSlot: import('vue').DefineComponent<import('vue').Ext
146
207
  ksEditFormSubmit: any;
147
208
  ksEditFormCancel: any;
148
209
  ksEditFormClose: any;
210
+ ksRenderQuickCreateForm: any;
149
211
  }, true, {}, any>;
150
212
  export { SchedulerEditSlot };
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),i=require("@progress/kendo-vue-common"),x=require("../constants/main.js"),s=require("../utils/main.js"),T=require("./SchedulerViewSlot.js"),w=require("../hooks/use-slots-selection.js"),A=require("../hooks/use-items-selection.js"),$=require("../hooks/use-items-focus.js"),r=require("../hooks/use-slots-focus.js"),N=require("../hooks/useEditable.js"),F=require("../hooks/useSlotExpand.js");function j(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!n.isVNode(e)}const _=n.defineComponent({name:"KendoSchedulerEditSlot",inheritAttrs:!1,props:{role:String,tabIndex:{type:Number,default:void 0},className:String,form:Object,formItem:Object,refTo:[Function,Object],items:Array,row:Number,group:Object,range:Object,isWorkDay:{type:Boolean,default:!0},isWorkHour:{type:Boolean,default:!0},selected:Boolean,col:Number,index:Number,start:Date,end:Date,zonedStart:Object,zonedEnd:Object,isAllDay:Boolean,expandable:[Boolean,Object],slotRender:[String,Function,Object],viewSlot:[String,Function,Object],navDay:Boolean,editable:[Object,Boolean],itemsPerSlot:Number,onDataaction:Function},created(){this.slot=null,this.editableSlot=null},mounted(){const e=this;this.$nextTick(function(){F.useSlotExpand(e,e.ks.scheduler.$el,e.$props.expandable)})},updated(){const e=this;this.$nextTick(function(){F.useSlotExpand(e,e.ks.scheduler.$el,e.$props.expandable)})},provide(){return{ksEditFormSubmit:this.handleEditFormSubmit,ksEditFormCancel:this.handleEditFormCancel,ksEditFormClose:this.handleEditFormClose}},inject:{bv:{default:null},ks:{default:null},dispatchSelectedItems:{default:null},dispatchFocusedItems:{default:null},dispatchFocusedSlots:{default:null},dispatchSelectedSlots:{default:null},ksSlots:{default:{}}},data(){return{currentFormItem:null}},computed:{cSlot(){return this.ksSlots.cSlots?this.ksSlots.cSlots[this.index]:{}},currentTabIndex(){const e=this.bv.slots.length&&s.compareSlots(this.bv.slots[0].cSlot,this.cSlot);return this.$props.tabIndex!==void 0?this.$props.tabIndex===null?void 0:this.$props.tabIndex:this.bv.selectedSlots.length===0&&e&&this.cSlot.items.length===0?0:void 0},computedEditable(){return N.useEditable(this.$props.editable)},compFormItem(){return this.formItem!==void 0?this.formItem:this.currentFormItem}},render(){const e=i.getDefaultSlots(this),{role:t,viewSlot:o,form:l,formItem:q,items:a,row:I,group:y,range:g,isWorkDay:d,isWorkHour:c,col:k,index:u,start:D,end:C,zonedStart:h,zonedEnd:m,navDay:S,itemsPerSlot:p,className:O}=this.$props,b=this.bv.selectedSlots.some(v=>s.compareSlots(v.cSlot,this.cSlot));let f;const E=n.createVNode(T.SchedulerViewSlot,{role:t,className:O,slotRender:this.$props.slotRender,isAllDay:this.isAllDay,expandable:this.expandable,editable:this.editable,items:a,row:I,group:y,range:g,isWorkDay:d,isWorkHour:c,col:k,index:u,start:D,end:C,zonedStart:h,zonedEnd:m,selected:b,navDay:S,itemsPerSlot:p,tabIndex:this.currentTabIndex,formItem:this.compFormItem,onFocus:this.handleFocus,onDoubleclick:this.handleDoubleClick,onKeydown:this.handleKeyDown,onShowmoreitems:this.handleShowMoreItemsClick},j(e)?e:{default:()=>[e]});return f=i.getTemplate.call(this,{h:n.h,template:this.$props.viewSlot,defaultRendering:E,defaultSlots:e,additionalProps:{...this.cSlot,isAllDay:this.cSlot.isAllDay,expandable:this.expandable,editable:this.editable,items:a,row:this.cSlot.row,group:this.cSlot.group,range:this.cSlot.range,isWorkDay:d,isWorkHour:c,col:this.cSlot.col,index:u,start:this.cSlot.start,end:this.cSlot.end,zonedStart:h,zonedEnd:m,selected:b,navDay:S,itemsPerSlot:p,tabIndex:this.currentTabIndex},additionalListeners:{focus:this.handleFocus,doubleclick:this.handleDoubleClick,keydown:this.handleKeyDown,showmoreitems:this.handleShowMoreItemsClick}}),f},methods:{handleShowMoreItemsClick(e){this.$emit("showmoreitems",e)},createDataItemFromSlot(){const e={};if(s.setField(e,this.ks.fields.start,new Date(this.cSlot.start.getTime())),s.setField(e,this.ks.fields.end,new Date(this.cSlot.end.getTime())),s.setField(e,this.ks.fields.isAllDay,this.cSlot.isAllDay),this.cSlot.group.resources.length)for(let t=0;t<this.cSlot.group.resources.length;t++){const o=this.cSlot.group.resources[t];if(s.isGroupped(this.cSlot.group.resources)){const l=s.getField(this.cSlot.group.resources[t],o.valueField);s.setField(e,o.field,o.multiple?[l]:l)}else s.setField(e,o.field,o.multiple?[]:void 0)}return e},handleFocus(e){this.computedEditable.select&&this.dispatchSelectedSlots({type:w.SLOTS_SELECT_ACTION.select,slot:this},e.event),this.$emit("focus",e)},handleDoubleClick(e){if(this.computedEditable.add){const t=this.createDataItemFromSlot();this.setFormItem(t,e)}this.$emit("doubleclick",e)},handleKeyDown(e){let t,o,l;switch(e.event.keyCode){case i.Keys.left:if(!this.bv.slots)return;e.event.preventDefault(),this.dispatchFocusedSlots({type:r.SLOTS_FOCUS_ACTION.left,slot:this},e.event);break;case i.Keys.right:if(!this.bv.slots)return;e.event.preventDefault(),this.dispatchFocusedSlots({type:r.SLOTS_FOCUS_ACTION.right,slot:this},e.event);break;case i.Keys.up:if(!this.bv.slots)return;e.event.preventDefault(),this.dispatchFocusedSlots({type:r.SLOTS_FOCUS_ACTION.up,slot:this},e.event);break;case i.Keys.down:if(!this.bv.slots)return;e.event.preventDefault(),this.dispatchFocusedSlots({type:r.SLOTS_FOCUS_ACTION.down,slot:this},e.event);break;case i.Keys.enter:if(!this.bv.slots||!this.computedEditable.add)return;l=this.createDataItemFromSlot(),this.setFormItem(l);break;case i.Keys.tab:o=s.findFirstItem(e.target),t=o?s.findCurrentItem(o,this.bv.items,!1):s.getSortedSlots(this.bv.items,this.ignoreIsAllDay)[0],this.dispatchFocusedItems({type:$.ITEMS_FOCUS_ACTION.current,item:t},e.event),this.dispatchSelectedItems({type:A.ITEMS_SELECT_ACTION.select,item:t},e);break}t&&e.event.preventDefault()},handleEditFormSubmit(e){this.$emit("dataaction",{type:x.DATA_ACTION.create,series:!1,dataItem:e.value},e),this.setFormItem(null,e.event)},handleEditFormCancel(e){this.setFormItem(null,e.event)},handleEditFormClose(e){this.setFormItem(null,e)},handleFormItemChange(e,t){this.setFormItem&&this.setFormItem(e,t)},setFormItem(e,t){this.currentFormItem=e,this.$emit("formitemchange",t)}}});exports.SchedulerEditSlot=_;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),r=require("@progress/kendo-vue-common"),D=require("../constants/main.js"),i=require("../utils/main.js"),T=require("../components/SchedulerQuickCreateForm.js"),A=require("./SchedulerViewSlot.js"),x=require("../hooks/use-slots-selection.js"),Q=require("../hooks/use-items-selection.js"),N=require("../hooks/useDeferredClick.js"),j=require("../hooks/useExclusivePopover.js"),$=require("../hooks/use-items-focus.js"),S=require("../hooks/use-slots-focus.js"),_=require("../hooks/useEditable.js"),y=require("../hooks/useSlotExpand.js");function R(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!o.isVNode(e)}const K=o.defineComponent({name:"KendoSchedulerEditSlot",inheritAttrs:!1,emits:["dataaction","showmoreitems","focus","click","doubleclick","formitemchange","quickcreateformitemchange"],props:{role:String,tabIndex:{type:Number,default:void 0},className:String,form:Object,formItem:Object,quickCreateForm:[String,Function,Object],quickCreateFormItem:Object,refTo:[Function,Object],items:Array,row:Number,group:Object,range:Object,isWorkDay:{type:Boolean,default:!0},isWorkHour:{type:Boolean,default:!0},selected:Boolean,col:Number,index:Number,start:Date,end:Date,zonedStart:Object,zonedEnd:Object,isAllDay:Boolean,expandable:[Boolean,Object],slotRender:[String,Function,Object],viewSlot:[String,Function,Object],navDay:Boolean,editable:[Object,Boolean],itemsPerSlot:Number,onDataAction:Function},created(){this.slot=null,this.editableSlot=null},mounted(){const e=this;this.$nextTick(function(){y.useSlotExpand(e,e.ks.scheduler.$el,e.$props.expandable)})},updated(){const e=this;this.$nextTick(function(){y.useSlotExpand(e,e.ks.scheduler.$el,e.$props.expandable)})},provide(){return{ksEditFormSubmit:this.handleEditFormSubmit,ksEditFormCancel:this.handleEditFormCancel,ksEditFormClose:this.handleEditFormClose,ksRenderQuickCreateForm:this.renderQuickCreateForm}},inject:{bv:{default:null},ks:{default:null},dispatchSelectedItems:{default:null},dispatchFocusedItems:{default:null},dispatchFocusedSlots:{default:null},dispatchSelectedSlots:{default:null},ksSlots:{default:{}}},setup(e,{emit:t}){const s=o.inject("ks",null),l=o.inject("ksQuickCreate",()=>!0),p=o.shallowRef(null),d=o.shallowRef(null),h=N.useDeferredClick(),k=o.computed(()=>(s==null?void 0:s.activeViewName.toLowerCase())!=="agenda"&&l()),c=o.computed(()=>e.quickCreateFormItem!==void 0?e.quickCreateFormItem:p.value),u=(n,m)=>{p.value=n,t("quickcreateformitemchange",{value:n,event:m})},a=n=>{h.cancel(),c.value&&u(null,n)};return j.useExclusivePopover(()=>!!c.value,a),o.watch([()=>s==null?void 0:s.currentDate,()=>s==null?void 0:s.activeViewName],()=>a()),{quickCreateAnchor:d,quickCreateEnabled:k,quickCreateFormItem:c,deferredQuickCreate:h,setQuickCreateFormItem:u,closeQuickCreate:a,quickCreateFormTemplate:o.inject("ksQuickCreateForm",()=>{})}},data(){return{currentFormItem:null}},computed:{cSlot(){return this.ksSlots.cSlots?this.ksSlots.cSlots[this.index]:{}},currentTabIndex(){const e=this.bv.slots.length&&i.compareSlots(this.bv.slots[0].cSlot,this.cSlot);return this.$props.tabIndex!==void 0?this.$props.tabIndex===null?void 0:this.$props.tabIndex:this.bv.selectedSlots.length===0&&e&&this.cSlot.items.length===0?0:void 0},computedEditable(){return _.useEditable(this.$props.editable)},compFormItem(){return this.formItem!==void 0?this.formItem:this.currentFormItem}},render(){const e=r.getDefaultSlots(this),{role:t,viewSlot:s,form:l,formItem:p,items:d,row:h,group:k,range:c,isWorkDay:u,isWorkHour:a,col:n,index:m,start:v,end:O,zonedStart:b,zonedEnd:f,navDay:C,itemsPerSlot:F,className:E}=this.$props,I=this.bv.selectedSlots.some(w=>i.compareSlots(w.cSlot,this.cSlot));let g;const q=o.createVNode(A.SchedulerViewSlot,{role:t,className:E,slotRender:this.$props.slotRender,isAllDay:this.isAllDay,expandable:this.expandable,editable:this.editable,items:d,row:h,group:k,range:c,isWorkDay:u,isWorkHour:a,col:n,index:m,start:v,end:O,zonedStart:b,zonedEnd:f,selected:I,navDay:C,itemsPerSlot:F,tabIndex:this.currentTabIndex,formItem:this.compFormItem,onFocus:this.handleFocus,onClick:this.handleClick,onDoubleclick:this.handleDoubleClick,onKeydown:this.handleKeyDown,onShowmoreitems:this.handleShowMoreItemsClick},R(e)?e:{default:()=>[e]});return g=r.getTemplate.call(this,{h:o.h,template:this.$props.viewSlot,defaultRendering:q,defaultSlots:e,additionalProps:{...this.cSlot,isAllDay:this.cSlot.isAllDay,expandable:this.expandable,editable:this.editable,items:d,row:this.cSlot.row,group:this.cSlot.group,range:this.cSlot.range,isWorkDay:u,isWorkHour:a,col:this.cSlot.col,index:m,start:this.cSlot.start,end:this.cSlot.end,zonedStart:b,zonedEnd:f,selected:I,navDay:C,itemsPerSlot:F,tabIndex:this.currentTabIndex},additionalListeners:{focus:this.handleFocus,click:this.handleClick,doubleclick:this.handleDoubleClick,keydown:this.handleKeyDown,showmoreitems:this.handleShowMoreItemsClick}}),g},methods:{renderQuickCreateForm(){if(!this.quickCreateFormItem)return null;const e=this.$props.quickCreateForm?r.templateRendering.call(this,this.$props.quickCreateForm,{}):this.quickCreateFormTemplate();return r.getTemplate.call(this,{h:o.h,template:e,defaultRendering:o.createVNode(T.SchedulerQuickCreateForm,{show:!0,anchor:this.quickCreateAnchor,dataItem:this.quickCreateFormItem,onSubmit:this.handleQuickCreateSubmit,onMoreoptions:this.handleQuickCreateMoreOptions,onCancel:this.handleQuickCreateCancel},null),additionalListeners:{submit:this.handleQuickCreateSubmit,moreoptions:this.handleQuickCreateMoreOptions,cancel:this.handleQuickCreateCancel}})},restoreSlotFocus(){var e;(e=this.quickCreateAnchor)==null||e.focus({preventScroll:!0})},handleQuickCreateSubmit(e){i.emitDataAction(this,{type:D.DATA_ACTION.create,series:!1,dataItem:e.value},e.event),this.setQuickCreateFormItem(null,e.event),this.restoreSlotFocus()},handleQuickCreateMoreOptions(e){this.setFormItem(e.value,e.event),this.setQuickCreateFormItem(null,e.event)},handleQuickCreateCancel(e){this.setQuickCreateFormItem(null,e.event),this.restoreSlotFocus()},handleShowMoreItemsClick(e){this.$emit("showmoreitems",e)},createDataItemFromSlot(){const e={};if(i.setField(e,this.ks.fields.start,new Date(this.cSlot.start.getTime())),i.setField(e,this.ks.fields.end,new Date(this.cSlot.end.getTime())),i.setField(e,this.ks.fields.isAllDay,this.cSlot.isAllDay),this.cSlot.group.resources.length)for(let t=0;t<this.cSlot.group.resources.length;t++){const s=this.cSlot.group.resources[t];if(i.isGroupped(this.cSlot.group.resources)){const l=i.getField(this.cSlot.group.resources[t],s.valueField);i.setField(e,s.field,s.multiple?[l]:l)}else i.setField(e,s.field,s.multiple?[]:void 0)}return e},handleFocus(e){this.computedEditable.select&&this.dispatchSelectedSlots({type:x.SLOTS_SELECT_ACTION.select,slot:this},e.event),this.$emit("focus",e)},handleClick(e){if(this.computedEditable.add&&this.quickCreateEnabled){const t=e.target.element;this.deferredQuickCreate.schedule(()=>{this.quickCreateAnchor=t,this.setQuickCreateFormItem(this.createDataItemFromSlot(),e.event)})}this.$emit("click",e)},handleDoubleClick(e){if(this.closeQuickCreate(e.event),this.computedEditable.add){const t=this.createDataItemFromSlot();this.setFormItem(t,e)}this.$emit("doubleclick",e)},handleKeyDown(e){let t,s,l;switch(e.event.keyCode){case r.Keys.left:if(!this.bv.slots)return;e.event.preventDefault(),this.dispatchFocusedSlots({type:S.SLOTS_FOCUS_ACTION.left,slot:this},e.event);break;case r.Keys.right:if(!this.bv.slots)return;e.event.preventDefault(),this.dispatchFocusedSlots({type:S.SLOTS_FOCUS_ACTION.right,slot:this},e.event);break;case r.Keys.up:if(!this.bv.slots)return;e.event.preventDefault(),this.dispatchFocusedSlots({type:S.SLOTS_FOCUS_ACTION.up,slot:this},e.event);break;case r.Keys.down:if(!this.bv.slots)return;e.event.preventDefault(),this.dispatchFocusedSlots({type:S.SLOTS_FOCUS_ACTION.down,slot:this},e.event);break;case r.Keys.enter:if(!this.bv.slots||!this.computedEditable.add)return;e.event.preventDefault(),l=this.createDataItemFromSlot(),this.quickCreateEnabled?(this.quickCreateAnchor=e.target.element,this.setQuickCreateFormItem(l,e.event)):this.setFormItem(l);break;case r.Keys.tab:s=i.findFirstItem(e.target),t=s?i.findCurrentItem(s,this.bv.items,!1):i.getSortedSlots(this.bv.items,this.ignoreIsAllDay)[0],this.dispatchFocusedItems({type:$.ITEMS_FOCUS_ACTION.current,item:t},e.event),this.dispatchSelectedItems({type:Q.ITEMS_SELECT_ACTION.select,item:t},e);break}t&&e.event.preventDefault()},handleEditFormSubmit(e){i.emitDataAction(this,{type:D.DATA_ACTION.create,series:!1,dataItem:e.value},e),this.setFormItem(null,e.event)},handleEditFormCancel(e){this.setFormItem(null,e.event)},handleEditFormClose(e){this.setFormItem(null,e)},handleFormItemChange(e,t){this.setFormItem&&this.setFormItem(e,t)},setFormItem(e,t){this.currentFormItem=e,this.$emit("formitemchange",t)}}});exports.SchedulerEditSlot=K;