@progress/kendo-vue-scheduler 3.2.8-dev.202205030909 → 3.2.9

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 (78) hide show
  1. package/dist/cdn/js/kendo-vue-scheduler.js +2 -2
  2. package/dist/es/Scheduler.d.ts +14 -0
  3. package/dist/es/Scheduler.js +21 -4
  4. package/dist/es/components/{CurrentTimeMarket.d.ts → CurrentTimeMarker.d.ts} +0 -0
  5. package/dist/es/components/CurrentTimeMarker.js +160 -0
  6. package/dist/es/components/CurrentTimeMarkerArrow.d.ts +43 -0
  7. package/dist/es/components/CurrentTimeMarkerArrow.js +135 -0
  8. package/dist/es/components/DateHeaderCell.js +15 -2
  9. package/dist/es/components/SchedulerForm.d.ts +0 -18
  10. package/dist/es/components/SchedulerForm.js +73 -174
  11. package/dist/es/components/TimeHeaderCell.js +15 -2
  12. package/dist/es/items/SchedulerViewItem.js +9 -6
  13. package/dist/es/main.d.ts +2 -1
  14. package/dist/es/main.js +2 -1
  15. package/dist/es/package-metadata.js +1 -1
  16. package/dist/es/slots/SchedulerEditSlot.js +60 -45
  17. package/dist/es/slots/SchedulerSlot.d.ts +4 -0
  18. package/dist/es/slots/SchedulerViewSlot.d.ts +0 -1
  19. package/dist/es/slots/SchedulerViewSlot.js +12 -4
  20. package/dist/es/views/agenda/AgendaViewBody.js +0 -1
  21. package/dist/es/views/common/VerticalResourceIterator.js +10 -2
  22. package/dist/es/views/day/DayView.js +9 -1
  23. package/dist/es/views/day/DayViewAllDaySlots.d.ts +1 -0
  24. package/dist/es/views/day/DayViewAllDaySlots.js +1 -0
  25. package/dist/es/views/day/DayViewMiddleRow.d.ts +1 -0
  26. package/dist/es/views/day/DayViewMiddleRow.js +1 -0
  27. package/dist/es/views/day/DayViewVerticalSlotsRow.d.ts +3 -0
  28. package/dist/es/views/day/DayViewVerticalSlotsRow.js +25 -5
  29. package/dist/es/views/day/MultiDayView.js +36 -23
  30. package/dist/es/views/month/MonthView.js +8 -0
  31. package/dist/es/views/month/MonthViewBody.d.ts +1 -0
  32. package/dist/es/views/month/MonthViewBody.js +2 -1
  33. package/dist/es/views/time/MultiDayTimelineView.js +23 -5
  34. package/dist/es/views/time/TimelineView.js +9 -1
  35. package/dist/es/views/time/TimelineViewBody.d.ts +2 -0
  36. package/dist/es/views/time/TimelineViewBody.js +19 -7
  37. package/dist/es/views/week/WeekView.js +9 -1
  38. package/dist/es/views/week/WorkWeekView.js +12 -1
  39. package/dist/npm/Scheduler.d.ts +14 -0
  40. package/dist/npm/Scheduler.js +21 -4
  41. package/dist/npm/components/{CurrentTimeMarket.d.ts → CurrentTimeMarker.d.ts} +0 -0
  42. package/dist/npm/components/CurrentTimeMarker.js +171 -0
  43. package/dist/npm/components/CurrentTimeMarkerArrow.d.ts +43 -0
  44. package/dist/npm/components/CurrentTimeMarkerArrow.js +147 -0
  45. package/dist/npm/components/DateHeaderCell.js +16 -2
  46. package/dist/npm/components/SchedulerForm.d.ts +0 -18
  47. package/dist/npm/components/SchedulerForm.js +74 -174
  48. package/dist/npm/components/TimeHeaderCell.js +16 -2
  49. package/dist/npm/items/SchedulerViewItem.js +9 -6
  50. package/dist/npm/main.d.ts +2 -1
  51. package/dist/npm/main.js +3 -1
  52. package/dist/npm/package-metadata.js +1 -1
  53. package/dist/npm/slots/SchedulerEditSlot.js +59 -44
  54. package/dist/npm/slots/SchedulerSlot.d.ts +4 -0
  55. package/dist/npm/slots/SchedulerViewSlot.d.ts +0 -1
  56. package/dist/npm/slots/SchedulerViewSlot.js +12 -4
  57. package/dist/npm/views/agenda/AgendaViewBody.js +0 -1
  58. package/dist/npm/views/common/VerticalResourceIterator.js +10 -2
  59. package/dist/npm/views/day/DayView.js +9 -1
  60. package/dist/npm/views/day/DayViewAllDaySlots.d.ts +1 -0
  61. package/dist/npm/views/day/DayViewAllDaySlots.js +1 -0
  62. package/dist/npm/views/day/DayViewMiddleRow.d.ts +1 -0
  63. package/dist/npm/views/day/DayViewMiddleRow.js +1 -0
  64. package/dist/npm/views/day/DayViewVerticalSlotsRow.d.ts +3 -0
  65. package/dist/npm/views/day/DayViewVerticalSlotsRow.js +28 -6
  66. package/dist/npm/views/day/MultiDayView.js +37 -23
  67. package/dist/npm/views/month/MonthView.js +8 -0
  68. package/dist/npm/views/month/MonthViewBody.d.ts +1 -0
  69. package/dist/npm/views/month/MonthViewBody.js +2 -1
  70. package/dist/npm/views/time/MultiDayTimelineView.js +23 -5
  71. package/dist/npm/views/time/TimelineView.js +9 -1
  72. package/dist/npm/views/time/TimelineViewBody.d.ts +2 -0
  73. package/dist/npm/views/time/TimelineViewBody.js +20 -7
  74. package/dist/npm/views/week/WeekView.js +9 -1
  75. package/dist/npm/views/week/WorkWeekView.js +12 -1
  76. package/package.json +12 -12
  77. package/dist/es/components/CurrentTimeMarket.js +0 -187
  78. package/dist/npm/components/CurrentTimeMarket.js +0 -199
@@ -4,18 +4,24 @@ var allVue = Vue;
4
4
  var gh = allVue.h;
5
5
  var inject = allVue.inject;
6
6
  import { SchedulerEditSlot } from '../../slots/SchedulerEditSlot';
7
- import { isInTimeRange } from '../../utils'; // tslint:enable:max-line-length
7
+ import { isInTimeRange, intersects, first, last } from '../../utils';
8
+ import { CurrentTimeMarker } from '../../components/CurrentTimeMarker'; // tslint:enable:max-line-length
8
9
 
9
10
  var TimelineViewBodyVue2 = {
10
11
  name: 'KendoTimelineViewBody',
11
12
  props: {
13
+ currentTimeMarker: {
14
+ type: Boolean,
15
+ default: true
16
+ },
12
17
  groupIndex: Number,
13
18
  timelineSlots: Array,
14
19
  ranges: Array,
15
20
  workDayStart: Date,
16
21
  workDayEnd: Date,
17
22
  editable: [Object, Boolean],
18
- slotRender: [String, Function, Object]
23
+ slotRender: [String, Function, Object],
24
+ viewSlot: [String, Function, Object]
19
25
  },
20
26
  inject: {
21
27
  ri: {
@@ -48,11 +54,10 @@ var TimelineViewBodyVue2 = {
48
54
  }).map(function (slot, slotIndex, filtered) {
49
55
  return h(SchedulerEditSlot, {
50
56
  key: slot.start.getTime() + ":" + slot.group.index,
51
- slot: that.$props.slot,
52
- viewSlot: that.$props.viewSlot,
57
+ slotRender: that.$props.slotRender,
53
58
  attrs: this.v3 ? undefined : {
54
- viewSlot: that.$props.viewSlot,
55
59
  slotRender: that.$props.slotRender,
60
+ viewSlot: that.$props.viewSlot,
56
61
  index: slot.index,
57
62
  start: slot.start,
58
63
  end: slot.end,
@@ -69,7 +74,7 @@ var TimelineViewBodyVue2 = {
69
74
  expandable: true,
70
75
  editable: editable
71
76
  },
72
- slotRender: that.$props.slotRender,
77
+ viewSlot: that.$props.viewSlot,
73
78
  index: slot.index,
74
79
  start: slot.start,
75
80
  end: slot.end,
@@ -91,7 +96,14 @@ var TimelineViewBodyVue2 = {
91
96
  editable: editable
92
97
  });
93
98
  }, true);
94
- }, this)]);
99
+ }, this), this.$props.currentTimeMarker && intersects(first(ranges).start, last(ranges).end, new Date(), new Date(), true) && h(CurrentTimeMarker, {
100
+ groupIndex: groupIndex,
101
+ attrs: this.v3 ? undefined : {
102
+ groupIndex: groupIndex,
103
+ vertical: true
104
+ },
105
+ vertical: true
106
+ })]);
95
107
  },
96
108
  methods: {
97
109
  handleDataAction: function handleDataAction(action) {
@@ -84,8 +84,10 @@ var WeekViewVue2 = {
84
84
  type: Boolean,
85
85
  default: true
86
86
  },
87
- timeHeaderCell: String,
87
+ dateHeaderCell: [String, Function, Object],
88
+ timeHeaderCell: [String, Function, Object],
88
89
  slotRender: [String, Function, Object],
90
+ viewSlot: [String, Function, Object],
89
91
  item: [String, Function, Object],
90
92
  viewItem: [String, Function, Object],
91
93
  editable: {
@@ -132,9 +134,12 @@ var WeekViewVue2 = {
132
134
  workWeekStart: this.$props.workWeekStart,
133
135
  workWeekEnd: this.$props.workWeekEnd,
134
136
  defaultShowWorkHours: this.$props.defaultShowWorkHours,
137
+ dateHeaderCell: this.$props.dateHeaderCell,
135
138
  timeHeaderCell: this.$props.timeHeaderCell,
136
139
  slotRender: this.$props.slotRender,
140
+ viewSlot: this.$props.viewSlot,
137
141
  item: this.$props.item,
142
+ slotItem: this.$props.slotItem,
138
143
  viewItem: this.$props.viewItem,
139
144
  editable: this.$props.editable
140
145
  },
@@ -155,9 +160,12 @@ var WeekViewVue2 = {
155
160
  workWeekStart: this.$props.workWeekStart,
156
161
  workWeekEnd: this.$props.workWeekEnd,
157
162
  defaultShowWorkHours: this.$props.defaultShowWorkHours,
163
+ dateHeaderCell: this.$props.dateHeaderCell,
158
164
  timeHeaderCell: this.$props.timeHeaderCell,
159
165
  slotRender: this.$props.slotRender,
166
+ viewSlot: this.$props.viewSlot,
160
167
  item: this.$props.item,
168
+ slotItem: this.$props.slotItem,
161
169
  viewItem: this.$props.viewItem,
162
170
  editable: this.$props.editable,
163
171
  onDataaction: this.handleDataAction,
@@ -74,7 +74,10 @@ var WorkWeekViewVue2 = {
74
74
  type: Boolean,
75
75
  default: true
76
76
  },
77
+ dateHeaderCell: [String, Function, Object],
78
+ timeHeaderCell: [String, Function, Object],
77
79
  slotRender: [String, Function, Object],
80
+ viewSlot: [String, Function, Object],
78
81
  item: [String, Function, Object],
79
82
  viewItem: [String, Function, Object],
80
83
  editable: {
@@ -118,9 +121,13 @@ var WorkWeekViewVue2 = {
118
121
  title: title,
119
122
  step: DAYS_IN_WEEK_COUNT,
120
123
  slotRender: this.$props.slotRender,
124
+ viewSlot: this.$props.viewSlot,
125
+ slotItem: this.$props.slotItem,
121
126
  item: this.$props.item,
122
127
  viewItem: this.$props.viewItem,
123
- editable: this.$props.editable
128
+ editable: this.$props.editable,
129
+ dateHeaderCell: this.$props.dateHeaderCell,
130
+ timeHeaderCell: this.$props.timeHeaderCell
124
131
  },
125
132
  dateRange: this.$props.dateRange,
126
133
  numberOfDays: numberOfDays,
@@ -132,9 +139,13 @@ var WorkWeekViewVue2 = {
132
139
  title: title,
133
140
  step: DAYS_IN_WEEK_COUNT,
134
141
  slotRender: this.$props.slotRender,
142
+ viewSlot: this.$props.viewSlot,
143
+ slotItem: this.$props.slotItem,
135
144
  item: this.$props.item,
136
145
  viewItem: this.$props.viewItem,
137
146
  editable: this.$props.editable,
147
+ dateHeaderCell: this.$props.dateHeaderCell,
148
+ timeHeaderCell: this.$props.timeHeaderCell,
138
149
  onDataaction: this.handleDataAction,
139
150
  on: this.v3 ? undefined : {
140
151
  "dataaction": this.handleDataAction
@@ -71,6 +71,16 @@ export interface SchedulerProps {
71
71
  * For more information on customizing the scheduler tasks, refer to the [Task Customization]({% slug overview_tasks_scheduler %}) article.
72
72
  */
73
73
  task?: any;
74
+ /**
75
+ *
76
+ * Represents component based on the DateHeaderCellProps.
77
+ */
78
+ dateHeaderCell?: any;
79
+ /**
80
+ *
81
+ * Represents component based on the TimeHeaderCellProps.
82
+ */
83
+ timeHeaderCell?: any;
74
84
  /**
75
85
  * Overrides the default viewTask. Specifying the `viewTask` property of a specific view will override this property.
76
86
  * Currently, the `viewTask` is being used in the [AgendaView]({% slug agenda_view_scheduler %}) only.
@@ -131,6 +141,10 @@ export interface SchedulerProps {
131
141
  editSlot?: any;
132
142
  /** @hidden */
133
143
  form?: any;
144
+ /** @hidden */
145
+ dialogProps?: any;
146
+ /** @hidden */
147
+ formProps?: any;
134
148
  /**
135
149
  * Sets the currently visible views.
136
150
  */
@@ -125,7 +125,9 @@ var SchedulerVue2 = {
125
125
  },
126
126
  defaultDate: {
127
127
  type: Date,
128
- default: new Date()
128
+ default: function _default() {
129
+ return new Date();
130
+ }
129
131
  },
130
132
  validator: {
131
133
  type: Function,
@@ -142,9 +144,15 @@ var SchedulerVue2 = {
142
144
  header: [String, Function, Object],
143
145
  footer: [String, Function, Object],
144
146
  slotRender: [String, Function, Object],
147
+ viewSlot: [String, Function, Object],
145
148
  item: [String, Function, Object],
146
149
  viewItem: [String, Function, Object],
147
- task: [String, Function, Object]
150
+ task: [String, Function, Object],
151
+ form: [String, Function, Object],
152
+ dialogProps: Object,
153
+ formProps: Object,
154
+ dateHeaderCell: [String, Function, Object],
155
+ timeHeaderCell: [String, Function, Object]
148
156
  },
149
157
  computed: {
150
158
  wrapperClassName: function wrapperClassName() {
@@ -208,7 +216,7 @@ var SchedulerVue2 = {
208
216
  orientation: this.$props.group && this.$props.group.orientation ? this.$props.group.orientation : 'horizontal',
209
217
  dateFormat: dateFormat,
210
218
  shortDateFormat: shortDateFormat,
211
- scheduler: null,
219
+ scheduler: this,
212
220
  dataItems: this.dataItems
213
221
  }
214
222
  };
@@ -252,9 +260,15 @@ var SchedulerVue2 = {
252
260
  var header = kendo_vue_common_1.templateRendering.call(this, view.header || this.$props.header, kendo_vue_common_1.getListeners.call(this));
253
261
  var footer = kendo_vue_common_1.templateRendering.call(this, view.footer || this.$props.footer, kendo_vue_common_1.getListeners.call(this));
254
262
  var slotRender = kendo_vue_common_1.templateRendering.call(this, view.slot || this.$props.slotRender, {});
263
+ var viewSlot = kendo_vue_common_1.templateRendering.call(this, view.viewSlot || this.$props.viewSlot, {});
255
264
  var item = kendo_vue_common_1.templateRendering.call(this, view.item || this.$props.item, {});
256
265
  var viewItem = kendo_vue_common_1.templateRendering.call(this, view.viewItem || this.$props.viewItem, {});
257
266
  var task = kendo_vue_common_1.templateRendering.call(this, view.task || this.$props.task, {});
267
+ var dateHeaderCell = kendo_vue_common_1.templateRendering.call(this, view.dateHeaderCell || this.$props.dateHeaderCell, {});
268
+ var timeHeaderCell = kendo_vue_common_1.templateRendering.call(this, view.timeHeaderCell || this.$props.timeHeaderCell, {});
269
+ this.ks.form = kendo_vue_common_1.templateRendering.call(this, view.form || this.$props.form, {});
270
+ this.ks.dialogProps = view.dialogProps || this.$props.dialogProps;
271
+ this.ks.formProps = view.formProps || this.$props.formProps;
258
272
  var ViewSelector = SchedulerViewSelector_1.SchedulerViewSelector;
259
273
  var viewComponent = this.getViewComponentByName(this.ks.activeViewName || view.name);
260
274
 
@@ -265,9 +279,12 @@ var SchedulerVue2 = {
265
279
  defaultDate: undefined,
266
280
  dateRange: this.ks.dateRange,
267
281
  slotRender: slotRender,
282
+ viewSlot: viewSlot,
268
283
  item: item,
269
284
  viewItem: viewItem,
270
- task: task
285
+ task: task,
286
+ dateHeaderCell: dateHeaderCell,
287
+ timeHeaderCell: timeHeaderCell
271
288
  });
272
289
 
273
290
  var headerRender;
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CurrentTimeMarkerVue2 = exports.CurrentTimeMarker = void 0; // @ts-ignore
7
+
8
+ var Vue = require("vue");
9
+
10
+ var allVue = Vue;
11
+ var gh = allVue.h;
12
+
13
+ var kendo_date_math_1 = require("@progress/kendo-date-math"); // import { useSchedulerElementContext, useSchedulerPropsContext, useSchedulerViewSlotsContext } from '../context';
14
+
15
+
16
+ var utils_1 = require("../utils");
17
+
18
+ var utils_2 = require("../views/common/utils");
19
+
20
+ var combineWidths = function combineWidths(slots) {
21
+ var result = 0;
22
+ slots.forEach(function (slot) {
23
+ if (slot) {
24
+ var rect = utils_2.getRect(slot.$el);
25
+ result += rect.width;
26
+ }
27
+ });
28
+ return result;
29
+ };
30
+
31
+ var combineHeights = function combineHeights(slots) {
32
+ var result = 0;
33
+ slots.forEach(function (slot) {
34
+ if (slot) {
35
+ var rect = utils_2.getRect(slot.$el);
36
+ result += rect.height;
37
+ }
38
+ });
39
+ return result;
40
+ };
41
+
42
+ var setTime = function setTime(origin, candidate) {
43
+ var date = kendo_date_math_1.cloneDate(origin);
44
+ date.setHours(candidate.getHours(), candidate.getMinutes(), candidate.getSeconds(), candidate.getMilliseconds());
45
+ return date;
46
+ }; // tslint:enable:max-line-length
47
+
48
+
49
+ var CurrentTimeMarkerVue2 = {
50
+ name: 'KendoCurrentTimeMarker',
51
+ props: {
52
+ updateInterval: {
53
+ type: Number,
54
+ default: 60000
55
+ },
56
+ groupIndex: Number,
57
+ vertical: Boolean,
58
+ attachArrow: Object
59
+ },
60
+ inject: {
61
+ ks: {
62
+ default: null
63
+ },
64
+ bv: {
65
+ default: null
66
+ }
67
+ },
68
+ created: function created() {
69
+ this.interval = undefined;
70
+ this.arrowRef = null;
71
+ this.observer = null;
72
+ this.line = null;
73
+ },
74
+ data: function data() {
75
+ return {
76
+ show: false
77
+ };
78
+ },
79
+ mounted: function mounted() {
80
+ this.line = this.$el;
81
+ var that = this;
82
+ this.$nextTick(function () {
83
+ that.position();
84
+ });
85
+
86
+ if (!this.ks.scheduler || !this.ks.scheduler.$el || !window) {
87
+ return;
88
+ }
89
+
90
+ clearInterval(this.interval);
91
+ this.interval = window.setInterval(this.position, this.updateInterval);
92
+ this.observer = new window.ResizeObserver(this.position);
93
+ this.observer.observe(this.ks.scheduler.$el);
94
+ },
95
+ destroyed: !!gh ? undefined : function () {
96
+ if (this.observer) {
97
+ this.observer.disconnect();
98
+ }
99
+ },
100
+ // @ts-ignore
101
+ unmounted: function unmounted() {
102
+ if (this.observer) {
103
+ this.observer.disconnect();
104
+ }
105
+ },
106
+ // @ts-ignore
107
+ setup: !gh ? undefined : function () {
108
+ var v3 = !!gh;
109
+ return {
110
+ v3: v3
111
+ };
112
+ },
113
+ // @ts-ignore
114
+ render: function render(createElement) {
115
+ var _a;
116
+
117
+ var h = gh || createElement; // const dir = useDir(line, schedulerProps.rtl === true ? 'rtl' : undefined);
118
+
119
+ return h("div", {
120
+ "class": "k-current-time",
121
+ style: (_a = {
122
+ transform: this.$props.vertical ? 'translateX(-50%)' : 'translateY(-50%)'
123
+ }, _a[this.$props.vertical ? 'width' : 'height'] = '1px', _a.visibility = !this.show ? 'hidden' : undefined, _a)
124
+ });
125
+ },
126
+ methods: {
127
+ position: function position() {
128
+ var _this = this;
129
+
130
+ if (!this.bv.slots) {
131
+ return;
132
+ }
133
+
134
+ var sameTimeSlots = this.bv.slots.filter(function (s) {
135
+ return (_this.$props.groupIndex === undefined || _this.$props.groupIndex === null || s.group.index === _this.$props.groupIndex) && (_this.$props.vertical ? utils_1.intersects(new Date(), new Date(), s.start, s.end, true) : utils_1.isInTimeRange(new Date(), s.start, s.end)) && !s.isAllDay;
136
+ });
137
+
138
+ if (sameTimeSlots && sameTimeSlots.length && this.line) {
139
+ var firstSlot = utils_1.first(sameTimeSlots);
140
+
141
+ if (!firstSlot) {
142
+ return;
143
+ }
144
+
145
+ var size = this.$props.vertical ? combineHeights(sameTimeSlots) : combineWidths(sameTimeSlots);
146
+ var rect = utils_2.getRect(firstSlot.$el);
147
+ var arrowRect = utils_2.getRect(this.arrowRef);
148
+ var pxPerMillisecond = (this.$props.vertical ? rect.width : rect.height) / (firstSlot.end.getTime() - firstSlot.start.getTime());
149
+ var offset = (Date.now() - setTime(new Date(), firstSlot.start).getTime()) * pxPerMillisecond;
150
+ var rtl = this.$props.dir === 'rtl';
151
+ var top_1 = this.$props.vertical ? rect.top : rect.top + offset - arrowRect.height / 2;
152
+ var horizontalDimension = rtl ? 'right' : 'left';
153
+ var horizontalMeasure = this.$props.vertical ? rect[horizontalDimension] + offset - arrowRect.width / 2 : rect[horizontalDimension]; // if (this.$props.vertical) {
154
+ // this.arrowRef.style[horizontalDimension] = `${horizontalMeasure}px`;
155
+ // } else {
156
+ // this.arrowRef.style.top = `${top}px`;
157
+ // }
158
+
159
+ this.line.style[horizontalDimension] = horizontalMeasure + "px";
160
+ this.line.style.top = top_1 + "px";
161
+ this.line.style[this.$props.vertical ? 'height' : 'width'] = size - 1 + "px";
162
+ this.show = true;
163
+ } else {
164
+ this.show = false;
165
+ }
166
+ }
167
+ }
168
+ };
169
+ exports.CurrentTimeMarkerVue2 = CurrentTimeMarkerVue2;
170
+ var CurrentTimeMarker = CurrentTimeMarkerVue2;
171
+ exports.CurrentTimeMarker = CurrentTimeMarker;
@@ -0,0 +1,43 @@
1
+ import { DefineComponent, RecordPropsDefinition, ComponentOptions, Vue2type } from '../additionalTypes';
2
+ declare type DefaultData<V> = object | ((this: V) => {});
3
+ declare type DefaultMethods<V> = {
4
+ [key: string]: (this: V, ...args: any[]) => any;
5
+ };
6
+ declare type CurrentTimeMarkerArrowProps = {
7
+ updateInterval?: number;
8
+ groupIndex?: number | null;
9
+ vertical?: boolean;
10
+ attachArrow?: HTMLElement;
11
+ };
12
+ /**
13
+ * @hidden
14
+ */
15
+ export interface CurrentTimeMarkerArrowState {
16
+ interval: number | undefined;
17
+ arrowRef: HTMLElement | null;
18
+ }
19
+ /**
20
+ * @hidden
21
+ */
22
+ export interface CurrentTimeMarkerArrowComputed {
23
+ [key: string]: any;
24
+ }
25
+ /**
26
+ * @hidden
27
+ */
28
+ export interface CurrentTimeMarkerArrowMethods {
29
+ [key: string]: any;
30
+ }
31
+ /**
32
+ * @hidden
33
+ */
34
+ export interface CurrentTimeMarkerArrowData {
35
+ }
36
+ /**
37
+ * @hidden
38
+ */
39
+ export interface CurrentTimeMarkerArrowAll extends Vue2type, CurrentTimeMarkerArrowMethods, CurrentTimeMarkerArrowData, CurrentTimeMarkerArrowComputed, CurrentTimeMarkerArrowState {
40
+ }
41
+ declare let CurrentTimeMarkerArrowVue2: ComponentOptions<CurrentTimeMarkerArrowAll, DefaultData<CurrentTimeMarkerArrowData>, DefaultMethods<CurrentTimeMarkerArrowAll>, CurrentTimeMarkerArrowComputed, RecordPropsDefinition<CurrentTimeMarkerArrowProps>>;
42
+ declare const CurrentTimeMarkerArrow: DefineComponent<CurrentTimeMarkerArrowProps, any, CurrentTimeMarkerArrowData, CurrentTimeMarkerArrowComputed, CurrentTimeMarkerArrowMethods, {}, {}, {}, string, CurrentTimeMarkerArrowProps, CurrentTimeMarkerArrowProps, {}>;
43
+ export { CurrentTimeMarkerArrow, CurrentTimeMarkerArrowVue2 };
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CurrentTimeMarkerArrowVue2 = exports.CurrentTimeMarkerArrow = void 0; // @ts-ignore
7
+
8
+ var Vue = require("vue");
9
+
10
+ var allVue = Vue;
11
+ var gh = allVue.h;
12
+
13
+ var kendo_date_math_1 = require("@progress/kendo-date-math");
14
+
15
+ var kendo_vue_common_1 = require("@progress/kendo-vue-common"); // import { useSchedulerElementContext, useSchedulerPropsContext, useSchedulerViewSlotsContext } from '../context';
16
+
17
+
18
+ var utils_1 = require("../utils");
19
+
20
+ var utils_2 = require("../views/common/utils");
21
+
22
+ var setTime = function setTime(origin, candidate) {
23
+ var date = kendo_date_math_1.cloneDate(origin);
24
+ date.setHours(candidate.getHours(), candidate.getMinutes(), candidate.getSeconds(), candidate.getMilliseconds());
25
+ return date;
26
+ }; // tslint:enable:max-line-length
27
+
28
+
29
+ var CurrentTimeMarkerArrowVue2 = {
30
+ name: 'KendoCurrentTimeMarkerArrow',
31
+ props: {
32
+ updateInterval: {
33
+ type: Number,
34
+ default: 60000
35
+ },
36
+ groupIndex: Number,
37
+ vertical: Boolean,
38
+ attachArrow: Object
39
+ },
40
+ inject: {
41
+ ks: {
42
+ default: null
43
+ },
44
+ bv: {
45
+ default: null
46
+ }
47
+ },
48
+ created: function created() {
49
+ this.interval = undefined;
50
+ this.arrowRef = null;
51
+ },
52
+ data: function data() {
53
+ return {
54
+ show: false
55
+ };
56
+ },
57
+ mounted: function mounted() {
58
+ this.arrowRef = this.$el;
59
+ this.position();
60
+
61
+ if (!this.ks.scheduler || !this.ks.scheduler.$el || !window) {
62
+ return;
63
+ }
64
+
65
+ clearInterval(this.interval);
66
+ this.interval = window.setInterval(this.position, this.updateInterval);
67
+ this.observer = new window.ResizeObserver(this.position);
68
+ this.observer.observe(this.ks.scheduler.$el);
69
+ },
70
+ destroyed: !!gh ? undefined : function () {
71
+ if (this.observer) {
72
+ this.observer.disconnect();
73
+ }
74
+ },
75
+ // @ts-ignore
76
+ unmounted: function unmounted() {
77
+ if (this.observer) {
78
+ this.observer.disconnect();
79
+ }
80
+ },
81
+ // @ts-ignore
82
+ setup: !gh ? undefined : function () {
83
+ var v3 = !!gh;
84
+ return {
85
+ v3: v3
86
+ };
87
+ },
88
+ // @ts-ignore
89
+ render: function render(createElement) {
90
+ var h = gh || createElement; // const dir = useDir(line, schedulerProps.rtl === true ? 'rtl' : undefined);
91
+
92
+ return h("div", {
93
+ "class": kendo_vue_common_1.classNames('k-current-time', {
94
+ 'k-current-time-arrow-right': !this.$props.vertical && this.$props.dir !== 'rtl',
95
+ 'k-current-time-arrow-left': !this.$props.vertical && this.$props.dir === 'rtl',
96
+ 'k-current-time-arrow-down': this.$props.vertical
97
+ }),
98
+ style: {
99
+ transform: this.$props.vertical ? this.$props.dir === 'rtl' ? 'translateX(50%)' : 'translateX(-50%)' : 'translateY(-50%)',
100
+ visibility: !this.show ? 'hidden' : undefined
101
+ }
102
+ });
103
+ },
104
+ methods: {
105
+ position: function position() {
106
+ var _this = this;
107
+
108
+ if (!this.bv.slots) {
109
+ return;
110
+ }
111
+
112
+ var sameTimeSlots = this.bv.slots.filter(function (s) {
113
+ return (_this.$props.groupIndex === undefined || _this.$props.groupIndex === null || s.group.index === _this.$props.groupIndex) && (_this.$props.vertical ? utils_1.intersects(new Date(), new Date(), s.start, s.end, true) : utils_1.isInTimeRange(new Date(), s.start, s.end)) && !s.isAllDay;
114
+ });
115
+
116
+ if (sameTimeSlots && sameTimeSlots.length && this.$el) {
117
+ var firstSlot = utils_1.first(sameTimeSlots);
118
+
119
+ if (!firstSlot) {
120
+ return;
121
+ }
122
+
123
+ var rect = utils_2.getRect(firstSlot.$el);
124
+ var arrowRect = utils_2.getRect(this.arrowRef);
125
+ var pxPerMillisecond = (this.$props.vertical ? rect.width : rect.height) / (firstSlot.end.getTime() - firstSlot.start.getTime());
126
+ var offset = (Date.now() - setTime(new Date(), firstSlot.start).getTime()) * pxPerMillisecond;
127
+ var rtl = this.$props.dir === 'rtl';
128
+ var top_1 = this.$props.vertical ? rect.top : rect.top + offset - arrowRect.height / 2;
129
+ var horizontalDimension = rtl ? 'right' : 'left';
130
+ var horizontalMeasure = this.$props.vertical ? rect[horizontalDimension] + offset - arrowRect.width / 2 : rect[horizontalDimension];
131
+
132
+ if (this.$props.vertical) {
133
+ this.arrowRef.style[horizontalDimension] = horizontalMeasure + "px";
134
+ } else {
135
+ this.arrowRef.style.top = top_1 + "px";
136
+ }
137
+
138
+ this.show = true;
139
+ } else {
140
+ this.show = false;
141
+ }
142
+ }
143
+ }
144
+ };
145
+ exports.CurrentTimeMarkerArrowVue2 = CurrentTimeMarkerArrowVue2;
146
+ var CurrentTimeMarkerArrow = CurrentTimeMarkerArrowVue2;
147
+ exports.CurrentTimeMarkerArrow = CurrentTimeMarkerArrow;
@@ -11,7 +11,9 @@ var allVue = Vue;
11
11
  var gh = allVue.h;
12
12
  var inject = allVue.inject;
13
13
 
14
- var kendo_vue_intl_1 = require("@progress/kendo-vue-intl"); // tslint:enable:max-line-length
14
+ var kendo_vue_intl_1 = require("@progress/kendo-vue-intl");
15
+
16
+ var kendo_vue_common_1 = require("@progress/kendo-vue-common"); // tslint:enable:max-line-length
15
17
 
16
18
 
17
19
  var DateHeaderCellVue2 = {
@@ -44,11 +46,23 @@ var DateHeaderCellVue2 = {
44
46
  render: function render(createElement) {
45
47
  var h = gh || createElement;
46
48
  var intl = kendo_vue_intl_1.provideIntlService(this);
49
+ var renderAs;
50
+ var defaultRendering = intl.formatDate(this.$props.date, this.$props.format);
51
+ renderAs = kendo_vue_common_1.getTemplate.call(this, {
52
+ h: h,
53
+ template: this.$props.as,
54
+ defaultRendering: defaultRendering,
55
+ additionalProps: {
56
+ default: defaultRendering,
57
+ date: this.$props.date,
58
+ format: this.$props.format
59
+ }
60
+ });
47
61
  return h("div", {
48
62
  "class": 'k-scheduler-cell k-heading-cell'
49
63
  }, [h("span", {
50
64
  "class": "k-link k-nav-day"
51
- }, [intl.formatDate(this.$props.date, this.$props.format)])]);
65
+ }, [renderAs])]);
52
66
  }
53
67
  };
54
68
  exports.DateHeaderCellVue2 = DateHeaderCellVue2;
@@ -18,10 +18,6 @@ export interface SchedulerFormProps extends FormProps {
18
18
  * Specifies the `dataItem` to be visualized inside the form.
19
19
  */
20
20
  dataItem: DataItem;
21
- /**
22
- * Specifies the custom form.
23
- */
24
- renderForm: any;
25
21
  /**
26
22
  * Called when the `cancel` button is clicked.
27
23
  */
@@ -30,20 +26,6 @@ export interface SchedulerFormProps extends FormProps {
30
26
  * Called when the `close` button is clicked.
31
27
  */
32
28
  onClose?: (event: SchedulerFormStateChangeEvent<null>) => void;
33
- /**
34
- * Overrides the component used for visualizing the `editor`.
35
- * The [SchedulerFormEditor]({% slug api_scheduler_schedulerFormEditor %}) component is used, by default.
36
- *
37
- * For more information, please refer to the [`Scheduler Form Customization`]({% slug overview_customization_form_scheduler %}) article.
38
- */
39
- editor?: any;
40
- /**
41
- * Overrides the component used for visualizing the `dialog`.
42
- * The [Kendo UI for Vue Dialog]({% slug api_dialogs_dialog %}) component is used, by default.
43
- *
44
- * For more information, please refer to the [`Scheduler Form Customization`]({% slug overview_customization_form_scheduler %}) article.
45
- */
46
- dialog?: any;
47
29
  }
48
30
  /**
49
31
  * Represent the `ref` of the SchedulerForm component.