@syncfusion/ej2-schedule 20.1.61 → 20.2.40
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 +31 -0
- 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 +257 -84
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +261 -83
- 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/helpers/e2e/index.js +9 -7
- package/helpers/e2e/recurrence-editor.js +41 -25
- package/helpers/e2e/schedule.js +44 -28
- package/package.json +15 -15
- package/src/recurrence-editor/recurrence-editor.js +4 -1
- package/src/schedule/actions/crud.d.ts +1 -0
- package/src/schedule/actions/crud.js +36 -9
- package/src/schedule/base/interface.d.ts +7 -1
- package/src/schedule/base/schedule.d.ts +8 -0
- package/src/schedule/base/schedule.js +75 -21
- package/src/schedule/event-renderer/agenda-base.js +6 -6
- package/src/schedule/event-renderer/event-base.d.ts +2 -0
- package/src/schedule/event-renderer/event-base.js +21 -5
- package/src/schedule/event-renderer/month.js +2 -3
- package/src/schedule/event-renderer/vertical-view.js +3 -3
- package/src/schedule/event-renderer/year.js +2 -2
- package/src/schedule/exports/calendar-export.d.ts +1 -0
- package/src/schedule/exports/calendar-export.js +6 -2
- package/src/schedule/exports/calendar-import.js +32 -18
- package/src/schedule/exports/excel-export.js +8 -4
- package/src/schedule/popups/event-window.js +3 -1
- package/src/schedule/popups/quick-popups.js +3 -3
- package/src/schedule/renderer/agenda.js +2 -2
- package/src/schedule/renderer/timeline-month.d.ts +1 -0
- package/src/schedule/renderer/timeline-month.js +9 -0
- package/src/schedule/renderer/timeline-view.d.ts +1 -0
- package/src/schedule/renderer/timeline-view.js +14 -0
- package/src/schedule/renderer/timeline-year.js +3 -0
- package/src/schedule/renderer/vertical-view.d.ts +1 -0
- package/src/schedule/renderer/vertical-view.js +21 -4
- package/src/schedule/renderer/view-base.d.ts +1 -0
- package/src/schedule/renderer/view-base.js +11 -0
- package/src/schedule/renderer/year.js +2 -1
- package/styles/bootstrap-dark.css +5 -1
- package/styles/bootstrap.css +5 -1
- package/styles/bootstrap4.css +5 -1
- package/styles/bootstrap5-dark.css +5 -1
- package/styles/bootstrap5.css +5 -1
- package/styles/fabric-dark.css +5 -1
- package/styles/fabric.css +5 -1
- package/styles/fluent-dark.css +20 -16
- package/styles/fluent.css +7 -3
- package/styles/highcontrast-light.css +5 -1
- package/styles/highcontrast.css +5 -1
- package/styles/material-dark.css +5 -1
- package/styles/material.css +5 -1
- package/styles/recurrence-editor/_fusionnew-definition.scss +15 -0
- package/styles/recurrence-editor/_material3-definition.scss +15 -0
- package/styles/schedule/_fluent-definition.scss +1 -1
- package/styles/schedule/_fusionnew-definition.scss +224 -0
- package/styles/schedule/_layout.scss +6 -1
- package/styles/schedule/_material3-definition.scss +224 -0
- package/styles/schedule/bootstrap-dark.css +5 -1
- package/styles/schedule/bootstrap.css +5 -1
- package/styles/schedule/bootstrap4.css +5 -1
- package/styles/schedule/bootstrap5-dark.css +5 -1
- package/styles/schedule/bootstrap5.css +5 -1
- package/styles/schedule/fabric-dark.css +5 -1
- package/styles/schedule/fabric.css +5 -1
- package/styles/schedule/fluent-dark.css +20 -16
- package/styles/schedule/fluent.css +7 -3
- package/styles/schedule/highcontrast-light.css +5 -1
- package/styles/schedule/highcontrast.css +5 -1
- package/styles/schedule/icons/_fusionnew.scss +232 -0
- package/styles/schedule/icons/_material3.scss +232 -0
- package/styles/schedule/material-dark.css +5 -1
- package/styles/schedule/material.css +5 -1
- package/styles/schedule/tailwind-dark.css +5 -1
- package/styles/schedule/tailwind.css +5 -1
- package/styles/tailwind-dark.css +5 -1
- package/styles/tailwind.css +5 -1
|
@@ -374,7 +374,7 @@ var MonthEvent = /** @class */ (function (_super) {
|
|
|
374
374
|
var attrs = {
|
|
375
375
|
'data-id': 'Appointment_' + record[this.fields.id],
|
|
376
376
|
'role': 'button', 'tabindex': '0',
|
|
377
|
-
'aria-
|
|
377
|
+
'aria-disabled': this.parent.eventBase.getReadonlyAttribute(record), 'aria-pressed': 'false', 'aria-grabbed': 'true',
|
|
378
378
|
'aria-label': this.parent.getAnnouncementString(newRecord, eventSubject)
|
|
379
379
|
};
|
|
380
380
|
if (!isCloneElement) {
|
|
@@ -669,8 +669,7 @@ var MonthEvent = /** @class */ (function (_super) {
|
|
|
669
669
|
'tabindex': '0',
|
|
670
670
|
'data-count': count.toString(),
|
|
671
671
|
'data-start-date': startDate.getTime().toString(),
|
|
672
|
-
'data-end-date': endDate.getTime().toString()
|
|
673
|
-
'role': 'list'
|
|
672
|
+
'data-end-date': endDate.getTime().toString()
|
|
674
673
|
}
|
|
675
674
|
});
|
|
676
675
|
return moreIndicatorElement;
|
|
@@ -282,8 +282,8 @@ var VerticalEvent = /** @class */ (function (_super) {
|
|
|
282
282
|
'data-guid': record.Guid,
|
|
283
283
|
'role': 'button',
|
|
284
284
|
'tabindex': '0',
|
|
285
|
-
'aria-
|
|
286
|
-
'aria-
|
|
285
|
+
'aria-disabled': this.parent.eventBase.getReadonlyAttribute(record),
|
|
286
|
+
'aria-pressed': 'false',
|
|
287
287
|
'aria-grabbed': 'true',
|
|
288
288
|
'aria-label': this.parent.getAnnouncementString(record)
|
|
289
289
|
}
|
|
@@ -378,7 +378,7 @@ var VerticalEvent = /** @class */ (function (_super) {
|
|
|
378
378
|
});
|
|
379
379
|
var moreIndicatorElement = createElement('div', {
|
|
380
380
|
className: cls.MORE_INDICATOR_CLASS,
|
|
381
|
-
attrs: { 'tabindex': '0', '
|
|
381
|
+
attrs: { 'tabindex': '0', 'data-index': index.toString(), 'data-count': '1' },
|
|
382
382
|
innerHTML: '+1 ' + (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more'))
|
|
383
383
|
});
|
|
384
384
|
innerCountWrap.appendChild(moreIndicatorElement);
|
|
@@ -84,7 +84,7 @@ var YearEvent = /** @class */ (function (_super) {
|
|
|
84
84
|
}
|
|
85
85
|
};
|
|
86
86
|
YearEvent.prototype.timelineYearViewEvents = function () {
|
|
87
|
-
var workCell = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);
|
|
87
|
+
var workCell = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS + ':not(.' + cls.OTHERMONTH_CLASS + ')');
|
|
88
88
|
this.cellWidth = workCell.offsetWidth;
|
|
89
89
|
this.cellHeader = util.getOuterHeight(workCell.querySelector('.' + cls.DATE_HEADER_CLASS));
|
|
90
90
|
var eventTable = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);
|
|
@@ -369,7 +369,7 @@ var YearEvent = /** @class */ (function (_super) {
|
|
|
369
369
|
'data-id': 'Appointment_' + record[this.fields.id],
|
|
370
370
|
'data-guid': record.Guid,
|
|
371
371
|
'role': 'button', 'tabindex': '0',
|
|
372
|
-
'aria-
|
|
372
|
+
'aria-disabled': this.parent.eventBase.getReadonlyAttribute(record), 'aria-pressed': 'false', 'aria-grabbed': 'true',
|
|
373
373
|
'aria-label': this.parent.getAnnouncementString(record)
|
|
374
374
|
}
|
|
375
375
|
});
|
|
@@ -6,6 +6,7 @@ export declare class ICalendarExport {
|
|
|
6
6
|
private parent;
|
|
7
7
|
constructor(parent: Schedule);
|
|
8
8
|
initializeCalendarExport(fileName: string, customData: Record<string, any>[]): void;
|
|
9
|
+
getCalendarString(fileName?: string, customData?: Record<string, any>[]): string;
|
|
9
10
|
private customFieldFilter;
|
|
10
11
|
private convertDateToString;
|
|
11
12
|
private download;
|
|
@@ -9,6 +9,10 @@ var ICalendarExport = /** @class */ (function () {
|
|
|
9
9
|
this.parent = parent;
|
|
10
10
|
}
|
|
11
11
|
ICalendarExport.prototype.initializeCalendarExport = function (fileName, customData) {
|
|
12
|
+
var icsString = this.getCalendarString(fileName, customData);
|
|
13
|
+
this.download(icsString, fileName);
|
|
14
|
+
};
|
|
15
|
+
ICalendarExport.prototype.getCalendarString = function (fileName, customData) {
|
|
12
16
|
var _this = this;
|
|
13
17
|
var eventsData = (customData) ? customData :
|
|
14
18
|
extend([], this.parent.eventsData, null, true);
|
|
@@ -19,7 +23,7 @@ var ICalendarExport = /** @class */ (function () {
|
|
|
19
23
|
var timeZone = this.parent.timezone || this.parent.tzModule.getLocalTimezoneName();
|
|
20
24
|
var fields = this.parent.eventFields;
|
|
21
25
|
eventsData.forEach(function (eventObj) {
|
|
22
|
-
var uId = _this.parent.eventBase.generateGuid();
|
|
26
|
+
var uId = eventObj[fields.id] || eventObj.Guid || _this.parent.eventBase.generateGuid();
|
|
23
27
|
var editedExDate = [];
|
|
24
28
|
if (eventObj[fields.recurrenceID]) {
|
|
25
29
|
var filter = _this.filterEvents(filterCollection, fields.id, eventObj[fields.recurrenceID]);
|
|
@@ -94,7 +98,7 @@ var ICalendarExport = /** @class */ (function () {
|
|
|
94
98
|
'X-WR-TIMEZONE:' + timeZone
|
|
95
99
|
].join(SEPARATOR);
|
|
96
100
|
var icsString = iCalendar + SEPARATOR + iCalendarEvents.join(SEPARATOR) + SEPARATOR + 'END:VCALENDAR';
|
|
97
|
-
|
|
101
|
+
return icsString;
|
|
98
102
|
};
|
|
99
103
|
ICalendarExport.prototype.customFieldFilter = function (eventObj, fields) {
|
|
100
104
|
var defaultFields = Object.keys(fields).map(function (key) { return fields[key]; });
|
|
@@ -78,8 +78,16 @@ var ICalendarImport = /** @class */ (function () {
|
|
|
78
78
|
break;
|
|
79
79
|
case 'UID':
|
|
80
80
|
curEvent[uId] = value;
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
if (typeof (id) == 'number') {
|
|
82
|
+
curEvent[fields.id] = parseInt(value, 10);
|
|
83
|
+
if (isNaN(curEvent[fields.id])) {
|
|
84
|
+
curEvent[fields.id] = id + count;
|
|
85
|
+
count++;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
curEvent[fields.id] = value;
|
|
90
|
+
}
|
|
83
91
|
break;
|
|
84
92
|
case 'SUMMARY':
|
|
85
93
|
curEvent[fields.subject] = value;
|
|
@@ -115,6 +123,10 @@ var ICalendarImport = /** @class */ (function () {
|
|
|
115
123
|
var appoint = [];
|
|
116
124
|
var uId = 'UID';
|
|
117
125
|
var fields = this.parent.eventFields;
|
|
126
|
+
var appointmentIds = [];
|
|
127
|
+
this.parent.eventsData.forEach(function (eventObj) {
|
|
128
|
+
appointmentIds.push(eventObj[fields.id]);
|
|
129
|
+
});
|
|
118
130
|
app.forEach(function (eventObj) {
|
|
119
131
|
var parentObj;
|
|
120
132
|
var id;
|
|
@@ -123,24 +135,26 @@ var ICalendarImport = /** @class */ (function () {
|
|
|
123
135
|
parentObj = eventObj;
|
|
124
136
|
id = eventObj[fields.id];
|
|
125
137
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
138
|
+
if (appointmentIds.indexOf(eventObj[fields.id]) < 0) {
|
|
139
|
+
var data = app.filter(function (data) { return data.UID === eventObj[uId]; });
|
|
140
|
+
if (data.length > 1 && isNullOrUndefined(eventObj[fields.recurrenceID])) {
|
|
141
|
+
for (var i = 0; i < data.length; i++) {
|
|
142
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
143
|
+
if (data[i].hasOwnProperty(fields.recurrenceID)) {
|
|
144
|
+
var exdate = data[i][fields.recurrenceID];
|
|
145
|
+
data[i][fields.recurrenceID] = id;
|
|
146
|
+
data[i][fields.recurrenceException] = null;
|
|
147
|
+
parentObj[fields.recurrenceException] = (isNullOrUndefined(parentObj[fields.recurrenceException])) ?
|
|
148
|
+
exdate : parentObj[fields.recurrenceException] + ',' + exdate;
|
|
149
|
+
appoint.push(data[i]);
|
|
150
|
+
}
|
|
137
151
|
}
|
|
152
|
+
appoint.push(parentObj);
|
|
153
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
154
|
+
}
|
|
155
|
+
else if (!eventObj.hasOwnProperty(fields.recurrenceID)) {
|
|
156
|
+
appoint.push(eventObj);
|
|
138
157
|
}
|
|
139
|
-
appoint.push(parentObj);
|
|
140
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
141
|
-
}
|
|
142
|
-
else if (!eventObj.hasOwnProperty(fields.recurrenceID)) {
|
|
143
|
-
appoint.push(eventObj);
|
|
144
158
|
}
|
|
145
159
|
});
|
|
146
160
|
return appoint;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { Workbook } from '@syncfusion/ej2-excel-export';
|
|
3
|
-
import { extend } from '@syncfusion/ej2-base';
|
|
3
|
+
import { extend, isNullOrUndefined } from '@syncfusion/ej2-base';
|
|
4
4
|
/**
|
|
5
5
|
* Excel Export Module
|
|
6
6
|
*/
|
|
@@ -14,6 +14,10 @@ var ExcelExport = /** @class */ (function () {
|
|
|
14
14
|
var exportName = excelExportOptions.fileName || 'Schedule';
|
|
15
15
|
var exportType = excelExportOptions.exportType || 'xlsx';
|
|
16
16
|
var isIncludeOccurrences = excelExportOptions.includeOccurrences || false;
|
|
17
|
+
var separator;
|
|
18
|
+
if (!isNullOrUndefined(excelExportOptions.separator) && excelExportOptions.separator !== ',') {
|
|
19
|
+
separator = excelExportOptions.separator;
|
|
20
|
+
}
|
|
17
21
|
var eventCollection;
|
|
18
22
|
if (excelExportOptions.customData) {
|
|
19
23
|
eventCollection = !isIncludeOccurrences ? excelExportOptions.customData :
|
|
@@ -22,9 +26,9 @@ var ExcelExport = /** @class */ (function () {
|
|
|
22
26
|
else {
|
|
23
27
|
eventCollection = !isIncludeOccurrences ? this.parent.eventsData : this.parent.eventsProcessed;
|
|
24
28
|
}
|
|
25
|
-
this.processWorkbook(exportColumns, exportName, exportType, eventCollection);
|
|
29
|
+
this.processWorkbook(exportColumns, exportName, exportType, eventCollection, separator);
|
|
26
30
|
};
|
|
27
|
-
ExcelExport.prototype.processWorkbook = function (fields, name, type, eventCollection) {
|
|
31
|
+
ExcelExport.prototype.processWorkbook = function (fields, name, type, eventCollection, separator) {
|
|
28
32
|
var _this = this;
|
|
29
33
|
var columns = [];
|
|
30
34
|
var rows = [];
|
|
@@ -46,7 +50,7 @@ var ExcelExport = /** @class */ (function () {
|
|
|
46
50
|
rows.push({ index: i + 2, cells: columnData });
|
|
47
51
|
});
|
|
48
52
|
var workSheet = [{ columns: columns, rows: rows }];
|
|
49
|
-
var book = new Workbook({ worksheets: workSheet }, type, this.parent.locale);
|
|
53
|
+
var book = new Workbook({ worksheets: workSheet }, type, this.parent.locale, undefined, separator);
|
|
50
54
|
book.save(name + '.' + type);
|
|
51
55
|
};
|
|
52
56
|
ExcelExport.prototype.getExportColumns = function (exportOptions) {
|
|
@@ -154,6 +154,7 @@ var EventWindow = /** @class */ (function () {
|
|
|
154
154
|
EventWindow.prototype.setDialogContent = function () {
|
|
155
155
|
this.dialogObject.content = this.getEventWindowContent();
|
|
156
156
|
this.dialogObject.dataBind();
|
|
157
|
+
this.applyFormValidation();
|
|
157
158
|
};
|
|
158
159
|
EventWindow.prototype.preventEventSave = function (e) {
|
|
159
160
|
if (this.parent && !this.parent.allowKeyboardInteraction && e.code === 'Enter') {
|
|
@@ -415,6 +416,7 @@ var EventWindow = /** @class */ (function () {
|
|
|
415
416
|
resourceData.colorField + '}"></div><div class="e-resource-text">${' + resourceData.textField + '}</div></div>';
|
|
416
417
|
if (resourceData.allowMultiple) {
|
|
417
418
|
var listObj = new MultiSelect({
|
|
419
|
+
enableRtl: this.parent.enableRtl,
|
|
418
420
|
cssClass: this.parent.cssClass || '',
|
|
419
421
|
dataSource: resourceData.dataSource,
|
|
420
422
|
change: this.onMultiselectResourceChange.bind(this),
|
|
@@ -473,7 +475,7 @@ var EventWindow = /** @class */ (function () {
|
|
|
473
475
|
query = (e.text !== '') ? query.where('Text', 'contains', e.text, true) : query;
|
|
474
476
|
e.updateData(_this.parent.timezoneDataSource, query);
|
|
475
477
|
},
|
|
476
|
-
htmlAttributes: { 'title': this.getFieldLabel(value), 'name': fieldName },
|
|
478
|
+
htmlAttributes: { 'title': this.getFieldLabel(value), 'name': fieldName, role: 'option' },
|
|
477
479
|
floatLabelType: 'Always',
|
|
478
480
|
placeholder: this.getFieldLabel(value),
|
|
479
481
|
popupHeight: '230px'
|
|
@@ -318,8 +318,8 @@ var QuickPopups = /** @class */ (function () {
|
|
|
318
318
|
attrs: {
|
|
319
319
|
'data-id': '' + eventData[fields.id],
|
|
320
320
|
'data-guid': eventData.Guid, 'role': 'button', 'tabindex': '0',
|
|
321
|
-
'aria-
|
|
322
|
-
'aria-
|
|
321
|
+
'aria-disabled': this_1.parent.eventBase.getReadonlyAttribute(eventData),
|
|
322
|
+
'aria-pressed': 'false', 'aria-grabbed': 'true', 'aria-label': this_1.parent.getAnnouncementString(eventData)
|
|
323
323
|
}
|
|
324
324
|
});
|
|
325
325
|
var templateElement = void 0;
|
|
@@ -415,7 +415,7 @@ var QuickPopups = /** @class */ (function () {
|
|
|
415
415
|
this.quickPopupHide();
|
|
416
416
|
return;
|
|
417
417
|
}
|
|
418
|
-
var targetEle = args.event.target;
|
|
418
|
+
var targetEle = !isNullOrUndefined(args.event) ? args.event.target : args.element;
|
|
419
419
|
if (this.parent.isAdaptive) {
|
|
420
420
|
this.quickPopupHide();
|
|
421
421
|
var newEventClone = this.parent.element.querySelector('.' + cls.NEW_EVENT_CLASS);
|
|
@@ -171,7 +171,7 @@ var Agenda = /** @class */ (function (_super) {
|
|
|
171
171
|
for (var day = 0; day < this.parent.agendaDaysCount; day++) {
|
|
172
172
|
var filterData = this.appointmentFiltering(agendaDate);
|
|
173
173
|
var nTr = this.createTableRowElement(agendaDate, 'data');
|
|
174
|
-
if (this.element.querySelector('tr[
|
|
174
|
+
if (this.element.querySelector('tr[data-row-index="' + parseInt(nTr.getAttribute('data-row-index'), 10) + '"]')) {
|
|
175
175
|
agendaDate = util.addDays(agendaDate, 1);
|
|
176
176
|
continue;
|
|
177
177
|
}
|
|
@@ -235,7 +235,7 @@ var Agenda = /** @class */ (function (_super) {
|
|
|
235
235
|
prepend([].slice.call(emptyTBody.childNodes), tBody);
|
|
236
236
|
this.wireEventActions();
|
|
237
237
|
for (var s = 0, element = tBody.children; s < element.length; s++) {
|
|
238
|
-
if (element[s].getAttribute('
|
|
238
|
+
if (element[s].getAttribute('data-row-index') === topElement.getAttribute('data-column-index')) {
|
|
239
239
|
var scrollToValue = element[s].offsetTop -
|
|
240
240
|
this.element.querySelector('.e-agenda-item').offsetHeight;
|
|
241
241
|
target.scrollTop = scrollToValue;
|
|
@@ -150,6 +150,15 @@ var TimelineMonth = /** @class */ (function (_super) {
|
|
|
150
150
|
this.colLevels = colLevels;
|
|
151
151
|
return colLevels;
|
|
152
152
|
};
|
|
153
|
+
TimelineMonth.prototype.getAdjustedDate = function (startTime) {
|
|
154
|
+
var timeSlots = this.colLevels[this.colLevels.length - 1];
|
|
155
|
+
for (var i = 0; i < timeSlots.length; i++) {
|
|
156
|
+
if (timeSlots[i].date.getTime() > startTime.getTime()) {
|
|
157
|
+
return timeSlots[i - 1].date;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return null;
|
|
161
|
+
};
|
|
153
162
|
TimelineMonth.prototype.destroy = function () {
|
|
154
163
|
if (!this.parent || this.parent && this.parent.isDestroyed) {
|
|
155
164
|
return;
|
|
@@ -246,6 +246,20 @@ var TimelineViews = /** @class */ (function (_super) {
|
|
|
246
246
|
this.timelineAppointment.renderAppointments();
|
|
247
247
|
this.parent.notify(event.eventsLoaded, {});
|
|
248
248
|
};
|
|
249
|
+
TimelineViews.prototype.getAdjustedDate = function (date) {
|
|
250
|
+
if (!this.parent.activeViewOptions.timeScale.enable) {
|
|
251
|
+
return new Date(date.setHours(0, 0, 0, 0));
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
var timeSlots = this.colLevels[this.colLevels.length - 1];
|
|
255
|
+
for (var i = 0; i < timeSlots.length; i++) {
|
|
256
|
+
if (timeSlots[i].date.getTime() > date.getTime()) {
|
|
257
|
+
return timeSlots[i - 1].date;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return null;
|
|
262
|
+
};
|
|
249
263
|
TimelineViews.prototype.destroy = function () {
|
|
250
264
|
if (!this.parent || this.parent && this.parent.isDestroyed) {
|
|
251
265
|
return;
|
|
@@ -271,6 +271,9 @@ var TimelineYear = /** @class */ (function (_super) {
|
|
|
271
271
|
else {
|
|
272
272
|
addClass([td], cls.OTHERMONTH_CLASS);
|
|
273
273
|
}
|
|
274
|
+
if (td.classList.contains(cls.OTHERMONTH_CLASS)) {
|
|
275
|
+
continue;
|
|
276
|
+
}
|
|
274
277
|
td.appendChild(dateHeader);
|
|
275
278
|
if (isDateAvail) {
|
|
276
279
|
td.setAttribute('data-date', date.getTime().toString());
|
|
@@ -57,5 +57,6 @@ export declare class VerticalView extends ViewBase implements IRenderer {
|
|
|
57
57
|
getLeftPanelElement(): HTMLElement;
|
|
58
58
|
getEndDateFromStartDate(start: Date): Date;
|
|
59
59
|
getTimeSlotRows(handler?: CallbackFunction): TimeSlotData[];
|
|
60
|
+
getAdjustedDate(startTime: Date): Date;
|
|
60
61
|
destroy(): void;
|
|
61
62
|
}
|
|
@@ -514,12 +514,11 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
514
514
|
var wrap = createElement('div', { className: cls.DATE_HEADER_WRAP_CLASS });
|
|
515
515
|
container.appendChild(wrap);
|
|
516
516
|
var tbl = this.createTableLayout();
|
|
517
|
-
var trEle = createElement('tr');
|
|
517
|
+
var trEle = createElement('tr', { className: cls.HEADER_ROW_CLASS });
|
|
518
518
|
var rowCount = this.colLevels.length;
|
|
519
519
|
var lastLevel = this.colLevels[rowCount - 1];
|
|
520
520
|
for (var i = 0; i < rowCount; i++) {
|
|
521
521
|
var ntr = trEle.cloneNode();
|
|
522
|
-
addClass([ntr], cls.HEADER_ROW_CLASS);
|
|
523
522
|
var level = this.colLevels[i];
|
|
524
523
|
for (var j = 0; j < level.length; j++) {
|
|
525
524
|
ntr.appendChild(this.createTd(level[j]));
|
|
@@ -532,13 +531,13 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
532
531
|
return container;
|
|
533
532
|
};
|
|
534
533
|
VerticalView.prototype.createAllDayRow = function (table, tdData) {
|
|
535
|
-
var ntr = createElement('tr');
|
|
536
|
-
addClass([ntr], cls.ALLDAY_ROW_CLASS);
|
|
534
|
+
var ntr = createElement('tr', { className: cls.ALLDAY_ROW_CLASS });
|
|
537
535
|
for (var j = 0; j < tdData.length; j++) {
|
|
538
536
|
var td = extend({}, tdData[j]);
|
|
539
537
|
td.className = [cls.ALLDAY_CELLS_CLASS];
|
|
540
538
|
td.type = 'alldayCells';
|
|
541
539
|
var ntd = this.createTd(td);
|
|
540
|
+
ntd.setAttribute('role', 'gridcell');
|
|
542
541
|
ntd.setAttribute('data-date', td.date.getTime().toString());
|
|
543
542
|
if (!isNullOrUndefined(td.groupIndex)) {
|
|
544
543
|
ntd.setAttribute('data-group-index', '' + td.groupIndex);
|
|
@@ -571,6 +570,7 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
571
570
|
}
|
|
572
571
|
if (td.type === 'dateHeader' && td.className.indexOf(cls.HEADER_CELLS_CLASS) >= 0) {
|
|
573
572
|
tdEle.setAttribute('data-date', td.date.getTime().toString());
|
|
573
|
+
tdEle.setAttribute('role', 'gridcell');
|
|
574
574
|
if (!isNullOrUndefined(td.groupIndex)) {
|
|
575
575
|
tdEle.setAttribute('data-group-index', '' + td.groupIndex);
|
|
576
576
|
}
|
|
@@ -773,6 +773,23 @@ var VerticalView = /** @class */ (function (_super) {
|
|
|
773
773
|
}
|
|
774
774
|
return rows;
|
|
775
775
|
};
|
|
776
|
+
VerticalView.prototype.getAdjustedDate = function (startTime) {
|
|
777
|
+
if (!this.parent.activeViewOptions.timeScale.enable) {
|
|
778
|
+
return new Date(startTime.setHours(0, 0, 0, 0));
|
|
779
|
+
}
|
|
780
|
+
else {
|
|
781
|
+
var timeSlots = this.getTimeSlotRows();
|
|
782
|
+
var startDate = new Date(new Date(timeSlots[0].date.getTime()).
|
|
783
|
+
setHours(startTime.getHours(), startTime.getMinutes(), startTime.getMilliseconds()));
|
|
784
|
+
for (var i = 0; i < timeSlots.length; i++) {
|
|
785
|
+
if (timeSlots[i].date.getTime() > startDate.getTime()) {
|
|
786
|
+
startTime.setHours(timeSlots[i - 1].date.getHours(), timeSlots[i - 1].date.getMinutes(), timeSlots[i - 1].date.getMilliseconds());
|
|
787
|
+
return new Date(startTime);
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
return null;
|
|
792
|
+
};
|
|
776
793
|
VerticalView.prototype.destroy = function () {
|
|
777
794
|
if (!this.parent || this.parent && this.parent.isDestroyed) {
|
|
778
795
|
return;
|
|
@@ -533,6 +533,17 @@ var ViewBase = /** @class */ (function () {
|
|
|
533
533
|
}
|
|
534
534
|
return endDate;
|
|
535
535
|
};
|
|
536
|
+
ViewBase.prototype.getAdjustedDate = function (startTime) {
|
|
537
|
+
if (!this.parent.activeViewOptions.timeScale.enable || this.parent.currentView === 'Month' ||
|
|
538
|
+
(this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.group.resources.length === 0)) {
|
|
539
|
+
return new Date(startTime.setHours(0, 0, 0, 0));
|
|
540
|
+
}
|
|
541
|
+
else if (this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.group.resources.length > 0) {
|
|
542
|
+
startTime.setHours(0, 0, 0, 0);
|
|
543
|
+
return new Date(startTime.setDate(1));
|
|
544
|
+
}
|
|
545
|
+
return null;
|
|
546
|
+
};
|
|
536
547
|
ViewBase.prototype.destroy = function () {
|
|
537
548
|
if (this.element && this.element.parentNode) {
|
|
538
549
|
remove(this.element);
|
|
@@ -331,7 +331,8 @@ var Year = /** @class */ (function (_super) {
|
|
|
331
331
|
return this.parent.currentView === 'Year' ? util.getWeekFirstDate(this.getStartDate(), this.parent.firstDayOfWeek) : this.getStartDate();
|
|
332
332
|
};
|
|
333
333
|
Year.prototype.endDate = function () {
|
|
334
|
-
return this.parent.currentView === 'Year' ? util.addDays(util.getWeekLastDate(this.getEndDate(), this.parent.firstDayOfWeek), 1) :
|
|
334
|
+
return this.parent.currentView === 'Year' ? util.addDays(util.getWeekLastDate(this.getEndDate(), this.parent.firstDayOfWeek), 1) :
|
|
335
|
+
util.addDays(this.getEndDate(), 1);
|
|
335
336
|
};
|
|
336
337
|
Year.prototype.getEndDateFromStartDate = function (start) {
|
|
337
338
|
var date = new Date(start.getTime());
|
|
@@ -1500,6 +1500,10 @@
|
|
|
1500
1500
|
position: absolute;
|
|
1501
1501
|
top: 0;
|
|
1502
1502
|
}
|
|
1503
|
+
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-container.e-event-container {
|
|
1504
|
+
height: 75px;
|
|
1505
|
+
position: relative;
|
|
1506
|
+
}
|
|
1503
1507
|
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-wrapper {
|
|
1504
1508
|
position: absolute;
|
|
1505
1509
|
}
|
|
@@ -2465,7 +2469,7 @@
|
|
|
2465
2469
|
}
|
|
2466
2470
|
|
|
2467
2471
|
.e-bigger .e-dialog.e-quick-dialog.e-following-events-dialog {
|
|
2468
|
-
width:
|
|
2472
|
+
width: 502px;
|
|
2469
2473
|
}
|
|
2470
2474
|
|
|
2471
2475
|
.e-dialog.e-quick-dialog.e-following-events-dialog {
|
package/styles/bootstrap.css
CHANGED
|
@@ -1498,6 +1498,10 @@
|
|
|
1498
1498
|
position: absolute;
|
|
1499
1499
|
top: 0;
|
|
1500
1500
|
}
|
|
1501
|
+
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-container.e-event-container {
|
|
1502
|
+
height: 75px;
|
|
1503
|
+
position: relative;
|
|
1504
|
+
}
|
|
1501
1505
|
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-wrapper {
|
|
1502
1506
|
position: absolute;
|
|
1503
1507
|
}
|
|
@@ -2463,7 +2467,7 @@
|
|
|
2463
2467
|
}
|
|
2464
2468
|
|
|
2465
2469
|
.e-bigger .e-dialog.e-quick-dialog.e-following-events-dialog {
|
|
2466
|
-
width:
|
|
2470
|
+
width: 502px;
|
|
2467
2471
|
}
|
|
2468
2472
|
|
|
2469
2473
|
.e-dialog.e-quick-dialog.e-following-events-dialog {
|
package/styles/bootstrap4.css
CHANGED
|
@@ -1503,6 +1503,10 @@
|
|
|
1503
1503
|
position: absolute;
|
|
1504
1504
|
top: 0;
|
|
1505
1505
|
}
|
|
1506
|
+
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-container.e-event-container {
|
|
1507
|
+
height: 75px;
|
|
1508
|
+
position: relative;
|
|
1509
|
+
}
|
|
1506
1510
|
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-wrapper {
|
|
1507
1511
|
position: absolute;
|
|
1508
1512
|
}
|
|
@@ -2482,7 +2486,7 @@
|
|
|
2482
2486
|
}
|
|
2483
2487
|
|
|
2484
2488
|
.e-bigger .e-dialog.e-quick-dialog.e-following-events-dialog {
|
|
2485
|
-
width:
|
|
2489
|
+
width: 502px;
|
|
2486
2490
|
}
|
|
2487
2491
|
|
|
2488
2492
|
.e-dialog.e-quick-dialog.e-following-events-dialog {
|
|
@@ -1508,6 +1508,10 @@
|
|
|
1508
1508
|
position: absolute;
|
|
1509
1509
|
top: 0;
|
|
1510
1510
|
}
|
|
1511
|
+
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-container.e-event-container {
|
|
1512
|
+
height: 75px;
|
|
1513
|
+
position: relative;
|
|
1514
|
+
}
|
|
1511
1515
|
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-wrapper {
|
|
1512
1516
|
position: absolute;
|
|
1513
1517
|
}
|
|
@@ -2491,7 +2495,7 @@
|
|
|
2491
2495
|
}
|
|
2492
2496
|
|
|
2493
2497
|
.e-bigger .e-dialog.e-quick-dialog.e-following-events-dialog {
|
|
2494
|
-
width:
|
|
2498
|
+
width: 502px;
|
|
2495
2499
|
}
|
|
2496
2500
|
|
|
2497
2501
|
.e-dialog.e-quick-dialog.e-following-events-dialog {
|
package/styles/bootstrap5.css
CHANGED
|
@@ -1508,6 +1508,10 @@
|
|
|
1508
1508
|
position: absolute;
|
|
1509
1509
|
top: 0;
|
|
1510
1510
|
}
|
|
1511
|
+
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-container.e-event-container {
|
|
1512
|
+
height: 75px;
|
|
1513
|
+
position: relative;
|
|
1514
|
+
}
|
|
1511
1515
|
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-wrapper {
|
|
1512
1516
|
position: absolute;
|
|
1513
1517
|
}
|
|
@@ -2491,7 +2495,7 @@
|
|
|
2491
2495
|
}
|
|
2492
2496
|
|
|
2493
2497
|
.e-bigger .e-dialog.e-quick-dialog.e-following-events-dialog {
|
|
2494
|
-
width:
|
|
2498
|
+
width: 502px;
|
|
2495
2499
|
}
|
|
2496
2500
|
|
|
2497
2501
|
.e-dialog.e-quick-dialog.e-following-events-dialog {
|
package/styles/fabric-dark.css
CHANGED
|
@@ -1500,6 +1500,10 @@
|
|
|
1500
1500
|
position: absolute;
|
|
1501
1501
|
top: 0;
|
|
1502
1502
|
}
|
|
1503
|
+
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-container.e-event-container {
|
|
1504
|
+
height: 75px;
|
|
1505
|
+
position: relative;
|
|
1506
|
+
}
|
|
1503
1507
|
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-wrapper {
|
|
1504
1508
|
position: absolute;
|
|
1505
1509
|
}
|
|
@@ -2466,7 +2470,7 @@
|
|
|
2466
2470
|
}
|
|
2467
2471
|
|
|
2468
2472
|
.e-bigger .e-dialog.e-quick-dialog.e-following-events-dialog {
|
|
2469
|
-
width:
|
|
2473
|
+
width: 502px;
|
|
2470
2474
|
}
|
|
2471
2475
|
|
|
2472
2476
|
.e-dialog.e-quick-dialog.e-following-events-dialog {
|
package/styles/fabric.css
CHANGED
|
@@ -1500,6 +1500,10 @@
|
|
|
1500
1500
|
position: absolute;
|
|
1501
1501
|
top: 0;
|
|
1502
1502
|
}
|
|
1503
|
+
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-container.e-event-container {
|
|
1504
|
+
height: 75px;
|
|
1505
|
+
position: relative;
|
|
1506
|
+
}
|
|
1503
1507
|
.e-schedule .e-timeline-year-view .e-event-table .e-appointment-wrapper {
|
|
1504
1508
|
position: absolute;
|
|
1505
1509
|
}
|
|
@@ -2466,7 +2470,7 @@
|
|
|
2466
2470
|
}
|
|
2467
2471
|
|
|
2468
2472
|
.e-bigger .e-dialog.e-quick-dialog.e-following-events-dialog {
|
|
2469
|
-
width:
|
|
2473
|
+
width: 502px;
|
|
2470
2474
|
}
|
|
2471
2475
|
|
|
2472
2476
|
.e-dialog.e-quick-dialog.e-following-events-dialog {
|