@syncfusion/ej2-schedule 21.2.5 → 21.2.9

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.
@@ -1118,7 +1118,7 @@ class HeaderRenderer {
1118
1118
  }
1119
1119
  else {
1120
1120
  const text = this.parent.activeView.getDateRangeText(date);
1121
- selEle.setAttribute('aria-label', text);
1121
+ selEle.firstElementChild.setAttribute('aria-label', text);
1122
1122
  textEle.textContent = text;
1123
1123
  }
1124
1124
  this.refresh();
@@ -1149,16 +1149,16 @@ class HeaderRenderer {
1149
1149
  const items = [];
1150
1150
  items.push({
1151
1151
  align: 'Left', prefixIcon: 'e-icon-prev', tooltipText: 'Previous', overflow: 'Show',
1152
- cssClass: 'e-prev', htmlAttributes: { 'aria-label': 'previous period', 'role': 'navigation' }
1152
+ cssClass: 'e-prev', htmlAttributes: { 'role': 'navigation' }
1153
1153
  });
1154
1154
  items.push({
1155
1155
  align: 'Left', prefixIcon: 'e-icon-next', tooltipText: 'Next', overflow: 'Show',
1156
- cssClass: 'e-next', htmlAttributes: { 'aria-label': 'next period', 'role': 'navigation' }
1156
+ cssClass: 'e-next', htmlAttributes: { 'role': 'navigation' }
1157
1157
  });
1158
1158
  items.push({
1159
1159
  align: 'Left', text: this.getDateRangeText(), suffixIcon: 'e-icon-down-arrow', cssClass: 'e-date-range',
1160
1160
  overflow: 'Show',
1161
- htmlAttributes: { 'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'title', 'role': 'navigation' }
1161
+ htmlAttributes: { 'aria-atomic': 'true', 'aria-live': 'assertive', 'role': 'navigation' }
1162
1162
  });
1163
1163
  if (this.parent.isAdaptive || this.parent.enableAdaptiveUI) {
1164
1164
  items.push({
@@ -7984,7 +7984,8 @@ class TimelineEvent extends MonthEvent {
7984
7984
  if (this.parent.activeViewOptions.headerRows.length > 0 &&
7985
7985
  this.parent.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour') {
7986
7986
  this.renderType = 'day';
7987
- this.cellWidth = this.content.offsetWidth / this.dateRender.length;
7987
+ const workCell = this.content.querySelector('.' + WORK_CELLS_CLASS);
7988
+ this.cellWidth = workCell.getBoundingClientRect().width / +(workCell.getAttribute('colspan') || 1);
7988
7989
  this.slotsPerDay = 1;
7989
7990
  }
7990
7991
  else {
@@ -8186,7 +8187,7 @@ class TimelineEvent extends MonthEvent {
8186
8187
  renderTimelineMoreIndicator(startTime, startDate, endDate, appHeight, interval, resIndex, appointmentsList, top, appLeft, appRight, cellTd, moreIndicator, appPos, position) {
8187
8188
  appLeft = (this.parent.enableRtl) ? appRight = position : position;
8188
8189
  appPos = (this.parent.enableRtl) ? appRight : appLeft;
8189
- appPos = (Math.round(appPos / this.cellWidth) * this.cellWidth);
8190
+ appPos = (Math.floor(appPos / this.cellWidth) * this.cellWidth);
8190
8191
  if ((cellTd && isNullOrUndefined(moreIndicator)) ||
8191
8192
  (!this.isAlreadyAvail(appPos, cellTd))) {
8192
8193
  const startDateTime = (this.parent.activeViewOptions.option === 'TimelineMonth' || this.renderType === 'day') ? new Date(+startTime) : startDate;
@@ -8213,8 +8214,8 @@ class TimelineEvent extends MonthEvent {
8213
8214
  }
8214
8215
  moreIndicatorElement.style.top = top + appArea + 'px';
8215
8216
  moreIndicatorElement.style.width = this.cellWidth + 'px';
8216
- moreIndicatorElement.style.left = ((appLeft / this.cellWidth) * this.cellWidth) + 'px';
8217
- moreIndicatorElement.style.right = ((appRight / this.cellWidth) * 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';
8218
8219
  this.renderElement(cellTd, moreIndicatorElement);
8219
8220
  EventHandler.add(moreIndicatorElement, 'click', this.moreIndicatorClick, this);
8220
8221
  }
@@ -9024,13 +9025,6 @@ class QuickPopups {
9024
9025
  this.quickDialog.content = this.l10n.getConstant('editContent');
9025
9026
  this.quickDialog.header = this.l10n.getConstant(this.parent.currentAction === 'Delete' ? 'deleteTitle' : 'editTitle');
9026
9027
  this.quickDialogClass('Recurrence');
9027
- const activeEvent = this.parent.activeEventData.event;
9028
- if (this.parent.eventSettings.editFollowingEvents && this.parent.currentAction === 'EditOccurrence'
9029
- && !isNullOrUndefined(activeEvent[this.parent.eventFields.recurrenceID]) && activeEvent[this.parent.eventFields.recurrenceID]
9030
- !== activeEvent[this.parent.eventFields.id]) {
9031
- const followingEventButton = this.quickDialog.element.querySelector('.' + QUICK_DIALOG_ALERT_FOLLOWING);
9032
- addClass([followingEventButton], DISABLE_CLASS);
9033
- }
9034
9028
  this.showQuickDialog('RecurrenceAlert');
9035
9029
  }
9036
9030
  openRecurrenceValidationAlert(type) {
@@ -11621,6 +11615,7 @@ class EventWindow {
11621
11615
  }
11622
11616
  }
11623
11617
  onBeforeOpen(args) {
11618
+ const endTime = this.eventData[this.fields.endTime].getTime();
11624
11619
  const eventProp = {
11625
11620
  type: 'Editor',
11626
11621
  data: this.eventData,
@@ -11645,6 +11640,12 @@ class EventWindow {
11645
11640
  this.parent.trigger(popupOpen, eventProp, (popupArgs) => {
11646
11641
  args.cancel = popupArgs.cancel;
11647
11642
  this.duration = this.cellClickAction ? popupArgs.duration : null;
11643
+ if (this.eventData[this.fields.endTime].getTime() === endTime && !this.cellClickAction &&
11644
+ this.eventData[this.fields.endTime].getHours() === 0 &&
11645
+ this.eventData[this.fields.endTime].getMinutes() === 0) {
11646
+ this.eventData = extend({}, this.eventData, null, true);
11647
+ this.trimAllDay(this.eventData);
11648
+ }
11648
11649
  this.refreshDateTimePicker(this.duration);
11649
11650
  if (this.cellClickAction && popupArgs.duration !== this.getSlotDuration() && isNullOrUndefined(this.parent.editorTemplate)) {
11650
11651
  const startObj = this.getInstance(EVENT_WINDOW_START_CLASS);
@@ -12310,12 +12311,12 @@ class EventWindow {
12310
12311
  this.fieldValidator.renderFormValidator(form, rules, this.element, this.parent.locale);
12311
12312
  }
12312
12313
  showDetails(eventData) {
12314
+ this.eventData = eventData;
12313
12315
  const eventObj = extend({}, eventData, null, true);
12314
12316
  if ((!this.cellClickAction || this.cellClickAction && !isNullOrUndefined(this.parent.editorTemplate)) &&
12315
12317
  eventObj[this.fields.endTime].getHours() === 0 && eventObj[this.fields.endTime].getMinutes() === 0) {
12316
12318
  this.trimAllDay(eventObj);
12317
12319
  }
12318
- this.eventData = eventObj;
12319
12320
  const formElements = this.getFormElements(EVENT_WINDOW_DIALOG_CLASS);
12320
12321
  const keyNames = Object.keys(eventObj);
12321
12322
  for (const curElement of formElements) {
@@ -21005,7 +21006,9 @@ class DragAndDrop extends ActionBase {
21005
21006
  (dragArea.scrollTop + dragArea.offsetHeight - this.actionObj.clone.offsetHeight + window.pageYOffset) +
21006
21007
  (this.actionObj.clone.offsetHeight - this.heightUptoCursorPoint);
21007
21008
  offsetTop = Math.round(offsetTop / this.actionObj.cellHeight) * this.actionObj.cellHeight;
21008
- this.actionObj.clone.style.top = formatUnit(offsetTop);
21009
+ if (dragArea.scrollTop > 0) {
21010
+ this.actionObj.clone.style.top = formatUnit(offsetTop);
21011
+ }
21009
21012
  }
21010
21013
  const rowIndex = (this.parent.activeViewOptions.timeScale.enable) ? (offsetTop / this.actionObj.cellHeight) : 0;
21011
21014
  const heightPerMinute = this.actionObj.cellHeight / this.actionObj.slotInterval;
@@ -24597,6 +24600,9 @@ class AgendaBase extends ViewBase {
24597
24600
  className.push(data.cssClass);
24598
24601
  }
24599
24602
  addClass([ntd], className);
24603
+ if (this.isCurrentDate(new Date(data.date.getTime()))) {
24604
+ addClass(ntd.childNodes, AGENDA_CURRENT_DAY_CLASS);
24605
+ }
24600
24606
  ntr.appendChild(ntd);
24601
24607
  }
24602
24608
  else if (data.type === 'eventColumn') {