@syncfusion/ej2-schedule 26.2.14 → 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.
Files changed (200) hide show
  1. package/dist/ej2-schedule.umd.min.js +2 -2
  2. package/dist/ej2-schedule.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-schedule.es2015.js +166 -32
  4. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  5. package/dist/es6/ej2-schedule.es5.js +169 -32
  6. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  7. package/dist/global/ej2-schedule.min.js +2 -2
  8. package/dist/global/ej2-schedule.min.js.map +1 -1
  9. package/dist/global/index.d.ts +1 -1
  10. package/package.json +16 -17
  11. package/src/schedule/actions/crud.js +2 -2
  12. package/src/schedule/actions/keyboard.d.ts +1 -0
  13. package/src/schedule/actions/keyboard.js +45 -3
  14. package/src/schedule/actions/resize.js +1 -0
  15. package/src/schedule/actions/virtual-scroll.d.ts +1 -0
  16. package/src/schedule/actions/virtual-scroll.js +35 -4
  17. package/src/schedule/base/interface.d.ts +1 -0
  18. package/src/schedule/base/resource.js +5 -0
  19. package/src/schedule/base/schedule.js +2 -1
  20. package/src/schedule/event-renderer/event-base.js +18 -3
  21. package/src/schedule/event-renderer/inline-edit.js +9 -1
  22. package/src/schedule/event-renderer/month.js +4 -1
  23. package/src/schedule/event-renderer/timeline-view.js +4 -1
  24. package/src/schedule/event-renderer/year.js +2 -2
  25. package/src/schedule/renderer/header-renderer.d.ts +1 -0
  26. package/src/schedule/renderer/header-renderer.js +9 -1
  27. package/src/schedule/renderer/month.js +6 -0
  28. package/src/schedule/renderer/timeline-header-row.js +1 -1
  29. package/src/schedule/renderer/timeline-view.js +5 -0
  30. package/src/schedule/renderer/timeline-year.js +6 -2
  31. package/src/schedule/renderer/vertical-view.js +2 -6
  32. package/src/schedule/renderer/view-base.d.ts +1 -0
  33. package/src/schedule/renderer/view-base.js +9 -0
  34. package/src/schedule/renderer/year.js +4 -4
  35. package/styles/bootstrap-dark-lite.css +4169 -0
  36. package/styles/bootstrap-dark-lite.scss +18 -0
  37. package/styles/bootstrap-dark.css +818 -596
  38. package/styles/bootstrap-dark.scss +3 -2
  39. package/styles/bootstrap-lite.css +4164 -0
  40. package/styles/bootstrap-lite.scss +18 -0
  41. package/styles/bootstrap.css +818 -596
  42. package/styles/bootstrap.scss +3 -2
  43. package/styles/bootstrap4-lite.css +4211 -0
  44. package/styles/bootstrap4-lite.scss +18 -0
  45. package/styles/bootstrap4.css +803 -636
  46. package/styles/bootstrap4.scss +3 -2
  47. package/styles/bootstrap5-dark-lite.css +4210 -0
  48. package/styles/bootstrap5-dark-lite.scss +18 -0
  49. package/styles/bootstrap5-dark.css +819 -597
  50. package/styles/bootstrap5-dark.scss +3 -2
  51. package/styles/bootstrap5-lite.css +4210 -0
  52. package/styles/bootstrap5-lite.scss +18 -0
  53. package/styles/bootstrap5.3-lite.css +4256 -0
  54. package/styles/bootstrap5.3-lite.scss +18 -0
  55. package/styles/bootstrap5.3.css +5017 -0
  56. package/styles/bootstrap5.3.scss +20 -0
  57. package/styles/bootstrap5.css +819 -597
  58. package/styles/bootstrap5.scss +3 -2
  59. package/styles/fabric-dark-lite.css +4139 -0
  60. package/styles/fabric-dark-lite.scss +18 -0
  61. package/styles/fabric-dark.css +825 -595
  62. package/styles/fabric-dark.scss +3 -2
  63. package/styles/fabric-lite.css +4136 -0
  64. package/styles/fabric-lite.scss +18 -0
  65. package/styles/fabric.css +825 -588
  66. package/styles/fabric.scss +3 -2
  67. package/styles/fluent-dark-lite.css +4202 -0
  68. package/styles/fluent-dark-lite.scss +18 -0
  69. package/styles/fluent-dark.css +823 -593
  70. package/styles/fluent-dark.scss +3 -2
  71. package/styles/fluent-lite.css +4202 -0
  72. package/styles/fluent-lite.scss +18 -0
  73. package/styles/fluent.css +823 -593
  74. package/styles/fluent.scss +3 -2
  75. package/styles/fluent2-lite.css +4422 -0
  76. package/styles/fluent2-lite.scss +18 -0
  77. package/styles/fluent2.css +860 -602
  78. package/styles/fluent2.scss +3 -2
  79. package/styles/highcontrast-light-lite.css +4228 -0
  80. package/styles/highcontrast-light-lite.scss +18 -0
  81. package/styles/highcontrast-light.css +828 -584
  82. package/styles/highcontrast-light.scss +3 -2
  83. package/styles/highcontrast-lite.css +4237 -0
  84. package/styles/highcontrast-lite.scss +18 -0
  85. package/styles/highcontrast.css +829 -585
  86. package/styles/highcontrast.scss +3 -2
  87. package/styles/material-dark-lite.css +4216 -0
  88. package/styles/material-dark-lite.scss +18 -0
  89. package/styles/material-dark.css +828 -581
  90. package/styles/material-dark.scss +3 -2
  91. package/styles/material-lite.css +4242 -0
  92. package/styles/material-lite.scss +18 -0
  93. package/styles/material.css +826 -600
  94. package/styles/material.scss +3 -2
  95. package/styles/material3-dark-lite.css +4233 -0
  96. package/styles/material3-dark-lite.scss +18 -0
  97. package/styles/material3-dark.css +825 -602
  98. package/styles/material3-dark.scss +3 -2
  99. package/styles/material3-lite.css +4235 -0
  100. package/styles/material3-lite.scss +18 -0
  101. package/styles/material3.css +825 -602
  102. package/styles/material3.scss +3 -2
  103. package/styles/recurrence-editor/_bigger.scss +134 -0
  104. package/styles/recurrence-editor/_layout.scss +0 -110
  105. package/styles/recurrence-editor/bootstrap-dark.css +87 -131
  106. package/styles/recurrence-editor/bootstrap-dark.scss +1 -0
  107. package/styles/recurrence-editor/bootstrap.css +87 -131
  108. package/styles/recurrence-editor/bootstrap.scss +1 -0
  109. package/styles/recurrence-editor/bootstrap4.css +87 -149
  110. package/styles/recurrence-editor/bootstrap4.scss +1 -0
  111. package/styles/recurrence-editor/bootstrap5-dark.css +87 -135
  112. package/styles/recurrence-editor/bootstrap5-dark.scss +1 -0
  113. package/styles/recurrence-editor/bootstrap5.3.css +501 -0
  114. package/styles/recurrence-editor/bootstrap5.3.scss +9 -0
  115. package/styles/recurrence-editor/bootstrap5.css +87 -135
  116. package/styles/recurrence-editor/bootstrap5.scss +1 -0
  117. package/styles/recurrence-editor/fabric-dark.css +87 -130
  118. package/styles/recurrence-editor/fabric-dark.scss +1 -0
  119. package/styles/recurrence-editor/fabric.css +87 -123
  120. package/styles/recurrence-editor/fabric.scss +1 -0
  121. package/styles/recurrence-editor/fluent-dark.css +87 -122
  122. package/styles/recurrence-editor/fluent-dark.scss +1 -0
  123. package/styles/recurrence-editor/fluent.css +87 -122
  124. package/styles/recurrence-editor/fluent.scss +1 -0
  125. package/styles/recurrence-editor/fluent2.css +91 -117
  126. package/styles/recurrence-editor/fluent2.scss +1 -0
  127. package/styles/recurrence-editor/highcontrast-light.css +87 -118
  128. package/styles/recurrence-editor/highcontrast-light.scss +1 -0
  129. package/styles/recurrence-editor/highcontrast.css +87 -118
  130. package/styles/recurrence-editor/highcontrast.scss +1 -0
  131. package/styles/recurrence-editor/material-dark.css +87 -115
  132. package/styles/recurrence-editor/material-dark.scss +1 -0
  133. package/styles/recurrence-editor/material.css +87 -136
  134. package/styles/recurrence-editor/material.scss +1 -0
  135. package/styles/recurrence-editor/material3-dark.css +87 -140
  136. package/styles/recurrence-editor/material3-dark.scss +1 -0
  137. package/styles/recurrence-editor/material3.css +87 -140
  138. package/styles/recurrence-editor/material3.scss +1 -0
  139. package/styles/recurrence-editor/tailwind-dark.css +87 -116
  140. package/styles/recurrence-editor/tailwind-dark.scss +1 -0
  141. package/styles/recurrence-editor/tailwind.css +87 -116
  142. package/styles/recurrence-editor/tailwind.scss +1 -0
  143. package/styles/schedule/_bds-definition.scss +1 -1
  144. package/styles/schedule/_bigger.scss +809 -0
  145. package/styles/schedule/_bootstrap4-definition.scss +1 -1
  146. package/styles/schedule/_bootstrap5-definition.scss +1 -1
  147. package/styles/schedule/_bootstrap5.3-definition.scss +9 -6
  148. package/styles/schedule/_fluent-definition.scss +1 -1
  149. package/styles/schedule/_fluent2-definition.scss +6 -6
  150. package/styles/schedule/_fusionnew-definition.scss +1 -1
  151. package/styles/schedule/_layout.scss +5 -442
  152. package/styles/schedule/_tailwind-definition.scss +1 -1
  153. package/styles/schedule/_theme.scss +23 -1
  154. package/styles/schedule/bootstrap-dark.css +699 -483
  155. package/styles/schedule/bootstrap-dark.scss +1 -0
  156. package/styles/schedule/bootstrap.css +699 -483
  157. package/styles/schedule/bootstrap.scss +1 -0
  158. package/styles/schedule/bootstrap4.css +684 -523
  159. package/styles/schedule/bootstrap4.scss +1 -0
  160. package/styles/schedule/bootstrap5-dark.css +707 -491
  161. package/styles/schedule/bootstrap5-dark.scss +1 -0
  162. package/styles/schedule/bootstrap5.3.css +4615 -0
  163. package/styles/schedule/bootstrap5.3.scss +17 -0
  164. package/styles/schedule/bootstrap5.css +707 -491
  165. package/styles/schedule/bootstrap5.scss +1 -0
  166. package/styles/schedule/fabric-dark.css +706 -482
  167. package/styles/schedule/fabric-dark.scss +1 -0
  168. package/styles/schedule/fabric.css +706 -475
  169. package/styles/schedule/fabric.scss +1 -0
  170. package/styles/schedule/fluent-dark.css +716 -492
  171. package/styles/schedule/fluent-dark.scss +1 -0
  172. package/styles/schedule/fluent.css +716 -492
  173. package/styles/schedule/fluent.scss +1 -0
  174. package/styles/schedule/fluent2.css +746 -497
  175. package/styles/schedule/fluent2.scss +1 -0
  176. package/styles/schedule/highcontrast-light.css +714 -476
  177. package/styles/schedule/highcontrast-light.scss +1 -0
  178. package/styles/schedule/highcontrast.css +714 -476
  179. package/styles/schedule/highcontrast.scss +1 -0
  180. package/styles/schedule/material-dark.css +724 -483
  181. package/styles/schedule/material-dark.scss +1 -0
  182. package/styles/schedule/material.css +720 -500
  183. package/styles/schedule/material.scss +1 -0
  184. package/styles/schedule/material3-dark.css +714 -497
  185. package/styles/schedule/material3-dark.scss +1 -0
  186. package/styles/schedule/material3.css +714 -497
  187. package/styles/schedule/material3.scss +1 -0
  188. package/styles/schedule/tailwind-dark.css +718 -483
  189. package/styles/schedule/tailwind-dark.scss +1 -0
  190. package/styles/schedule/tailwind.css +718 -483
  191. package/styles/schedule/tailwind.scss +1 -0
  192. package/styles/tailwind-dark-lite.css +4179 -0
  193. package/styles/tailwind-dark-lite.scss +18 -0
  194. package/styles/tailwind-dark.css +827 -586
  195. package/styles/tailwind-dark.scss +3 -2
  196. package/styles/tailwind-lite.css +4179 -0
  197. package/styles/tailwind-lite.scss +18 -0
  198. package/styles/tailwind.css +827 -586
  199. package/styles/tailwind.scss +3 -2
  200. package/dist/ej2-schedule.min.js +0 -10
@@ -1096,10 +1096,12 @@ var HeaderRenderer = /** @__PURE__ @class */ (function () {
1096
1096
  items: args.items,
1097
1097
  overflowMode: 'Popup',
1098
1098
  clicked: _this.toolbarClickHandler.bind(_this),
1099
+ created: _this.toolbarCreateHandler.bind(_this),
1099
1100
  enableRtl: _this.parent.enableRtl,
1100
1101
  enableHtmlSanitizer: _this.parent.enableHtmlSanitizer,
1101
1102
  locale: _this.parent.locale
1102
1103
  });
1104
+ _this.toolbarObj.isStringTemplate = true;
1103
1105
  _this.toolbarObj.root = _this.parent.root ? _this.parent.root : _this.parent;
1104
1106
  _this.toolbarObj.appendTo(_this.parent.element.querySelector('.' + HEADER_TOOLBAR));
1105
1107
  _this.toolbarObj.element.setAttribute('aria-label', 'Scheduler');
@@ -1532,6 +1534,12 @@ var HeaderRenderer = /** @__PURE__ @class */ (function () {
1532
1534
  var views = [].slice.call(this.element.querySelectorAll('.e-views'));
1533
1535
  return views.indexOf(target);
1534
1536
  };
1537
+ HeaderRenderer.prototype.toolbarCreateHandler = function () {
1538
+ if (this.parent && this.parent.portals && this.toolbarObj && this.toolbarObj.portals) {
1539
+ this.parent.portals = this.parent.portals.concat(this.toolbarObj.portals);
1540
+ this.parent['renderReactTemplates']();
1541
+ }
1542
+ };
1535
1543
  HeaderRenderer.prototype.toolbarClickHandler = function (args) {
1536
1544
  if (!args.item) {
1537
1545
  return;
@@ -1675,7 +1683,7 @@ var HeaderRenderer = /** @__PURE__ @class */ (function () {
1675
1683
  var firstDate = new Date(dates[0].getTime());
1676
1684
  var lastDate = new Date(dates[dates.length - 1].getTime());
1677
1685
  if (this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'TimelineWorkWeek') {
1678
- firstDate = getWeekFirstDate(resetTime(this.parent.selectedDate), this.parent.firstDayOfWeek);
1686
+ firstDate = getWeekFirstDate(resetTime(this.parent.selectedDate), this.parent.activeViewOptions.firstDayOfWeek);
1679
1687
  lastDate = addDays(firstDate, 7 * this.parent.activeViewOptions.interval);
1680
1688
  }
1681
1689
  else if (this.parent.currentView === 'Month') {
@@ -2105,7 +2113,9 @@ var KeyboardInteraction = /** @__PURE__ @class */ (function () {
2105
2113
  ctrlShiftUpArrow: 'ctrl+shift+uparrow',
2106
2114
  ctrlShiftDownArrow: 'ctrl+shift+downarrow',
2107
2115
  ctrlShiftLeftArrow: 'ctrl+shift+leftarrow',
2108
- ctrlShiftRightArrow: 'ctrl+shift+rightarrow'
2116
+ ctrlShiftRightArrow: 'ctrl+shift+rightarrow',
2117
+ shiftAltY: 'shift+alt+y',
2118
+ shiftAltN: 'shift+alt+n'
2109
2119
  };
2110
2120
  this.parent = parent;
2111
2121
  this.parent.element.tabIndex = this.parent.element.tabIndex === -1 ? 0 : this.parent.element.tabIndex;
@@ -2186,6 +2196,43 @@ var KeyboardInteraction = /** @__PURE__ @class */ (function () {
2186
2196
  this.processFTwelve(e);
2187
2197
  }
2188
2198
  break;
2199
+ case 'shiftAltY':
2200
+ this.parent.changeDate(new Date(), e);
2201
+ break;
2202
+ case 'shiftAltN':
2203
+ if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda' ||
2204
+ this.parent.currentView === 'Year') {
2205
+ return;
2206
+ }
2207
+ this.processShiftAltN(e);
2208
+ break;
2209
+ }
2210
+ };
2211
+ KeyboardInteraction.prototype.processShiftAltN = function (e) {
2212
+ var selectedCells = this.parent.getSelectedCells();
2213
+ var target = e.target;
2214
+ var cellData = extend({}, null, true);
2215
+ if (selectedCells.length > 0 && (closest(target, '.' + WORK_CELLS_CLASS)
2216
+ || closest(target, '.' + ALLDAY_CELLS_CLASS) || closest(target, '.' + HEADER_CELLS_CLASS))) {
2217
+ cellData = this.getSelectedElements(target);
2218
+ }
2219
+ else if (closest(target, '.' + APPOINTMENT_CLASS) && !isNullOrUndefined(this.parent.activeEventData.event)) {
2220
+ var event_1 = this.parent.activeEventData.event;
2221
+ cellData.startTime = event_1.StartTime;
2222
+ cellData.endTime = event_1.EndTime;
2223
+ cellData.isAllDay = event_1.IsAllDay;
2224
+ }
2225
+ else {
2226
+ var workHour = this.parent.getStartEndTime(this.parent.workHours.start);
2227
+ var slotInterval = this.parent.activeViewOptions.timeScale.interval /
2228
+ this.parent.activeViewOptions.timeScale.slotCount;
2229
+ cellData.startTime = new Date(this.parent.selectedDate);
2230
+ cellData.startTime.setHours(workHour.getHours(), workHour.getMinutes(), 0, 0);
2231
+ cellData.endTime = new Date(cellData.startTime.getTime() + slotInterval * 60000);
2232
+ }
2233
+ var args = extend(cellData, { cancel: false, event: e });
2234
+ if (args != null) {
2235
+ this.parent.eventWindow.openEditor(args, 'Add');
2189
2236
  }
2190
2237
  };
2191
2238
  KeyboardInteraction.prototype.processFTwelve = function (e) {
@@ -2611,8 +2658,11 @@ var KeyboardInteraction = /** @__PURE__ @class */ (function () {
2611
2658
  return this.parent.eventBase.selectWorkCellByTime([selectedObject]);
2612
2659
  };
2613
2660
  KeyboardInteraction.prototype.processViewNavigation = function (e) {
2614
- var index = parseInt(e.key, 10) - 1;
2615
- if (!isNullOrUndefined(this.parent.views) && index < this.parent.views.length) {
2661
+ if (isNullOrUndefined(e.code)) {
2662
+ return;
2663
+ }
2664
+ var index = parseInt(e.code.slice(e.code.length - 1), 10) - 1;
2665
+ if (!isNaN(index) && !isNullOrUndefined(this.parent.views) && index < this.parent.views.length) {
2616
2666
  var view = this.parent.viewCollections[parseInt(index.toString(), 10)].option;
2617
2667
  this.parent.changeView(view, e, undefined, index);
2618
2668
  if (this.parent.headerModule) {
@@ -6392,6 +6442,7 @@ var EventBase = /** @__PURE__ @class */ (function () {
6392
6442
  this.parent.activeEventData = { event: eventObject, element: target };
6393
6443
  };
6394
6444
  EventBase.prototype.generateOccurrence = function (event, viewDate, isMaxCount) {
6445
+ var _this = this;
6395
6446
  var startDate = event[this.parent.eventFields.startTime];
6396
6447
  var endDate = event[this.parent.eventFields.endTime];
6397
6448
  var eventRule = event[this.parent.eventFields.recurrenceRule];
@@ -6406,6 +6457,10 @@ var EventBase = /** @__PURE__ @class */ (function () {
6406
6457
  var newTimezone = this.parent.timezone || this.parent.tzModule.getLocalTimezoneName();
6407
6458
  var firstDay = this.parent.activeViewOptions.firstDayOfWeek;
6408
6459
  var calendarMode = this.parent.calendarMode;
6460
+ if (event[this.parent.eventFields.recurrenceRule] && event[this.parent.eventFields.recurrenceRule].includes('BYMONTHDAY') &&
6461
+ this.parent.timezone && event[this.parent.eventFields.startTimezone] && event[this.parent.eventFields.endTimezone]) {
6462
+ startDate = this.parent.tzModule.convert(event[this.parent.eventFields.startTime], this.parent.timezone, event[this.parent.eventFields.startTimezone]);
6463
+ }
6409
6464
  var dates = generate(startDate, eventRule, exception, firstDay, maxCount, viewDate, calendarMode, newTimezone);
6410
6465
  if (this.parent.currentView === 'Agenda' && eventRule.indexOf('COUNT') === -1 && eventRule.indexOf('UNTIL') === -1) {
6411
6466
  if (isNullOrUndefined(event.generatedDates)) {
@@ -6420,11 +6475,21 @@ var EventBase = /** @__PURE__ @class */ (function () {
6420
6475
  }
6421
6476
  }
6422
6477
  }
6478
+ var isDSTAdjusted = false;
6479
+ var convertedDates = [];
6480
+ if (event[this.parent.eventFields.recurrenceRule] && event[this.parent.eventFields.recurrenceRule].includes('BYMONTHDAY') &&
6481
+ this.parent.timezone && event[this.parent.eventFields.startTimezone] && event[this.parent.eventFields.endTimezone]) {
6482
+ isDSTAdjusted = true;
6483
+ convertedDates.push.apply(convertedDates, dates.map(function (date) {
6484
+ return _this.parent.tzModule.convert(new Date(date), event[_this.parent.eventFields.startTimezone], _this.parent.timezone).getTime();
6485
+ }));
6486
+ }
6487
+ convertedDates = convertedDates.length > 0 ? convertedDates : dates;
6423
6488
  var occurrenceCollection = [];
6424
- for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {
6425
- var date = dates_1[_i];
6489
+ for (var _i = 0, convertedDates_1 = convertedDates; _i < convertedDates_1.length; _i++) {
6490
+ var date = convertedDates_1[_i];
6426
6491
  var clonedObject = extend({}, event, null, true);
6427
- date = this.getDSTAdjustedTime(date, clonedObject);
6492
+ date = !isDSTAdjusted ? this.getDSTAdjustedTime(date, clonedObject) : date;
6428
6493
  clonedObject[this.parent.eventFields.startTime] = new Date(date);
6429
6494
  clonedObject[this.parent.eventFields.endTime] = new Date(new Date(date).setMilliseconds(duration));
6430
6495
  clonedObject[this.parent.eventFields.recurrenceID] = clonedObject[this.parent.eventFields.id];
@@ -8096,7 +8161,10 @@ var MonthEvent = /** @__PURE__ @class */ (function (_super) {
8096
8161
  if (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) {
8097
8162
  for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {
8098
8163
  var sourceRes = this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)];
8099
- this.renderEventsHandler(sourceRes.renderDates, sourceRes.workDays, sourceRes);
8164
+ if (!this.parent.uiStateValues.isGroupAdaptive ||
8165
+ (this.parent.uiStateValues.groupIndex === sourceRes.groupIndex && this.parent.uiStateValues.isGroupAdaptive)) {
8166
+ this.renderEventsHandler(sourceRes.renderDates, sourceRes.workDays, sourceRes);
8167
+ }
8100
8168
  if (this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex !==
8101
8169
  this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex) {
8102
8170
  var target = this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)];
@@ -8591,7 +8659,10 @@ var TimelineEvent = /** @__PURE__ @class */ (function (_super) {
8591
8659
  for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {
8592
8660
  var source = this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)];
8593
8661
  this.rowIndex = source.groupIndex;
8594
- this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, source);
8662
+ if (!this.parent.uiStateValues.isGroupAdaptive ||
8663
+ (this.parent.uiStateValues.groupIndex === source.groupIndex && this.parent.uiStateValues.isGroupAdaptive)) {
8664
+ this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, source);
8665
+ }
8595
8666
  if (this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)] && this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex !==
8596
8667
  this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex) {
8597
8668
  var target = this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)];
@@ -9148,7 +9219,15 @@ var InlineEdit = /** @__PURE__ @class */ (function () {
9148
9219
  subjectWrap.insertBefore(inlineSubject, subjectWrap.firstChild);
9149
9220
  }
9150
9221
  else {
9151
- args.element.querySelector('.e-appointment-details').prepend(inlineSubject);
9222
+ var elementSelector = ['TimelineDay', 'TimelineWeek', 'TimelineWorkWeek', 'TimelineMonth'].indexOf(this.parent.currentView) > -1 ?
9223
+ '.e-inner-wrap' : '.e-appointment-details';
9224
+ var innerWrapElement = args.element.querySelector(elementSelector);
9225
+ if (isNullOrUndefined(innerWrapElement)) {
9226
+ args.element.querySelector('.e-appointment-details').prepend(inlineSubject);
9227
+ }
9228
+ else {
9229
+ innerWrapElement.prepend(inlineSubject);
9230
+ }
9152
9231
  }
9153
9232
  inlineSubject.focus();
9154
9233
  }
@@ -14227,6 +14306,7 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
14227
14306
  firstTDIndex = (endIndex > this.parent.resourceBase.expandedResources.length) ?
14228
14307
  (this.parent.resourceBase.expandedResources.length - this.renderedLength) : firstTDIndex;
14229
14308
  firstTDIndex = firstTDIndex < 0 ? 0 : firstTDIndex;
14309
+ this.existingDataCollection = this.parent.resourceBase.renderedResources;
14230
14310
  this.parent.resourceBase.renderedResources = this.parent.resourceBase.expandedResources.slice(firstTDIndex, endIndex);
14231
14311
  if (this.parent.resourceBase.renderedResources.length > 0) {
14232
14312
  this.updateContent(resWrap, conWrap, eventWrap, this.parent.resourceBase.renderedResources);
@@ -14276,6 +14356,7 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
14276
14356
  var scrollHeight = this.parent.rowAutoHeight ?
14277
14357
  (conTable.offsetHeight - conWrap.offsetHeight) : this.bufferCount * this.itemSize;
14278
14358
  var resCollection = [];
14359
+ this.existingDataCollection = this.parent.resourceBase.renderedResources;
14279
14360
  if ((conWrap.scrollTop) - this.translateY < 0) {
14280
14361
  resCollection = this.upScroll(conWrap, firstTDIndex);
14281
14362
  }
@@ -14479,18 +14560,47 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
14479
14560
  this.parent.element.focus();
14480
14561
  }
14481
14562
  for (var i = 0; i < renderedLength; i++) {
14482
- remove(resWrap.querySelector('tbody tr'));
14483
- remove(conWrap.querySelector('tbody tr'));
14484
14563
  remove(eventWrap.querySelector('div'));
14485
14564
  }
14486
14565
  this.parent.resourceBase.renderedResources = resCollection;
14566
+ var currentGroupIndices = this.parent.activeView.getGroupIndices(resCollection);
14567
+ var previousGroupIndices = this.parent.activeView.getGroupIndices(this.existingDataCollection);
14568
+ var newGroupIndices = currentGroupIndices.filter(function (index) { return previousGroupIndices.indexOf(index) < 0; });
14569
+ var resWrapRows = Array.from(resWrap.querySelectorAll('tbody tr'));
14570
+ var conWrapRows = Array.from(conWrap.querySelectorAll('tbody tr'));
14571
+ var resWrapBody = resWrap.querySelector('tbody');
14572
+ var conWrapBody = conWrap.querySelector('tbody');
14573
+ this.removeObsoleteRows(resWrapRows, currentGroupIndices);
14574
+ this.removeObsoleteRows(conWrapRows, currentGroupIndices);
14487
14575
  var resourceRows = this.parent.resourceBase.getContentRows(resCollection, true);
14488
14576
  var contentRows = this.parent.activeView.getContentRows();
14489
14577
  var eventRows = this.parent.activeView.getEventRows(resCollection.length);
14490
- append(resourceRows, resWrap.querySelector('tbody'));
14491
- append(contentRows, conWrap.querySelector('tbody'));
14578
+ for (var i = 0; i < newGroupIndices.length; i++) {
14579
+ var index = currentGroupIndices.indexOf(newGroupIndices[parseInt(i.toString(), 10)]);
14580
+ if (index === 0) {
14581
+ prepend([resourceRows[parseInt(i.toString(), 10)]], resWrapBody);
14582
+ prepend([contentRows[parseInt(i.toString(), 10)]], conWrapBody);
14583
+ }
14584
+ else if (resWrapBody && conWrapBody && resWrapBody.children[parseInt(index.toString(), 10)] &&
14585
+ conWrapBody.children[parseInt(index.toString(), 10)]) {
14586
+ resWrapBody.insertBefore(resourceRows[parseInt(i.toString(), 10)], resWrapBody.children[parseInt(index.toString(), 10)]);
14587
+ conWrapBody.insertBefore(contentRows[parseInt(i.toString(), 10)], conWrapBody.children[parseInt(index.toString(), 10)]);
14588
+ }
14589
+ else {
14590
+ append([resourceRows[parseInt(i.toString(), 10)]], resWrapBody);
14591
+ append([contentRows[parseInt(i.toString(), 10)]], conWrapBody);
14592
+ }
14593
+ }
14492
14594
  append(eventRows, eventWrap);
14493
14595
  };
14596
+ VirtualScroll.prototype.removeObsoleteRows = function (elements, currentGroupIndices) {
14597
+ elements.forEach(function (element) {
14598
+ var groupIndex = parseInt(element.firstElementChild.getAttribute('data-group-index'), 10);
14599
+ if (currentGroupIndices.indexOf(groupIndex) < 0) {
14600
+ remove(element);
14601
+ }
14602
+ });
14603
+ };
14494
14604
  VirtualScroll.prototype.updateHorizontalContent = function (conWrap, resCollection) {
14495
14605
  this.existingDataCollection = this.parent.resourceBase.expandedResources;
14496
14606
  this.parent.resourceBase.expandedResources = resCollection;
@@ -15063,10 +15173,10 @@ var Crud = /** @__PURE__ @class */ (function () {
15063
15173
  addedRecords: args.editParams.addedRecords, changedRecords: args.editParams.changedRecords,
15064
15174
  deletedRecords: args.editParams.deletedRecords
15065
15175
  };
15066
- if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj && this.parent.dragAndDropModule.actionObj.element) {
15176
+ if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj && this.parent.dragAndDropModule.actionObj.element && this.parent.dragAndDropModule.actionObj.action) {
15067
15177
  this.parent.dragAndDropModule.actionObj.element.style.display = 'none';
15068
15178
  }
15069
- if (this.parent.resizeModule && this.parent.resizeModule.actionObj && this.parent.resizeModule.actionObj.element) {
15179
+ if (this.parent.resizeModule && this.parent.resizeModule.actionObj && this.parent.resizeModule.actionObj.element && this.parent.resizeModule.actionObj.action) {
15070
15180
  this.parent.resizeModule.actionObj.element.style.display = 'none';
15071
15181
  }
15072
15182
  if (this.parent.isSpecificResourceEvents()) {
@@ -16275,7 +16385,11 @@ var ResourceBase = /** @__PURE__ @class */ (function () {
16275
16385
  var resColl = this.resourceCollection;
16276
16386
  var tr = createElement('tr');
16277
16387
  var td = createElement('td', { attrs: { tabindex: isVirtualScroll ? '-1' : '0' } });
16388
+ var existingGroupIndices = this.parent.activeView.getGroupIndices();
16278
16389
  for (var i = 0; i < resData.length; i++) {
16390
+ if (existingGroupIndices.length > 0 && existingGroupIndices.indexOf(resData[parseInt(i.toString(), 10)].groupIndex) > -1) {
16391
+ continue;
16392
+ }
16279
16393
  var ntd = td.cloneNode();
16280
16394
  rIndex = findIndexInData(resColl, 'name', resData[parseInt(i.toString(), 10)].resource.name);
16281
16395
  if (rIndex === resColl.length - 1) {
@@ -16456,6 +16570,7 @@ var ResourceBase = /** @__PURE__ @class */ (function () {
16456
16570
  this.setExpandedResources();
16457
16571
  var resourceCount = this.parent.virtualScrollModule.getRenderedCount();
16458
16572
  var startIndex = this.expandedResources.indexOf(this.renderedResources[0]);
16573
+ this.parent.virtualScrollModule.existingDataCollection = this.renderedResources;
16459
16574
  this.renderedResources = this.expandedResources.slice(startIndex, startIndex + resourceCount);
16460
16575
  if (this.renderedResources.length < resourceCount) {
16461
16576
  var sIndex = this.expandedResources.length - resourceCount;
@@ -18599,7 +18714,8 @@ var Schedule = /** @__PURE__ @class */ (function (_super) {
18599
18714
  };
18600
18715
  Schedule.prototype.onScheduleResize = function () {
18601
18716
  if (isNullOrUndefined(this.activeView) || ((this.isAdaptive || isMobile()) && document.activeElement
18602
- && document.activeElement.classList.contains(SUBJECT_CLASS)) || this.uiStateValues.isTapHold) {
18717
+ && (document.activeElement.classList.contains(SUBJECT_CLASS) ||
18718
+ document.activeElement.classList.contains(INLINE_SUBJECT_CLASS))) || this.uiStateValues.isTapHold) {
18603
18719
  return;
18604
18720
  }
18605
18721
  if (this.virtualScrollModule && this.activeView.isTimelineView()) {
@@ -21261,6 +21377,7 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
21261
21377
  EventHandler.remove(document, Browser.touchEndEvent, this.resizeStop);
21262
21378
  clearInterval(this.actionObj.scrollInterval);
21263
21379
  this.actionObj.scrollInterval = null;
21380
+ this.actionObj.action = null;
21264
21381
  this.removeCloneElementClasses();
21265
21382
  this.removeCloneElement();
21266
21383
  this.actionClass('removeClass');
@@ -21625,8 +21742,8 @@ var YearEvent = /** @__PURE__ @class */ (function (_super) {
21625
21742
  var monthDate = new Date(this.parent.selectedDate.getFullYear(), month, 1);
21626
21743
  var monthStart = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
21627
21744
  var monthEnd = this.parent.calendarUtil.getMonthEndDate(new Date(monthDate.getTime()));
21628
- var startDate = getWeekFirstDate(monthStart, this.parent.firstDayOfWeek);
21629
- var endDate = addDays(getWeekLastDate(monthEnd, this.parent.firstDayOfWeek), 1);
21745
+ var startDate = getWeekFirstDate(monthStart, this.parent.activeViewOptions.firstDayOfWeek);
21746
+ var endDate = addDays(getWeekLastDate(monthEnd, this.parent.activeViewOptions.firstDayOfWeek), 1);
21630
21747
  for (var index = 0; startDate.getTime() < endDate.getTime(); index++) {
21631
21748
  var start = resetTime(new Date(startDate.getTime()));
21632
21749
  var end = addDays(new Date(start.getTime()), 1);
@@ -24180,6 +24297,15 @@ var ViewBase = /** @__PURE__ @class */ (function () {
24180
24297
  this.parent.resourceBase.expandedResources = this.colLevels[this.colLevels.length - 1];
24181
24298
  }
24182
24299
  };
24300
+ ViewBase.prototype.getGroupIndices = function (dataCollection) {
24301
+ var groupIndices = [];
24302
+ if (this.parent.virtualScrollModule && this.parent.activeViewOptions.group.resources.length > 0 && (dataCollection ||
24303
+ this.parent.virtualScrollModule.existingDataCollection.length > 0) && !this.parent.uiStateValues.isGroupAdaptive) {
24304
+ dataCollection = isNullOrUndefined(dataCollection) ? this.parent.virtualScrollModule.existingDataCollection : dataCollection;
24305
+ groupIndices = dataCollection.map(function (data) { return data.groupIndex; });
24306
+ }
24307
+ return groupIndices;
24308
+ };
24183
24309
  ViewBase.prototype.destroy = function () {
24184
24310
  if (this.element && this.element.parentNode) {
24185
24311
  remove(this.element);
@@ -24863,18 +24989,14 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
24863
24989
  var rows = [];
24864
24990
  var tr = createElement('tr');
24865
24991
  var td = createElement('td', { attrs: { 'aria-selected': 'false' } });
24866
- var existingGroupIndices = new Set();
24867
- if (this.parent.virtualScrollModule && this.parent.activeViewOptions.group.resources.length > 0 &&
24868
- this.parent.virtualScrollModule.existingDataCollection.length > 0) {
24869
- existingGroupIndices = new Set(this.parent.virtualScrollModule.existingDataCollection.map(function (data) { return data.groupIndex; }));
24870
- }
24992
+ var existingGroupIndices = this.getGroupIndices();
24871
24993
  var handler = function (r) {
24872
24994
  var ntr = tr.cloneNode();
24873
24995
  for (var _i = 0, _a = _this.colLevels[_this.colLevels.length - 1]; _i < _a.length; _i++) {
24874
24996
  var tdData = _a[_i];
24875
24997
  var isAllowTdCreation = true;
24876
24998
  if (_this.parent.virtualScrollModule && _this.parent.activeViewOptions.group.resources.length > 0) {
24877
- if (existingGroupIndices.has(tdData.groupIndex)) {
24999
+ if (existingGroupIndices.indexOf(tdData.groupIndex) > -1) {
24878
25000
  isAllowTdCreation = false;
24879
25001
  }
24880
25002
  }
@@ -25676,7 +25798,13 @@ var Month = /** @__PURE__ @class */ (function (_super) {
25676
25798
  var tr = createElement('tr');
25677
25799
  var td = createElement('td', { attrs: { 'aria-selected': 'false' } });
25678
25800
  var slotDatas = this.getContentSlots();
25801
+ var isTimeline = this.parent.currentView === 'TimelineMonth';
25802
+ var existingGroupIndices = isTimeline ? this.getGroupIndices() : [];
25679
25803
  for (var row = 0; row < slotDatas.length; row++) {
25804
+ if (existingGroupIndices.length > 0 &&
25805
+ existingGroupIndices.indexOf(slotDatas[parseInt(row.toString(), 10)][0].groupIndex) > -1) {
25806
+ continue;
25807
+ }
25680
25808
  var ntr = tr.cloneNode();
25681
25809
  for (var col = 0; col < slotDatas[parseInt(row.toString(), 10)].length; col++) {
25682
25810
  var ntd = this.createContentTd(slotDatas[parseInt(row.toString(), 10)][parseInt(col.toString(), 10)], td);
@@ -26021,7 +26149,7 @@ var Year = /** @__PURE__ @class */ (function (_super) {
26021
26149
  this.setAriaAttributes(contentTable);
26022
26150
  var thead = createElement('thead', { className: 'e-week-header' });
26023
26151
  var tr = createElement('tr');
26024
- var currentWeek = getWeekFirstDate(firstDateOfMonth(currentDate), this.parent.firstDayOfWeek);
26152
+ var currentWeek = getWeekFirstDate(firstDateOfMonth(currentDate), this.parent.activeViewOptions.firstDayOfWeek);
26025
26153
  if (this.parent.activeViewOptions.showWeekNumber) {
26026
26154
  tr.appendChild(createElement('th'));
26027
26155
  }
@@ -26150,7 +26278,7 @@ var Year = /** @__PURE__ @class */ (function (_super) {
26150
26278
  return dateCol;
26151
26279
  };
26152
26280
  Year.prototype.getMonthDates = function (date) {
26153
- var startDate = getWeekFirstDate(firstDateOfMonth(date), this.parent.firstDayOfWeek);
26281
+ var startDate = getWeekFirstDate(firstDateOfMonth(date), this.parent.activeViewOptions.firstDayOfWeek);
26154
26282
  var endDate = addDays(new Date(+startDate), (6 * WEEK_LENGTH));
26155
26283
  var dateCollection = [];
26156
26284
  for (var start = startDate; start.getTime() < endDate.getTime(); start = addDays(start, 1)) {
@@ -26286,10 +26414,10 @@ var Year = /** @__PURE__ @class */ (function (_super) {
26286
26414
  return addDays(addMonths(this.getStartDate(), this.parent.monthsCount), -1);
26287
26415
  };
26288
26416
  Year.prototype.startDate = function () {
26289
- return this.parent.currentView === 'Year' ? getWeekFirstDate(this.getStartDate(), this.parent.firstDayOfWeek) : this.getStartDate();
26417
+ return this.parent.currentView === 'Year' ? getWeekFirstDate(this.getStartDate(), this.parent.activeViewOptions.firstDayOfWeek) : this.getStartDate();
26290
26418
  };
26291
26419
  Year.prototype.endDate = function () {
26292
- return this.parent.currentView === 'Year' ? addDays(getWeekLastDate(this.getEndDate(), this.parent.firstDayOfWeek), 1) :
26420
+ return this.parent.currentView === 'Year' ? addDays(getWeekLastDate(this.getEndDate(), this.parent.activeViewOptions.firstDayOfWeek), 1) :
26293
26421
  addDays(this.getEndDate(), 1);
26294
26422
  };
26295
26423
  Year.prototype.getEndDateFromStartDate = function (start) {
@@ -27472,7 +27600,7 @@ var TimelineHeaderRow = /** @__PURE__ @class */ (function () {
27472
27600
  var jsDate = +new Date(1970, 0, 1);
27473
27601
  var tzOffsetDiff = d.getTimezoneOffset() - new Date(1970, 0, 1).getTimezoneOffset();
27474
27602
  var key = Math.ceil(((((+d - jsDate) - (tzOffsetDiff * 60 * 1000)) / MS_PER_DAY) + new Date(jsDate).getDay() + 1) / 7);
27475
- if (this.parent.firstDayOfWeek && this.parent.firstDayOfWeek > new Date(+d).getDay()) {
27603
+ if (this.parent.activeViewOptions.firstDayOfWeek && this.parent.activeViewOptions.firstDayOfWeek > new Date(+d).getDay()) {
27476
27604
  key = key - 1;
27477
27605
  }
27478
27606
  result[parseInt(key.toString(), 10)] = result[parseInt(key.toString(), 10)] || [];
@@ -27795,7 +27923,12 @@ var TimelineViews = /** @__PURE__ @class */ (function (_super) {
27795
27923
  var tr = createElement('tr');
27796
27924
  var td = createElement('td', { attrs: { 'aria-selected': 'false' } });
27797
27925
  var trCount = this.getRowCount();
27926
+ var existingGroupIndices = this.getGroupIndices();
27798
27927
  for (var i = 0; i < trCount; i++) {
27928
+ if (existingGroupIndices.length > 0 &&
27929
+ existingGroupIndices.indexOf(this.parent.resourceBase.renderedResources[parseInt(i.toString(), 10)].groupIndex) > -1) {
27930
+ continue;
27931
+ }
27799
27932
  var ntr = tr.cloneNode();
27800
27933
  for (var _i = 0, _a = this.colLevels[this.colLevels.length - 1]; _i < _a.length; _i++) {
27801
27934
  var tdData = _a[_i];
@@ -28315,13 +28448,17 @@ var TimelineYear = /** @__PURE__ @class */ (function (_super) {
28315
28448
  TimelineYear.prototype.getContentRows = function () {
28316
28449
  var tRow = [];
28317
28450
  var monthCells = this.getMonths();
28451
+ var existingGroupIndices = this.getGroupIndices();
28318
28452
  for (var row = 0; row < this.parent.resourceBase.renderedResources.length; row++) {
28319
- var tr = createElement('tr');
28320
- tRow.push(tr);
28321
28453
  var resData = void 0;
28322
28454
  if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
28323
28455
  resData = this.parent.resourceBase.renderedResources[parseInt(row.toString(), 10)];
28456
+ if (existingGroupIndices.length > 0 && existingGroupIndices.indexOf(resData.groupIndex) > -1) {
28457
+ continue;
28458
+ }
28324
28459
  }
28460
+ var tr = createElement('tr');
28461
+ tRow.push(tr);
28325
28462
  var monthDate = new Date(this.parent.selectedDate.getFullYear(), monthCells[parseInt(row.toString(), 10)], 1);
28326
28463
  var date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
28327
28464
  for (var month = 0; month < this.columnCount; month++) {