@syncfusion/ej2-schedule 21.1.37 → 21.1.39

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 (54) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/ej2-schedule.min.js +2 -2
  3. package/dist/ej2-schedule.umd.min.js +2 -2
  4. package/dist/ej2-schedule.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-schedule.es2015.js +32 -34
  6. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  7. package/dist/es6/ej2-schedule.es5.js +39 -41
  8. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  9. package/dist/global/ej2-schedule.min.js +2 -2
  10. package/dist/global/ej2-schedule.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +12 -12
  13. package/src/schedule/base/schedule.d.ts +1 -0
  14. package/src/schedule/base/schedule.js +3 -2
  15. package/src/schedule/event-renderer/timeline-view.js +7 -14
  16. package/src/schedule/event-renderer/vertical-view.js +3 -9
  17. package/src/schedule/exports/print.js +13 -3
  18. package/src/schedule/renderer/month.js +2 -2
  19. package/src/schedule/renderer/renderer.js +1 -0
  20. package/src/schedule/renderer/timeline-year.js +4 -6
  21. package/src/schedule/renderer/vertical-view.js +5 -4
  22. package/src/schedule/renderer/view-base.js +1 -1
  23. package/styles/bootstrap-dark.css +10 -4
  24. package/styles/bootstrap.css +10 -4
  25. package/styles/bootstrap4.css +10 -4
  26. package/styles/bootstrap5-dark.css +10 -4
  27. package/styles/bootstrap5.css +10 -4
  28. package/styles/fabric-dark.css +10 -4
  29. package/styles/fabric.css +10 -4
  30. package/styles/fluent-dark.css +10 -4
  31. package/styles/fluent.css +10 -4
  32. package/styles/highcontrast-light.css +10 -4
  33. package/styles/highcontrast.css +10 -4
  34. package/styles/material-dark.css +10 -4
  35. package/styles/material.css +10 -4
  36. package/styles/schedule/_layout.scss +6 -2
  37. package/styles/schedule/_theme.scss +4 -2
  38. package/styles/schedule/bootstrap-dark.css +10 -4
  39. package/styles/schedule/bootstrap.css +10 -4
  40. package/styles/schedule/bootstrap4.css +10 -4
  41. package/styles/schedule/bootstrap5-dark.css +10 -4
  42. package/styles/schedule/bootstrap5.css +10 -4
  43. package/styles/schedule/fabric-dark.css +10 -4
  44. package/styles/schedule/fabric.css +10 -4
  45. package/styles/schedule/fluent-dark.css +10 -4
  46. package/styles/schedule/fluent.css +10 -4
  47. package/styles/schedule/highcontrast-light.css +10 -4
  48. package/styles/schedule/highcontrast.css +10 -4
  49. package/styles/schedule/material-dark.css +10 -4
  50. package/styles/schedule/material.css +10 -4
  51. package/styles/schedule/tailwind-dark.css +10 -4
  52. package/styles/schedule/tailwind.css +10 -4
  53. package/styles/tailwind-dark.css +10 -4
  54. package/styles/tailwind.css +10 -4
@@ -7045,12 +7045,6 @@ class VerticalEvent extends EventBase {
7045
7045
  record.data = eventData;
7046
7046
  this.appendEvent(record, appointmentElement, index, tempData.appLeft);
7047
7047
  this.wireAppointmentEvents(appointmentElement, eventObj);
7048
- if (appHeight < this.cellHeight) {
7049
- const resizeHandlers = [].slice.call(appointmentElement.querySelectorAll('.' + EVENT_RESIZE_CLASS));
7050
- resizeHandlers.forEach((resizeHandler) => {
7051
- resizeHandler.style.height = Math.ceil(appHeight / resizeHandler.offsetHeight) + 'px';
7052
- });
7053
- }
7054
7048
  }
7055
7049
  }
7056
7050
  getEventWidth() {
@@ -8141,13 +8135,6 @@ class TimelineEvent extends MonthEvent {
8141
8135
  const firstChild = this.getFirstChild(resIndex);
8142
8136
  this.updateCellHeight(firstChild, height);
8143
8137
  }
8144
- if (this.parent.activeViewOptions.option !== 'TimelineMonth' && this.parent.activeViewOptions.timeScale.enable
8145
- && appWidth < this.cellWidth) {
8146
- const resizeHandlers = [].slice.call(appointmentElement.querySelectorAll('.' + EVENT_RESIZE_CLASS));
8147
- resizeHandlers.forEach((resizeHandler) => {
8148
- resizeHandler.style.width = Math.ceil(appWidth / resizeHandler.getBoundingClientRect().width) + 'px';
8149
- });
8150
- }
8151
8138
  }
8152
8139
  else {
8153
8140
  for (let i = 0; i < diffInDays; i++) {
@@ -8187,7 +8174,7 @@ class TimelineEvent extends MonthEvent {
8187
8174
  renderTimelineMoreIndicator(startTime, startDate, endDate, appHeight, interval, resIndex, appointmentsList, top, appLeft, appRight, cellTd, moreIndicator, appPos, position) {
8188
8175
  appLeft = (this.parent.enableRtl) ? appRight = position : position;
8189
8176
  appPos = (this.parent.enableRtl) ? appRight : appLeft;
8190
- appPos = (Math.floor(appPos / this.cellWidth) * this.cellWidth);
8177
+ appPos = (Math.round(appPos / this.cellWidth) * this.cellWidth);
8191
8178
  if ((cellTd && isNullOrUndefined(moreIndicator)) ||
8192
8179
  (!this.isAlreadyAvail(appPos, cellTd))) {
8193
8180
  const startDateTime = (this.parent.activeViewOptions.option === 'TimelineMonth' || this.renderType === 'day') ? new Date(+startTime) : startDate;
@@ -8214,8 +8201,8 @@ class TimelineEvent extends MonthEvent {
8214
8201
  }
8215
8202
  moreIndicatorElement.style.top = top + appArea + 'px';
8216
8203
  moreIndicatorElement.style.width = this.cellWidth + 'px';
8217
- moreIndicatorElement.style.left = (Math.floor(appLeft / this.cellWidth) * this.cellWidth) + 'px';
8218
- moreIndicatorElement.style.right = (Math.floor(appRight / this.cellWidth) * this.cellWidth) + 'px';
8204
+ moreIndicatorElement.style.left = ((appLeft / this.cellWidth) * this.cellWidth) + 'px';
8205
+ moreIndicatorElement.style.right = ((appRight / this.cellWidth) * this.cellWidth) + 'px';
8219
8206
  this.renderElement(cellTd, moreIndicatorElement);
8220
8207
  EventHandler.add(moreIndicatorElement, 'click', this.moreIndicatorClick, this);
8221
8208
  }
@@ -13775,6 +13762,7 @@ class Render {
13775
13762
  }
13776
13763
  }
13777
13764
  this.updateHeader();
13765
+ this.parent.currentTimezoneDate = this.parent.getCurrentTime();
13778
13766
  this.parent.activeView.renderLayout(CURRENT_PANEL_CLASS);
13779
13767
  this.parent.renderTemplates();
13780
13768
  if (this.parent.eventTooltip) {
@@ -16613,7 +16601,8 @@ let Schedule = class Schedule extends Component {
16613
16601
  isIgnoreOccurrence: false, groupIndex: 0, action: false, isBlock: false, isCustomMonth: true, isPreventTimezone: false
16614
16602
  };
16615
16603
  }
16616
- this.activeCellsData = { startTime: this.getCurrentTime(), endTime: this.getCurrentTime(), isAllDay: false };
16604
+ this.currentTimezoneDate = this.getCurrentTime();
16605
+ this.activeCellsData = { startTime: new Date(this.currentTimezoneDate), endTime: new Date(this.currentTimezoneDate), isAllDay: false };
16617
16606
  this.activeEventData = { event: undefined, element: undefined };
16618
16607
  this.getDefaultLocale();
16619
16608
  this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);
@@ -17061,7 +17050,7 @@ let Schedule = class Schedule extends Component {
17061
17050
  */
17062
17051
  getStartEndTime(startEndTime) {
17063
17052
  if (!isNullOrUndefined(startEndTime) && startEndTime !== '') {
17064
- const startEndDate = resetTime(this.getCurrentTime());
17053
+ const startEndDate = resetTime(new Date(this.currentTimezoneDate) || this.getCurrentTime());
17065
17054
  const timeString = startEndTime.split(':');
17066
17055
  if (timeString.length === 2) {
17067
17056
  startEndDate.setHours(parseInt(timeString[0], 10), parseInt(timeString[1], 10), 0);
@@ -21922,7 +21911,7 @@ class ViewBase {
21922
21911
  return endHour;
21923
21912
  }
21924
21913
  isCurrentDate(date) {
21925
- return date.setHours(0, 0, 0, 0) === this.parent.getCurrentTime().setHours(0, 0, 0, 0);
21914
+ return date.setHours(0, 0, 0, 0) === new Date(this.parent.currentTimezoneDate).setHours(0, 0, 0, 0);
21926
21915
  }
21927
21916
  isCurrentMonth(date) {
21928
21917
  if (this.parent.activeViewOptions.displayDate || this.parent.activeViewOptions.numberOfWeeks > 0) {
@@ -22506,7 +22495,8 @@ class VerticalView extends ViewBase {
22506
22495
  this.parent.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour') {
22507
22496
  return;
22508
22497
  }
22509
- if (this.parent.showTimeIndicator && this.isWorkHourRange(this.parent.getCurrentTime())) {
22498
+ const currentDate = this.parent.getCurrentTime();
22499
+ if (this.parent.showTimeIndicator && this.isWorkHourRange(currentDate)) {
22510
22500
  const currentDateIndex = this.getCurrentTimeIndicatorIndex();
22511
22501
  if (currentDateIndex.length > 0) {
22512
22502
  const workCells = [].slice.call(this.element.querySelectorAll('.' + WORK_CELLS_CLASS));
@@ -22514,7 +22504,6 @@ class VerticalView extends ViewBase {
22514
22504
  this.changeCurrentTimePosition();
22515
22505
  }
22516
22506
  if (isNullOrUndefined(this.currentTimeIndicatorTimer)) {
22517
- const currentDate = this.parent.getCurrentTime();
22518
22507
  const interval = MS_PER_MINUTE - ((currentDate.getSeconds() * 1000) + currentDate.getMilliseconds());
22519
22508
  if (interval <= (MS_PER_MINUTE - 1000)) {
22520
22509
  window.setTimeout(() => {
@@ -22541,10 +22530,11 @@ class VerticalView extends ViewBase {
22541
22530
  if (!isNullOrUndefined(this.parent.resourceBase) && (this.parent.activeViewOptions.group.resources.length > 0) &&
22542
22531
  !this.parent.uiStateValues.isGroupAdaptive) {
22543
22532
  let count = 0;
22533
+ const currentDate = resetTime(this.parent.getCurrentTime());
22544
22534
  if (this.parent.virtualScrollModule && this.parent.activeViewOptions.allowVirtualScrolling &&
22545
22535
  this.parent.activeViewOptions.group.byDate) {
22546
22536
  for (const resource of this.parent.resourceBase.expandedResources) {
22547
- if (resetTime(resource.date).getTime() === resetTime(this.parent.getCurrentTime()).getTime()) {
22537
+ if (resetTime(resource.date).getTime() === currentDate.getTime()) {
22548
22538
  currentDateIndex.push(count);
22549
22539
  }
22550
22540
  count += 1;
@@ -22552,7 +22542,7 @@ class VerticalView extends ViewBase {
22552
22542
  }
22553
22543
  else {
22554
22544
  for (const resource of this.parent.resourceBase.renderedResources) {
22555
- const index = this.parent.getIndexOfDate(resource.renderDates, resetTime(this.parent.getCurrentTime()));
22545
+ const index = this.parent.getIndexOfDate(resource.renderDates, currentDate);
22556
22546
  if (index >= 0) {
22557
22547
  const resIndex = this.parent.activeViewOptions.group.byDate ?
22558
22548
  (this.parent.resourceBase.lastResourceLevel.length * index) + count : count + index;
@@ -23328,7 +23318,7 @@ class Month extends ViewBase {
23328
23318
  for (let col = 0; col < count; col++) {
23329
23319
  const classList$$1 = [HEADER_CELLS_CLASS];
23330
23320
  const currentDateIndex = renderDates.slice(0, count).map((date) => date.getDay());
23331
- if (isCurrentMonth && currentDateIndex.indexOf(this.parent.getCurrentTime().getDay()) === col) {
23321
+ if (isCurrentMonth && currentDateIndex.indexOf(this.parent.currentTimezoneDate.getDay()) === col) {
23332
23322
  classList$$1.push(CURRENT_DAY_CLASS);
23333
23323
  }
23334
23324
  dateSlots.push({ date: renderDates[parseInt(col.toString(), 10)], type: 'monthDay', className: classList$$1, colSpan: 1, workDays: workDays });
@@ -23692,7 +23682,7 @@ class Month extends ViewBase {
23692
23682
  addClass([dateHeader], NAVIGATE_CLASS);
23693
23683
  const skeleton = 'full';
23694
23684
  const announcementText = this.parent.globalize.formatDate(data.date, { skeleton: skeleton, calendar: this.parent.getCalendarMode() });
23695
- dateHeader.setAttribute('aria-label', announcementText);
23685
+ ntd.setAttribute('aria-label', announcementText);
23696
23686
  }
23697
23687
  }
23698
23688
  getMonthStart(currentDate) {
@@ -25987,8 +25977,11 @@ class TimelineYear extends Year {
25987
25977
  else {
25988
25978
  isDateAvail = column >= monthStart.getDay() && date.getTime() < monthEnd.getTime();
25989
25979
  }
25980
+ const announcementText = this.parent.globalize.formatDate(date, {
25981
+ skeleton: 'full', calendar: this.parent.getCalendarMode()
25982
+ });
25990
25983
  const td = createElement('td', {
25991
- className: WORK_CELLS_CLASS, attrs: { 'aria-selected': 'false' }
25984
+ className: WORK_CELLS_CLASS, attrs: { 'aria-selected': 'false', 'aria-label': announcementText }
25992
25985
  });
25993
25986
  contentTr.appendChild(td);
25994
25987
  const dateHeader = createElement('div', {
@@ -25996,11 +25989,6 @@ class TimelineYear extends Year {
25996
25989
  innerHTML: (isDateAvail) ?
25997
25990
  this.parent.globalize.formatDate(date, { skeleton: 'd', calendar: this.parent.getCalendarMode() }) : ''
25998
25991
  });
25999
- const skeleton = 'full';
26000
- const announcementText = this.parent.globalize.formatDate(date, {
26001
- skeleton: skeleton, calendar: this.parent.getCalendarMode()
26002
- });
26003
- dateHeader.setAttribute('aria-label', announcementText);
26004
25992
  if (isDateAvail) {
26005
25993
  const tds = [td];
26006
25994
  const classList$$1 = [];
@@ -26727,22 +26715,28 @@ class Print {
26727
26715
  'resources', 'rowAutoHeight', 'selectedDate', 'showHeaderBar', 'showTimeIndicator', 'showWeekNumber',
26728
26716
  'showWeekend', 'startHour', 'timeFormat', 'timeScale', 'timezone', 'views', 'width', 'workDays', 'workHours',
26729
26717
  'dateHeaderTemplate', 'dateRangeTemplate', 'cellHeaderTemplate', 'dayHeaderTemplate', 'monthHeaderTemplate',
26730
- 'cellTemplate', 'resourceHeaderTemplate', 'headerIndentTemplate'
26718
+ 'cellTemplate', 'resourceHeaderTemplate', 'headerIndentTemplate', 'actionBegin', 'actionComplete', 'actionFailure',
26719
+ 'created', 'dataBinding', 'dataBound', 'destroyed', 'eventRendered', 'moreEventsClick', 'navigating', 'popupOpen', 'popupClose', 'renderCell'
26731
26720
  ];
26732
26721
  const scheduleTemplates = ['cellHeaderTemplate', 'dayHeaderTemplate', 'monthHeaderTemplate', 'cellTemplate',
26733
26722
  'dateHeaderTemplate', 'dateRangeTemplate', 'eventTemplate', 'resourceHeaderTemplate', 'headerIndentTemplate'];
26723
+ const scheduleEvents = ['actionBegin', 'actionComplete', 'actionFailure', 'created', 'dataBinding', 'dataBound',
26724
+ 'destroyed', 'eventRendered', 'moreEventsClick', 'navigating', 'popupOpen', 'popupClose', 'renderCell'];
26734
26725
  let eventSettings;
26735
26726
  let group;
26736
26727
  let timeScale;
26737
26728
  let views;
26738
26729
  for (const key of scheduleProps) {
26739
26730
  switch (key) {
26740
- case 'eventSettings':
26731
+ case 'eventSettings': {
26741
26732
  eventSettings = Object.assign({}, this.parent.eventSettings.properties);
26742
26733
  eventSettings.dataSource = this.parent.eventsData;
26743
- eventSettings.template = typeof (eventSettings.template) === 'function' ? null : eventSettings.template;
26734
+ const eventTemplate = !isNullOrUndefined(printOptions.eventSettings) &&
26735
+ !isNullOrUndefined(printOptions.eventSettings.template) ? printOptions.eventSettings.template : eventSettings.template;
26736
+ eventSettings.template = typeof (eventTemplate) === 'function' ? null : eventTemplate;
26744
26737
  printModel.eventSettings = eventSettings;
26745
26738
  break;
26739
+ }
26746
26740
  case 'group':
26747
26741
  group = isNullOrUndefined(printOptions.group) ? this.parent.group : printOptions.group;
26748
26742
  group.headerTooltipTemplate = null;
@@ -26774,6 +26768,10 @@ class Print {
26774
26768
  (typeof (printOptions[`${key}`]) === 'function' ? null : printOptions[`${key}`]);
26775
26769
  break;
26776
26770
  }
26771
+ if (scheduleEvents.indexOf(key) > -1) {
26772
+ printModel[`${key}`] = printOptions[`${key}`];
26773
+ break;
26774
+ }
26777
26775
  printModel[`${key}`] = isNullOrUndefined(printOptions[`${key}`]) ?
26778
26776
  this.parent[`${key}`] : printOptions[`${key}`];
26779
26777
  break;