@progress/kendo-vue-scheduler 10.2.0-develop.11 → 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
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { PropType } from 'vue';
9
+ import { DataItem } from '../models/main';
10
+ import { Fields } from '../models/Fields';
11
+ /** @hidden */
12
+ export interface EventOverviewPopoverProps {
13
+ show: boolean;
14
+ anchor: HTMLElement | null;
15
+ dataItem: DataItem;
16
+ fields: Fields;
17
+ isRecurring: boolean;
18
+ canEdit: boolean;
19
+ canRemove: boolean;
20
+ }
21
+ /** @hidden */
22
+ export declare const EventOverviewPopover: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
23
+ show: PropType<boolean>;
24
+ anchor: PropType<HTMLElement>;
25
+ dataItem: {
26
+ type: PropType<any>;
27
+ required: true;
28
+ };
29
+ fields: {
30
+ type: PropType<Fields>;
31
+ required: true;
32
+ };
33
+ isRecurring: BooleanConstructor;
34
+ canEdit: BooleanConstructor;
35
+ canRemove: BooleanConstructor;
36
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
37
+ close: () => true;
38
+ edit: (series?: boolean) => boolean;
39
+ delete: (series?: boolean) => boolean;
40
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
41
+ show: PropType<boolean>;
42
+ anchor: PropType<HTMLElement>;
43
+ dataItem: {
44
+ type: PropType<any>;
45
+ required: true;
46
+ };
47
+ fields: {
48
+ type: PropType<Fields>;
49
+ required: true;
50
+ };
51
+ isRecurring: BooleanConstructor;
52
+ canEdit: BooleanConstructor;
53
+ canRemove: BooleanConstructor;
54
+ }>> & Readonly<{
55
+ onClose?: () => any;
56
+ onDelete?: (series?: boolean) => any;
57
+ onEdit?: (series?: boolean) => any;
58
+ }>, {
59
+ isRecurring: boolean;
60
+ canEdit: boolean;
61
+ canRemove: boolean;
62
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),b=require("@progress/kendo-vue-tooltip"),E=require("@progress/kendo-vue-common"),g=require("@progress/kendo-vue-buttons"),y=require("@progress/kendo-vue-form"),N=require("@progress/kendo-vue-labels"),q=require("@progress/kendo-vue-intl"),x=require("@progress/kendo-svg-icons"),D=require("../constants/main.js"),u=require("../utils/main.js"),R=require("../hooks/useCloseOnAnchorScrollOut.js"),r=require("../messages/main.js");function P(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const F="360px",B={horizontal:D.SCHEDULER_POPOVER_GAP,vertical:0},A=t.defineComponent({name:"KendoSchedulerEventOverviewPopover",props:{show:Boolean,anchor:Object,dataItem:{type:Object,required:!0},fields:{type:Object,required:!0},isRecurring:Boolean,canEdit:Boolean,canRemove:Boolean},emits:{close:()=>!0,edit:e=>e===void 0||typeof e=="boolean",delete:e=>e===void 0||typeof e=="boolean"},inject:{kendoIntlService:{default:null},kendoLocalizationService:{default:null}},setup(e,{emit:s}){const a=t.getCurrentInstance(),I=t.ref(null),k=()=>s("close"),O=()=>{var o,c;return(c=(o=I.value)==null?void 0:o.$el)==null?void 0:c.closest(".k-popover")};t.watch(()=>e.show,(o,c,w)=>{if(!o||typeof document=="undefined")return;const m=n=>{var f;const d=n.target,l=O(),v=Array.from((l==null?void 0:l.querySelectorAll("[aria-controls]"))||[]).some(V=>{var i;const h=V.getAttribute("aria-controls");return h?(i=document.getElementById(h))==null?void 0:i.contains(d):!1});!(l!=null&&l.contains(d))&&!((f=e.anchor)!=null&&f.contains(d))&&!v&&k()};document.addEventListener("mousedown",m),w(()=>document.removeEventListener("mousedown",m))},{immediate:!0}),R.useCloseOnAnchorScrollOut(()=>e.show,()=>e.anchor,k);const S=()=>{if(e.show&&(e.canEdit||e.canRemove)){const o=O(),c=(o==null?void 0:o.querySelector(".k-popover-actions .k-button-primary"))||(o==null?void 0:o.querySelector(".k-popover-actions .k-button"));c==null||c.focus()}};return t.watch(()=>[e.show,e.canEdit,e.canRemove],()=>t.nextTick(S),{immediate:!0,flush:"post"}),()=>{let o,c;const w=q.provideIntlService(a==null?void 0:a.proxy),m=q.provideLocalizationService(a==null?void 0:a.proxy),n=i=>m.toLanguageString(i,r.messages[i]),d=u.getField(e.dataItem,e.fields.start),l=u.getField(e.dataItem,e.fields.end),v=u.getField(e.dataItem,e.fields.description),f=d&&l?u.formatEventSummary(w,d,l,!!u.getField(e.dataItem,e.fields.isAllDay),n(r.allDay)):"",V=[{text:n(r.editorOccurrence),scope:"occurrence"},{text:n(r.editorSeries),scope:"series"}],h=[{text:n(r.deleteOccurrence),scope:"occurrence"},{text:n(r.deleteSeries),scope:"series"}];return t.createVNode(b.Popover,{anchor:e.anchor,show:e.show,position:"right",collision:{horizontal:"fit",vertical:"fit"},margin:B,callout:!1,title:u.getField(e.dataItem,e.fields.title)||n(r.eventTitle),style:{width:F},autoFocus:!1,animate:{openDuration:1,closeDuration:1},onOpen:S,onKeydown:k},{default:()=>[t.createVNode(y.FormElement,{ref:I,horizontal:!0,class:"k-scheduler-edit-form"},{default:()=>[t.createVNode(y.FieldWrapper,null,{default:()=>[t.createVNode(N.Label,{class:"k-form-label"},{default:()=>[t.createVNode(E.SvgIcon,{icon:x.clockIcon,size:"xlarge"},null)]}),t.createVNode("div",{class:"k-form-field-wrap"},[t.createVNode("div",{class:"k-scheduler-edit-form-row k-color-subtle"},[f])])]}),v?t.createVNode(y.FieldWrapper,null,{default:()=>[t.createVNode(N.Label,{class:"k-form-label"},{default:()=>[t.createVNode(E.SvgIcon,{icon:x.commentIcon,size:"xlarge"},null)]}),t.createVNode("div",{class:"k-form-field-wrap"},[t.createVNode("div",{class:"k-scheduler-edit-form-row"},[v])])]}):null]}),e.canEdit||e.canRemove?t.createVNode(b.PopoverActionsBar,{alignment:"end"},{default:()=>[e.canRemove?e.isRecurring?t.createVNode(g.DropDownButton,{text:n(r.overviewPopoverDelete),items:h,textField:"text",onItemclick:i=>s("delete",i.item.scope==="series")},null):t.createVNode(g.Button,{type:"button",onClick:()=>s("delete")},P(o=n(r.overviewPopoverDelete))?o:{default:()=>[o]}):null,e.canEdit?e.isRecurring?t.createVNode(g.DropDownButton,{text:n(r.overviewPopoverEdit),themeColor:"primary",items:V,textField:"text",onItemclick:i=>s("edit",i.item.scope==="series")},null):t.createVNode(g.Button,{type:"button",themeColor:"primary",onClick:()=>s("edit")},P(c=n(r.overviewPopoverEdit))?c:{default:()=>[c]}):null]}):null]})}}});exports.EventOverviewPopover=A;
@@ -0,0 +1,191 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { defineComponent as z, getCurrentInstance as B, ref as C, watch as x, nextTick as _, createVNode as t, isVNode as j } from "vue";
9
+ import { Popover as L, PopoverActionsBar as F } from "@progress/kendo-vue-tooltip";
10
+ import { SvgIcon as E } from "@progress/kendo-vue-common";
11
+ import { DropDownButton as O, Button as S } from "@progress/kendo-vue-buttons";
12
+ import { FormElement as q, FieldWrapper as b } from "@progress/kendo-vue-form";
13
+ import { Label as P } from "@progress/kendo-vue-labels";
14
+ import { provideIntlService as V, provideLocalizationService as p } from "@progress/kendo-vue-intl";
15
+ import { clockIcon as M, commentIcon as N } from "@progress/kendo-svg-icons";
16
+ import { SCHEDULER_POPOVER_GAP as T } from "../constants/main.mjs";
17
+ import { getField as s, formatEventSummary as G } from "../utils/main.mjs";
18
+ import { useCloseOnAnchorScrollOut as H } from "../hooks/useCloseOnAnchorScrollOut.mjs";
19
+ import { messages as K, allDay as W, deleteOccurrence as U, deleteSeries as $, editorOccurrence as J, editorSeries as Q, eventTitle as X, overviewPopoverDelete as R, overviewPopoverEdit as D } from "../messages/main.mjs";
20
+ function A(e) {
21
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !j(e);
22
+ }
23
+ const Y = "360px", Z = {
24
+ horizontal: T,
25
+ vertical: 0
26
+ }, me = /* @__PURE__ */ z({
27
+ name: "KendoSchedulerEventOverviewPopover",
28
+ props: {
29
+ show: Boolean,
30
+ anchor: Object,
31
+ dataItem: {
32
+ type: Object,
33
+ required: !0
34
+ },
35
+ fields: {
36
+ type: Object,
37
+ required: !0
38
+ },
39
+ isRecurring: Boolean,
40
+ canEdit: Boolean,
41
+ canRemove: Boolean
42
+ },
43
+ // `series` is set only for recurring events: `false` for the occurrence, `true` for the series.
44
+ emits: {
45
+ close: () => !0,
46
+ edit: (e) => e === void 0 || typeof e == "boolean",
47
+ delete: (e) => e === void 0 || typeof e == "boolean"
48
+ },
49
+ inject: {
50
+ kendoIntlService: {
51
+ default: null
52
+ },
53
+ kendoLocalizationService: {
54
+ default: null
55
+ }
56
+ },
57
+ setup(e, {
58
+ emit: d
59
+ }) {
60
+ const c = B(), g = C(null), h = () => d("close"), k = () => {
61
+ var o, l;
62
+ return (l = (o = g.value) == null ? void 0 : o.$el) == null ? void 0 : l.closest(".k-popover");
63
+ };
64
+ x(() => e.show, (o, l, y) => {
65
+ if (!o || typeof document == "undefined")
66
+ return;
67
+ const u = (n) => {
68
+ var f;
69
+ const a = n.target, i = k(), m = Array.from((i == null ? void 0 : i.querySelectorAll("[aria-controls]")) || []).some((w) => {
70
+ var r;
71
+ const v = w.getAttribute("aria-controls");
72
+ return v ? (r = document.getElementById(v)) == null ? void 0 : r.contains(a) : !1;
73
+ });
74
+ !(i != null && i.contains(a)) && !((f = e.anchor) != null && f.contains(a)) && !m && h();
75
+ };
76
+ document.addEventListener("mousedown", u), y(() => document.removeEventListener("mousedown", u));
77
+ }, {
78
+ immediate: !0
79
+ }), H(() => e.show, () => e.anchor, h);
80
+ const I = () => {
81
+ if (e.show && (e.canEdit || e.canRemove)) {
82
+ const o = k(), l = (o == null ? void 0 : o.querySelector(".k-popover-actions .k-button-primary")) || (o == null ? void 0 : o.querySelector(".k-popover-actions .k-button"));
83
+ l == null || l.focus();
84
+ }
85
+ };
86
+ return x(() => [e.show, e.canEdit, e.canRemove], () => _(I), {
87
+ immediate: !0,
88
+ flush: "post"
89
+ }), () => {
90
+ let o, l;
91
+ const y = V(c == null ? void 0 : c.proxy), u = p(c == null ? void 0 : c.proxy), n = (r) => u.toLanguageString(r, K[r]), a = s(e.dataItem, e.fields.start), i = s(e.dataItem, e.fields.end), m = s(e.dataItem, e.fields.description), f = a && i ? G(y, a, i, !!s(e.dataItem, e.fields.isAllDay), n(W)) : "", w = [{
92
+ text: n(J),
93
+ scope: "occurrence"
94
+ }, {
95
+ text: n(Q),
96
+ scope: "series"
97
+ }], v = [{
98
+ text: n(U),
99
+ scope: "occurrence"
100
+ }, {
101
+ text: n($),
102
+ scope: "series"
103
+ }];
104
+ return t(L, {
105
+ anchor: e.anchor,
106
+ show: e.show,
107
+ position: "right",
108
+ collision: {
109
+ horizontal: "fit",
110
+ vertical: "fit"
111
+ },
112
+ margin: Z,
113
+ callout: !1,
114
+ title: s(e.dataItem, e.fields.title) || n(X),
115
+ style: {
116
+ width: Y
117
+ },
118
+ autoFocus: !1,
119
+ animate: {
120
+ openDuration: 1,
121
+ closeDuration: 1
122
+ },
123
+ onOpen: I,
124
+ onKeydown: h
125
+ }, {
126
+ default: () => [t(q, {
127
+ ref: g,
128
+ horizontal: !0,
129
+ class: "k-scheduler-edit-form"
130
+ }, {
131
+ default: () => [t(b, null, {
132
+ default: () => [t(P, {
133
+ class: "k-form-label"
134
+ }, {
135
+ default: () => [t(E, {
136
+ icon: M,
137
+ size: "xlarge"
138
+ }, null)]
139
+ }), t("div", {
140
+ class: "k-form-field-wrap"
141
+ }, [t("div", {
142
+ class: "k-scheduler-edit-form-row k-color-subtle"
143
+ }, [f])])]
144
+ }), m ? t(b, null, {
145
+ default: () => [t(P, {
146
+ class: "k-form-label"
147
+ }, {
148
+ default: () => [t(E, {
149
+ icon: N,
150
+ size: "xlarge"
151
+ }, null)]
152
+ }), t("div", {
153
+ class: "k-form-field-wrap"
154
+ }, [t("div", {
155
+ class: "k-scheduler-edit-form-row"
156
+ }, [m])])]
157
+ }) : null]
158
+ }), e.canEdit || e.canRemove ? t(F, {
159
+ alignment: "end"
160
+ }, {
161
+ default: () => [e.canRemove ? e.isRecurring ? t(O, {
162
+ text: n(R),
163
+ items: v,
164
+ textField: "text",
165
+ onItemclick: (r) => d("delete", r.item.scope === "series")
166
+ }, null) : t(S, {
167
+ type: "button",
168
+ onClick: () => d("delete")
169
+ }, A(o = n(R)) ? o : {
170
+ default: () => [o]
171
+ }) : null, e.canEdit ? e.isRecurring ? t(O, {
172
+ text: n(D),
173
+ themeColor: "primary",
174
+ items: w,
175
+ textField: "text",
176
+ onItemclick: (r) => d("edit", r.item.scope === "series")
177
+ }, null) : t(S, {
178
+ type: "button",
179
+ themeColor: "primary",
180
+ onClick: () => d("edit")
181
+ }, A(l = n(D)) ? l : {
182
+ default: () => [l]
183
+ }) : null]
184
+ }) : null]
185
+ });
186
+ };
187
+ }
188
+ });
189
+ export {
190
+ me as EventOverviewPopover
191
+ };
@@ -17,6 +17,7 @@ export interface MoreEventsPopoverProps {
17
17
  items: Item[];
18
18
  itemsPerSlot: number;
19
19
  onDayClick?: (slot: Slot) => void;
20
+ onItemDoubleClick?: (item: Item) => void;
20
21
  onClose?: () => void;
21
22
  }
22
23
  /**
@@ -43,7 +44,7 @@ declare const MoreEventsPopover: import('vue').DefineComponent<import('vue').Ext
43
44
  type: PropType<number>;
44
45
  default: number;
45
46
  };
46
- }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("close" | "dayclick")[], "close" | "dayclick", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
47
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("close" | "dayclick" | "itemdoubleclick")[], "close" | "dayclick" | "itemdoubleclick", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
47
48
  show: {
48
49
  type: PropType<boolean>;
49
50
  default: boolean;
@@ -67,6 +68,7 @@ declare const MoreEventsPopover: import('vue').DefineComponent<import('vue').Ext
67
68
  }>> & Readonly<{
68
69
  onClose?: (...args: any[]) => any;
69
70
  onDayclick?: (...args: any[]) => any;
71
+ onItemdoubleclick?: (...args: any[]) => any;
70
72
  }>, {
71
73
  slot: Slot;
72
74
  anchor: HTMLElement;
@@ -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 e=require("vue"),N=require("@progress/kendo-vue-tooltip"),m=require("@progress/kendo-vue-intl"),s=require("../messages/main.js"),T={skeleton:"MMM"},V={skeleton:"dd"},D="t",L=e.defineComponent({name:"KendoSchedulerMoreEventsPopover",props:{show:{type:Boolean,default:!1},anchor:{type:Object,default:null},slot:{type:Object,default:null},items:{type:Array,default:()=>[]},itemsPerSlot:{type:Number,default:2}},emits:["dayclick","close"],inject:{kendoIntlService:{default:null},kendoLocalizationService:{default:null}},setup(o,{emit:d}){const t=l=>{const r=l.target,a=document.querySelector(".k-scheduler-popover");a&&!a.contains(r)&&o.anchor&&!o.anchor.contains(r)&&d("close")};return e.watch(()=>o.show,l=>{l?document.addEventListener("mousedown",t,!0):document.removeEventListener("mousedown",t,!0)},{immediate:!0}),e.onUnmounted(()=>{document.removeEventListener("mousedown",t,!0)}),{}},render(){const o=m.provideIntlService(this),d=m.provideLocalizationService(this);if(!this.$props.show||!this.$props.slot)return null;const t=this.$props.slot,l=this.$props.itemsPerSlot,r=t.items?t.items.filter((n,p)=>p>=l):[],a=new Date(t.zonedEnd.getTime()-(t.zonedEnd.getTime()-t.zonedStart.getTime())/2),k=o.formatDate(a,T),f=o.formatDate(a,V),y=d.toLanguageString(s.noEvents,s.messages[s.noEvents]),g=d.toLanguageString(s.popoverEvents,s.messages[s.popoverEvents]),E=n=>{n.preventDefault(),this.$emit("dayclick",t)},S=()=>{this.$emit("close")},w=e.createVNode("div",{class:"k-popover-header"},[e.createVNode("div",{class:"k-month"},[k]),e.createVNode("div",{class:"k-link k-day",onClick:E},[f])]);return e.createVNode(N.Popover,{anchor:this.$props.anchor,show:this.$props.show,popoverClass:"k-scheduler-popover",position:"right",collision:{horizontal:"flip",vertical:"flip"},animate:!1,onKeydown:S},{default:()=>[w,e.createVNode("div",{class:"k-scheduler-more-events-content",style:{minWidth:"220px"}},[r.length>0?e.createVNode("div",{class:"k-popover-events",role:"list","aria-label":g},[r.map((n,p)=>{var v,h;const i=(h=(v=n.group)==null?void 0:v.resources)==null?void 0:h.find(c=>!!(c.colorField&&c[c.colorField]!==""&&c[c.colorField]!==void 0)),u=(i==null?void 0:i.colorField)&&i[i.colorField],M=u?{"--kendo-scheduler-event-color":u}:void 0;return e.createVNode("div",{key:n.uid||p,class:"k-popover-event k-event",role:"listitem",style:M},[e.createVNode("div",{class:"k-event-title"},[n.title||""]),e.createVNode("span",{class:"k-event-time"},[o.formatDate(n.zonedStart,D)])])})]):e.createVNode("span",{class:"k-no-data"},[y])])]})}});exports.MoreEventsPopover=L;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),N=require("@progress/kendo-vue-tooltip"),h=require("@progress/kendo-vue-intl"),l=require("../messages/main.js"),T={skeleton:"MMM"},V={skeleton:"dd"},b="t",D=e.defineComponent({name:"KendoSchedulerMoreEventsPopover",props:{show:{type:Boolean,default:!1},anchor:{type:Object,default:null},slot:{type:Object,default:null},items:{type:Array,default:()=>[]},itemsPerSlot:{type:Number,default:2}},emits:["dayclick","itemdoubleclick","close"],inject:{kendoIntlService:{default:null},kendoLocalizationService:{default:null}},setup(n,{emit:d}){const t=r=>{const i=r.target,c=document.querySelector(".k-scheduler-popover");c&&!c.contains(i)&&n.anchor&&!n.anchor.contains(i)&&d("close")};return e.watch(()=>n.show,r=>{r?document.addEventListener("mousedown",t,!0):document.removeEventListener("mousedown",t,!0)},{immediate:!0}),e.onUnmounted(()=>{document.removeEventListener("mousedown",t,!0)}),{}},render(){const n=h.provideIntlService(this),d=h.provideLocalizationService(this);if(!this.$props.show||!this.$props.slot)return null;const t=this.$props.slot,r=this.$props.itemsPerSlot,i=t.items?t.items.filter((o,p)=>p>=r):[],c=new Date(t.zonedEnd.getTime()-(t.zonedEnd.getTime()-t.zonedStart.getTime())/2),k=n.formatDate(c,T),f=n.formatDate(c,V),y=d.toLanguageString(l.noEvents,l.messages[l.noEvents]),g=d.toLanguageString(l.popoverEvents,l.messages[l.popoverEvents]),E=o=>{o.preventDefault(),this.$emit("dayclick",t)},S=()=>{this.$emit("close")},w=e.createVNode("div",{class:"k-popover-header"},[e.createVNode("div",{class:"k-month"},[k]),e.createVNode("div",{class:"k-link k-day",onClick:E},[f])]);return e.createVNode(N.Popover,{anchor:this.$props.anchor,show:this.$props.show,popoverClass:"k-scheduler-popover",position:"right",callout:!1,collision:{horizontal:"flip",vertical:"flip"},animate:!1,onKeydown:S},{default:()=>[w,e.createVNode("div",{class:"k-scheduler-more-events-content",style:{minWidth:"220px"}},[i.length>0?e.createVNode("div",{class:"k-popover-events",role:"list","aria-label":g},[i.map((o,p)=>{var v,m;const a=(m=(v=o.group)==null?void 0:v.resources)==null?void 0:m.find(s=>!!(s.colorField&&s[s.colorField]!==""&&s[s.colorField]!==void 0)),u=(a==null?void 0:a.colorField)&&a[a.colorField],M=u?{"--kendo-scheduler-event-color":u}:void 0;return e.createVNode("div",{key:o.uid||p,class:"k-popover-event k-event",role:"listitem",style:M,onDblclick:s=>{s.stopPropagation(),this.$emit("itemdoubleclick",o)}},[e.createVNode("div",{class:"k-event-title"},[o.title||""]),e.createVNode("span",{class:"k-event-time"},[n.formatDate(o.zonedStart,b)])])})]):e.createVNode("span",{class:"k-no-data"},[y])])]})}});exports.MoreEventsPopover=D;
@@ -5,15 +5,15 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { defineComponent as T, createVNode as t, watch as L, onUnmounted as z } from "vue";
9
- import { Popover as F } from "@progress/kendo-vue-tooltip";
10
- import { provideIntlService as $, provideLocalizationService as b } from "@progress/kendo-vue-intl";
11
- import { noEvents as u, messages as h, popoverEvents as f } from "../messages/main.mjs";
12
- const C = {
8
+ import { defineComponent as T, createVNode as t, watch as b, onUnmounted as L } from "vue";
9
+ import { Popover as $ } from "@progress/kendo-vue-tooltip";
10
+ import { provideIntlService as z, provideLocalizationService as F } from "@progress/kendo-vue-intl";
11
+ import { noEvents as v, messages as h, popoverEvents as f } from "../messages/main.mjs";
12
+ const P = {
13
13
  skeleton: "MMM"
14
- }, O = {
14
+ }, C = {
15
15
  skeleton: "dd"
16
- }, P = "t", j = /* @__PURE__ */ T({
16
+ }, O = "t", j = /* @__PURE__ */ T({
17
17
  name: "KendoSchedulerMoreEventsPopover",
18
18
  props: {
19
19
  show: {
@@ -37,7 +37,7 @@ const C = {
37
37
  default: 2
38
38
  }
39
39
  },
40
- emits: ["dayclick", "close"],
40
+ emits: ["dayclick", "itemdoubleclick", "close"],
41
41
  inject: {
42
42
  kendoIntlService: {
43
43
  default: null
@@ -46,27 +46,27 @@ const C = {
46
46
  default: null
47
47
  }
48
48
  },
49
- setup(o, {
49
+ setup(n, {
50
50
  emit: c
51
51
  }) {
52
- const e = (s) => {
53
- const l = s.target, r = document.querySelector(".k-scheduler-popover");
54
- r && !r.contains(l) && o.anchor && !o.anchor.contains(l) && c("close");
52
+ const e = (l) => {
53
+ const i = l.target, r = document.querySelector(".k-scheduler-popover");
54
+ r && !r.contains(i) && n.anchor && !n.anchor.contains(i) && c("close");
55
55
  };
56
- return L(() => o.show, (s) => {
57
- s ? document.addEventListener("mousedown", e, !0) : document.removeEventListener("mousedown", e, !0);
56
+ return b(() => n.show, (l) => {
57
+ l ? document.addEventListener("mousedown", e, !0) : document.removeEventListener("mousedown", e, !0);
58
58
  }, {
59
59
  immediate: !0
60
- }), z(() => {
60
+ }), L(() => {
61
61
  document.removeEventListener("mousedown", e, !0);
62
62
  }), {};
63
63
  },
64
64
  render() {
65
- const o = $(this), c = b(this);
65
+ const n = z(this), c = F(this);
66
66
  if (!this.$props.show || !this.$props.slot)
67
67
  return null;
68
- const e = this.$props.slot, s = this.$props.itemsPerSlot, l = e.items ? e.items.filter((n, d) => d >= s) : [], r = new Date(e.zonedEnd.getTime() - (e.zonedEnd.getTime() - e.zonedStart.getTime()) / 2), k = o.formatDate(r, C), y = o.formatDate(r, O), g = c.toLanguageString(u, h[u]), S = c.toLanguageString(f, h[f]), w = (n) => {
69
- n.preventDefault(), this.$emit("dayclick", e);
68
+ const e = this.$props.slot, l = this.$props.itemsPerSlot, i = e.items ? e.items.filter((o, d) => d >= l) : [], r = new Date(e.zonedEnd.getTime() - (e.zonedEnd.getTime() - e.zonedStart.getTime()) / 2), k = n.formatDate(r, P), y = n.formatDate(r, C), g = c.toLanguageString(v, h[v]), S = c.toLanguageString(f, h[f]), w = (o) => {
69
+ o.preventDefault(), this.$emit("dayclick", e);
70
70
  }, E = () => {
71
71
  this.$emit("close");
72
72
  }, D = t("div", {
@@ -77,11 +77,12 @@ const C = {
77
77
  class: "k-link k-day",
78
78
  onClick: w
79
79
  }, [y])]);
80
- return t(F, {
80
+ return t($, {
81
81
  anchor: this.$props.anchor,
82
82
  show: this.$props.show,
83
83
  popoverClass: "k-scheduler-popover",
84
84
  position: "right",
85
+ callout: !1,
85
86
  collision: {
86
87
  horizontal: "flip",
87
88
  vertical: "flip"
@@ -94,25 +95,28 @@ const C = {
94
95
  style: {
95
96
  minWidth: "220px"
96
97
  }
97
- }, [l.length > 0 ? t("div", {
98
+ }, [i.length > 0 ? t("div", {
98
99
  class: "k-popover-events",
99
100
  role: "list",
100
101
  "aria-label": S
101
- }, [l.map((n, d) => {
102
- var v, m;
103
- const i = (m = (v = n.group) == null ? void 0 : v.resources) == null ? void 0 : m.find((a) => !!(a.colorField && a[a.colorField] !== "" && a[a.colorField] !== void 0)), p = (i == null ? void 0 : i.colorField) && i[i.colorField], M = p ? {
102
+ }, [i.map((o, d) => {
103
+ var m, u;
104
+ const a = (u = (m = o.group) == null ? void 0 : m.resources) == null ? void 0 : u.find((s) => !!(s.colorField && s[s.colorField] !== "" && s[s.colorField] !== void 0)), p = (a == null ? void 0 : a.colorField) && a[a.colorField], M = p ? {
104
105
  "--kendo-scheduler-event-color": p
105
106
  } : void 0;
106
107
  return t("div", {
107
- key: n.uid || d,
108
+ key: o.uid || d,
108
109
  class: "k-popover-event k-event",
109
110
  role: "listitem",
110
- style: M
111
+ style: M,
112
+ onDblclick: (s) => {
113
+ s.stopPropagation(), this.$emit("itemdoubleclick", o);
114
+ }
111
115
  }, [t("div", {
112
116
  class: "k-event-title"
113
- }, [n.title || ""]), t("span", {
117
+ }, [o.title || ""]), t("span", {
114
118
  class: "k-event-time"
115
- }, [o.formatDate(n.zonedStart, P)])]);
119
+ }, [n.formatDate(o.zonedStart, O)])]);
116
120
  })]) : t("span", {
117
121
  class: "k-no-data"
118
122
  }, [g])])]
@@ -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 e=require("vue"),n=require("@progress/kendo-vue-dialogs"),i=require("@progress/kendo-svg-icons"),o=require("@progress/kendo-vue-buttons"),s=e.defineComponent({name:"KendoSchedulerActionButtons",props:{editSaveMessage:String,editCancelMessage:String,editDeleteMessage:String,onDelete:Function,onCancel:Function},inject:{kendoForm:{default:{}}},render(){return e.createVNode(n.DialogActionsBar,{class:"k-form-buttons",layout:"end"},{default:()=>[this.onDelete&&e.createVNode(o.Button,{type:"button",fillMode:"flat",themeColor:"primary",svgIcon:i.trashIcon,onClick:this.onDelete},{default:()=>[this.editDeleteMessage]}),e.createVNode(o.Button,{onClick:this.handleCancel},{default:()=>[this.editCancelMessage]}),e.createVNode(o.Button,{type:"submit",themeColor:"primary",disabled:!this.kendoForm.allowSubmit,onClick:this.onSubmit},{default:()=>[this.editSaveMessage]})]})},methods:{onSubmit(t){this.kendoForm.onSubmit(t)},handleCancel(t){this.$emit("cancel",t)}}});exports.SchedulerActionButtons=s;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),n=require("@progress/kendo-vue-dialogs"),i=require("@progress/kendo-svg-icons"),o=require("@progress/kendo-vue-buttons"),s=e.defineComponent({name:"KendoSchedulerActionButtons",props:{editSaveMessage:String,editCancelMessage:String,editDeleteMessage:String,onDelete:Function,onCancel:Function},inject:{kendoForm:{default:{}}},render(){return e.createVNode(n.DialogActionsBar,{class:"k-form-buttons",layout:"end"},{default:()=>[this.onDelete&&e.createVNode(o.Button,{type:"button",fillMode:"flat",themeColor:"primary",svgIcon:i.trashIcon,onClick:this.onDelete},{default:()=>[this.editDeleteMessage]}),e.createVNode(o.Button,{type:"button",onClick:this.handleCancel},{default:()=>[this.editCancelMessage]}),e.createVNode(o.Button,{type:"submit",themeColor:"primary",disabled:!this.kendoForm.allowSubmit,onClick:this.onSubmit},{default:()=>[this.editSaveMessage]})]})},methods:{onSubmit(t){this.kendoForm.onSubmit(t)},handleCancel(t){this.$emit("cancel",t)}}});exports.SchedulerActionButtons=s;
@@ -37,6 +37,7 @@ const m = /* @__PURE__ */ n({
37
37
  }, {
38
38
  default: () => [this.editDeleteMessage]
39
39
  }), e(o, {
40
+ type: "button",
40
41
  onClick: this.handleCancel
41
42
  }, {
42
43
  default: () => [this.editCancelMessage]