@syncfusion/ej2-schedule 27.1.48 → 27.1.50

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.
@@ -6354,7 +6354,7 @@ class EventBase {
6354
6354
  this.parent.activeEventData = { event: eventObject, element: target };
6355
6355
  }
6356
6356
  generateOccurrence(event, viewDate, isMaxCount) {
6357
- const startDate = event[this.parent.eventFields.startTime];
6357
+ let startDate = event[this.parent.eventFields.startTime];
6358
6358
  const endDate = event[this.parent.eventFields.endTime];
6359
6359
  const eventRule = event[this.parent.eventFields.recurrenceRule];
6360
6360
  const timeZoneDiff = endDate.getTimezoneOffset() - startDate.getTimezoneOffset();
@@ -6368,6 +6368,10 @@ class EventBase {
6368
6368
  const newTimezone = this.parent.timezone || this.parent.tzModule.getLocalTimezoneName();
6369
6369
  const firstDay = this.parent.activeViewOptions.firstDayOfWeek;
6370
6370
  const calendarMode = this.parent.calendarMode;
6371
+ if (event[this.parent.eventFields.recurrenceRule] && event[this.parent.eventFields.recurrenceRule].includes('BYMONTHDAY') &&
6372
+ this.parent.timezone && event[this.parent.eventFields.startTimezone] && event[this.parent.eventFields.endTimezone]) {
6373
+ startDate = this.parent.tzModule.convert(event[this.parent.eventFields.startTime], this.parent.timezone, event[this.parent.eventFields.startTimezone]);
6374
+ }
6371
6375
  const dates = generate(startDate, eventRule, exception, firstDay, maxCount, viewDate, calendarMode, newTimezone);
6372
6376
  if (this.parent.currentView === 'Agenda' && eventRule.indexOf('COUNT') === -1 && eventRule.indexOf('UNTIL') === -1) {
6373
6377
  if (isNullOrUndefined(event.generatedDates)) {
@@ -6382,10 +6386,18 @@ class EventBase {
6382
6386
  }
6383
6387
  }
6384
6388
  }
6389
+ let isDSTAdjusted = false;
6390
+ let convertedDates = [];
6391
+ if (event[this.parent.eventFields.recurrenceRule] && event[this.parent.eventFields.recurrenceRule].includes('BYMONTHDAY') &&
6392
+ this.parent.timezone && event[this.parent.eventFields.startTimezone] && event[this.parent.eventFields.endTimezone]) {
6393
+ isDSTAdjusted = true;
6394
+ convertedDates.push(...dates.map((date) => this.parent.tzModule.convert(new Date(date), event[this.parent.eventFields.startTimezone], this.parent.timezone).getTime()));
6395
+ }
6396
+ convertedDates = convertedDates.length > 0 ? convertedDates : dates;
6385
6397
  const occurrenceCollection = [];
6386
- for (let date of dates) {
6398
+ for (let date of convertedDates) {
6387
6399
  const clonedObject = extend({}, event, null, true);
6388
- date = this.getDSTAdjustedTime(date, clonedObject);
6400
+ date = !isDSTAdjusted ? this.getDSTAdjustedTime(date, clonedObject) : date;
6389
6401
  clonedObject[this.parent.eventFields.startTime] = new Date(date);
6390
6402
  clonedObject[this.parent.eventFields.endTime] = new Date(new Date(date).setMilliseconds(duration));
6391
6403
  clonedObject[this.parent.eventFields.recurrenceID] = clonedObject[this.parent.eventFields.id];