@syncfusion/ej2-schedule 19.3.46 → 19.4.38
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/.github/PULL_REQUEST_TEMPLATE/Bug.md +63 -0
- package/.github/PULL_REQUEST_TEMPLATE/Feature.md +39 -0
- package/CHANGELOG.md +49 -5
- 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 +479 -133
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +480 -137
- 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 +3 -3
- package/src/recurrence-editor/recurrence-editor.js +2 -2
- package/src/schedule/actions/crud.js +2 -0
- package/src/schedule/actions/drag.js +28 -18
- package/src/schedule/actions/keyboard.d.ts +7 -0
- package/src/schedule/actions/keyboard.js +197 -28
- package/src/schedule/base/interface.d.ts +19 -0
- package/src/schedule/base/resource.js +1 -0
- package/src/schedule/base/schedule-model.d.ts +97 -20
- package/src/schedule/base/schedule.d.ts +97 -21
- package/src/schedule/base/schedule.js +27 -5
- package/src/schedule/base/type.d.ts +4 -0
- package/src/schedule/base/util.d.ts +1 -0
- package/src/schedule/base/util.js +1 -0
- package/src/schedule/event-renderer/event-base.d.ts +2 -0
- package/src/schedule/event-renderer/event-base.js +29 -9
- package/src/schedule/event-renderer/inline-edit.js +8 -5
- package/src/schedule/event-renderer/month.js +2 -2
- package/src/schedule/event-renderer/timeline-view.js +4 -0
- package/src/schedule/event-renderer/vertical-view.js +9 -6
- package/src/schedule/event-renderer/year.js +1 -1
- package/src/schedule/exports/excel-export.d.ts +2 -1
- package/src/schedule/exports/excel-export.js +21 -18
- package/src/schedule/models/event-settings-model.d.ts +20 -1
- package/src/schedule/models/event-settings.d.ts +18 -0
- package/src/schedule/models/event-settings.js +6 -0
- package/src/schedule/models/views-model.d.ts +19 -0
- package/src/schedule/models/views.d.ts +17 -0
- package/src/schedule/models/views.js +6 -0
- package/src/schedule/popups/event-window.d.ts +0 -1
- package/src/schedule/popups/event-window.js +4 -5
- package/src/schedule/popups/form-validator.js +4 -1
- package/src/schedule/popups/quick-popups.js +3 -0
- package/src/schedule/renderer/agenda.js +3 -1
- package/src/schedule/renderer/header-renderer.d.ts +1 -0
- package/src/schedule/renderer/header-renderer.js +22 -8
- package/src/schedule/renderer/month.d.ts +4 -0
- package/src/schedule/renderer/month.js +68 -19
- package/src/schedule/renderer/timeline-year.js +3 -0
- package/src/schedule/renderer/view-base.js +9 -0
- package/src/schedule/renderer/year.d.ts +2 -2
- package/src/schedule/renderer/year.js +24 -6
- package/src/schedule/timezone/timezone.d.ts +3 -2
- package/src/schedule/timezone/timezone.js +0 -1
- package/styles/bootstrap-dark.css +108 -27
- package/styles/bootstrap.css +105 -27
- package/styles/bootstrap4.css +117 -62
- package/styles/bootstrap5-dark.css +118 -67
- package/styles/bootstrap5.css +118 -67
- package/styles/fabric-dark.css +108 -26
- package/styles/fabric.css +109 -26
- package/styles/highcontrast-light.css +104 -26
- package/styles/highcontrast.css +109 -28
- package/styles/material-dark.css +110 -32
- package/styles/material.css +103 -25
- package/styles/recurrence-editor/_bootstrap-dark-definition.scss +7 -0
- package/styles/recurrence-editor/_bootstrap-definition.scss +7 -0
- package/styles/recurrence-editor/_bootstrap4-definition.scss +7 -0
- package/styles/recurrence-editor/_bootstrap5-definition.scss +7 -0
- package/styles/recurrence-editor/_fabric-dark-definition.scss +8 -0
- package/styles/recurrence-editor/_fabric-definition.scss +7 -0
- package/styles/recurrence-editor/_fluent-definition.scss +15 -0
- package/styles/recurrence-editor/_highcontrast-definition.scss +7 -0
- package/styles/recurrence-editor/_highcontrast-light-definition.scss +7 -0
- package/styles/recurrence-editor/_layout.scss +20 -4
- package/styles/recurrence-editor/_material-dark-definition.scss +7 -0
- package/styles/recurrence-editor/_material-definition.scss +7 -0
- package/styles/recurrence-editor/_tailwind-definition.scss +15 -8
- package/styles/recurrence-editor/bootstrap-dark.css +20 -4
- package/styles/recurrence-editor/bootstrap.css +20 -4
- package/styles/recurrence-editor/bootstrap4.css +20 -4
- package/styles/recurrence-editor/bootstrap5-dark.css +20 -4
- package/styles/recurrence-editor/bootstrap5.css +20 -4
- package/styles/recurrence-editor/fabric-dark.css +20 -4
- package/styles/recurrence-editor/fabric.css +20 -4
- package/styles/recurrence-editor/highcontrast-light.css +20 -4
- package/styles/recurrence-editor/highcontrast.css +20 -4
- package/styles/recurrence-editor/material-dark.css +20 -4
- package/styles/recurrence-editor/material.css +20 -4
- package/styles/recurrence-editor/tailwind-dark.css +20 -4
- package/styles/recurrence-editor/tailwind.css +20 -4
- package/styles/schedule/_bootstrap-dark-definition.scss +22 -1
- package/styles/schedule/_bootstrap-definition.scss +22 -1
- package/styles/schedule/_bootstrap4-definition.scss +23 -1
- package/styles/schedule/_bootstrap5-definition.scss +145 -119
- package/styles/schedule/_fabric-dark-definition.scss +22 -1
- package/styles/schedule/_fabric-definition.scss +22 -1
- package/styles/schedule/_fluent-definition.scss +218 -0
- package/styles/schedule/_highcontrast-definition.scss +22 -1
- package/styles/schedule/_highcontrast-light-definition.scss +22 -1
- package/styles/schedule/_layout.scss +95 -158
- package/styles/schedule/_material-dark-definition.scss +22 -1
- package/styles/schedule/_material-definition.scss +21 -0
- package/styles/schedule/_tailwind-definition.scss +216 -195
- package/styles/schedule/_theme.scss +1 -1
- package/styles/schedule/bootstrap-dark.css +88 -23
- package/styles/schedule/bootstrap.css +85 -23
- package/styles/schedule/bootstrap4.css +97 -58
- package/styles/schedule/bootstrap5-dark.css +98 -63
- package/styles/schedule/bootstrap5.css +98 -63
- package/styles/schedule/fabric-dark.css +88 -22
- package/styles/schedule/fabric.css +89 -22
- package/styles/schedule/highcontrast-light.css +84 -22
- package/styles/schedule/highcontrast.css +89 -24
- package/styles/schedule/icons/_fluent.scss +231 -0
- package/styles/schedule/icons/_tailwind.scss +231 -231
- package/styles/schedule/material-dark.css +90 -28
- package/styles/schedule/material.css +83 -21
- package/styles/schedule/tailwind-dark.css +94 -52
- package/styles/schedule/tailwind.css +94 -52
- package/styles/tailwind-dark.css +114 -56
- package/styles/tailwind.css +114 -56
package/dist/global/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version : 19.
|
|
3
|
+
* version : 19.4.38
|
|
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@19.
|
|
3
|
+
"_id": "@syncfusion/ej2-schedule@19.16.6",
|
|
4
4
|
"_inBundle": false,
|
|
5
|
-
"_integrity": "sha512-
|
|
5
|
+
"_integrity": "sha512-0SnaOgJ9xx+DcnPMjdAU4NBzn5fevPp4PZpE58zbNf2WOEYQ4ZlUJc7NxT0jCmP8Ow84wth54gKJrfc0tTONqg==",
|
|
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-
|
|
27
|
-
"_shasum": "
|
|
26
|
+
"_resolved": "http://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-schedule/-/ej2-schedule-19.16.6.tgz",
|
|
27
|
+
"_shasum": "f8b12396e75367b8831936fc6caa778f7c39e461",
|
|
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": "~19.
|
|
39
|
-
"@syncfusion/ej2-buttons": "~19.
|
|
40
|
-
"@syncfusion/ej2-calendars": "~19.
|
|
41
|
-
"@syncfusion/ej2-data": "~19.
|
|
42
|
-
"@syncfusion/ej2-dropdowns": "~19.
|
|
43
|
-
"@syncfusion/ej2-excel-export": "~19.
|
|
44
|
-
"@syncfusion/ej2-inputs": "~19.
|
|
45
|
-
"@syncfusion/ej2-lists": "~19.
|
|
46
|
-
"@syncfusion/ej2-navigations": "~19.
|
|
47
|
-
"@syncfusion/ej2-popups": "~19.
|
|
38
|
+
"@syncfusion/ej2-base": "~19.4.38",
|
|
39
|
+
"@syncfusion/ej2-buttons": "~19.4.38",
|
|
40
|
+
"@syncfusion/ej2-calendars": "~19.4.38",
|
|
41
|
+
"@syncfusion/ej2-data": "~19.4.38",
|
|
42
|
+
"@syncfusion/ej2-dropdowns": "~19.4.38",
|
|
43
|
+
"@syncfusion/ej2-excel-export": "~19.4.38",
|
|
44
|
+
"@syncfusion/ej2-inputs": "~19.4.38",
|
|
45
|
+
"@syncfusion/ej2-lists": "~19.4.38",
|
|
46
|
+
"@syncfusion/ej2-navigations": "~19.4.38",
|
|
47
|
+
"@syncfusion/ej2-popups": "~19.4.38"
|
|
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": "19.
|
|
84
|
+
"version": "19.4.38",
|
|
85
85
|
"sideEffects": false
|
|
86
86
|
}
|
|
@@ -275,8 +275,8 @@ function weeklyType(startDate, endDate, data, ruleObject) {
|
|
|
275
275
|
var weekstartDate = addDays(tempDate, -startDateDiff);
|
|
276
276
|
var weekendDate = addDays(weekstartDate, 6);
|
|
277
277
|
var compareTempDate = new Date(tempDate.getTime());
|
|
278
|
-
resetTime(weekendDate);
|
|
279
|
-
resetTime(compareTempDate);
|
|
278
|
+
weekendDate = resetTime(weekendDate);
|
|
279
|
+
compareTempDate = resetTime(compareTempDate);
|
|
280
280
|
while (weekendDate >= compareTempDate) {
|
|
281
281
|
if (expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1) {
|
|
282
282
|
weekCollection.push([tempDate.getTime()]);
|
|
@@ -286,7 +286,7 @@ function weeklyType(startDate, endDate, data, ruleObject) {
|
|
|
286
286
|
}
|
|
287
287
|
tempDate.setDate(tempDate.getDate() + 1);
|
|
288
288
|
compareTempDate = new Date(tempDate.getTime());
|
|
289
|
-
resetTime(compareTempDate);
|
|
289
|
+
compareTempDate = resetTime(compareTempDate);
|
|
290
290
|
}
|
|
291
291
|
tempDate.setDate(tempDate.getDate() - 1);
|
|
292
292
|
if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {
|
|
@@ -35,6 +35,7 @@ var INTERVALCLASS = 'e-interval';
|
|
|
35
35
|
var DAYWRAPPER = 'e-days';
|
|
36
36
|
var WEEKWRAPPER = 'e-non-week';
|
|
37
37
|
var WEEKPOSITION = 'e-week-position';
|
|
38
|
+
var DAYPOSITION = 'e-day-position';
|
|
38
39
|
var YEAREXPANDERWRAPPER = 'e-year-expander';
|
|
39
40
|
var YEAREXPANDERELEMENT = 'e-year-expander-element';
|
|
40
41
|
var MONETHEXPANDERWRAPPER = 'e-month-expander';
|
|
@@ -387,7 +388,6 @@ var RecurrenceEditor = /** @class */ (function (_super) {
|
|
|
387
388
|
}
|
|
388
389
|
});
|
|
389
390
|
this.endType.appendTo(this.element.querySelector('.' + ENDONELEMENT));
|
|
390
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
391
391
|
var renderDropDownList = function (dropDownData) {
|
|
392
392
|
return new DropDownList({
|
|
393
393
|
dataSource: dropDownData,
|
|
@@ -755,7 +755,7 @@ var RecurrenceEditor = /** @class */ (function (_super) {
|
|
|
755
755
|
'<td><div class="' + INPUTWARAPPER + ' ' + WEEKPOSITION + '" >' +
|
|
756
756
|
'<input type="text" tabindex="0" class="' + MONTHPOS + '"title="' + this.localeObj.getConstant('monthPosition') + '" />' +
|
|
757
757
|
'</div></td>' +
|
|
758
|
-
'<td><div class="' + INPUTWARAPPER + '
|
|
758
|
+
'<td><div class="' + INPUTWARAPPER + ' ' + DAYPOSITION + '">' +
|
|
759
759
|
'<input type="text" tabindex="0" class="' + MONTHWEEK + '"title="' + this.localeObj.getConstant('monthWeek') + '" />' +
|
|
760
760
|
'</div></td></tr></table>' +
|
|
761
761
|
'</div></div>' +
|
|
@@ -145,6 +145,7 @@ var Crud = /** @class */ (function () {
|
|
|
145
145
|
if (addArgs.addedRecords instanceof Array) {
|
|
146
146
|
for (var _i = 0, _a = addArgs.addedRecords; _i < _a.length; _i++) {
|
|
147
147
|
var event_1 = _a[_i];
|
|
148
|
+
event_1 = _this.parent.eventBase.updateEventDateTime(event_1);
|
|
148
149
|
var eventData_1 = extend({}, _this.parent.eventBase.processTimezone(event_1, true), null, true);
|
|
149
150
|
editParams.addedRecords.push(eventData_1);
|
|
150
151
|
}
|
|
@@ -202,6 +203,7 @@ var Crud = /** @class */ (function () {
|
|
|
202
203
|
if (saveArgs.changedRecords instanceof Array) {
|
|
203
204
|
for (var _i = 0, _a = saveArgs.changedRecords; _i < _a.length; _i++) {
|
|
204
205
|
var event_3 = _a[_i];
|
|
206
|
+
event_3 = _this.parent.eventBase.updateEventDateTime(event_3);
|
|
205
207
|
var eventData_2 = extend({}, _this.parent.eventBase.processTimezone(event_3, true), null, true);
|
|
206
208
|
editParams.changedRecords.push(eventData_2);
|
|
207
209
|
}
|
|
@@ -178,7 +178,9 @@ var DragAndDrop = /** @class */ (function (_super) {
|
|
|
178
178
|
var eventGuid = this.actionObj.element.getAttribute('data-guid');
|
|
179
179
|
this.actionObj.event = this.parent.eventBase.getEventByGuid(eventGuid);
|
|
180
180
|
var eventObj = extend({}, this.actionObj.event, null, true);
|
|
181
|
-
|
|
181
|
+
if (!isNullOrUndefined(eventObj)) {
|
|
182
|
+
this.startTime = eventObj[this.parent.eventFields.startTime].getTime();
|
|
183
|
+
}
|
|
182
184
|
var dragArgs = {
|
|
183
185
|
cancel: false,
|
|
184
186
|
data: eventObj,
|
|
@@ -600,7 +602,7 @@ var DragAndDrop = /** @class */ (function (_super) {
|
|
|
600
602
|
return;
|
|
601
603
|
}
|
|
602
604
|
var td = tr.children[colIndex];
|
|
603
|
-
if (this.parent.activeViewOptions.group.resources.length > 0) {
|
|
605
|
+
if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
604
606
|
this.actionObj.groupIndex = parseInt(td.getAttribute('data-group-index'), 10);
|
|
605
607
|
}
|
|
606
608
|
var dragStart;
|
|
@@ -686,18 +688,20 @@ var DragAndDrop = /** @class */ (function (_super) {
|
|
|
686
688
|
var eventData = [];
|
|
687
689
|
var startTime = event[eventFields.startTime];
|
|
688
690
|
var endTime = event[eventFields.endTime];
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
var
|
|
692
|
-
var
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
eventData.
|
|
691
|
+
if (util.resetTime(new Date(startTime.getTime())) < util.resetTime(new Date(endTime.getTime()))) {
|
|
692
|
+
var startReferenceDate = util.resetTime(new Date(startTime.getTime()));
|
|
693
|
+
var endReferenceDate = new Date(startReferenceDate.getTime());
|
|
694
|
+
for (var i = 0; startReferenceDate < new Date(endTime.getTime()); i++) {
|
|
695
|
+
endReferenceDate = new Date(endReferenceDate.setDate(startReferenceDate.getDate() + 1));
|
|
696
|
+
var eventObj = extend({}, event, null, true);
|
|
697
|
+
eventObj[eventFields.startTime] = new Date(startReferenceDate);
|
|
698
|
+
eventObj[eventFields.endTime] = new Date(endReferenceDate);
|
|
699
|
+
startReferenceDate = new Date(startReferenceDate.setDate(startReferenceDate.getDate() + 1));
|
|
700
|
+
eventData.push(eventObj);
|
|
701
|
+
}
|
|
702
|
+
var index = eventData.length - 1;
|
|
703
|
+
eventData[0][eventFields.startTime] = startTime;
|
|
704
|
+
eventData[index][eventFields.endTime] = endTime;
|
|
701
705
|
}
|
|
702
706
|
else {
|
|
703
707
|
eventData.push(event);
|
|
@@ -768,8 +772,8 @@ var DragAndDrop = /** @class */ (function (_super) {
|
|
|
768
772
|
// eslint-disable-next-line max-len
|
|
769
773
|
this.parent.getDateFromElement(isNullOrUndefined(index) ? this.actionObj.target : this.targetTd)));
|
|
770
774
|
var splitEvents = this.splitEvent(event);
|
|
771
|
-
var events_1 =
|
|
772
|
-
this.parent.
|
|
775
|
+
var events_1 = this.parent.eventBase.isAllDayAppointment(event) || splitEvents.length > 2 ||
|
|
776
|
+
this.parent.eventSettings.spannedEventPlacement !== 'TimeSlot' ? [event] : splitEvents;
|
|
773
777
|
for (var i = 0; i < events_1.length; i++) {
|
|
774
778
|
if (i > 0) {
|
|
775
779
|
var filterQuery = ".e-day-wrapper[data-date=\"" + util.resetTime(events_1[i][this.parent.eventFields.startTime]).getTime() + "\"]";
|
|
@@ -867,7 +871,7 @@ var DragAndDrop = /** @class */ (function (_super) {
|
|
|
867
871
|
var renderDates = this.getRenderedDates();
|
|
868
872
|
var events = this.parent.eventBase.splitEvent(event, renderDates);
|
|
869
873
|
var query = ".e-all-day-cells[data-date=\"" + events[0][this.parent.eventFields.startTime].getTime() + "\"]";
|
|
870
|
-
if (this.parent.activeViewOptions.group.resources.length > 0) {
|
|
874
|
+
if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
|
|
871
875
|
query = query.concat('[data-group-index = "' + this.actionObj.groupIndex + '"]');
|
|
872
876
|
}
|
|
873
877
|
var cell = [].slice.call(this.parent.element.querySelectorAll(query));
|
|
@@ -1067,7 +1071,13 @@ var DragAndDrop = /** @class */ (function (_super) {
|
|
|
1067
1071
|
if (this.parent.eventDragArea) {
|
|
1068
1072
|
var targetDate = this.parent.getDateFromElement(e.target);
|
|
1069
1073
|
if (!isNullOrUndefined(targetDate)) {
|
|
1070
|
-
|
|
1074
|
+
if (!this.parent.activeViewOptions.timeScale.enable || (this.parent.currentView == "TimelineMonth")) {
|
|
1075
|
+
var eventSrt = eventObj[this.parent.eventFields.startTime];
|
|
1076
|
+
eventStart = new Date(eventStart.setHours(eventSrt.getHours(), eventSrt.getMinutes(), eventSrt.getSeconds()));
|
|
1077
|
+
}
|
|
1078
|
+
else {
|
|
1079
|
+
eventStart = targetDate;
|
|
1080
|
+
}
|
|
1071
1081
|
}
|
|
1072
1082
|
}
|
|
1073
1083
|
var eventEnd = new Date(eventStart.getTime());
|
|
@@ -41,13 +41,20 @@ export declare class KeyboardInteraction {
|
|
|
41
41
|
private getUniqueAppointmentElements;
|
|
42
42
|
private getWorkCellFromAppointmentElement;
|
|
43
43
|
private processViewNavigation;
|
|
44
|
+
private cancelUpDownAction;
|
|
44
45
|
private processUp;
|
|
45
46
|
private processDown;
|
|
47
|
+
private getYearUpDownCell;
|
|
48
|
+
private getHorizontalUpDownCell;
|
|
49
|
+
private getVerticalUpDownCell;
|
|
46
50
|
private processLeftRight;
|
|
47
51
|
private getQuickPopupElement;
|
|
48
52
|
private isCancelLeftRightAction;
|
|
49
53
|
private processRight;
|
|
50
54
|
private processLeft;
|
|
55
|
+
private getTimelineYearTargetCell;
|
|
56
|
+
private getHorizontalLeftRightCell;
|
|
57
|
+
private getVerticalLeftRightCell;
|
|
51
58
|
private calculateNextPrevDate;
|
|
52
59
|
private getFocusableElements;
|
|
53
60
|
private processTabOnPopup;
|