@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.
Files changed (125) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE/Bug.md +63 -0
  2. package/.github/PULL_REQUEST_TEMPLATE/Feature.md +39 -0
  3. package/CHANGELOG.md +49 -5
  4. package/dist/ej2-schedule.umd.min.js +2 -2
  5. package/dist/ej2-schedule.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es2015.js +479 -133
  7. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  8. package/dist/es6/ej2-schedule.es5.js +480 -137
  9. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  10. package/dist/global/ej2-schedule.min.js +2 -2
  11. package/dist/global/ej2-schedule.min.js.map +1 -1
  12. package/dist/global/index.d.ts +1 -1
  13. package/package.json +15 -15
  14. package/src/recurrence-editor/date-generator.js +3 -3
  15. package/src/recurrence-editor/recurrence-editor.js +2 -2
  16. package/src/schedule/actions/crud.js +2 -0
  17. package/src/schedule/actions/drag.js +28 -18
  18. package/src/schedule/actions/keyboard.d.ts +7 -0
  19. package/src/schedule/actions/keyboard.js +197 -28
  20. package/src/schedule/base/interface.d.ts +19 -0
  21. package/src/schedule/base/resource.js +1 -0
  22. package/src/schedule/base/schedule-model.d.ts +97 -20
  23. package/src/schedule/base/schedule.d.ts +97 -21
  24. package/src/schedule/base/schedule.js +27 -5
  25. package/src/schedule/base/type.d.ts +4 -0
  26. package/src/schedule/base/util.d.ts +1 -0
  27. package/src/schedule/base/util.js +1 -0
  28. package/src/schedule/event-renderer/event-base.d.ts +2 -0
  29. package/src/schedule/event-renderer/event-base.js +29 -9
  30. package/src/schedule/event-renderer/inline-edit.js +8 -5
  31. package/src/schedule/event-renderer/month.js +2 -2
  32. package/src/schedule/event-renderer/timeline-view.js +4 -0
  33. package/src/schedule/event-renderer/vertical-view.js +9 -6
  34. package/src/schedule/event-renderer/year.js +1 -1
  35. package/src/schedule/exports/excel-export.d.ts +2 -1
  36. package/src/schedule/exports/excel-export.js +21 -18
  37. package/src/schedule/models/event-settings-model.d.ts +20 -1
  38. package/src/schedule/models/event-settings.d.ts +18 -0
  39. package/src/schedule/models/event-settings.js +6 -0
  40. package/src/schedule/models/views-model.d.ts +19 -0
  41. package/src/schedule/models/views.d.ts +17 -0
  42. package/src/schedule/models/views.js +6 -0
  43. package/src/schedule/popups/event-window.d.ts +0 -1
  44. package/src/schedule/popups/event-window.js +4 -5
  45. package/src/schedule/popups/form-validator.js +4 -1
  46. package/src/schedule/popups/quick-popups.js +3 -0
  47. package/src/schedule/renderer/agenda.js +3 -1
  48. package/src/schedule/renderer/header-renderer.d.ts +1 -0
  49. package/src/schedule/renderer/header-renderer.js +22 -8
  50. package/src/schedule/renderer/month.d.ts +4 -0
  51. package/src/schedule/renderer/month.js +68 -19
  52. package/src/schedule/renderer/timeline-year.js +3 -0
  53. package/src/schedule/renderer/view-base.js +9 -0
  54. package/src/schedule/renderer/year.d.ts +2 -2
  55. package/src/schedule/renderer/year.js +24 -6
  56. package/src/schedule/timezone/timezone.d.ts +3 -2
  57. package/src/schedule/timezone/timezone.js +0 -1
  58. package/styles/bootstrap-dark.css +108 -27
  59. package/styles/bootstrap.css +105 -27
  60. package/styles/bootstrap4.css +117 -62
  61. package/styles/bootstrap5-dark.css +118 -67
  62. package/styles/bootstrap5.css +118 -67
  63. package/styles/fabric-dark.css +108 -26
  64. package/styles/fabric.css +109 -26
  65. package/styles/highcontrast-light.css +104 -26
  66. package/styles/highcontrast.css +109 -28
  67. package/styles/material-dark.css +110 -32
  68. package/styles/material.css +103 -25
  69. package/styles/recurrence-editor/_bootstrap-dark-definition.scss +7 -0
  70. package/styles/recurrence-editor/_bootstrap-definition.scss +7 -0
  71. package/styles/recurrence-editor/_bootstrap4-definition.scss +7 -0
  72. package/styles/recurrence-editor/_bootstrap5-definition.scss +7 -0
  73. package/styles/recurrence-editor/_fabric-dark-definition.scss +8 -0
  74. package/styles/recurrence-editor/_fabric-definition.scss +7 -0
  75. package/styles/recurrence-editor/_fluent-definition.scss +15 -0
  76. package/styles/recurrence-editor/_highcontrast-definition.scss +7 -0
  77. package/styles/recurrence-editor/_highcontrast-light-definition.scss +7 -0
  78. package/styles/recurrence-editor/_layout.scss +20 -4
  79. package/styles/recurrence-editor/_material-dark-definition.scss +7 -0
  80. package/styles/recurrence-editor/_material-definition.scss +7 -0
  81. package/styles/recurrence-editor/_tailwind-definition.scss +15 -8
  82. package/styles/recurrence-editor/bootstrap-dark.css +20 -4
  83. package/styles/recurrence-editor/bootstrap.css +20 -4
  84. package/styles/recurrence-editor/bootstrap4.css +20 -4
  85. package/styles/recurrence-editor/bootstrap5-dark.css +20 -4
  86. package/styles/recurrence-editor/bootstrap5.css +20 -4
  87. package/styles/recurrence-editor/fabric-dark.css +20 -4
  88. package/styles/recurrence-editor/fabric.css +20 -4
  89. package/styles/recurrence-editor/highcontrast-light.css +20 -4
  90. package/styles/recurrence-editor/highcontrast.css +20 -4
  91. package/styles/recurrence-editor/material-dark.css +20 -4
  92. package/styles/recurrence-editor/material.css +20 -4
  93. package/styles/recurrence-editor/tailwind-dark.css +20 -4
  94. package/styles/recurrence-editor/tailwind.css +20 -4
  95. package/styles/schedule/_bootstrap-dark-definition.scss +22 -1
  96. package/styles/schedule/_bootstrap-definition.scss +22 -1
  97. package/styles/schedule/_bootstrap4-definition.scss +23 -1
  98. package/styles/schedule/_bootstrap5-definition.scss +145 -119
  99. package/styles/schedule/_fabric-dark-definition.scss +22 -1
  100. package/styles/schedule/_fabric-definition.scss +22 -1
  101. package/styles/schedule/_fluent-definition.scss +218 -0
  102. package/styles/schedule/_highcontrast-definition.scss +22 -1
  103. package/styles/schedule/_highcontrast-light-definition.scss +22 -1
  104. package/styles/schedule/_layout.scss +95 -158
  105. package/styles/schedule/_material-dark-definition.scss +22 -1
  106. package/styles/schedule/_material-definition.scss +21 -0
  107. package/styles/schedule/_tailwind-definition.scss +216 -195
  108. package/styles/schedule/_theme.scss +1 -1
  109. package/styles/schedule/bootstrap-dark.css +88 -23
  110. package/styles/schedule/bootstrap.css +85 -23
  111. package/styles/schedule/bootstrap4.css +97 -58
  112. package/styles/schedule/bootstrap5-dark.css +98 -63
  113. package/styles/schedule/bootstrap5.css +98 -63
  114. package/styles/schedule/fabric-dark.css +88 -22
  115. package/styles/schedule/fabric.css +89 -22
  116. package/styles/schedule/highcontrast-light.css +84 -22
  117. package/styles/schedule/highcontrast.css +89 -24
  118. package/styles/schedule/icons/_fluent.scss +231 -0
  119. package/styles/schedule/icons/_tailwind.scss +231 -231
  120. package/styles/schedule/material-dark.css +90 -28
  121. package/styles/schedule/material.css +83 -21
  122. package/styles/schedule/tailwind-dark.css +94 -52
  123. package/styles/schedule/tailwind.css +94 -52
  124. package/styles/tailwind-dark.css +114 -56
  125. package/styles/tailwind.css +114 -56
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 19.3.46
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.44",
3
+ "_id": "@syncfusion/ej2-schedule@19.16.6",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-87+s+0IrE3yQihCE6UUKguSL+rXlZht7yNpKdB4QI0dP1fxMBFU7jcX5lT0i8ompgfgbVFnIhvKn8KRW9B56og==",
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-hotfix/@syncfusion/ej2-schedule/-/ej2-schedule-19.3.44.tgz",
27
- "_shasum": "4b5e552c1a66161a17a8d01f15d421455cc36d76",
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.3.43",
39
- "@syncfusion/ej2-buttons": "~19.3.44",
40
- "@syncfusion/ej2-calendars": "~19.3.46",
41
- "@syncfusion/ej2-data": "~19.3.46",
42
- "@syncfusion/ej2-dropdowns": "~19.3.46",
43
- "@syncfusion/ej2-excel-export": "~19.3.44",
44
- "@syncfusion/ej2-inputs": "~19.3.44",
45
- "@syncfusion/ej2-lists": "~19.3.45",
46
- "@syncfusion/ej2-navigations": "~19.3.46",
47
- "@syncfusion/ej2-popups": "~19.3.43"
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.3.46",
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 + '" style="min-width: 120px;">' +
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
- this.startTime = eventObj[this.parent.eventFields.startTime].getTime();
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
- var isDifferentDate = util.resetTime(new Date(startTime.getTime())) < util.resetTime(new Date(endTime.getTime()));
690
- if (isDifferentDate) {
691
- var scheduleStartHour = this.parent.activeView.getStartHour();
692
- var scheduleEndHour = this.parent.activeView.getEndHour();
693
- var startDate = util.getStartEndHours(util.resetTime(startTime), scheduleStartHour, scheduleEndHour);
694
- var endDate = util.getStartEndHours(util.resetTime(endTime), scheduleStartHour, scheduleEndHour);
695
- var firstEventObj = extend({}, event, null, true);
696
- firstEventObj[eventFields.endTime] = startDate.endHour;
697
- eventData.push(firstEventObj);
698
- var secondEventObj = extend({}, event, null, true);
699
- secondEventObj[eventFields.startTime] = endDate.startHour;
700
- eventData.push(secondEventObj);
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 = event[this.parent.eventFields.isAllDay] ||
772
- this.parent.eventBase.isAllDayAppointment(event) || splitEvents.length > 2 ? [event] : splitEvents;
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
- eventStart = targetDate;
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;