@progress/kendo-vue-scheduler 9.3.0-develop.4 → 9.3.0-develop.6

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 (160) hide show
  1. package/Scheduler.d.ts +67 -4
  2. package/Scheduler.js +1 -1
  3. package/Scheduler.mjs +267 -115
  4. package/components/BaseView.js +1 -1
  5. package/components/BaseView.mjs +10 -4
  6. package/components/CurrentTimeMarker.js +1 -1
  7. package/components/CurrentTimeMarker.mjs +9 -9
  8. package/components/CurrentTimeMarkerArrow.js +1 -1
  9. package/components/CurrentTimeMarkerArrow.mjs +3 -3
  10. package/components/DateHeaderCell.js +1 -1
  11. package/components/DateHeaderCell.mjs +22 -13
  12. package/components/MoreEventsPopover.d.ts +77 -0
  13. package/components/MoreEventsPopover.js +8 -0
  14. package/components/MoreEventsPopover.mjs +125 -0
  15. package/components/SchedulerActionButtons.d.ts +6 -0
  16. package/components/SchedulerActionButtons.js +1 -1
  17. package/components/SchedulerActionButtons.mjs +25 -19
  18. package/components/SchedulerForm.d.ts +7 -0
  19. package/components/SchedulerForm.js +1 -1
  20. package/components/SchedulerForm.mjs +69 -61
  21. package/components/SchedulerOccurrenceDialog.d.ts +4 -4
  22. package/components/SchedulerOccurrenceDialog.js +1 -1
  23. package/components/SchedulerOccurrenceDialog.mjs +35 -26
  24. package/components/SchedulerRemoveDialog.d.ts +6 -0
  25. package/components/SchedulerRemoveDialog.js +1 -1
  26. package/components/SchedulerRemoveDialog.mjs +24 -23
  27. package/components/ShowMoreItemsButton.d.ts +10 -1
  28. package/components/ShowMoreItemsButton.js +1 -1
  29. package/components/ShowMoreItemsButton.mjs +40 -18
  30. package/components/footer/bussiness-hours/BusinessHours.js +1 -1
  31. package/components/footer/bussiness-hours/BusinessHours.mjs +16 -21
  32. package/components/header/SchedulerAdaptiveHeader.js +1 -1
  33. package/components/header/SchedulerAdaptiveHeader.mjs +28 -26
  34. package/components/header/SchedulerHeader.d.ts +5 -1
  35. package/components/header/SchedulerHeader.js +1 -1
  36. package/components/header/SchedulerHeader.mjs +11 -7
  37. package/components/header/navigation/NavigationDatePicker.d.ts +22 -3
  38. package/components/header/navigation/NavigationDatePicker.js +1 -1
  39. package/components/header/navigation/NavigationDatePicker.mjs +27 -30
  40. package/components/header/view-selector/ViewSelectorList.d.ts +26 -6
  41. package/components/header/view-selector/ViewSelectorList.js +1 -1
  42. package/components/header/view-selector/ViewSelectorList.mjs +55 -49
  43. package/dist/cdn/js/kendo-vue-scheduler.js +1 -1
  44. package/editors/RemoveRecurrenceConfirmDialog.d.ts +29 -0
  45. package/editors/RemoveRecurrenceConfirmDialog.js +8 -0
  46. package/editors/RemoveRecurrenceConfirmDialog.mjs +65 -0
  47. package/editors/ResourceEditor.d.ts +3 -0
  48. package/editors/ResourceEditor.js +1 -1
  49. package/editors/ResourceEditor.mjs +12 -10
  50. package/editors/SchedulerFormEditor.d.ts +1067 -2953
  51. package/editors/SchedulerFormEditor.js +1 -1
  52. package/editors/SchedulerFormEditor.mjs +297 -365
  53. package/editors/SchedulerRecurrenceDialog.d.ts +143 -0
  54. package/editors/SchedulerRecurrenceDialog.js +8 -0
  55. package/editors/SchedulerRecurrenceDialog.mjs +575 -0
  56. package/editors/TimezoneDropDownList.d.ts +46 -0
  57. package/editors/TimezoneDropDownList.js +8 -0
  58. package/editors/TimezoneDropDownList.mjs +63 -0
  59. package/editors/ZonedSplitDateTime.d.ts +65 -0
  60. package/editors/ZonedSplitDateTime.js +8 -0
  61. package/editors/ZonedSplitDateTime.mjs +100 -0
  62. package/hooks/main.d.ts +1 -0
  63. package/hooks/useGroupRowHeightSync.d.ts +10 -0
  64. package/hooks/useRecurrenceSummary.d.ts +10 -0
  65. package/hooks/useRecurrenceSummary.js +8 -0
  66. package/hooks/useRecurrenceSummary.mjs +74 -0
  67. package/hooks/useRowSync.js +1 -1
  68. package/hooks/useRowSync.mjs +23 -4
  69. package/hooks/useSlotExpand.js +1 -1
  70. package/hooks/useSlotExpand.mjs +36 -28
  71. package/index.d.mts +9 -3
  72. package/index.d.ts +9 -3
  73. package/index.js +1 -1
  74. package/index.mjs +83 -71
  75. package/items/SchedulerEditItem.d.ts +14 -3
  76. package/items/SchedulerEditItem.js +1 -1
  77. package/items/SchedulerEditItem.mjs +130 -72
  78. package/items/SchedulerItem.d.ts +10 -0
  79. package/items/SchedulerItem.js +1 -1
  80. package/items/SchedulerItem.mjs +153 -135
  81. package/items/SchedulerProportionalViewItem.d.ts +183 -0
  82. package/items/SchedulerProportionalViewItem.js +8 -0
  83. package/items/SchedulerProportionalViewItem.mjs +378 -0
  84. package/items/SchedulerViewItem.d.ts +3 -0
  85. package/items/SchedulerViewItem.js +1 -1
  86. package/items/SchedulerViewItem.mjs +107 -67
  87. package/messages/main.d.ts +186 -0
  88. package/messages/main.js +1 -1
  89. package/messages/main.mjs +226 -102
  90. package/models/Item.d.ts +2 -0
  91. package/models/Occurrence.d.ts +2 -0
  92. package/models/SchedulerModelFields.d.ts +5 -0
  93. package/models/SchedulerResource.d.ts +6 -0
  94. package/models/SchedulerView.d.ts +2 -0
  95. package/package-metadata.js +1 -1
  96. package/package-metadata.mjs +2 -2
  97. package/package.json +12 -11
  98. package/recurrence/common.js +1 -1
  99. package/recurrence/common.mjs +36 -39
  100. package/services/itemsService.js +1 -1
  101. package/services/itemsService.mjs +31 -27
  102. package/services/occurrenceService.js +1 -1
  103. package/services/occurrenceService.mjs +41 -35
  104. package/slots/SchedulerEditSlot.d.ts +2 -0
  105. package/slots/SchedulerEditSlot.js +1 -1
  106. package/slots/SchedulerEditSlot.mjs +27 -28
  107. package/slots/SchedulerSlot.d.ts +4 -0
  108. package/slots/SchedulerSlot.js +1 -1
  109. package/slots/SchedulerSlot.mjs +10 -1
  110. package/slots/SchedulerViewSlot.d.ts +5 -0
  111. package/slots/SchedulerViewSlot.js +1 -1
  112. package/slots/SchedulerViewSlot.mjs +70 -50
  113. package/tasks/SchedulerEditTask.d.ts +6 -0
  114. package/tasks/SchedulerEditTask.js +1 -1
  115. package/tasks/SchedulerEditTask.mjs +64 -23
  116. package/tasks/SchedulerTask.d.ts +15 -0
  117. package/tasks/SchedulerTask.js +1 -1
  118. package/tasks/SchedulerTask.mjs +39 -28
  119. package/tasks/SchedulerViewTask.d.ts +9 -0
  120. package/tasks/SchedulerViewTask.js +1 -1
  121. package/tasks/SchedulerViewTask.mjs +10 -5
  122. package/utils/main.d.ts +4 -1
  123. package/utils/main.js +1 -1
  124. package/utils/main.mjs +133 -112
  125. package/views/agenda/AgendaView.js +1 -1
  126. package/views/agenda/AgendaView.mjs +28 -22
  127. package/views/agenda/AgendaViewBody.js +1 -1
  128. package/views/agenda/AgendaViewBody.mjs +44 -42
  129. package/views/agenda/AgendaViewHead.js +1 -1
  130. package/views/agenda/AgendaViewHead.mjs +14 -10
  131. package/views/common/SchedulerDrag.d.ts +12 -0
  132. package/views/common/SchedulerResize.d.ts +12 -0
  133. package/views/common/VerticalResourceIterator.d.ts +3 -0
  134. package/views/common/VerticalResourceIterator.js +1 -1
  135. package/views/common/VerticalResourceIterator.mjs +16 -9
  136. package/views/day/DayView.js +1 -1
  137. package/views/day/DayView.mjs +2 -2
  138. package/views/day/MultiDayView.js +1 -1
  139. package/views/day/MultiDayView.mjs +98 -127
  140. package/views/month/MonthView.d.ts +8 -2
  141. package/views/month/MonthView.js +1 -1
  142. package/views/month/MonthView.mjs +115 -109
  143. package/views/month/MonthViewBody.d.ts +7 -2
  144. package/views/month/MonthViewBody.js +1 -1
  145. package/views/month/MonthViewBody.mjs +15 -11
  146. package/views/time/MultiDayTimelineView.d.ts +5 -0
  147. package/views/time/MultiDayTimelineView.js +1 -1
  148. package/views/time/MultiDayTimelineView.mjs +125 -132
  149. package/views/time/TimelineView.js +1 -1
  150. package/views/time/TimelineView.mjs +2 -2
  151. package/views/week/WeekView.js +1 -1
  152. package/views/week/WeekView.mjs +2 -2
  153. package/views/week/WorkWeekView.js +1 -1
  154. package/views/week/WorkWeekView.mjs +9 -9
  155. package/components/header/navigation/DatePickerToggleButton.d.ts +0 -16
  156. package/editors/FilterableComboBox.d.ts +0 -38
  157. package/editors/FilterableComboBox.js +0 -8
  158. package/editors/FilterableComboBox.mjs +0 -61
  159. package/editors/ZonedDateTime.js +0 -8
  160. package/editors/ZonedDateTime.mjs +0 -57
@@ -13,8 +13,9 @@ import { COLLECTION_ACTION as s } from "../utils/main.mjs";
13
13
  import { dispatchFocusedSlots as p } from "../hooks/use-slots-focus.mjs";
14
14
  import { dispatchFocusedItems as m } from "../hooks/use-items-focus.mjs";
15
15
  import { useCellSync as o } from "../hooks/useCellSync.mjs";
16
- const C = /* @__PURE__ */ d({
16
+ const A = /* @__PURE__ */ d({
17
17
  name: "KendoBaseView",
18
+ inheritAttrs: !1,
18
19
  props: {
19
20
  viewProps: Object,
20
21
  baseSlots: Array,
@@ -54,14 +55,19 @@ const C = /* @__PURE__ */ d({
54
55
  mounted() {
55
56
  this.syncCells();
56
57
  },
58
+ watch: {
59
+ ranges(e) {
60
+ this.bv.ranges = e;
61
+ }
62
+ },
57
63
  updated() {
58
64
  this.syncCells();
59
65
  },
60
66
  render() {
61
67
  const e = h(this);
62
68
  return c("div", {
63
- class: "k-scheduler-layout k-scheduler-layout-flex",
64
- role: this.$props.isAgendaView ? "grid" : "presentation"
69
+ class: ["k-scheduler-layout k-scheduler-layout-flex", this.$attrs.class],
70
+ role: this.$props.isAgendaView ? "grid" : "none"
65
71
  }, [e]);
66
72
  },
67
73
  methods: {
@@ -119,5 +125,5 @@ const C = /* @__PURE__ */ d({
119
125
  }
120
126
  });
121
127
  export {
122
- C as BaseView
128
+ A as BaseView
123
129
  };
@@ -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 a=require("vue"),f=require("@progress/kendo-date-math"),l=require("../utils/main.js"),n=require("../views/common/utils.js"),w=require("@progress/kendo-vue-common"),g=s=>{let t=0;return s.forEach(e=>{if(e){const r=n.getRect(e.$el);t+=r.width}}),t},m=s=>{let t=0;return s.forEach(e=>{if(e){const r=n.getRect(e.$el);t+=r.height}}),t},$=(s,t)=>{const e=f.cloneDate(s);return e.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),e},b=a.defineComponent({name:"KendoCurrentTimeMarker",props:{updateInterval:{type:Number,default:6e4},groupIndex:Number,vertical:Boolean,attachArrow:Object},inject:{ks:{default:null},bv:{default:null}},created(){this.interval=void 0,this.arrowRef=null,this.observer=null,this.line=null},data(){return{show:!1}},mounted(){this.line=this.$el,this.$nextTick(()=>{this.position()}),!(!this.ks.scheduler||!this.ks.scheduler.$el||!window)&&(clearInterval(this.interval),this.interval=window.setInterval(this.position,this.updateInterval),w.canUseDOM&&window.ResizeObserver&&(this.observer=new window.ResizeObserver(this.position),this.observer.observe(this.ks.scheduler.$el)))},unmounted(){this.observer&&this.observer.disconnect()},render(){return a.createVNode("div",{class:"k-current-time",style:{transform:this.$props.vertical?"translateX(-50%)":"translateY(-50%)",[this.$props.vertical?"width":"height"]:"1px",visibility:this.show?void 0:"hidden"}},null)},methods:{position(){if(!this.bv.slots)return;const s=this.$props.groupIndex,t=this.bv.slots.filter(e=>(s==null||e.cSlot.group.index===s)&&(this.$props.vertical?l.intersects(new Date,new Date,e.cSlot.start,e.cSlot.end,!0):l.isInTimeRange(new Date,e.cSlot.start,e.cSlot.end))&&!e.isAllDay);if(t&&t.length&&this.line){const e=l.first(t);if(!e)return;const r=this.$props.vertical?m(t):g(t),i=n.getRect(e.$el),h=n.getRect(this.arrowRef),u=(this.$props.vertical?i.width:i.height)/(e.cSlot.end.getTime()-e.cSlot.start.getTime()),c=(Date.now()-$(new Date,e.cSlot.start).getTime())*u,d=this.$props.dir==="rtl",p=this.$props.vertical?i.top:i.top+c-h.height/2,o=d?"right":"left",v=this.$props.vertical?i[o]+c-h.width/2:i[o];this.line.style[o]=`${v}px`,this.line.style.top=`${p}px`,this.line.style[this.$props.vertical?"height":"width"]=`${r-1}px`,this.show=!0}else this.show=!1}}});exports.CurrentTimeMarker=b;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),f=require("@progress/kendo-date-math"),l=require("../utils/main.js"),n=require("../views/common/utils.js"),w=require("@progress/kendo-vue-common"),g=s=>{let t=0;return s.forEach(e=>{if(e){const r=n.getRect(e.$el);t+=r.width}}),t},m=s=>{let t=0;return s.forEach(e=>{if(e){const r=n.getRect(e.$el);t+=r.height}}),t},$=(s,t)=>{const e=f.cloneDate(s);return e.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),e},b=a.defineComponent({name:"KendoCurrentTimeMarker",props:{updateInterval:{type:Number,default:6e4},groupIndex:Number,vertical:Boolean,attachArrow:Object},inject:{ks:{default:null},bv:{default:null}},created(){this.interval=void 0,this.arrowRef=null,this.observer=null,this.line=null},data(){return{show:!1}},mounted(){this.line=this.$el,this.$nextTick(()=>{this.position()}),!(!this.ks.scheduler||!this.ks.scheduler.$el||!window)&&(clearInterval(this.interval),this.interval=window.setInterval(this.position,this.updateInterval),w.canUseDOM&&window.ResizeObserver&&(this.observer=new window.ResizeObserver(this.position),this.observer.observe(this.ks.scheduler.$el)))},unmounted(){clearInterval(this.interval),this.observer&&this.observer.disconnect()},render(){return a.createVNode("div",{class:"k-current-time",style:{transform:this.$props.vertical?"translateX(-50%)":"translateY(-50%)",[this.$props.vertical?"width":"height"]:"1px",visibility:this.show?void 0:"hidden"}},null)},methods:{position(){if(!this.bv.slots)return;const s=this.$props.groupIndex,t=this.bv.slots.filter(e=>(s==null||e.cSlot.group.index===s)&&(this.$props.vertical?l.intersects(new Date,new Date,e.cSlot.start,e.cSlot.end,!0):l.isInTimeRange(new Date,e.cSlot.start,e.cSlot.end))&&!e.isAllDay);if(t&&t.length&&this.line){const e=l.first(t);if(!e)return;const r=this.$props.vertical?m(t):g(t),i=n.getRect(e.$el),h=n.getRect(this.arrowRef),u=(this.$props.vertical?i.width:i.height)/(e.cSlot.end.getTime()-e.cSlot.start.getTime()),c=(Date.now()-$(new Date,e.cSlot.start).getTime())*u,d=this.$props.dir==="rtl",p=this.$props.vertical?i.top:i.top+c-h.height/2,o=d?"right":"left",v=this.$props.vertical?i[o]+c-h.width/2:i[o];this.line.style[o]=`${v}px`,this.line.style.top=`${p}px`,this.line.style[this.$props.vertical?"height":"width"]=`${r-1}px`,this.show=!0}else this.show=!1}}});exports.CurrentTimeMarker=b;
@@ -10,24 +10,24 @@ import { cloneDate as m } from "@progress/kendo-date-math";
10
10
  import { intersects as v, isInTimeRange as w, first as g } from "../utils/main.mjs";
11
11
  import { getRect as o } from "../views/common/utils.mjs";
12
12
  import { canUseDOM as $ } from "@progress/kendo-vue-common";
13
- const b = (s) => {
13
+ const b = (i) => {
14
14
  let e = 0;
15
- return s.forEach((t) => {
15
+ return i.forEach((t) => {
16
16
  if (t) {
17
17
  const r = o(t.$el);
18
18
  e += r.width;
19
19
  }
20
20
  }), e;
21
- }, x = (s) => {
21
+ }, x = (i) => {
22
22
  let e = 0;
23
- return s.forEach((t) => {
23
+ return i.forEach((t) => {
24
24
  if (t) {
25
25
  const r = o(t.$el);
26
26
  e += r.height;
27
27
  }
28
28
  }), e;
29
- }, S = (s, e) => {
30
- const t = m(s);
29
+ }, S = (i, e) => {
30
+ const t = m(i);
31
31
  return t.setHours(e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds()), t;
32
32
  }, M = /* @__PURE__ */ d({
33
33
  name: "KendoCurrentTimeMarker",
@@ -62,7 +62,7 @@ const b = (s) => {
62
62
  }), !(!this.ks.scheduler || !this.ks.scheduler.$el || !window) && (clearInterval(this.interval), this.interval = window.setInterval(this.position, this.updateInterval), $ && window.ResizeObserver && (this.observer = new window.ResizeObserver(this.position), this.observer.observe(this.ks.scheduler.$el)));
63
63
  },
64
64
  unmounted() {
65
- this.observer && this.observer.disconnect();
65
+ clearInterval(this.interval), this.observer && this.observer.disconnect();
66
66
  },
67
67
  render() {
68
68
  return f("div", {
@@ -78,12 +78,12 @@ const b = (s) => {
78
78
  position() {
79
79
  if (!this.bv.slots)
80
80
  return;
81
- const s = this.$props.groupIndex, e = this.bv.slots.filter((t) => (s == null || t.cSlot.group.index === s) && (this.$props.vertical ? v(/* @__PURE__ */ new Date(), /* @__PURE__ */ new Date(), t.cSlot.start, t.cSlot.end, !0) : w(/* @__PURE__ */ new Date(), t.cSlot.start, t.cSlot.end)) && !t.isAllDay);
81
+ const i = this.$props.groupIndex, e = this.bv.slots.filter((t) => (i == null || t.cSlot.group.index === i) && (this.$props.vertical ? v(/* @__PURE__ */ new Date(), /* @__PURE__ */ new Date(), t.cSlot.start, t.cSlot.end, !0) : w(/* @__PURE__ */ new Date(), t.cSlot.start, t.cSlot.end)) && !t.isAllDay);
82
82
  if (e && e.length && this.line) {
83
83
  const t = g(e);
84
84
  if (!t)
85
85
  return;
86
- const r = this.$props.vertical ? x(e) : b(e), i = o(t.$el), l = o(this.arrowRef), c = (this.$props.vertical ? i.width : i.height) / (t.cSlot.end.getTime() - t.cSlot.start.getTime()), h = (Date.now() - S(/* @__PURE__ */ new Date(), t.cSlot.start).getTime()) * c, a = this.$props.dir === "rtl", p = this.$props.vertical ? i.top : i.top + h - l.height / 2, n = a ? "right" : "left", u = this.$props.vertical ? i[n] + h - l.width / 2 : i[n];
86
+ const r = this.$props.vertical ? x(e) : b(e), s = o(t.$el), l = o(this.arrowRef), c = (this.$props.vertical ? s.width : s.height) / (t.cSlot.end.getTime() - t.cSlot.start.getTime()), h = (Date.now() - S(/* @__PURE__ */ new Date(), t.cSlot.start).getTime()) * c, a = this.$props.dir === "rtl", p = this.$props.vertical ? s.top : s.top + h - l.height / 2, n = a ? "right" : "left", u = this.$props.vertical ? s[n] + h - l.width / 2 : s[n];
87
87
  this.line.style[n] = `${u}px`, this.line.style.top = `${p}px`, this.line.style[this.$props.vertical ? "height" : "width"] = `${r - 1}px`, this.show = !0;
88
88
  } else
89
89
  this.show = !1;
@@ -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 a=require("vue"),v=require("@progress/kendo-date-math"),c=require("@progress/kendo-vue-common"),o=require("../utils/main.js"),h=require("../views/common/utils.js"),f=(s,t)=>{const e=v.cloneDate(s);return e.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),e},m=a.defineComponent({name:"KendoCurrentTimeMarkerArrow",props:{updateInterval:{type:Number,default:6e4},groupIndex:Number,vertical:Boolean,attachArrow:Object},inject:{ks:{default:null},bv:{default:null}},created(){this.interval=void 0,this.arrowRef=null},data(){return{show:!1}},mounted(){this.arrowRef=this.$el,this.position(),!(!this.ks.scheduler||!this.ks.scheduler.$el||!window)&&(clearInterval(this.interval),this.interval=window.setInterval(this.position,this.updateInterval),c.canUseDOM&&window.ResizeObserver&&(this.observer=new window.ResizeObserver(this.position),this.observer.observe(this.ks.scheduler.$el)))},unmounted(){this.observer&&this.observer.disconnect()},render(){return a.createVNode("div",{class:c.classNames("k-current-time",{"k-current-time-arrow-right":!this.$props.vertical&&this.$props.dir!=="rtl","k-current-time-arrow-left":!this.$props.vertical&&this.$props.dir==="rtl","k-current-time-arrow-down":this.$props.vertical}),style:{transform:this.$props.vertical?this.$props.dir==="rtl"?"translateX(50%)":"translateX(-50%)":"translateY(-50%)",visibility:this.show?void 0:"hidden"}},null)},methods:{position(){if(!this.bv.slots)return;const s=this.$props.groupIndex,t=this.bv.slots.filter(e=>(s==null||e.cSlot.group.index===s)&&(this.$props.vertical?o.intersects(new Date,new Date,e.cSlot.start,e.cSlot.end,!0):o.isInTimeRange(new Date,e.cSlot.start,e.cSlot.end))&&!e.isAllDay);if(t&&t.length&&this.$el){const e=o.first(t);if(!e)return;const r=h.getRect(e.$el),n=h.getRect(this.arrowRef),u=(this.$props.vertical?r.width:r.height)/(e.cSlot.end.getTime()-e.cSlot.start.getTime()),l=(Date.now()-f(new Date,e.cSlot.start).getTime())*u,p=this.$props.dir==="rtl",d=this.$props.vertical?r.top:r.top+l-n.height/2,i=p?"right":"left",w=this.$props.vertical?r[i]+l-n.width/2:r[i];this.$props.vertical?this.arrowRef.style[i]=`${w}px`:this.arrowRef.style.top=`${d}px`,this.show=!0}else this.show=!1}}});exports.CurrentTimeMarkerArrow=m;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),v=require("@progress/kendo-date-math"),c=require("@progress/kendo-vue-common"),o=require("../utils/main.js"),h=require("../views/common/utils.js"),f=(s,t)=>{const e=v.cloneDate(s);return e.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),e},m=a.defineComponent({name:"KendoCurrentTimeMarkerArrow",props:{updateInterval:{type:Number,default:6e4},groupIndex:Number,vertical:Boolean,attachArrow:Object},inject:{ks:{default:null},bv:{default:null}},created(){this.interval=void 0,this.arrowRef=null},data(){return{show:!1}},mounted(){this.arrowRef=this.$el,this.position(),!(!this.ks.scheduler||!this.ks.scheduler.$el||!window)&&(clearInterval(this.interval),this.interval=window.setInterval(this.position,this.updateInterval),c.canUseDOM&&window.ResizeObserver&&(this.observer=new window.ResizeObserver(this.position),this.observer.observe(this.ks.scheduler.$el)))},unmounted(){clearInterval(this.interval),this.observer&&this.observer.disconnect()},render(){return a.createVNode("div",{class:c.classNames("k-current-time",{"k-current-time-arrow-right":!this.$props.vertical&&this.$props.dir!=="rtl","k-current-time-arrow-left":!this.$props.vertical&&this.$props.dir==="rtl","k-current-time-arrow-down":this.$props.vertical}),style:{transform:this.$props.vertical?this.$props.dir==="rtl"?"translateX(50%)":"translateX(-50%)":"translateY(-50%)",visibility:this.show?void 0:"hidden"}},null)},methods:{position(){if(!this.bv.slots)return;const s=this.$props.groupIndex,t=this.bv.slots.filter(e=>(s==null||e.cSlot.group.index===s)&&(this.$props.vertical?o.intersects(new Date,new Date,e.cSlot.start,e.cSlot.end,!0):o.isInTimeRange(new Date,e.cSlot.start,e.cSlot.end))&&!e.isAllDay);if(t&&t.length&&this.$el){const e=o.first(t);if(!e)return;const r=h.getRect(e.$el),n=h.getRect(this.arrowRef),u=(this.$props.vertical?r.width:r.height)/(e.cSlot.end.getTime()-e.cSlot.start.getTime()),l=(Date.now()-f(new Date,e.cSlot.start).getTime())*u,p=this.$props.dir==="rtl",d=this.$props.vertical?r.top:r.top+l-n.height/2,i=p?"right":"left",w=this.$props.vertical?r[i]+l-n.width/2:r[i];this.$props.vertical?this.arrowRef.style[i]=`${w}px`:this.arrowRef.style.top=`${d}px`,this.show=!0}else this.show=!1}}});exports.CurrentTimeMarkerArrow=m;
@@ -13,7 +13,7 @@ import { getRect as l } from "../views/common/utils.mjs";
13
13
  const b = (s, e) => {
14
14
  const t = f(s);
15
15
  return t.setHours(e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds()), t;
16
- }, I = /* @__PURE__ */ d({
16
+ }, x = /* @__PURE__ */ d({
17
17
  name: "KendoCurrentTimeMarkerArrow",
18
18
  props: {
19
19
  updateInterval: {
@@ -44,7 +44,7 @@ const b = (s, e) => {
44
44
  this.arrowRef = this.$el, this.position(), !(!this.ks.scheduler || !this.ks.scheduler.$el || !window) && (clearInterval(this.interval), this.interval = window.setInterval(this.position, this.updateInterval), w && window.ResizeObserver && (this.observer = new window.ResizeObserver(this.position), this.observer.observe(this.ks.scheduler.$el)));
45
45
  },
46
46
  unmounted() {
47
- this.observer && this.observer.disconnect();
47
+ clearInterval(this.interval), this.observer && this.observer.disconnect();
48
48
  },
49
49
  render() {
50
50
  return u("div", {
@@ -76,5 +76,5 @@ const b = (s, e) => {
76
76
  }
77
77
  });
78
78
  export {
79
- I as CurrentTimeMarkerArrow
79
+ x as CurrentTimeMarkerArrow
80
80
  };
@@ -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"),a=require("@progress/kendo-vue-intl"),o=require("@progress/kendo-vue-common"),d=e.defineComponent({name:"KendoDateHeaderCell",props:{as:[String,Function,Object],format:{type:[String,Object],default:"d"},date:[Date,Object],start:Date,end:Date},inject:{kendoIntlService:{default:null}},setup(){return{kendoIntlService:e.inject("kendoIntlService",{})}},render(){const t=a.provideIntlService(this).formatDate(this.$props.date,this.$props.format),r=o.getTemplate.call(this,{h:e.h,template:this.$props.as,defaultRendering:t,additionalProps:{default:t,date:this.$props.date,format:this.$props.format}});return e.createVNode("div",{class:"k-scheduler-cell k-heading-cell"},[e.createVNode("span",{class:"k-link k-nav-day"},[r])])}});exports.DateHeaderCell=d;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),s=require("@progress/kendo-vue-intl"),l=require("@progress/kendo-vue-common"),d=e.defineComponent({name:"KendoDateHeaderCell",props:{as:[String,Function,Object],format:{type:[String,Object],default:"d"},date:[Date,Object],start:Date,end:Date},inject:{kendoIntlService:{default:null}},setup(){return{kendoIntlService:e.inject("kendoIntlService",{})}},render(){const a=s.provideIntlService(this),t=this.$props.format||"d",n=typeof t=="object"&&"skeleton"in t&&typeof t.skeleton=="string"&&t.skeleton.includes("E")&&t.skeleton.includes("d"),o=n?null:a.formatDate(this.$props.date,t),r=l.getTemplate.call(this,{h:e.h,template:this.$props.as,defaultRendering:o,additionalProps:{default:o,date:this.$props.date,format:this.$props.format}});return e.createVNode("div",{class:"k-scheduler-cell k-heading-cell"},[n?e.createVNode(e.Fragment,null,[e.createVNode("span",{class:"k-scheduler-date-day"},[a.formatDate(this.$props.date,"EEE")]),e.createVNode("span",{class:"k-link k-nav-day","aria-label":a.formatDate(this.$props.date,{skeleton:"Ed"})},[a.formatDate(this.$props.date,{skeleton:"d"})])]):e.createVNode("span",{class:"k-link k-nav-day"},[r])])}});exports.DateHeaderCell=d;
@@ -5,10 +5,10 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { defineComponent as a, h as o, createVNode as t, inject as d } from "vue";
9
- import { provideIntlService as i } from "@progress/kendo-vue-intl";
10
- import { getTemplate as l } from "@progress/kendo-vue-common";
11
- const m = /* @__PURE__ */ a({
8
+ import { defineComponent as r, h as l, createVNode as a, Fragment as d, inject as i } from "vue";
9
+ import { provideIntlService as p } from "@progress/kendo-vue-intl";
10
+ import { getTemplate as c } from "@progress/kendo-vue-common";
11
+ const u = /* @__PURE__ */ r({
12
12
  name: "KendoDateHeaderCell",
13
13
  props: {
14
14
  as: [String, Function, Object],
@@ -27,27 +27,36 @@ const m = /* @__PURE__ */ a({
27
27
  },
28
28
  setup() {
29
29
  return {
30
- kendoIntlService: d("kendoIntlService", {})
30
+ kendoIntlService: i("kendoIntlService", {})
31
31
  };
32
32
  },
33
33
  render() {
34
- const e = i(this).formatDate(this.$props.date, this.$props.format), r = l.call(this, {
35
- h: o,
34
+ const t = p(this), e = this.$props.format || "d", n = typeof e == "object" && "skeleton" in e && typeof e.skeleton == "string" && e.skeleton.includes("E") && e.skeleton.includes("d"), s = n ? null : t.formatDate(this.$props.date, e), o = c.call(this, {
35
+ h: l,
36
36
  template: this.$props.as,
37
- defaultRendering: e,
37
+ defaultRendering: s,
38
38
  additionalProps: {
39
- default: e,
39
+ default: s,
40
40
  date: this.$props.date,
41
41
  format: this.$props.format
42
42
  }
43
43
  });
44
- return t("div", {
44
+ return a("div", {
45
45
  class: "k-scheduler-cell k-heading-cell"
46
- }, [t("span", {
46
+ }, [n ? a(d, null, [a("span", {
47
+ class: "k-scheduler-date-day"
48
+ }, [t.formatDate(this.$props.date, "EEE")]), a("span", {
49
+ class: "k-link k-nav-day",
50
+ "aria-label": t.formatDate(this.$props.date, {
51
+ skeleton: "Ed"
52
+ })
53
+ }, [t.formatDate(this.$props.date, {
54
+ skeleton: "d"
55
+ })])]) : a("span", {
47
56
  class: "k-link k-nav-day"
48
- }, [r])]);
57
+ }, [o])]);
49
58
  }
50
59
  });
51
60
  export {
52
- m as DateHeaderCell
61
+ u as DateHeaderCell
53
62
  };
@@ -0,0 +1,77 @@
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 { Item, Slot } from '../models/main';
10
+ /**
11
+ * @hidden
12
+ */
13
+ export interface MoreEventsPopoverProps {
14
+ show: boolean;
15
+ anchor: HTMLElement | null;
16
+ slot: Slot | null;
17
+ items: Item[];
18
+ itemsPerSlot: number;
19
+ onDayClick?: (slot: Slot) => void;
20
+ onClose?: () => void;
21
+ }
22
+ /**
23
+ * @hidden
24
+ */
25
+ declare const MoreEventsPopover: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
26
+ show: {
27
+ type: PropType<boolean>;
28
+ default: boolean;
29
+ };
30
+ anchor: {
31
+ type: PropType<HTMLElement>;
32
+ default: any;
33
+ };
34
+ slot: {
35
+ type: PropType<Slot>;
36
+ default: any;
37
+ };
38
+ items: {
39
+ type: PropType<Item[]>;
40
+ default: () => any[];
41
+ };
42
+ itemsPerSlot: {
43
+ type: PropType<number>;
44
+ default: number;
45
+ };
46
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("close" | "dayclick")[], "close" | "dayclick", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
47
+ show: {
48
+ type: PropType<boolean>;
49
+ default: boolean;
50
+ };
51
+ anchor: {
52
+ type: PropType<HTMLElement>;
53
+ default: any;
54
+ };
55
+ slot: {
56
+ type: PropType<Slot>;
57
+ default: any;
58
+ };
59
+ items: {
60
+ type: PropType<Item[]>;
61
+ default: () => any[];
62
+ };
63
+ itemsPerSlot: {
64
+ type: PropType<number>;
65
+ default: number;
66
+ };
67
+ }>> & Readonly<{
68
+ onClose?: (...args: any[]) => any;
69
+ onDayclick?: (...args: any[]) => any;
70
+ }>, {
71
+ slot: Slot;
72
+ anchor: HTMLElement;
73
+ items: Item[];
74
+ show: boolean;
75
+ itemsPerSlot: number;
76
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
77
+ export { MoreEventsPopover };
@@ -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 e=require("vue"),N=require("@progress/kendo-vue-tooltip"),h=require("@progress/kendo-vue-intl"),s=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","close"],inject:{kendoIntlService:{default:null},kendoLocalizationService:{default:null}},setup(o,{emit:d}){const t=r=>{const l=r.target,a=document.querySelector(".k-scheduler-popover");a&&!a.contains(l)&&o.anchor&&!o.anchor.contains(l)&&d("close")};return e.watch(()=>o.show,r=>{r?document.addEventListener("mousedown",t,!0):document.removeEventListener("mousedown",t,!0)},{immediate:!0}),e.onUnmounted(()=>{document.removeEventListener("mousedown",t,!0)}),{}},render(){const o=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,l=t.items?t.items.filter((n,p)=>p>=r):[],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"}},[l.length>0?e.createVNode("div",{class:"k-popover-events",role:"list","aria-label":g},[l.map((n,p)=>{var v,m;const i=(m=(v=n.group)==null?void 0:v.resources)==null?void 0:m.find(c=>!!(c.colorField&&c[c.colorField]!==""&&c[c.colorField]!==void 0)),u=(i==null?void 0:i.colorField)&&i[i.colorField],M=u?{borderColor:u,backgroundColor: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,b)])])})]):e.createVNode("span",{class:"k-no-data"},[y])])]})}});exports.MoreEventsPopover=D;
@@ -0,0 +1,125 @@
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 T, createVNode as t, watch as L, onUnmounted as b } from "vue";
9
+ import { Popover as z } from "@progress/kendo-vue-tooltip";
10
+ import { provideIntlService as C, provideLocalizationService as F } from "@progress/kendo-vue-intl";
11
+ import { noEvents as u, messages as h, popoverEvents as f } from "../messages/main.mjs";
12
+ const $ = {
13
+ skeleton: "MMM"
14
+ }, O = {
15
+ skeleton: "dd"
16
+ }, P = "t", j = /* @__PURE__ */ T({
17
+ name: "KendoSchedulerMoreEventsPopover",
18
+ props: {
19
+ show: {
20
+ type: Boolean,
21
+ default: !1
22
+ },
23
+ anchor: {
24
+ type: Object,
25
+ default: null
26
+ },
27
+ slot: {
28
+ type: Object,
29
+ default: null
30
+ },
31
+ items: {
32
+ type: Array,
33
+ default: () => []
34
+ },
35
+ itemsPerSlot: {
36
+ type: Number,
37
+ default: 2
38
+ }
39
+ },
40
+ emits: ["dayclick", "close"],
41
+ inject: {
42
+ kendoIntlService: {
43
+ default: null
44
+ },
45
+ kendoLocalizationService: {
46
+ default: null
47
+ }
48
+ },
49
+ setup(o, {
50
+ emit: c
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");
55
+ };
56
+ return L(() => o.show, (s) => {
57
+ s ? document.addEventListener("mousedown", e, !0) : document.removeEventListener("mousedown", e, !0);
58
+ }, {
59
+ immediate: !0
60
+ }), b(() => {
61
+ document.removeEventListener("mousedown", e, !0);
62
+ }), {};
63
+ },
64
+ render() {
65
+ const o = C(this), c = F(this);
66
+ if (!this.$props.show || !this.$props.slot)
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, $), 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);
70
+ }, E = () => {
71
+ this.$emit("close");
72
+ }, D = t("div", {
73
+ class: "k-popover-header"
74
+ }, [t("div", {
75
+ class: "k-month"
76
+ }, [k]), t("div", {
77
+ class: "k-link k-day",
78
+ onClick: w
79
+ }, [y])]);
80
+ return t(z, {
81
+ anchor: this.$props.anchor,
82
+ show: this.$props.show,
83
+ popoverClass: "k-scheduler-popover",
84
+ position: "right",
85
+ collision: {
86
+ horizontal: "flip",
87
+ vertical: "flip"
88
+ },
89
+ animate: !1,
90
+ onKeydown: E
91
+ }, {
92
+ default: () => [D, t("div", {
93
+ class: "k-scheduler-more-events-content",
94
+ style: {
95
+ minWidth: "220px"
96
+ }
97
+ }, [l.length > 0 ? t("div", {
98
+ class: "k-popover-events",
99
+ role: "list",
100
+ "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 ? {
104
+ borderColor: p,
105
+ backgroundColor: p
106
+ } : void 0;
107
+ return t("div", {
108
+ key: n.uid || d,
109
+ class: "k-popover-event k-event",
110
+ role: "listitem",
111
+ style: M
112
+ }, [t("div", {
113
+ class: "k-event-title"
114
+ }, [n.title || ""]), t("span", {
115
+ class: "k-event-time"
116
+ }, [o.formatDate(n.zonedStart, P)])]);
117
+ })]) : t("span", {
118
+ class: "k-no-data"
119
+ }, [g])])]
120
+ });
121
+ }
122
+ });
123
+ export {
124
+ j as MoreEventsPopover
125
+ };
@@ -12,6 +12,8 @@ import { PropType } from 'vue';
12
12
  export interface SchedulerActionButtonsProps {
13
13
  editSaveMessage: string;
14
14
  editCancelMessage: string;
15
+ editDeleteMessage?: string;
16
+ onDelete?: () => void;
15
17
  onCancel: (event: any) => void;
16
18
  }
17
19
  /**
@@ -20,6 +22,8 @@ export interface SchedulerActionButtonsProps {
20
22
  declare const SchedulerActionButtons: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
21
23
  editSaveMessage: PropType<string>;
22
24
  editCancelMessage: PropType<string>;
25
+ editDeleteMessage: PropType<string>;
26
+ onDelete: PropType<() => void>;
23
27
  onCancel: PropType<(event: any) => void>;
24
28
  }>, {}, {}, {}, {
25
29
  onSubmit(e: any): void;
@@ -27,6 +31,8 @@ declare const SchedulerActionButtons: import('vue').DefineComponent<import('vue'
27
31
  }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
28
32
  editSaveMessage: PropType<string>;
29
33
  editCancelMessage: PropType<string>;
34
+ editDeleteMessage: PropType<string>;
35
+ onDelete: PropType<() => void>;
30
36
  onCancel: PropType<(event: any) => void>;
31
37
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
32
38
  export { SchedulerActionButtons };
@@ -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"),i=require("@progress/kendo-vue-dialogs"),n=require("@progress/kendo-svg-icons"),o=require("@progress/kendo-vue-buttons"),s=e.defineComponent({name:"KendoSchedulerActionButtons",props:{editSaveMessage:String,editCancelMessage:String,onCancel:Function},inject:{kendoForm:{default:{}}},render(){return e.createVNode(i.DialogActionsBar,{class:"k-form-buttons",layout:"start"},{default:()=>[e.createVNode(o.Button,{type:"submit",themeColor:"primary",disabled:!this.kendoForm.allowSubmit,icon:"save",svgIcon:n.saveIcon,onClick:this.onSubmit},{default:()=>[this.editSaveMessage]}),e.createVNode(o.Button,{onClick:this.handleCancel,icon:"cancel",svgIcon:n.cancelIcon},{default:()=>[this.editCancelMessage]})]})},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,{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;
@@ -5,15 +5,17 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { defineComponent as n, createVNode as t } from "vue";
8
+ import { defineComponent as n, createVNode as e } from "vue";
9
9
  import { DialogActionsBar as i } from "@progress/kendo-vue-dialogs";
10
- import { saveIcon as a, cancelIcon as s } from "@progress/kendo-svg-icons";
10
+ import { trashIcon as s } from "@progress/kendo-svg-icons";
11
11
  import { Button as o } from "@progress/kendo-vue-buttons";
12
- const d = /* @__PURE__ */ n({
12
+ const m = /* @__PURE__ */ n({
13
13
  name: "KendoSchedulerActionButtons",
14
14
  props: {
15
15
  editSaveMessage: String,
16
16
  editCancelMessage: String,
17
+ editDeleteMessage: String,
18
+ onDelete: Function,
17
19
  onCancel: Function
18
20
  },
19
21
  inject: {
@@ -22,37 +24,41 @@ const d = /* @__PURE__ */ n({
22
24
  }
23
25
  },
24
26
  render() {
25
- return t(i, {
27
+ return e(i, {
26
28
  class: "k-form-buttons",
27
- layout: "start"
29
+ layout: "end"
28
30
  }, {
29
- default: () => [t(o, {
31
+ default: () => [this.onDelete && e(o, {
32
+ type: "button",
33
+ fillMode: "flat",
34
+ themeColor: "primary",
35
+ svgIcon: s,
36
+ onClick: this.onDelete
37
+ }, {
38
+ default: () => [this.editDeleteMessage]
39
+ }), e(o, {
40
+ onClick: this.handleCancel
41
+ }, {
42
+ default: () => [this.editCancelMessage]
43
+ }), e(o, {
30
44
  type: "submit",
31
45
  themeColor: "primary",
32
46
  disabled: !this.kendoForm.allowSubmit,
33
- icon: "save",
34
- svgIcon: a,
35
47
  onClick: this.onSubmit
36
48
  }, {
37
49
  default: () => [this.editSaveMessage]
38
- }), t(o, {
39
- onClick: this.handleCancel,
40
- icon: "cancel",
41
- svgIcon: s
42
- }, {
43
- default: () => [this.editCancelMessage]
44
50
  })]
45
51
  });
46
52
  },
47
53
  methods: {
48
- onSubmit(e) {
49
- this.kendoForm.onSubmit(e);
54
+ onSubmit(t) {
55
+ this.kendoForm.onSubmit(t);
50
56
  },
51
- handleCancel(e) {
52
- this.$emit("cancel", e);
57
+ handleCancel(t) {
58
+ this.$emit("cancel", t);
53
59
  }
54
60
  }
55
61
  });
56
62
  export {
57
- d as SchedulerActionButtons
63
+ m as SchedulerActionButtons
58
64
  };
@@ -22,6 +22,10 @@ export interface SchedulerFormProps extends FormProps {
22
22
  * Specifies the `dataItem` to be visualized inside the form.
23
23
  */
24
24
  dataItem: DataItem;
25
+ /**
26
+ * Called when the delete button is clicked for an existing event.
27
+ */
28
+ onDelete?: (dataItem: DataItem) => void;
25
29
  /**
26
30
  * Called when the `cancel` button is clicked.
27
31
  */
@@ -43,6 +47,7 @@ export interface SchedulerFormHandle {
43
47
  */
44
48
  declare const SchedulerForm: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
45
49
  dataItem: PropType<any>;
50
+ onDelete: PropType<(dataItem: DataItem) => void>;
46
51
  }>, {
47
52
  kendoLocalizationService: {};
48
53
  }, {
@@ -51,6 +56,7 @@ declare const SchedulerForm: import('vue').DefineComponent<import('vue').Extract
51
56
  calculateMedia(): void;
52
57
  handleCancel(event: any): void;
53
58
  handleClose({ event }: DialogCloseEvent): void;
59
+ handleDelete(): void;
54
60
  handleSubmit(dataItem: DataItem, event: any): void;
55
61
  startAfterEndValidator(value: any, formValueGetter: any): any;
56
62
  endAfterStartValidator(value: any, formValueGetter: any): any;
@@ -62,6 +68,7 @@ declare const SchedulerForm: import('vue').DefineComponent<import('vue').Extract
62
68
  submit: any;
63
69
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
64
70
  dataItem: PropType<any>;
71
+ onDelete: PropType<(dataItem: DataItem) => void>;
65
72
  }>> & Readonly<{
66
73
  onCancel?: (...args: any) => any;
67
74
  onClose?: (...args: any) => any;
@@ -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 a=require("vue"),h=require("./SchedulerActionButtons.js"),g=require("@progress/kendo-vue-form"),m=require("@progress/kendo-vue-dialogs"),f=require("@progress/kendo-vue-intl"),S=require("../editors/SchedulerFormEditor.js"),i=require("../messages/main.js"),r=require("@progress/kendo-vue-common"),k=a.defineComponent({name:"KendoSchedulerForm",emits:{cancel:null,close:null,submit:null},props:{dataItem:Object},inject:{ks:{default:null},kendoLocalizationService:{default:null},ksValidator:{default:null},ksModifyInitialFormValues:{default:null}},created(){this.dialogId=r.guid()},data(){return{media:"desktop"}},mounted(){this.calculateMedia(),setTimeout(()=>{const e=document.getElementById(this.dialogId);e&&e.focus()},10)},setup(){return{kendoLocalizationService:a.inject("kendoLocalizationService",{})}},render(){const e=this,t=f.provideLocalizationService(this);this.requiredValidationMessage=t.toLanguageString(i.editorValidationRequired,i.messages[i.editorValidationRequired]),this.endValidationMessage=t.toLanguageString(i.editorValidationEnd,i.messages[i.editorValidationEnd]);const s=t.toLanguageString(i.editorSave,i.messages[i.editorSave]),o=t.toLanguageString(i.editorCancel,i.messages[i.editorCancel]),d=t.toLanguageString(i.editorTitle,i.messages[i.editorTitle]);this.startValidationMessage=t.toLanguageString(i.editorValidationStart,i.messages[i.editorValidationStart]);const n=a.createVNode(S.SchedulerFormEditor,null,{default:()=>[a.createVNode(h.SchedulerActionButtons,{editSaveMessage:s,editCancelMessage:o,onCancel:this.handleCancel},null)]}),l=r.getTemplate.call(this,{h:a.h,template:this.ks.form,defaultRendering:n,additionalProps:{dataItem:this.dataItem,editSaveMessage:s,editCancelMessage:o},additionalListeners:{cancel:this.handleCancel}}),c={title:d,appendTo:"body",minWidth:this.media==="desktop"?400:"85%",wrapperId:this.dialogId,...this.ks.dialogProps},u={initialValues:e.ksModifyInitialFormValues(e.$props.dataItem),validator:e.formValidator,...this.ks.formProps};return a.h(m.Dialog,{onClose:this.handleClose,class:"k-scheduler-edit-dialog",...c},function(){return[a.h(g.Form,{onSubmit:e.handleSubmit,...u},function(){return[l]})]})},methods:{calculateMedia(){r.canUseDOM&&window.matchMedia&&(this.media=window.matchMedia("(min-width: 600px)").matches?"desktop":"mobile")},handleCancel(e){this.$emit("cancel",{value:null,event:e,target:this.form})},handleClose({event:e}){this.$emit("close",{value:null,event:e,target:this.form})},handleSubmit(e,t){this.$emit("submit",{value:e,event:t,target:this.form})},startAfterEndValidator(e,t){return e&&t(this.ks.fields.end)&&e.getTime()>t(this.ks.fields.end).getTime()?this.startValidationMessage:void 0},endAfterStartValidator(e,t){return e&&t(this.ks.fields.start)&&e.getTime()<t(this.ks.fields.start).getTime()?this.endValidationMessage:void 0},requiredValidator(e){return e?void 0:this.requiredValidationMessage},formValidator(e,t){const s={};s[this.ks.fields.start]=[this.requiredValidator(t(this.ks.fields.start)),this.startAfterEndValidator(t(this.ks.fields.start),t)].filter(Boolean).reduce((d,n)=>d||n,""),s[this.ks.fields.end]=[this.requiredValidator(t(this.ks.fields.start)),this.endAfterStartValidator(t(this.ks.fields.start),t)].filter(Boolean).reduce((d,n)=>d||n,"");const o=this.ksValidator(t);return{...s,...o}}}});exports.SchedulerForm=k;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vue"),f=require("./SchedulerActionButtons.js"),S=require("@progress/kendo-vue-form"),k=require("@progress/kendo-vue-dialogs"),p=require("@progress/kendo-vue-intl"),V=require("../editors/SchedulerFormEditor.js"),i=require("../messages/main.js"),r=require("@progress/kendo-vue-common"),M=s.defineComponent({name:"KendoSchedulerForm",emits:{cancel:null,close:null,submit:null},props:{dataItem:Object,onDelete:Function},inject:{ks:{default:null},kendoLocalizationService:{default:null},ksValidator:{default:null},ksModifyInitialFormValues:{default:null}},created(){this.dialogId=r.guid()},data(){return{media:"desktop"}},mounted(){this.calculateMedia(),setTimeout(()=>{const e=document.getElementById(this.dialogId);e&&e.focus()},10)},setup(){return{kendoLocalizationService:s.inject("kendoLocalizationService",{})}},render(){var l;const e=this,t=p.provideLocalizationService(this);this.requiredValidationMessage=t.toLanguageString(i.editorValidationRequired,i.messages[i.editorValidationRequired]),this.endValidationMessage=t.toLanguageString(i.editorValidationEnd,i.messages[i.editorValidationEnd]);const d=t.toLanguageString(i.editorSave,i.messages[i.editorSave]),o=t.toLanguageString(i.editorCancel,i.messages[i.editorCancel]),n=t.toLanguageString(i.editorDelete,i.messages[i.editorDelete]),a=!!((l=this.$props.dataItem)!=null&&l[this.ks.fields.id]),u=a?t.toLanguageString(i.editorEditEvent,i.messages[i.editorEditEvent]):t.toLanguageString(i.editorNewEvent,i.messages[i.editorNewEvent]);this.startValidationMessage=t.toLanguageString(i.editorValidationStart,i.messages[i.editorValidationStart]);const c=s.createVNode(V.SchedulerFormEditor,null,{default:()=>[s.createVNode(f.SchedulerActionButtons,{editSaveMessage:d,editCancelMessage:o,editDeleteMessage:a?n:void 0,onCancel:this.handleCancel,onDelete:a&&this.onDelete?this.handleDelete:void 0},null)]}),h=r.getTemplate.call(this,{h:s.h,template:this.ks.form,defaultRendering:c,additionalProps:{dataItem:this.dataItem,editSaveMessage:d,editCancelMessage:o},additionalListeners:{cancel:this.handleCancel}}),g={title:u,appendTo:"body",width:this.media==="desktop"?650:"85%",wrapperId:this.dialogId,...this.ks.dialogProps},m={initialValues:e.ksModifyInitialFormValues(e.$props.dataItem),validator:e.formValidator,...this.ks.formProps};return s.h(k.Dialog,{onClose:this.handleClose,class:"k-scheduler-edit-dialog",...g},function(){return[s.h(S.Form,{onSubmit:e.handleSubmit,...m},function(){return[h]})]})},methods:{calculateMedia(){r.canUseDOM&&window.matchMedia&&(this.media=window.matchMedia("(min-width: 600px)").matches?"desktop":"mobile")},handleCancel(e){this.$emit("cancel",{value:null,event:e,target:this.form})},handleClose({event:e}){this.$emit("close",{value:null,event:e,target:this.form})},handleDelete(){var e;(e=this.onDelete)==null||e.call(this,this.$props.dataItem)},handleSubmit(e,t){this.$emit("submit",{value:e,event:t,target:this.form})},startAfterEndValidator(e,t){return e&&t(this.ks.fields.end)&&e.getTime()>t(this.ks.fields.end).getTime()?this.startValidationMessage:void 0},endAfterStartValidator(e,t){return e&&t(this.ks.fields.start)&&e.getTime()<t(this.ks.fields.start).getTime()?this.endValidationMessage:void 0},requiredValidator(e){return e?void 0:this.requiredValidationMessage},formValidator(e,t){const d={};d[this.ks.fields.start]=[this.requiredValidator(t(this.ks.fields.start)),this.startAfterEndValidator(t(this.ks.fields.start),t)].filter(Boolean).reduce((n,a)=>n||a,""),d[this.ks.fields.end]=[this.requiredValidator(t(this.ks.fields.start)),this.endAfterStartValidator(t(this.ks.fields.start),t)].filter(Boolean).reduce((n,a)=>n||a,"");const o=this.ksValidator(t);return{...d,...o}}}});exports.SchedulerForm=M;