@syncfusion/ej2-schedule 20.1.56 → 20.1.61

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 (53) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/dist/ej2-schedule.umd.min.js +2 -2
  3. package/dist/ej2-schedule.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-schedule.es2015.js +68 -33
  5. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es5.js +66 -31
  7. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  8. package/dist/global/ej2-schedule.min.js +2 -2
  9. package/dist/global/ej2-schedule.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +12 -12
  12. package/src/schedule/actions/action-base.d.ts +1 -0
  13. package/src/schedule/actions/action-base.js +3 -2
  14. package/src/schedule/actions/drag.js +10 -10
  15. package/src/schedule/base/schedule.js +5 -1
  16. package/src/schedule/event-renderer/agenda-base.js +3 -0
  17. package/src/schedule/event-renderer/event-base.js +16 -11
  18. package/src/schedule/event-renderer/month.js +1 -3
  19. package/src/schedule/popups/quick-popups.js +4 -3
  20. package/src/schedule/renderer/vertical-view.d.ts +1 -0
  21. package/src/schedule/renderer/vertical-view.js +16 -1
  22. package/src/schedule/renderer/view-base.js +8 -0
  23. package/styles/bootstrap-dark.css +1 -4
  24. package/styles/bootstrap.css +1 -4
  25. package/styles/bootstrap4.css +1 -4
  26. package/styles/bootstrap5-dark.css +0 -2
  27. package/styles/bootstrap5.css +1 -4
  28. package/styles/fabric-dark.css +1 -4
  29. package/styles/fabric.css +1 -4
  30. package/styles/fluent-dark.css +0 -2
  31. package/styles/fluent.css +1 -4
  32. package/styles/highcontrast-light.css +1 -4
  33. package/styles/highcontrast.css +1 -4
  34. package/styles/material-dark.css +1 -4
  35. package/styles/material.css +1 -4
  36. package/styles/schedule/_layout.scss +0 -1
  37. package/styles/schedule/bootstrap-dark.css +1 -4
  38. package/styles/schedule/bootstrap.css +1 -4
  39. package/styles/schedule/bootstrap4.css +1 -4
  40. package/styles/schedule/bootstrap5-dark.css +0 -2
  41. package/styles/schedule/bootstrap5.css +1 -4
  42. package/styles/schedule/fabric-dark.css +1 -4
  43. package/styles/schedule/fabric.css +1 -4
  44. package/styles/schedule/fluent-dark.css +0 -2
  45. package/styles/schedule/fluent.css +1 -4
  46. package/styles/schedule/highcontrast-light.css +1 -4
  47. package/styles/schedule/highcontrast.css +1 -4
  48. package/styles/schedule/material-dark.css +1 -4
  49. package/styles/schedule/material.css +1 -4
  50. package/styles/schedule/tailwind-dark.css +0 -2
  51. package/styles/schedule/tailwind.css +1 -4
  52. package/styles/tailwind-dark.css +0 -2
  53. package/styles/tailwind.css +1 -4
@@ -5785,7 +5785,7 @@ var EventBase = /** @__PURE__ @class */ (function () {
5785
5785
  EventBase.prototype.isAllDayAppointment = function (event) {
5786
5786
  var fieldMapping = this.parent.eventFields;
5787
5787
  var isAllDay = event[fieldMapping.isAllDay];
5788
- var isFullDay = ((event[fieldMapping.endTime].getTime() - event[fieldMapping.startTime].getTime())
5788
+ var isFullDay = ((getUniversalTime(event[fieldMapping.endTime]) - getUniversalTime(event[fieldMapping.startTime]))
5789
5789
  / MS_PER_DAY) >= 1;
5790
5790
  return (isAllDay || (this.parent.eventSettings.spannedEventPlacement !== 'TimeSlot' && isFullDay)) ? true : false;
5791
5791
  };
@@ -5804,6 +5804,7 @@ var EventBase = /** @__PURE__ @class */ (function () {
5804
5804
  }
5805
5805
  else if (!closest(element, '.' + POPUP_OPEN)) {
5806
5806
  this.removeSelectedAppointmentClass();
5807
+ this.parent.selectedElements = [];
5807
5808
  }
5808
5809
  };
5809
5810
  EventBase.prototype.wireAppointmentEvents = function (element, event, isPreventCrud) {
@@ -5909,6 +5910,7 @@ var EventBase = /** @__PURE__ @class */ (function () {
5909
5910
  this.parent.trigger(eventClick, args, function (eventClickArgs) {
5910
5911
  if (eventClickArgs.cancel) {
5911
5912
  _this.removeSelectedAppointmentClass();
5913
+ _this.parent.selectedElements = [];
5912
5914
  if (_this.parent.quickPopup) {
5913
5915
  _this.parent.quickPopup.quickPopupHide();
5914
5916
  }
@@ -5940,6 +5942,7 @@ var EventBase = /** @__PURE__ @class */ (function () {
5940
5942
  this.activeEventData(e, true);
5941
5943
  }
5942
5944
  this.removeSelectedAppointmentClass();
5945
+ this.parent.selectedElements = [];
5943
5946
  if (this.parent.activeEventData.element.classList.contains(INLINE_APPOINTMENT_CLASS) ||
5944
5947
  this.parent.activeEventData.element.querySelector('.' + INLINE_SUBJECT_CLASS)) {
5945
5948
  return;
@@ -6368,16 +6371,18 @@ var EventBase = /** @__PURE__ @class */ (function () {
6368
6371
  }
6369
6372
  };
6370
6373
  EventBase.prototype.updateEventMinimumDuration = function (startEndHours, startTime, endTime) {
6371
- var eventDuration = (getUniversalTime(endTime) - getUniversalTime(startTime)) / MS_PER_MINUTE;
6372
- if (eventDuration < this.parent.eventSettings.minimumEventDuration) {
6373
- var tempEnd = new Date(startTime);
6374
- tempEnd.setMinutes(tempEnd.getMinutes() + this.parent.eventSettings.minimumEventDuration);
6375
- endTime = tempEnd;
6376
- if (endTime.getTime() > startEndHours.endHour.getTime()) {
6377
- var tempStart = new Date(startEndHours.endHour.getTime());
6378
- tempStart.setMinutes(tempStart.getMinutes() - this.parent.eventSettings.minimumEventDuration);
6379
- startTime = tempStart;
6380
- endTime = startEndHours.endHour;
6374
+ if (startTime.getTime() < endTime.getTime()) {
6375
+ var eventDuration = (getUniversalTime(endTime) - getUniversalTime(startTime)) / MS_PER_MINUTE;
6376
+ if (eventDuration < this.parent.eventSettings.minimumEventDuration) {
6377
+ var tempEnd = new Date(startTime);
6378
+ tempEnd.setMinutes(tempEnd.getMinutes() + this.parent.eventSettings.minimumEventDuration);
6379
+ endTime = tempEnd;
6380
+ if (endTime.getTime() > startEndHours.endHour.getTime()) {
6381
+ var tempStart = new Date(startEndHours.endHour.getTime());
6382
+ tempStart.setMinutes(tempStart.getMinutes() - this.parent.eventSettings.minimumEventDuration);
6383
+ startTime = tempStart;
6384
+ endTime = startEndHours.endHour;
6385
+ }
6381
6386
  }
6382
6387
  }
6383
6388
  return { startDate: startTime, endDate: endTime };
@@ -7394,9 +7399,7 @@ var MonthEvent = /** @__PURE__ @class */ (function (_super) {
7394
7399
  this.sortByDateTime(blockList);
7395
7400
  if (this.parent.currentView === 'Month' && this.parent.rowAutoHeight && this.parent.activeViewOptions.group.resources.length === 0) {
7396
7401
  var totalCells = [].slice.call(this.parent.element.querySelectorAll('.e-content-wrap table tr td:first-child'));
7397
- var height_1 = this.parent.height === 'auto' ? (this.parent.element.querySelector('.e-content-wrap').clientHeight +
7398
- this.parent.element.querySelector('.e-date-header-wrap').clientHeight) / totalCells.length
7399
- : this.parent.element.querySelector('.e-schedule-table').clientHeight / totalCells.length;
7402
+ var height_1 = this.parent.element.querySelector('.' + CONTENT_TABLE_CLASS).clientHeight / totalCells.length;
7400
7403
  totalCells.forEach(function (cell) {
7401
7404
  setStyleAttribute(cell, { 'height': height_1 + 'px' });
7402
7405
  });
@@ -9295,6 +9298,7 @@ var QuickPopups = /** @__PURE__ @class */ (function () {
9295
9298
  }
9296
9299
  else {
9297
9300
  var isSameTarget = this.isSameEventClick(events);
9301
+ this.parent.selectedElements = [];
9298
9302
  if (isSameTarget) {
9299
9303
  return;
9300
9304
  }
@@ -9360,7 +9364,7 @@ var QuickPopups = /** @__PURE__ @class */ (function () {
9360
9364
  ("<button class=\"" + (DELETE_CLASS + ' ' + ICON) + "\" title=\"" + this.l10n.getConstant('delete') + "\"></button>") +
9361
9365
  ("<button class=\"" + CLOSE_CLASS + "\" title=\"" + this.l10n.getConstant('close') + "\"></button></div>") +
9362
9366
  ("<div class=\"" + SUBJECT_WRAP + "\"><div class=\"" + SUBJECT_CLASS + " " + TEXT_ELLIPSIS + "\" ") +
9363
- ("title=\"" + args.eventSubject + "\">" + args.eventSubject + "</div></div >");
9367
+ ("title=\"" + (args.eventSubject ? args.eventSubject.replaceAll('"', '\'') : args.eventSubject) + "\">" + args.eventSubject + "</div></div >");
9364
9368
  break;
9365
9369
  }
9366
9370
  var templateWrapper = createElement('div', { innerHTML: header });
@@ -9548,11 +9552,11 @@ var QuickPopups = /** @__PURE__ @class */ (function () {
9548
9552
  (endDate.getTime() - startDate.getTime()) / (60 * 60 * 1000) < 24 ? 1 : 0;
9549
9553
  if (eventData[fields.isAllDay]) {
9550
9554
  details = startDateDetails + ' (' + this.l10n.getConstant('allDay') + ')';
9551
- if (((endDate.getTime() - startDate.getTime()) / MS_PER_DAY) > 1) {
9555
+ if (((getUniversalTime(endDate) - getUniversalTime(startDate)) / MS_PER_DAY) > 1) {
9552
9556
  details += '&nbsp;-&nbsp;' + endDateDetails + ' (' + this.l10n.getConstant('allDay') + ')';
9553
9557
  }
9554
9558
  }
9555
- else if ((((endDate.getTime() - startDate.getTime()) / MS_PER_DAY) >= 1) || spanLength > 0) {
9559
+ else if ((((getUniversalTime(endDate) - getUniversalTime(startDate)) / MS_PER_DAY) >= 1) || spanLength > 0) {
9556
9560
  details = startDateDetails + ' (' + startTimeDetail + ')' + '&nbsp;-&nbsp;' + endDateDetails + ' (' + endTimeDetail + ')';
9557
9561
  }
9558
9562
  else {
@@ -17160,8 +17164,12 @@ var Schedule = /** @__PURE__ @class */ (function (_super) {
17160
17164
  this.refreshEvents(false);
17161
17165
  }
17162
17166
  break;
17163
- case 'showWeekend':
17164
17167
  case 'workDays':
17168
+ if (JSON.stringify(oldProp.workDays) !== JSON.stringify(newProp.workDays)) {
17169
+ state.isLayout = true;
17170
+ }
17171
+ break;
17172
+ case 'showWeekend':
17165
17173
  case 'startHour':
17166
17174
  case 'endHour':
17167
17175
  case 'workHours':
@@ -18911,6 +18919,7 @@ var ActionBase = /** @__PURE__ @class */ (function () {
18911
18919
  };
18912
18920
  ActionBase.prototype.updateScrollPosition = function (e) {
18913
18921
  var _this = this;
18922
+ this.scrollEventArgs = e;
18914
18923
  if (this.actionObj.scroll.enable && isNullOrUndefined(this.actionObj.scrollInterval)) {
18915
18924
  this.actionObj.scrollInterval = window.setInterval(function () {
18916
18925
  if (_this.autoScrollValidation() && !_this.actionObj.clone.classList.contains(ALLDAY_APPOINTMENT_CLASS)) {
@@ -18920,10 +18929,10 @@ var ActionBase = /** @__PURE__ @class */ (function () {
18920
18929
  }
18921
18930
  _this.autoScroll();
18922
18931
  if (_this.actionObj.action === 'drag') {
18923
- _this.parent.dragAndDropModule.updateDraggingDateTime(e);
18932
+ _this.parent.dragAndDropModule.updateDraggingDateTime(_this.scrollEventArgs);
18924
18933
  }
18925
18934
  else {
18926
- _this.parent.resizeModule.updateResizingDirection(e);
18935
+ _this.parent.resizeModule.updateResizingDirection(_this.scrollEventArgs);
18927
18936
  }
18928
18937
  }
18929
18938
  }, this.actionObj.scroll.timeDelay);
@@ -20728,7 +20737,7 @@ var DragAndDrop = /** @__PURE__ @class */ (function (_super) {
20728
20737
  var eventObj = extend({}, this.actionObj.event, null, true);
20729
20738
  var eventStart = eventObj[this.parent.eventFields.startTime];
20730
20739
  var eventEnd = eventObj[this.parent.eventFields.endTime];
20731
- var eventDuration = eventEnd.getTime() - eventStart.getTime();
20740
+ var eventDuration = getUniversalTime(eventEnd) - getUniversalTime(eventStart);
20732
20741
  var offsetTop = Math.floor(parseInt(this.actionObj.clone.style.top, 10) / this.actionObj.cellHeight)
20733
20742
  * this.actionObj.cellHeight;
20734
20743
  offsetTop = offsetTop < 0 ? 0 : offsetTop;
@@ -21087,8 +21096,8 @@ var DragAndDrop = /** @__PURE__ @class */ (function (_super) {
21087
21096
  if (isNullOrUndefined(this.parent.eventDragArea)) {
21088
21097
  this.removeCloneElement();
21089
21098
  }
21090
- var eventDuration = eventObj[this.parent.eventFields.endTime].getTime() -
21091
- eventObj[this.parent.eventFields.startTime].getTime();
21099
+ var eventDuration = getUniversalTime(eventObj[this.parent.eventFields.endTime]) -
21100
+ getUniversalTime(eventObj[this.parent.eventFields.startTime]);
21092
21101
  var td = closest(this.actionObj.target, 'td');
21093
21102
  if (!isNullOrUndefined(td)) {
21094
21103
  var tr = td.parentElement;
@@ -21102,11 +21111,11 @@ var DragAndDrop = /** @__PURE__ @class */ (function (_super) {
21102
21111
  }
21103
21112
  var timeString = new Date(currentDate.setDate(currentDate.getDate() - this.daysVariation));
21104
21113
  var dragStart$$1 = new Date(timeString.getTime());
21114
+ var startTimeDiff = getUniversalTime(eventObj[this.parent.eventFields.startTime]) -
21115
+ getUniversalTime(resetTime(new Date(+eventObj[this.parent.eventFields.startTime])));
21116
+ dragStart$$1.setMilliseconds(startTimeDiff);
21105
21117
  var dragEnd = new Date(dragStart$$1.getTime());
21106
- var startTimeDiff = eventObj[this.parent.eventFields.startTime].getTime() -
21107
- (resetTime(new Date(+eventObj[this.parent.eventFields.startTime]))).getTime();
21108
- dragStart$$1 = new Date(dragStart$$1.getTime() + startTimeDiff);
21109
- dragEnd = new Date(dragStart$$1.getTime() + eventDuration);
21118
+ dragEnd.setMilliseconds(eventDuration);
21110
21119
  this.actionObj.start = new Date(dragStart$$1.getTime());
21111
21120
  this.actionObj.end = new Date(dragEnd.getTime());
21112
21121
  }
@@ -21162,8 +21171,8 @@ var DragAndDrop = /** @__PURE__ @class */ (function (_super) {
21162
21171
  };
21163
21172
  DragAndDrop.prototype.calculateTimelineTime = function (e) {
21164
21173
  var eventObj = extend({}, this.actionObj.event, null, true);
21165
- var eventDuration = eventObj[this.parent.eventFields.endTime].getTime() -
21166
- eventObj[this.parent.eventFields.startTime].getTime();
21174
+ var eventDuration = getUniversalTime(eventObj[this.parent.eventFields.endTime]) -
21175
+ getUniversalTime(eventObj[this.parent.eventFields.startTime]);
21167
21176
  var offsetLeft = this.parent.enableRtl ? Math.abs(this.actionObj.clone.offsetLeft) - this.actionObj.clone.offsetWidth :
21168
21177
  parseInt(this.actionObj.clone.style.left, 10);
21169
21178
  offsetLeft = Math.floor(offsetLeft / this.actionObj.cellWidth) * this.actionObj.cellWidth;
@@ -21396,7 +21405,7 @@ var DragAndDrop = /** @__PURE__ @class */ (function (_super) {
21396
21405
  var cursorElement = this.getCursorElement(e);
21397
21406
  if (cursorElement) {
21398
21407
  top = cursorElement.classList.contains(WORK_CELLS_CLASS) ? cursorElement.offsetTop :
21399
- cursorElement.offsetParent.classList.contains(APPOINTMENT_CLASS) ?
21408
+ (cursorElement.offsetParent && cursorElement.offsetParent.classList.contains(APPOINTMENT_CLASS)) ?
21400
21409
  cursorElement.offsetParent.offsetTop : top;
21401
21410
  }
21402
21411
  }
@@ -21945,6 +21954,14 @@ var ViewBase = /** @__PURE__ @class */ (function () {
21945
21954
  var tdDate = new Date(resetTime(new Date(+scrollDate)).getTime()).getTime();
21946
21955
  var dateElement = scrollWrap.querySelector("." + WORK_CELLS_CLASS + "[data-date=\"" + tdDate + "\"]");
21947
21956
  if (this.parent.currentView === 'Month' && dateElement) {
21957
+ if (scrollWrap.scrollWidth > scrollWrap.clientWidth) {
21958
+ if (!this.parent.enableRtl) {
21959
+ scrollWrap.scrollLeft = dateElement.offsetLeft;
21960
+ }
21961
+ else {
21962
+ scrollWrap.scrollLeft = -(this.parent.getContentTable().offsetWidth - dateElement.offsetLeft - dateElement.offsetWidth);
21963
+ }
21964
+ }
21948
21965
  scrollWrap.scrollTop = dateElement.offsetTop;
21949
21966
  }
21950
21967
  if (this.parent.currentView === 'TimelineMonth' && dateElement) {
@@ -22149,11 +22166,26 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
22149
22166
  };
22150
22167
  VerticalView.prototype.scrollToHour = function (hour, scrollDate) {
22151
22168
  var date = this.parent.getStartEndTime(hour);
22152
- if (isNullOrUndefined(date) || !isNullOrUndefined(scrollDate)) {
22169
+ if (!isNullOrUndefined(scrollDate)) {
22170
+ var headerElement = this.element.querySelector('.' + HEADER_CELLS_CLASS + '[data-date="' + new Date(resetTime(scrollDate)).getTime() + '"]');
22171
+ if (headerElement) {
22172
+ if (this.parent.enableRtl) {
22173
+ var conWrap = this.element.querySelector('.' + CONTENT_TABLE_CLASS);
22174
+ this.getScrollableElement().scrollLeft = -(conWrap.offsetWidth - headerElement.offsetLeft - headerElement.offsetWidth);
22175
+ }
22176
+ else {
22177
+ this.getScrollableElement().scrollLeft = headerElement.offsetLeft;
22178
+ }
22179
+ }
22180
+ }
22181
+ if (isNullOrUndefined(date)) {
22153
22182
  return;
22154
22183
  }
22155
22184
  this.getScrollableElement().scrollTop = this.getTopFromDateTime(date);
22156
22185
  };
22186
+ VerticalView.prototype.scrollToDate = function (scrollDate) {
22187
+ this.scrollToHour(null, scrollDate);
22188
+ };
22157
22189
  VerticalView.prototype.generateColumnLevels = function () {
22158
22190
  var level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);
22159
22191
  var columnLevels = [];
@@ -24000,6 +24032,9 @@ var AgendaBase = /** @__PURE__ @class */ (function (_super) {
24000
24032
  itemClass: this.parent.activeView.viewClass,
24001
24033
  template: "<div class=\"" + AGENDA_NO_EVENT_CLASS + "\">" + this.parent.localeObj.getConstant('noEvents') + "</div>"
24002
24034
  });
24035
+ if (listElement.querySelector('.e-agenda-item').children.length === 0) {
24036
+ listElement.firstElementChild.appendChild(createElement('div', { className: AGENDA_NO_EVENT_CLASS, innerHTML: this.parent.localeObj.getConstant('noEvents') }));
24037
+ }
24003
24038
  }
24004
24039
  else {
24005
24040
  listElement = ListBase.createList(this.parent.createElement, listData, {