@syncfusion/ej2-schedule 19.4.55 → 20.1.50
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/CHANGELOG.md +42 -9
- package/dist/ej2-schedule.umd.min.js +2 -2
- package/dist/ej2-schedule.umd.min.js.map +1 -1
- package/dist/es6/ej2-schedule.es2015.js +165 -53
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +165 -53
- package/dist/es6/ej2-schedule.es5.js.map +1 -1
- package/dist/global/ej2-schedule.min.js +2 -2
- package/dist/global/ej2-schedule.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +15 -15
- package/src/recurrence-editor/date-generator.js +11 -1
- package/src/schedule/base/schedule.js +4 -0
- package/src/schedule/event-renderer/agenda-base.js +1 -1
- package/src/schedule/event-renderer/month.d.ts +1 -0
- package/src/schedule/event-renderer/month.js +37 -28
- package/src/schedule/event-renderer/timeline-view.js +2 -1
- package/src/schedule/event-renderer/year.js +3 -1
- package/src/schedule/exports/calendar-export.js +1 -1
- package/src/schedule/popups/event-window.js +4 -2
- package/src/schedule/renderer/month.d.ts +1 -0
- package/src/schedule/renderer/month.js +29 -12
- package/src/schedule/renderer/renderer.js +2 -1
- package/src/schedule/renderer/timeline-year.d.ts +2 -1
- package/src/schedule/renderer/timeline-year.js +49 -4
- package/src/schedule/renderer/vertical-view.js +2 -1
- package/src/schedule/renderer/year.js +20 -0
- package/styles/bootstrap-dark.css +10 -7
- package/styles/bootstrap.css +10 -7
- package/styles/bootstrap4.css +11 -8
- package/styles/bootstrap5-dark.css +20 -19
- package/styles/bootstrap5.css +20 -19
- package/styles/fabric-dark.css +10 -7
- package/styles/fabric.css +10 -7
- package/styles/fluent-dark.css +5102 -0
- package/styles/fluent-dark.scss +2 -0
- package/styles/fluent.css +5103 -0
- package/styles/fluent.scss +2 -0
- package/styles/highcontrast-light.css +10 -7
- package/styles/highcontrast.css +11 -8
- package/styles/material-dark.css +10 -7
- package/styles/material.css +10 -7
- package/styles/recurrence-editor/_fluent-dark-definition.scss +1 -0
- package/styles/recurrence-editor/fluent-dark.css +495 -0
- package/styles/recurrence-editor/fluent-dark.scss +3 -0
- package/styles/recurrence-editor/fluent.css +495 -0
- package/styles/recurrence-editor/fluent.scss +3 -0
- package/styles/schedule/_bootstrap4-definition.scss +1 -1
- package/styles/schedule/_bootstrap5-definition.scss +4 -4
- package/styles/schedule/_fluent-dark-definition.scss +1 -0
- package/styles/schedule/_fluent-definition.scss +10 -8
- package/styles/schedule/_highcontrast-definition.scss +1 -1
- package/styles/schedule/_layout.scss +55 -14
- package/styles/schedule/_tailwind-definition.scss +1 -0
- package/styles/schedule/_theme.scss +6 -9
- package/styles/schedule/bootstrap-dark.css +10 -7
- package/styles/schedule/bootstrap.css +10 -7
- package/styles/schedule/bootstrap4.css +11 -8
- package/styles/schedule/bootstrap5-dark.css +20 -19
- package/styles/schedule/bootstrap5.css +20 -19
- package/styles/schedule/fabric-dark.css +10 -7
- package/styles/schedule/fabric.css +10 -7
- package/styles/schedule/fluent-dark.css +4606 -0
- package/styles/schedule/fluent-dark.scss +4 -0
- package/styles/schedule/fluent.css +4607 -0
- package/styles/schedule/fluent.scss +5 -0
- package/styles/schedule/highcontrast-light.css +10 -7
- package/styles/schedule/highcontrast.css +11 -8
- package/styles/schedule/icons/_fluent-dark.scss +1 -0
- package/styles/schedule/icons/_fluent.scss +51 -50
- package/styles/schedule/icons/_tailwind.scss +51 -50
- package/styles/schedule/material-dark.css +10 -7
- package/styles/schedule/material.css +10 -7
- package/styles/schedule/tailwind-dark.css +65 -60
- package/styles/schedule/tailwind.css +65 -60
- package/styles/tailwind-dark.css +65 -60
- package/styles/tailwind.css +65 -60
package/dist/global/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version :
|
|
3
|
+
* version : 20.1.50
|
|
4
4
|
* Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
|
|
5
5
|
* Use of this code is subject to the terms of our license.
|
|
6
6
|
* A copy of the current license can be obtained at any time by e-mailing
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_from": "@syncfusion/ej2-schedule@*",
|
|
3
|
-
"_id": "@syncfusion/ej2-schedule@
|
|
3
|
+
"_id": "@syncfusion/ej2-schedule@20.1.48",
|
|
4
4
|
"_inBundle": false,
|
|
5
|
-
"_integrity": "sha512-
|
|
5
|
+
"_integrity": "sha512-wml4CbZKHSN6nP2vy10+Dkl+n/2mSMM7fO3MtYdz3aR3UyT5+VB4eV70SydGiLAJ2NybfdtpsNW9Sb8C/vc7eg==",
|
|
6
6
|
"_location": "/@syncfusion/ej2-schedule",
|
|
7
7
|
"_phantomChildren": {},
|
|
8
8
|
"_requested": {
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"/@syncfusion/ej2-react-schedule",
|
|
24
24
|
"/@syncfusion/ej2-vue-schedule"
|
|
25
25
|
],
|
|
26
|
-
"_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-schedule/-/ej2-schedule-
|
|
27
|
-
"_shasum": "
|
|
26
|
+
"_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-schedule/-/ej2-schedule-20.1.48.tgz",
|
|
27
|
+
"_shasum": "15229da0441476295c908b95b04a289d5fd2eec4",
|
|
28
28
|
"_spec": "@syncfusion/ej2-schedule@*",
|
|
29
29
|
"_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
|
|
30
30
|
"author": {
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
},
|
|
36
36
|
"bundleDependencies": false,
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@syncfusion/ej2-base": "~
|
|
39
|
-
"@syncfusion/ej2-buttons": "~
|
|
40
|
-
"@syncfusion/ej2-calendars": "~
|
|
41
|
-
"@syncfusion/ej2-data": "~
|
|
42
|
-
"@syncfusion/ej2-dropdowns": "~
|
|
43
|
-
"@syncfusion/ej2-excel-export": "~
|
|
44
|
-
"@syncfusion/ej2-inputs": "~
|
|
45
|
-
"@syncfusion/ej2-lists": "~
|
|
46
|
-
"@syncfusion/ej2-navigations": "~
|
|
47
|
-
"@syncfusion/ej2-popups": "~
|
|
38
|
+
"@syncfusion/ej2-base": "~20.1.50",
|
|
39
|
+
"@syncfusion/ej2-buttons": "~20.1.50",
|
|
40
|
+
"@syncfusion/ej2-calendars": "~20.1.47",
|
|
41
|
+
"@syncfusion/ej2-data": "~20.1.47",
|
|
42
|
+
"@syncfusion/ej2-dropdowns": "~20.1.50",
|
|
43
|
+
"@syncfusion/ej2-excel-export": "~20.1.48",
|
|
44
|
+
"@syncfusion/ej2-inputs": "~20.1.48",
|
|
45
|
+
"@syncfusion/ej2-lists": "~20.1.47",
|
|
46
|
+
"@syncfusion/ej2-navigations": "~20.1.48",
|
|
47
|
+
"@syncfusion/ej2-popups": "~20.1.47"
|
|
48
48
|
},
|
|
49
49
|
"deprecated": false,
|
|
50
50
|
"description": "Flexible scheduling library with more built-in features and enhanced customization options similar to outlook and google calendar, allowing the users to plan and manage their appointments with efficient data-binding support.",
|
|
@@ -81,6 +81,6 @@
|
|
|
81
81
|
"url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
|
|
82
82
|
},
|
|
83
83
|
"typings": "index.d.ts",
|
|
84
|
-
"version": "
|
|
84
|
+
"version": "20.1.50",
|
|
85
85
|
"sideEffects": false
|
|
86
86
|
}
|
|
@@ -145,6 +145,10 @@ export function generate(startDate, rule, excludeDate, startDayOfWeek, maximumCo
|
|
|
145
145
|
}
|
|
146
146
|
maxOccurrence = maximumCount;
|
|
147
147
|
setFirstDayOfWeek(DAYINDEX[startDayOfWeek]);
|
|
148
|
+
if (ruleObject.until) {
|
|
149
|
+
var end = resetTime(ruleObject.until);
|
|
150
|
+
ruleObject.until = new Date(end.getFullYear(), end.getMonth(), end.getDate(), 23, 59, 59);
|
|
151
|
+
}
|
|
148
152
|
switch (ruleObject.freq) {
|
|
149
153
|
case 'DAILY':
|
|
150
154
|
dailyType(modifiedDate, ruleObject.until, data, ruleObject);
|
|
@@ -241,6 +245,9 @@ function dailyType(startDate, endDate, data, ruleObject) {
|
|
|
241
245
|
}
|
|
242
246
|
}
|
|
243
247
|
tempDate.setDate(tempDate.getDate() + interval);
|
|
248
|
+
if (tempDate.getHours() !== startDate.getHours()) {
|
|
249
|
+
tempDate.setHours(startDate.getHours());
|
|
250
|
+
}
|
|
244
251
|
}
|
|
245
252
|
}
|
|
246
253
|
/**
|
|
@@ -285,6 +292,9 @@ function weeklyType(startDate, endDate, data, ruleObject) {
|
|
|
285
292
|
break;
|
|
286
293
|
}
|
|
287
294
|
tempDate.setDate(tempDate.getDate() + 1);
|
|
295
|
+
if (tempDate.getHours() !== startDate.getHours()) {
|
|
296
|
+
tempDate.setHours(startDate.getHours());
|
|
297
|
+
}
|
|
288
298
|
compareTempDate = new Date(tempDate.getTime());
|
|
289
299
|
compareTempDate = resetTime(compareTempDate);
|
|
290
300
|
}
|
|
@@ -1167,7 +1177,7 @@ function insertDateCollection(state, startDate, endDate, data, ruleObject, dayDa
|
|
|
1167
1177
|
function weekCount(year, startDayOfWeek, monthCollection, week, ruleObject) {
|
|
1168
1178
|
var firstDayOfWeek = startDayOfWeek || 0;
|
|
1169
1179
|
var firstOfMonth = new Date(year, ruleObject.month[0] - 1, 1);
|
|
1170
|
-
var lastOfMonth = new Date(year, ruleObject.month[0]
|
|
1180
|
+
var lastOfMonth = new Date(year, ruleObject.month[0], 0);
|
|
1171
1181
|
var numberOfDaysInMonth = lastOfMonth.getDate();
|
|
1172
1182
|
var firstWeekDay = (firstOfMonth.getDay() - firstDayOfWeek + 7) % 7;
|
|
1173
1183
|
var used = firstWeekDay + numberOfDaysInMonth;
|
|
@@ -517,6 +517,7 @@ var Schedule = /** @class */ (function (_super) {
|
|
|
517
517
|
};
|
|
518
518
|
_this.trigger(events.navigating, navArgs, function (navigationArgs) {
|
|
519
519
|
if (!navigationArgs.cancel) {
|
|
520
|
+
_this.uiStateValues.isInitial = ['TimelineMonth', 'TimelineYear', 'Year'].indexOf(view) > -1 ? true : _this.uiStateValues.isInitial;
|
|
520
521
|
_this.viewIndex = navigationArgs.viewIndex;
|
|
521
522
|
_this.setProperties({ currentView: view }, true);
|
|
522
523
|
if (_this.headerModule) {
|
|
@@ -1141,6 +1142,9 @@ var Schedule = /** @class */ (function (_super) {
|
|
|
1141
1142
|
if (document.querySelectorAll(template).length) {
|
|
1142
1143
|
return compile(document.querySelector(template).innerHTML.trim());
|
|
1143
1144
|
}
|
|
1145
|
+
else {
|
|
1146
|
+
return compile(template);
|
|
1147
|
+
}
|
|
1144
1148
|
}
|
|
1145
1149
|
catch (error) {
|
|
1146
1150
|
return compile(template);
|
|
@@ -34,7 +34,7 @@ var AgendaBase = /** @class */ (function (_super) {
|
|
|
34
34
|
moduleName: 'agenda',
|
|
35
35
|
listClass: this.parent.activeView.viewClass,
|
|
36
36
|
itemClass: this.parent.activeView.viewClass,
|
|
37
|
-
template:
|
|
37
|
+
template: "<div class=\"" + cls.AGENDA_NO_EVENT_CLASS + "\">" + this.parent.localeObj.getConstant('noEvents') + "</div>"
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
@@ -50,6 +50,7 @@ export declare class MonthEvent extends EventBase {
|
|
|
50
50
|
getEventData(event: Record<string, any>): Record<string, any>;
|
|
51
51
|
renderElement(cellTd: HTMLElement | Element, element: HTMLElement, isAppointment?: boolean): void;
|
|
52
52
|
getMoreIndicatorElement(count: number, startDate: Date, endDate: Date): HTMLElement;
|
|
53
|
+
private getMoreIndicatorText;
|
|
53
54
|
removeHeightProperty(selector: string): void;
|
|
54
55
|
setMaxEventHeight(event: HTMLElement, cell: HTMLElement): void;
|
|
55
56
|
destroy(): void;
|
|
@@ -47,7 +47,7 @@ var MonthEvent = /** @class */ (function (_super) {
|
|
|
47
47
|
appElement = (this.parent.currentView === 'Month') ? appElement : [appElement[0]];
|
|
48
48
|
for (var _i = 0, appElement_1 = appElement; _i < appElement_1.length; _i++) {
|
|
49
49
|
var wrap = appElement_1[_i];
|
|
50
|
-
if (
|
|
50
|
+
if (wrap.parentElement && wrap.parentElement.parentNode) {
|
|
51
51
|
remove(wrap.parentElement);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -178,12 +178,19 @@ var MonthEvent = /** @class */ (function (_super) {
|
|
|
178
178
|
var filteredDates = this.getRenderedDates(dateRender);
|
|
179
179
|
this.getSlotDates(workDays || this.parent.activeViewOptions.workDays);
|
|
180
180
|
this.processBlockEvents(blockList, resIndex, resData);
|
|
181
|
+
var events = [];
|
|
181
182
|
for (var _i = 0, eventsList_1 = eventsList; _i < eventsList_1.length; _i++) {
|
|
182
183
|
var event_1 = eventsList_1[_i];
|
|
183
184
|
if (this.parent.resourceBase && !resData) {
|
|
184
185
|
this.cssClass = this.parent.resourceBase.getCssClass(event_1);
|
|
185
186
|
}
|
|
186
|
-
|
|
187
|
+
events = events.concat(this.splitEvent(event_1, filteredDates || this.dateRender));
|
|
188
|
+
}
|
|
189
|
+
for (var level = 0; level < this.slots.length; level++) {
|
|
190
|
+
this.renderedEvents = [];
|
|
191
|
+
var slot = this.slots[level];
|
|
192
|
+
var endDate = util.addDays(new Date(slot[slot.length - 1]), 1);
|
|
193
|
+
var spannedEvents = this.filterEvents(new Date(slot[0]), endDate, events);
|
|
187
194
|
for (var _a = 0, spannedEvents_1 = spannedEvents; _a < spannedEvents_1.length; _a++) {
|
|
188
195
|
var event_2 = spannedEvents_1[_a];
|
|
189
196
|
if (this.maxHeight) {
|
|
@@ -488,21 +495,17 @@ var MonthEvent = /** @class */ (function (_super) {
|
|
|
488
495
|
if (day < 0) {
|
|
489
496
|
return;
|
|
490
497
|
}
|
|
491
|
-
if ((startTime.getTime() < this.parent.minDate.getTime()) || (endTime.getTime() > this.parent.maxDate.getTime())) {
|
|
492
|
-
return;
|
|
493
|
-
}
|
|
494
498
|
var overlapCount = this.getIndex(startTime);
|
|
495
499
|
event.Index = overlapCount;
|
|
496
|
-
var appHeight = this.eventHeight;
|
|
497
|
-
this.renderedEvents.push(extend({}, event, null, true));
|
|
498
500
|
var diffInDays = event.data.count;
|
|
499
501
|
if (startTime.getTime() <= endTime.getTime()) {
|
|
500
502
|
var appWidth = (diffInDays * this.cellWidth) - 5;
|
|
501
503
|
var cellTd = this.workCells[day];
|
|
502
|
-
var appTop = (overlapCount * (
|
|
503
|
-
var height = this.monthHeaderHeight + ((overlapCount + 1) * (
|
|
504
|
+
var appTop = (overlapCount * (this.eventHeight + EVENT_GAP));
|
|
505
|
+
var height = this.monthHeaderHeight + ((overlapCount + 1) * (this.eventHeight + EVENT_GAP)) + this.moreIndicatorHeight;
|
|
504
506
|
var enableAppRender = this.maxOrIndicator ? overlapCount < 1 ? true : false : this.cellHeight > height;
|
|
505
507
|
if (this.parent.rowAutoHeight || enableAppRender) {
|
|
508
|
+
this.renderedEvents.push(extend({}, event, null, true));
|
|
506
509
|
var appointmentElement = void 0;
|
|
507
510
|
if (this.inlineValue) {
|
|
508
511
|
appointmentElement = this.parent.inlineModule.createInlineAppointmentElement();
|
|
@@ -521,24 +524,26 @@ var MonthEvent = /** @class */ (function (_super) {
|
|
|
521
524
|
}
|
|
522
525
|
else {
|
|
523
526
|
for (var i = 0; i < diffInDays; i++) {
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
527
|
+
if (this.workCells[day + i]) {
|
|
528
|
+
var indicator = this.workCells[day + i].querySelector('.' + cls.MORE_INDICATOR_CLASS);
|
|
529
|
+
if (indicator) {
|
|
530
|
+
var count = parseInt(indicator.getAttribute('data-count'), 10) + 1;
|
|
531
|
+
indicator.setAttribute('data-count', count.toString());
|
|
532
|
+
indicator.innerHTML = this.getMoreIndicatorText(count);
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
var startDate = new Date(this.dateRender[day + i].getTime());
|
|
536
|
+
var endDate = util.addDays(this.dateRender[day + i], 1);
|
|
537
|
+
var groupIndex = this.workCells[day + i].getAttribute('data-group-index');
|
|
538
|
+
var moreIndicatorElement = this.getMoreIndicatorElement(1, startDate, endDate);
|
|
539
|
+
if (!isNullOrUndefined(groupIndex)) {
|
|
540
|
+
moreIndicatorElement.setAttribute('data-group-index', groupIndex);
|
|
541
|
+
}
|
|
542
|
+
moreIndicatorElement.style.top = (this.cellHeight - this.monthHeaderHeight - this.moreIndicatorHeight) + 'px';
|
|
543
|
+
moreIndicatorElement.style.width = this.cellWidth - 2 + 'px';
|
|
544
|
+
this.renderElement(this.workCells[day + i], moreIndicatorElement);
|
|
545
|
+
EventHandler.add(moreIndicatorElement, 'click', this.moreIndicatorClick, this);
|
|
537
546
|
}
|
|
538
|
-
moreIndicatorElement.style.top = appArea + 'px';
|
|
539
|
-
moreIndicatorElement.style.width = this.cellWidth - 2 + 'px';
|
|
540
|
-
this.renderElement(cellTd_1, moreIndicatorElement);
|
|
541
|
-
EventHandler.add(moreIndicatorElement, 'click', this.moreIndicatorClick, this);
|
|
542
547
|
}
|
|
543
548
|
}
|
|
544
549
|
}
|
|
@@ -575,9 +580,9 @@ var MonthEvent = /** @class */ (function (_super) {
|
|
|
575
580
|
};
|
|
576
581
|
MonthEvent.prototype.getOverlapEvents = function (date, appointments) {
|
|
577
582
|
var appointmentsList = [];
|
|
583
|
+
var dateTime = util.resetTime(date).getTime();
|
|
578
584
|
for (var _i = 0, appointments_1 = appointments; _i < appointments_1.length; _i++) {
|
|
579
585
|
var app = appointments_1[_i];
|
|
580
|
-
var dateTime = util.resetTime(date).getTime();
|
|
581
586
|
if ((util.resetTime(app[this.fields.startTime]).getTime() <= dateTime) &&
|
|
582
587
|
(util.resetTime(app[this.fields.endTime]).getTime() >= dateTime)) {
|
|
583
588
|
appointmentsList.push(app);
|
|
@@ -661,9 +666,10 @@ var MonthEvent = /** @class */ (function (_super) {
|
|
|
661
666
|
MonthEvent.prototype.getMoreIndicatorElement = function (count, startDate, endDate) {
|
|
662
667
|
var moreIndicatorElement = createElement('div', {
|
|
663
668
|
className: cls.MORE_INDICATOR_CLASS,
|
|
664
|
-
innerHTML:
|
|
669
|
+
innerHTML: this.getMoreIndicatorText(count),
|
|
665
670
|
attrs: {
|
|
666
671
|
'tabindex': '0',
|
|
672
|
+
'data-count': count.toString(),
|
|
667
673
|
'data-start-date': startDate.getTime().toString(),
|
|
668
674
|
'data-end-date': endDate.getTime().toString(),
|
|
669
675
|
'role': 'list'
|
|
@@ -671,6 +677,9 @@ var MonthEvent = /** @class */ (function (_super) {
|
|
|
671
677
|
});
|
|
672
678
|
return moreIndicatorElement;
|
|
673
679
|
};
|
|
680
|
+
MonthEvent.prototype.getMoreIndicatorText = function (count) {
|
|
681
|
+
return '+' + this.parent.globalize.formatNumber(count) + ' ' + (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more'));
|
|
682
|
+
};
|
|
674
683
|
MonthEvent.prototype.removeHeightProperty = function (selector) {
|
|
675
684
|
var rows = [].slice.call(this.element.querySelectorAll('.' + selector + ' tbody tr'));
|
|
676
685
|
for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {
|
|
@@ -276,7 +276,8 @@ var TimelineEvent = /** @class */ (function (_super) {
|
|
|
276
276
|
}
|
|
277
277
|
};
|
|
278
278
|
TimelineEvent.prototype.updateCellHeight = function (cell, height) {
|
|
279
|
-
|
|
279
|
+
var cellHeight = cell.style.height === '' ? this.cellHeight : parseInt(cell.style.height, 10);
|
|
280
|
+
if (height > cellHeight) {
|
|
280
281
|
setStyleAttribute(cell, { 'height': height + 'px' });
|
|
281
282
|
if (this.parent.activeViewOptions.group.resources.length > 0) {
|
|
282
283
|
var resourceCell = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_TABLE_CLASS + ' ' + 'tbody td[data-group-index="' +
|
|
@@ -224,7 +224,9 @@ var YearEvent = /** @class */ (function (_super) {
|
|
|
224
224
|
this.eventHeight = util.getElementHeightFromClass(eventTable, cls.APPOINTMENT_CLASS);
|
|
225
225
|
var wrapperCollection = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));
|
|
226
226
|
var resources = this.parent.uiStateValues.isGroupAdaptive ?
|
|
227
|
-
[this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :
|
|
227
|
+
[this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :
|
|
228
|
+
this.parent.activeViewOptions.allowVirtualScrolling ? this.parent.resourceBase.renderedResources :
|
|
229
|
+
this.parent.resourceBase.lastResourceLevel;
|
|
228
230
|
var months = this.getMonths();
|
|
229
231
|
if (this.parent.activeViewOptions.orientation === 'Horizontal') {
|
|
230
232
|
for (var month = 0; month < months.length; month++) {
|
|
@@ -23,7 +23,7 @@ var ICalendarExport = /** @class */ (function () {
|
|
|
23
23
|
var editedExDate = [];
|
|
24
24
|
if (eventObj[fields.recurrenceID]) {
|
|
25
25
|
var filter = _this.filterEvents(filterCollection, fields.id, eventObj[fields.recurrenceID]);
|
|
26
|
-
uId = filter[0].UID;
|
|
26
|
+
uId = filter.length > 0 ? filter[0].UID : uId;
|
|
27
27
|
}
|
|
28
28
|
if (!eventObj[fields.recurrenceID] && eventObj[fields.recurrenceRule] && eventObj[fields.recurrenceException]) {
|
|
29
29
|
var exDate = (eventObj[fields.recurrenceException]).split(',');
|
|
@@ -656,7 +656,8 @@ var EventWindow = /** @class */ (function () {
|
|
|
656
656
|
return labelText;
|
|
657
657
|
};
|
|
658
658
|
EventWindow.prototype.onChange = function (args) {
|
|
659
|
-
var
|
|
659
|
+
var targetSelector = "." + cls.EVENT_WINDOW_ALL_DAY_CLASS + ",." + cls.TIME_ZONE_CLASS + ",." + cls.EVENT_WINDOW_REPEAT_CLASS;
|
|
660
|
+
var target = closest(args.event.target, targetSelector);
|
|
660
661
|
if (target.classList.contains(cls.EVENT_WINDOW_ALL_DAY_CLASS)) {
|
|
661
662
|
this.onAllDayChange(args.checked);
|
|
662
663
|
}
|
|
@@ -822,7 +823,8 @@ var EventWindow = /** @class */ (function () {
|
|
|
822
823
|
};
|
|
823
824
|
EventWindow.prototype.showDetails = function (eventData) {
|
|
824
825
|
var eventObj = extend({}, eventData, null, true);
|
|
825
|
-
if (
|
|
826
|
+
if ((!this.cellClickAction || this.cellClickAction && !isNullOrUndefined(this.parent.editorTemplate)) &&
|
|
827
|
+
eventObj[this.fields.endTime].getHours() === 0 && eventObj[this.fields.endTime].getMinutes() === 0) {
|
|
826
828
|
this.trimAllDay(eventObj);
|
|
827
829
|
}
|
|
828
830
|
this.eventData = eventObj;
|
|
@@ -19,6 +19,7 @@ export declare class Month extends ViewBase implements IRenderer {
|
|
|
19
19
|
scrollLeftPanel(target: HTMLElement): void;
|
|
20
20
|
getLeftPanelElement(): HTMLElement;
|
|
21
21
|
onScrollUIUpdate(args: NotifyEventArgs): void;
|
|
22
|
+
private scrollToSelectedDate;
|
|
22
23
|
setContentHeight(content: HTMLElement, leftPanelElement: HTMLElement, height: number): void;
|
|
23
24
|
generateColumnLevels(): TdData[][];
|
|
24
25
|
getDateSlots(renderDates: Date[], workDays: number[]): TdData[];
|
|
@@ -57,6 +57,8 @@ var Month = /** @class */ (function (_super) {
|
|
|
57
57
|
this.parent.notify(event.virtualScroll, e);
|
|
58
58
|
this.scrollTopPanel(e.target);
|
|
59
59
|
this.scrollLeftPanel(e.target);
|
|
60
|
+
this.parent.uiStateValues.top = e.target.scrollTop;
|
|
61
|
+
this.parent.uiStateValues.left = e.target.scrollLeft;
|
|
60
62
|
this.setPersistence();
|
|
61
63
|
};
|
|
62
64
|
Month.prototype.scrollLeftPanel = function (target) {
|
|
@@ -89,26 +91,41 @@ var Month = /** @class */ (function (_super) {
|
|
|
89
91
|
header.style[args.cssProperties.padding] = '';
|
|
90
92
|
}
|
|
91
93
|
this.setColWidth(content);
|
|
92
|
-
if (args.scrollPosition) {
|
|
94
|
+
if (args.scrollPosition || !args.isPreventScrollUpdate && this.parent.currentView === 'TimelineMonth') {
|
|
95
|
+
var top_1 = this.parent.currentView === 'TimelineMonth' ? this.parent.uiStateValues.top : args.scrollPosition.top;
|
|
93
96
|
if (leftPanel) {
|
|
94
|
-
leftPanel.scrollTop =
|
|
97
|
+
leftPanel.scrollTop = top_1;
|
|
95
98
|
}
|
|
96
|
-
content.scrollTop =
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
var headerCell = this.element.querySelector('.' + cls.HEADER_CELLS_CLASS + '[data-date="'
|
|
101
|
-
+ this.parent.selectedDate.getTime().toString() + '"]');
|
|
102
|
-
if (!isNullOrUndefined(headerCell)) {
|
|
103
|
-
content.scrollLeft = !this.parent.enableRtl ?
|
|
104
|
-
headerCell.offsetLeft : -(this.parent.getContentTable().offsetWidth - headerCell.offsetLeft - headerCell.offsetWidth);
|
|
99
|
+
content.scrollTop = top_1;
|
|
100
|
+
if (this.parent.uiStateValues.isInitial) {
|
|
101
|
+
this.scrollToSelectedDate();
|
|
102
|
+
this.parent.uiStateValues.isInitial = false;
|
|
105
103
|
}
|
|
106
104
|
else {
|
|
107
|
-
content.scrollLeft =
|
|
105
|
+
content.scrollLeft = this.parent.currentView === 'TimelineMonth' ? this.parent.uiStateValues.left :
|
|
106
|
+
args.scrollPosition.left;
|
|
108
107
|
}
|
|
109
108
|
}
|
|
109
|
+
else {
|
|
110
|
+
this.scrollToSelectedDate();
|
|
111
|
+
}
|
|
110
112
|
this.retainScrollPosition();
|
|
111
113
|
};
|
|
114
|
+
Month.prototype.scrollToSelectedDate = function () {
|
|
115
|
+
var headerCell = this.element.querySelector('.' + cls.HEADER_CELLS_CLASS + '[data-date="'
|
|
116
|
+
+ this.parent.selectedDate.getTime().toString() + '"]');
|
|
117
|
+
var content = this.getContentAreaElement();
|
|
118
|
+
if (!isNullOrUndefined(headerCell)) {
|
|
119
|
+
content.scrollLeft = !this.parent.enableRtl ?
|
|
120
|
+
headerCell.offsetLeft : -(this.parent.getContentTable().offsetWidth - headerCell.offsetLeft - headerCell.offsetWidth);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
content.scrollLeft = 0;
|
|
124
|
+
}
|
|
125
|
+
if (content.scrollLeft === 0 && this.parent.uiStateValues.isInitial) {
|
|
126
|
+
this.parent.uiStateValues.left = 0;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
112
129
|
Month.prototype.setContentHeight = function (content, leftPanelElement, height) {
|
|
113
130
|
content.style.height = 'auto';
|
|
114
131
|
if (this.parent.currentView === 'Month') {
|
|
@@ -91,7 +91,8 @@ var Render = /** @class */ (function () {
|
|
|
91
91
|
this.parent.virtualScrollModule.destroy();
|
|
92
92
|
this.parent.virtualScrollModule = null;
|
|
93
93
|
}
|
|
94
|
-
if (this.parent.currentView.indexOf('Timeline') !== -1 && this.parent.currentView.indexOf('Year') === -1
|
|
94
|
+
if (this.parent.currentView.indexOf('Timeline') !== -1 && (this.parent.currentView.indexOf('Year') === -1 ||
|
|
95
|
+
(this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.orientation === 'Vertical'))
|
|
95
96
|
&& this.parent.activeViewOptions.allowVirtualScrolling
|
|
96
97
|
&& this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
97
98
|
this.parent.virtualScrollModule = new VirtualScroll(this.parent);
|
|
@@ -12,7 +12,8 @@ export declare class TimelineYear extends Year {
|
|
|
12
12
|
private renderResourceHeader;
|
|
13
13
|
renderContent(contentWrapper: HTMLElement): void;
|
|
14
14
|
private renderDefaultContent;
|
|
15
|
-
|
|
15
|
+
getContentRows(): Element[];
|
|
16
|
+
renderResourceContent(wrapper: HTMLElement, monthBody: HTMLTableSectionElement, contentBody: HTMLTableSectionElement): void;
|
|
16
17
|
private renderDayMonthHeaderTemplate;
|
|
17
18
|
private renderCellTemplate;
|
|
18
19
|
scrollToDate(scrollDate: Date): void;
|
|
@@ -149,7 +149,7 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
149
149
|
!this.parent.uiStateValues.isGroupAdaptive) {
|
|
150
150
|
tdCollection.push(firstTd);
|
|
151
151
|
firstTd.appendChild(this.parent.resourceBase.createResourceColumn());
|
|
152
|
-
this.rowCount = this.parent.resourceBase.
|
|
152
|
+
this.rowCount = this.parent.resourceBase.renderedResources.length;
|
|
153
153
|
}
|
|
154
154
|
else {
|
|
155
155
|
tdCollection.push(firstTd);
|
|
@@ -166,6 +166,9 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
166
166
|
content.appendChild(contentTable);
|
|
167
167
|
var eventWrapper = createElement('div', { className: cls.EVENT_TABLE_CLASS });
|
|
168
168
|
content.appendChild(eventWrapper);
|
|
169
|
+
if (this.parent.virtualScrollModule) {
|
|
170
|
+
this.parent.virtualScrollModule.renderVirtualTrack(content);
|
|
171
|
+
}
|
|
169
172
|
var contentTBody = contentTable.querySelector('tbody');
|
|
170
173
|
if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
171
174
|
if (this.parent.rowAutoHeight) {
|
|
@@ -283,6 +286,47 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
283
286
|
}
|
|
284
287
|
}
|
|
285
288
|
};
|
|
289
|
+
TimelineYear.prototype.getContentRows = function () {
|
|
290
|
+
var tRow = [];
|
|
291
|
+
var monthCells = this.getMonths();
|
|
292
|
+
for (var row = 0; row < this.parent.resourceBase.renderedResources.length; row++) {
|
|
293
|
+
var tr = createElement('tr', { attrs: { 'role': 'row' } });
|
|
294
|
+
tRow.push(tr);
|
|
295
|
+
var resData = void 0;
|
|
296
|
+
if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
297
|
+
resData = this.parent.resourceBase.renderedResources[row];
|
|
298
|
+
}
|
|
299
|
+
var monthDate = new Date(this.parent.selectedDate.getFullYear(), monthCells[row], 1);
|
|
300
|
+
var date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
|
|
301
|
+
for (var month = 0; month < this.columnCount; month++) {
|
|
302
|
+
var classList = [];
|
|
303
|
+
var groupIndex = resData.groupIndex;
|
|
304
|
+
classList = classList.concat(resData.className);
|
|
305
|
+
if (classList.indexOf(cls.RESOURCE_PARENT_CLASS) > -1) {
|
|
306
|
+
classList.push(cls.RESOURCE_GROUP_CELLS_CLASS);
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
classList.push(cls.WORKDAY_CLASS);
|
|
310
|
+
}
|
|
311
|
+
monthDate = new Date(this.parent.selectedDate.getFullYear(), monthCells[month], 1);
|
|
312
|
+
date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
|
|
313
|
+
var tdELe = createElement('td', {
|
|
314
|
+
className: cls.WORK_CELLS_CLASS,
|
|
315
|
+
attrs: {
|
|
316
|
+
'role': 'gridcell', 'aria-selected': 'false',
|
|
317
|
+
'data-date': date.getTime().toString()
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
addClass([tdELe], classList);
|
|
321
|
+
tdELe.setAttribute('data-group-index', groupIndex.toString());
|
|
322
|
+
this.renderCellTemplate({ date: date, type: 'resourceGroupCells', groupIndex: groupIndex }, tdELe);
|
|
323
|
+
this.wireEvents(tdELe, 'cell');
|
|
324
|
+
this.parent.trigger(event.renderCell, { elementType: 'resourceGroupCells', element: tdELe, date: date });
|
|
325
|
+
tr.appendChild(tdELe);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return tRow;
|
|
329
|
+
};
|
|
286
330
|
TimelineYear.prototype.renderResourceContent = function (wrapper, monthBody, contentBody) {
|
|
287
331
|
var months = this.getMonths();
|
|
288
332
|
for (var row = 0; row < this.rowCount; row++) {
|
|
@@ -290,8 +334,8 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
290
334
|
var tr = createElement('tr', { attrs: { 'role': 'row' } });
|
|
291
335
|
contentBody.appendChild(tr);
|
|
292
336
|
var resData = void 0;
|
|
293
|
-
if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
294
|
-
resData = this.parent.resourceBase.
|
|
337
|
+
if (this.parent.activeViewOptions.orientation === 'Vertical' && this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
338
|
+
resData = this.parent.resourceBase.renderedResources[row];
|
|
295
339
|
}
|
|
296
340
|
var monthDate = new Date(this.parent.selectedDate.getFullYear(), months[row], 1);
|
|
297
341
|
var date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
|
|
@@ -312,8 +356,9 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
312
356
|
}
|
|
313
357
|
for (var month = 0; month < this.columnCount; month++) {
|
|
314
358
|
var classList = [];
|
|
315
|
-
var groupIndex =
|
|
359
|
+
var groupIndex = void 0;
|
|
316
360
|
if (this.parent.activeViewOptions.orientation === 'Vertical') {
|
|
361
|
+
groupIndex = resData.groupIndex;
|
|
317
362
|
classList = classList.concat(resData.className);
|
|
318
363
|
if (classList.indexOf(cls.RESOURCE_PARENT_CLASS) > -1) {
|
|
319
364
|
classList.push(cls.RESOURCE_GROUP_CELLS_CLASS);
|
|
@@ -726,8 +726,9 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
726
726
|
var msStartHour = startHour.getTime();
|
|
727
727
|
var msEndHour = endHour.getTime();
|
|
728
728
|
if (msStartHour !== msEndHour) {
|
|
729
|
+
var duration = this.parent.activeViewOptions.timeScale.interval / this.parent.activeViewOptions.timeScale.slotCount;
|
|
729
730
|
length = (Math.abs(msEndHour - msStartHour) / msInterval) - ((new Date(msEndHour).getTimezoneOffset()
|
|
730
|
-
- new Date(msStartHour).getTimezoneOffset()) /
|
|
731
|
+
- new Date(msStartHour).getTimezoneOffset()) / duration);
|
|
731
732
|
}
|
|
732
733
|
if (!this.parent.activeViewOptions.timeScale.enable) {
|
|
733
734
|
length = 1;
|
|
@@ -41,6 +41,9 @@ var Year = /** @class */ (function (_super) {
|
|
|
41
41
|
var viewTypeClass = this.parent.activeViewOptions.orientation === 'Horizontal' ? 'e-horizontal' : 'e-vertical';
|
|
42
42
|
addClass([this.element], [this.viewClass, viewTypeClass, className]);
|
|
43
43
|
this.renderPanel(className);
|
|
44
|
+
if (this.parent.activeViewOptions.allowVirtualScrolling) {
|
|
45
|
+
addClass([this.element], [cls.VIRTUAL_SCROLL_CLASS]);
|
|
46
|
+
}
|
|
44
47
|
var calendarTable = this.createTableLayout(cls.OUTER_TABLE_CLASS);
|
|
45
48
|
this.element.appendChild(calendarTable);
|
|
46
49
|
this.element.querySelector('table').setAttribute('role', 'presentation');
|
|
@@ -261,6 +264,7 @@ var Year = /** @class */ (function (_super) {
|
|
|
261
264
|
Year.prototype.onContentScroll = function (e) {
|
|
262
265
|
var target = e.target;
|
|
263
266
|
var headerWrapper = this.getDatesHeaderElement();
|
|
267
|
+
this.parent.notify(event.virtualScroll, e);
|
|
264
268
|
if (headerWrapper) {
|
|
265
269
|
headerWrapper.firstElementChild.scrollLeft = target.scrollLeft;
|
|
266
270
|
}
|
|
@@ -269,6 +273,10 @@ var Year = /** @class */ (function (_super) {
|
|
|
269
273
|
if (scrollTopElement) {
|
|
270
274
|
scrollTopElement.scrollTop = target.scrollTop;
|
|
271
275
|
}
|
|
276
|
+
if (!this.parent.isAdaptive) {
|
|
277
|
+
this.parent.uiStateValues.top = e.target.scrollTop;
|
|
278
|
+
}
|
|
279
|
+
this.parent.uiStateValues.left = e.target.scrollLeft;
|
|
272
280
|
this.setPersistence();
|
|
273
281
|
};
|
|
274
282
|
Year.prototype.onScrollUiUpdate = function (args) {
|
|
@@ -299,6 +307,18 @@ var Year = /** @class */ (function (_super) {
|
|
|
299
307
|
var isYScroll = contentWrapper.scrollWidth > contentWrapper.clientWidth;
|
|
300
308
|
leftPanelElement.style.height = formatUnit(height - (isYScroll ? 17 : 0));
|
|
301
309
|
}
|
|
310
|
+
if (!args.isPreventScrollUpdate) {
|
|
311
|
+
if (this.parent.uiStateValues.isInitial) {
|
|
312
|
+
this.parent.uiStateValues.isInitial = false;
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
if (leftPanelElement) {
|
|
316
|
+
leftPanelElement.scrollTop = this.parent.uiStateValues.top;
|
|
317
|
+
}
|
|
318
|
+
contentWrapper.scrollTop = this.parent.uiStateValues.top;
|
|
319
|
+
contentWrapper.scrollLeft = this.parent.uiStateValues.left;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
302
322
|
this.retainScrollPosition();
|
|
303
323
|
};
|
|
304
324
|
Year.prototype.getStartDate = function () {
|
|
@@ -1847,6 +1847,15 @@
|
|
|
1847
1847
|
text-decoration: underline;
|
|
1848
1848
|
}
|
|
1849
1849
|
|
|
1850
|
+
.e-schedule .e-timeline-year-view.e-virtual-mask .e-work-cells {
|
|
1851
|
+
background-color: rgba(0, 0, 0, 0.08);
|
|
1852
|
+
box-shadow: inset 0 0 0 8px #2a2a2a;
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1855
|
+
.e-schedule .e-timeline-year-view.e-virtual-mask .e-work-cells:hover {
|
|
1856
|
+
background-color: rgba(0, 0, 0, 0.08);
|
|
1857
|
+
}
|
|
1858
|
+
|
|
1850
1859
|
.e-schedule .e-timeline-year-view .e-event-table {
|
|
1851
1860
|
position: absolute;
|
|
1852
1861
|
top: 0;
|
|
@@ -2878,13 +2887,6 @@
|
|
|
2878
2887
|
min-width: 34px;
|
|
2879
2888
|
}
|
|
2880
2889
|
|
|
2881
|
-
.e-bigger .e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item button.e-btn.e-tbtn-txt .e-icons,
|
|
2882
|
-
.e-bigger .e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item .e-tbar-btn.e-btn.e-control.e-tbtn-txt .e-icons,
|
|
2883
|
-
.e-bigger.e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item button.e-btn.e-tbtn-txt .e-icons,
|
|
2884
|
-
.e-bigger.e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item .e-tbar-btn.e-btn.e-control.e-tbtn-txt .e-icons {
|
|
2885
|
-
padding: 0;
|
|
2886
|
-
}
|
|
2887
|
-
|
|
2888
2890
|
.e-bigger .e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item button.e-btn.e-tbtn-txt .e-icons.e-icon-right,
|
|
2889
2891
|
.e-bigger .e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item .e-tbar-btn.e-btn.e-control.e-tbtn-txt .e-icons.e-icon-right,
|
|
2890
2892
|
.e-bigger.e-schedule .e-schedule-toolbar .e-toolbar-items .e-toolbar-item button.e-btn.e-tbtn-txt .e-icons.e-icon-right,
|
|
@@ -4015,6 +4017,7 @@
|
|
|
4015
4017
|
|
|
4016
4018
|
.e-bigger .e-more-popup-wrapper .e-more-event-content,
|
|
4017
4019
|
.e-more-popup-wrapper .e-more-event-content {
|
|
4020
|
+
color: #f0f0f0;
|
|
4018
4021
|
height: calc(100% - 35px);
|
|
4019
4022
|
max-height: 150px;
|
|
4020
4023
|
overflow-y: auto;
|