@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.
- package/dist/cdn/js/kendo-vue-scheduler.js +2 -2
- package/dist/es/Scheduler.d.ts +14 -0
- package/dist/es/Scheduler.js +21 -4
- package/dist/es/components/{CurrentTimeMarket.d.ts → CurrentTimeMarker.d.ts} +0 -0
- package/dist/es/components/CurrentTimeMarker.js +160 -0
- package/dist/es/components/CurrentTimeMarkerArrow.d.ts +43 -0
- package/dist/es/components/CurrentTimeMarkerArrow.js +135 -0
- package/dist/es/components/DateHeaderCell.js +15 -2
- package/dist/es/components/SchedulerForm.d.ts +0 -18
- package/dist/es/components/SchedulerForm.js +73 -174
- package/dist/es/components/TimeHeaderCell.js +15 -2
- package/dist/es/items/SchedulerViewItem.js +9 -6
- package/dist/es/main.d.ts +2 -1
- package/dist/es/main.js +2 -1
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/slots/SchedulerEditSlot.js +60 -45
- package/dist/es/slots/SchedulerSlot.d.ts +4 -0
- package/dist/es/slots/SchedulerViewSlot.d.ts +0 -1
- package/dist/es/slots/SchedulerViewSlot.js +12 -4
- package/dist/es/views/agenda/AgendaViewBody.js +0 -1
- package/dist/es/views/common/VerticalResourceIterator.js +10 -2
- package/dist/es/views/day/DayView.js +9 -1
- package/dist/es/views/day/DayViewAllDaySlots.d.ts +1 -0
- package/dist/es/views/day/DayViewAllDaySlots.js +1 -0
- package/dist/es/views/day/DayViewMiddleRow.d.ts +1 -0
- package/dist/es/views/day/DayViewMiddleRow.js +1 -0
- package/dist/es/views/day/DayViewVerticalSlotsRow.d.ts +3 -0
- package/dist/es/views/day/DayViewVerticalSlotsRow.js +25 -5
- package/dist/es/views/day/MultiDayView.js +36 -23
- package/dist/es/views/month/MonthView.js +8 -0
- package/dist/es/views/month/MonthViewBody.d.ts +1 -0
- package/dist/es/views/month/MonthViewBody.js +2 -1
- package/dist/es/views/time/MultiDayTimelineView.js +23 -5
- package/dist/es/views/time/TimelineView.js +9 -1
- package/dist/es/views/time/TimelineViewBody.d.ts +2 -0
- package/dist/es/views/time/TimelineViewBody.js +19 -7
- package/dist/es/views/week/WeekView.js +9 -1
- package/dist/es/views/week/WorkWeekView.js +12 -1
- package/dist/npm/Scheduler.d.ts +14 -0
- package/dist/npm/Scheduler.js +21 -4
- package/dist/npm/components/{CurrentTimeMarket.d.ts → CurrentTimeMarker.d.ts} +0 -0
- package/dist/npm/components/CurrentTimeMarker.js +171 -0
- package/dist/npm/components/CurrentTimeMarkerArrow.d.ts +43 -0
- package/dist/npm/components/CurrentTimeMarkerArrow.js +147 -0
- package/dist/npm/components/DateHeaderCell.js +16 -2
- package/dist/npm/components/SchedulerForm.d.ts +0 -18
- package/dist/npm/components/SchedulerForm.js +74 -174
- package/dist/npm/components/TimeHeaderCell.js +16 -2
- package/dist/npm/items/SchedulerViewItem.js +9 -6
- package/dist/npm/main.d.ts +2 -1
- package/dist/npm/main.js +3 -1
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/slots/SchedulerEditSlot.js +59 -44
- package/dist/npm/slots/SchedulerSlot.d.ts +4 -0
- package/dist/npm/slots/SchedulerViewSlot.d.ts +0 -1
- package/dist/npm/slots/SchedulerViewSlot.js +12 -4
- package/dist/npm/views/agenda/AgendaViewBody.js +0 -1
- package/dist/npm/views/common/VerticalResourceIterator.js +10 -2
- package/dist/npm/views/day/DayView.js +9 -1
- package/dist/npm/views/day/DayViewAllDaySlots.d.ts +1 -0
- package/dist/npm/views/day/DayViewAllDaySlots.js +1 -0
- package/dist/npm/views/day/DayViewMiddleRow.d.ts +1 -0
- package/dist/npm/views/day/DayViewMiddleRow.js +1 -0
- package/dist/npm/views/day/DayViewVerticalSlotsRow.d.ts +3 -0
- package/dist/npm/views/day/DayViewVerticalSlotsRow.js +28 -6
- package/dist/npm/views/day/MultiDayView.js +37 -23
- package/dist/npm/views/month/MonthView.js +8 -0
- package/dist/npm/views/month/MonthViewBody.d.ts +1 -0
- package/dist/npm/views/month/MonthViewBody.js +2 -1
- package/dist/npm/views/time/MultiDayTimelineView.js +23 -5
- package/dist/npm/views/time/TimelineView.js +9 -1
- package/dist/npm/views/time/TimelineViewBody.d.ts +2 -0
- package/dist/npm/views/time/TimelineViewBody.js +20 -7
- package/dist/npm/views/week/WeekView.js +9 -1
- package/dist/npm/views/week/WorkWeekView.js +12 -1
- package/package.json +12 -12
- package/dist/es/components/CurrentTimeMarket.js +0 -187
- 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';
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/dist/npm/Scheduler.d.ts
CHANGED
|
@@ -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
|
*/
|
package/dist/npm/Scheduler.js
CHANGED
|
@@ -125,7 +125,9 @@ var SchedulerVue2 = {
|
|
|
125
125
|
},
|
|
126
126
|
defaultDate: {
|
|
127
127
|
type: Date,
|
|
128
|
-
default:
|
|
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:
|
|
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;
|
|
File without changes
|
|
@@ -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");
|
|
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
|
-
}, [
|
|
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.
|