@syncfusion/ej2-schedule 26.2.14 → 27.1.48

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 (199) 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 +151 -29
  4. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  5. package/dist/es6/ej2-schedule.es5.js +151 -29
  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 +18 -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/inline-edit.js +9 -1
  21. package/src/schedule/event-renderer/month.js +4 -1
  22. package/src/schedule/event-renderer/timeline-view.js +4 -1
  23. package/src/schedule/event-renderer/year.js +2 -2
  24. package/src/schedule/renderer/header-renderer.d.ts +1 -0
  25. package/src/schedule/renderer/header-renderer.js +9 -1
  26. package/src/schedule/renderer/month.js +6 -0
  27. package/src/schedule/renderer/timeline-header-row.js +1 -1
  28. package/src/schedule/renderer/timeline-view.js +5 -0
  29. package/src/schedule/renderer/timeline-year.js +6 -2
  30. package/src/schedule/renderer/vertical-view.js +2 -6
  31. package/src/schedule/renderer/view-base.d.ts +1 -0
  32. package/src/schedule/renderer/view-base.js +9 -0
  33. package/src/schedule/renderer/year.js +4 -4
  34. package/styles/bootstrap-dark-lite.css +4169 -0
  35. package/styles/bootstrap-dark-lite.scss +18 -0
  36. package/styles/bootstrap-dark.css +818 -596
  37. package/styles/bootstrap-dark.scss +3 -2
  38. package/styles/bootstrap-lite.css +4164 -0
  39. package/styles/bootstrap-lite.scss +18 -0
  40. package/styles/bootstrap.css +818 -596
  41. package/styles/bootstrap.scss +3 -2
  42. package/styles/bootstrap4-lite.css +4211 -0
  43. package/styles/bootstrap4-lite.scss +18 -0
  44. package/styles/bootstrap4.css +803 -636
  45. package/styles/bootstrap4.scss +3 -2
  46. package/styles/bootstrap5-dark-lite.css +4210 -0
  47. package/styles/bootstrap5-dark-lite.scss +18 -0
  48. package/styles/bootstrap5-dark.css +819 -597
  49. package/styles/bootstrap5-dark.scss +3 -2
  50. package/styles/bootstrap5-lite.css +4210 -0
  51. package/styles/bootstrap5-lite.scss +18 -0
  52. package/styles/bootstrap5.3-lite.css +4256 -0
  53. package/styles/bootstrap5.3-lite.scss +18 -0
  54. package/styles/bootstrap5.3.css +5017 -0
  55. package/styles/bootstrap5.3.scss +20 -0
  56. package/styles/bootstrap5.css +819 -597
  57. package/styles/bootstrap5.scss +3 -2
  58. package/styles/fabric-dark-lite.css +4139 -0
  59. package/styles/fabric-dark-lite.scss +18 -0
  60. package/styles/fabric-dark.css +825 -595
  61. package/styles/fabric-dark.scss +3 -2
  62. package/styles/fabric-lite.css +4136 -0
  63. package/styles/fabric-lite.scss +18 -0
  64. package/styles/fabric.css +825 -588
  65. package/styles/fabric.scss +3 -2
  66. package/styles/fluent-dark-lite.css +4202 -0
  67. package/styles/fluent-dark-lite.scss +18 -0
  68. package/styles/fluent-dark.css +823 -593
  69. package/styles/fluent-dark.scss +3 -2
  70. package/styles/fluent-lite.css +4202 -0
  71. package/styles/fluent-lite.scss +18 -0
  72. package/styles/fluent.css +823 -593
  73. package/styles/fluent.scss +3 -2
  74. package/styles/fluent2-lite.css +4422 -0
  75. package/styles/fluent2-lite.scss +18 -0
  76. package/styles/fluent2.css +860 -602
  77. package/styles/fluent2.scss +3 -2
  78. package/styles/highcontrast-light-lite.css +4228 -0
  79. package/styles/highcontrast-light-lite.scss +18 -0
  80. package/styles/highcontrast-light.css +828 -584
  81. package/styles/highcontrast-light.scss +3 -2
  82. package/styles/highcontrast-lite.css +4237 -0
  83. package/styles/highcontrast-lite.scss +18 -0
  84. package/styles/highcontrast.css +829 -585
  85. package/styles/highcontrast.scss +3 -2
  86. package/styles/material-dark-lite.css +4216 -0
  87. package/styles/material-dark-lite.scss +18 -0
  88. package/styles/material-dark.css +828 -581
  89. package/styles/material-dark.scss +3 -2
  90. package/styles/material-lite.css +4242 -0
  91. package/styles/material-lite.scss +18 -0
  92. package/styles/material.css +826 -600
  93. package/styles/material.scss +3 -2
  94. package/styles/material3-dark-lite.css +4233 -0
  95. package/styles/material3-dark-lite.scss +18 -0
  96. package/styles/material3-dark.css +825 -602
  97. package/styles/material3-dark.scss +3 -2
  98. package/styles/material3-lite.css +4235 -0
  99. package/styles/material3-lite.scss +18 -0
  100. package/styles/material3.css +825 -602
  101. package/styles/material3.scss +3 -2
  102. package/styles/recurrence-editor/_bigger.scss +134 -0
  103. package/styles/recurrence-editor/_layout.scss +0 -110
  104. package/styles/recurrence-editor/bootstrap-dark.css +87 -131
  105. package/styles/recurrence-editor/bootstrap-dark.scss +1 -0
  106. package/styles/recurrence-editor/bootstrap.css +87 -131
  107. package/styles/recurrence-editor/bootstrap.scss +1 -0
  108. package/styles/recurrence-editor/bootstrap4.css +87 -149
  109. package/styles/recurrence-editor/bootstrap4.scss +1 -0
  110. package/styles/recurrence-editor/bootstrap5-dark.css +87 -135
  111. package/styles/recurrence-editor/bootstrap5-dark.scss +1 -0
  112. package/styles/recurrence-editor/bootstrap5.3.css +501 -0
  113. package/styles/recurrence-editor/bootstrap5.3.scss +9 -0
  114. package/styles/recurrence-editor/bootstrap5.css +87 -135
  115. package/styles/recurrence-editor/bootstrap5.scss +1 -0
  116. package/styles/recurrence-editor/fabric-dark.css +87 -130
  117. package/styles/recurrence-editor/fabric-dark.scss +1 -0
  118. package/styles/recurrence-editor/fabric.css +87 -123
  119. package/styles/recurrence-editor/fabric.scss +1 -0
  120. package/styles/recurrence-editor/fluent-dark.css +87 -122
  121. package/styles/recurrence-editor/fluent-dark.scss +1 -0
  122. package/styles/recurrence-editor/fluent.css +87 -122
  123. package/styles/recurrence-editor/fluent.scss +1 -0
  124. package/styles/recurrence-editor/fluent2.css +91 -117
  125. package/styles/recurrence-editor/fluent2.scss +1 -0
  126. package/styles/recurrence-editor/highcontrast-light.css +87 -118
  127. package/styles/recurrence-editor/highcontrast-light.scss +1 -0
  128. package/styles/recurrence-editor/highcontrast.css +87 -118
  129. package/styles/recurrence-editor/highcontrast.scss +1 -0
  130. package/styles/recurrence-editor/material-dark.css +87 -115
  131. package/styles/recurrence-editor/material-dark.scss +1 -0
  132. package/styles/recurrence-editor/material.css +87 -136
  133. package/styles/recurrence-editor/material.scss +1 -0
  134. package/styles/recurrence-editor/material3-dark.css +87 -140
  135. package/styles/recurrence-editor/material3-dark.scss +1 -0
  136. package/styles/recurrence-editor/material3.css +87 -140
  137. package/styles/recurrence-editor/material3.scss +1 -0
  138. package/styles/recurrence-editor/tailwind-dark.css +87 -116
  139. package/styles/recurrence-editor/tailwind-dark.scss +1 -0
  140. package/styles/recurrence-editor/tailwind.css +87 -116
  141. package/styles/recurrence-editor/tailwind.scss +1 -0
  142. package/styles/schedule/_bds-definition.scss +1 -1
  143. package/styles/schedule/_bigger.scss +809 -0
  144. package/styles/schedule/_bootstrap4-definition.scss +1 -1
  145. package/styles/schedule/_bootstrap5-definition.scss +1 -1
  146. package/styles/schedule/_bootstrap5.3-definition.scss +9 -6
  147. package/styles/schedule/_fluent-definition.scss +1 -1
  148. package/styles/schedule/_fluent2-definition.scss +6 -6
  149. package/styles/schedule/_fusionnew-definition.scss +1 -1
  150. package/styles/schedule/_layout.scss +5 -442
  151. package/styles/schedule/_tailwind-definition.scss +1 -1
  152. package/styles/schedule/_theme.scss +23 -1
  153. package/styles/schedule/bootstrap-dark.css +699 -483
  154. package/styles/schedule/bootstrap-dark.scss +1 -0
  155. package/styles/schedule/bootstrap.css +699 -483
  156. package/styles/schedule/bootstrap.scss +1 -0
  157. package/styles/schedule/bootstrap4.css +684 -523
  158. package/styles/schedule/bootstrap4.scss +1 -0
  159. package/styles/schedule/bootstrap5-dark.css +707 -491
  160. package/styles/schedule/bootstrap5-dark.scss +1 -0
  161. package/styles/schedule/bootstrap5.3.css +4615 -0
  162. package/styles/schedule/bootstrap5.3.scss +17 -0
  163. package/styles/schedule/bootstrap5.css +707 -491
  164. package/styles/schedule/bootstrap5.scss +1 -0
  165. package/styles/schedule/fabric-dark.css +706 -482
  166. package/styles/schedule/fabric-dark.scss +1 -0
  167. package/styles/schedule/fabric.css +706 -475
  168. package/styles/schedule/fabric.scss +1 -0
  169. package/styles/schedule/fluent-dark.css +716 -492
  170. package/styles/schedule/fluent-dark.scss +1 -0
  171. package/styles/schedule/fluent.css +716 -492
  172. package/styles/schedule/fluent.scss +1 -0
  173. package/styles/schedule/fluent2.css +746 -497
  174. package/styles/schedule/fluent2.scss +1 -0
  175. package/styles/schedule/highcontrast-light.css +714 -476
  176. package/styles/schedule/highcontrast-light.scss +1 -0
  177. package/styles/schedule/highcontrast.css +714 -476
  178. package/styles/schedule/highcontrast.scss +1 -0
  179. package/styles/schedule/material-dark.css +724 -483
  180. package/styles/schedule/material-dark.scss +1 -0
  181. package/styles/schedule/material.css +720 -500
  182. package/styles/schedule/material.scss +1 -0
  183. package/styles/schedule/material3-dark.css +714 -497
  184. package/styles/schedule/material3-dark.scss +1 -0
  185. package/styles/schedule/material3.css +714 -497
  186. package/styles/schedule/material3.scss +1 -0
  187. package/styles/schedule/tailwind-dark.css +718 -483
  188. package/styles/schedule/tailwind-dark.scss +1 -0
  189. package/styles/schedule/tailwind.css +718 -483
  190. package/styles/schedule/tailwind.scss +1 -0
  191. package/styles/tailwind-dark-lite.css +4179 -0
  192. package/styles/tailwind-dark-lite.scss +18 -0
  193. package/styles/tailwind-dark.css +827 -586
  194. package/styles/tailwind-dark.scss +3 -2
  195. package/styles/tailwind-lite.css +4179 -0
  196. package/styles/tailwind-lite.scss +18 -0
  197. package/styles/tailwind.css +827 -586
  198. package/styles/tailwind.scss +3 -2
  199. 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) {
@@ -8096,7 +8146,10 @@ var MonthEvent = /** @__PURE__ @class */ (function (_super) {
8096
8146
  if (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) {
8097
8147
  for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {
8098
8148
  var sourceRes = this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)];
8099
- this.renderEventsHandler(sourceRes.renderDates, sourceRes.workDays, sourceRes);
8149
+ if (!this.parent.uiStateValues.isGroupAdaptive ||
8150
+ (this.parent.uiStateValues.groupIndex === sourceRes.groupIndex && this.parent.uiStateValues.isGroupAdaptive)) {
8151
+ this.renderEventsHandler(sourceRes.renderDates, sourceRes.workDays, sourceRes);
8152
+ }
8100
8153
  if (this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex !==
8101
8154
  this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex) {
8102
8155
  var target = this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)];
@@ -8591,7 +8644,10 @@ var TimelineEvent = /** @__PURE__ @class */ (function (_super) {
8591
8644
  for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {
8592
8645
  var source = this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)];
8593
8646
  this.rowIndex = source.groupIndex;
8594
- this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, source);
8647
+ if (!this.parent.uiStateValues.isGroupAdaptive ||
8648
+ (this.parent.uiStateValues.groupIndex === source.groupIndex && this.parent.uiStateValues.isGroupAdaptive)) {
8649
+ this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, source);
8650
+ }
8595
8651
  if (this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)] && this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex !==
8596
8652
  this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex) {
8597
8653
  var target = this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)];
@@ -9148,7 +9204,15 @@ var InlineEdit = /** @__PURE__ @class */ (function () {
9148
9204
  subjectWrap.insertBefore(inlineSubject, subjectWrap.firstChild);
9149
9205
  }
9150
9206
  else {
9151
- args.element.querySelector('.e-appointment-details').prepend(inlineSubject);
9207
+ var elementSelector = ['TimelineDay', 'TimelineWeek', 'TimelineWorkWeek', 'TimelineMonth'].indexOf(this.parent.currentView) > -1 ?
9208
+ '.e-inner-wrap' : '.e-appointment-details';
9209
+ var innerWrapElement = args.element.querySelector(elementSelector);
9210
+ if (isNullOrUndefined(innerWrapElement)) {
9211
+ args.element.querySelector('.e-appointment-details').prepend(inlineSubject);
9212
+ }
9213
+ else {
9214
+ innerWrapElement.prepend(inlineSubject);
9215
+ }
9152
9216
  }
9153
9217
  inlineSubject.focus();
9154
9218
  }
@@ -14227,6 +14291,7 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
14227
14291
  firstTDIndex = (endIndex > this.parent.resourceBase.expandedResources.length) ?
14228
14292
  (this.parent.resourceBase.expandedResources.length - this.renderedLength) : firstTDIndex;
14229
14293
  firstTDIndex = firstTDIndex < 0 ? 0 : firstTDIndex;
14294
+ this.existingDataCollection = this.parent.resourceBase.renderedResources;
14230
14295
  this.parent.resourceBase.renderedResources = this.parent.resourceBase.expandedResources.slice(firstTDIndex, endIndex);
14231
14296
  if (this.parent.resourceBase.renderedResources.length > 0) {
14232
14297
  this.updateContent(resWrap, conWrap, eventWrap, this.parent.resourceBase.renderedResources);
@@ -14276,6 +14341,7 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
14276
14341
  var scrollHeight = this.parent.rowAutoHeight ?
14277
14342
  (conTable.offsetHeight - conWrap.offsetHeight) : this.bufferCount * this.itemSize;
14278
14343
  var resCollection = [];
14344
+ this.existingDataCollection = this.parent.resourceBase.renderedResources;
14279
14345
  if ((conWrap.scrollTop) - this.translateY < 0) {
14280
14346
  resCollection = this.upScroll(conWrap, firstTDIndex);
14281
14347
  }
@@ -14479,18 +14545,47 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
14479
14545
  this.parent.element.focus();
14480
14546
  }
14481
14547
  for (var i = 0; i < renderedLength; i++) {
14482
- remove(resWrap.querySelector('tbody tr'));
14483
- remove(conWrap.querySelector('tbody tr'));
14484
14548
  remove(eventWrap.querySelector('div'));
14485
14549
  }
14486
14550
  this.parent.resourceBase.renderedResources = resCollection;
14551
+ var currentGroupIndices = this.parent.activeView.getGroupIndices(resCollection);
14552
+ var previousGroupIndices = this.parent.activeView.getGroupIndices(this.existingDataCollection);
14553
+ var newGroupIndices = currentGroupIndices.filter(function (index) { return previousGroupIndices.indexOf(index) < 0; });
14554
+ var resWrapRows = Array.from(resWrap.querySelectorAll('tbody tr'));
14555
+ var conWrapRows = Array.from(conWrap.querySelectorAll('tbody tr'));
14556
+ var resWrapBody = resWrap.querySelector('tbody');
14557
+ var conWrapBody = conWrap.querySelector('tbody');
14558
+ this.removeObsoleteRows(resWrapRows, currentGroupIndices);
14559
+ this.removeObsoleteRows(conWrapRows, currentGroupIndices);
14487
14560
  var resourceRows = this.parent.resourceBase.getContentRows(resCollection, true);
14488
14561
  var contentRows = this.parent.activeView.getContentRows();
14489
14562
  var eventRows = this.parent.activeView.getEventRows(resCollection.length);
14490
- append(resourceRows, resWrap.querySelector('tbody'));
14491
- append(contentRows, conWrap.querySelector('tbody'));
14563
+ for (var i = 0; i < newGroupIndices.length; i++) {
14564
+ var index = currentGroupIndices.indexOf(newGroupIndices[parseInt(i.toString(), 10)]);
14565
+ if (index === 0) {
14566
+ prepend([resourceRows[parseInt(i.toString(), 10)]], resWrapBody);
14567
+ prepend([contentRows[parseInt(i.toString(), 10)]], conWrapBody);
14568
+ }
14569
+ else if (resWrapBody && conWrapBody && resWrapBody.children[parseInt(index.toString(), 10)] &&
14570
+ conWrapBody.children[parseInt(index.toString(), 10)]) {
14571
+ resWrapBody.insertBefore(resourceRows[parseInt(i.toString(), 10)], resWrapBody.children[parseInt(index.toString(), 10)]);
14572
+ conWrapBody.insertBefore(contentRows[parseInt(i.toString(), 10)], conWrapBody.children[parseInt(index.toString(), 10)]);
14573
+ }
14574
+ else {
14575
+ append([resourceRows[parseInt(i.toString(), 10)]], resWrapBody);
14576
+ append([contentRows[parseInt(i.toString(), 10)]], conWrapBody);
14577
+ }
14578
+ }
14492
14579
  append(eventRows, eventWrap);
14493
14580
  };
14581
+ VirtualScroll.prototype.removeObsoleteRows = function (elements, currentGroupIndices) {
14582
+ elements.forEach(function (element) {
14583
+ var groupIndex = parseInt(element.firstElementChild.getAttribute('data-group-index'), 10);
14584
+ if (currentGroupIndices.indexOf(groupIndex) < 0) {
14585
+ remove(element);
14586
+ }
14587
+ });
14588
+ };
14494
14589
  VirtualScroll.prototype.updateHorizontalContent = function (conWrap, resCollection) {
14495
14590
  this.existingDataCollection = this.parent.resourceBase.expandedResources;
14496
14591
  this.parent.resourceBase.expandedResources = resCollection;
@@ -15063,10 +15158,10 @@ var Crud = /** @__PURE__ @class */ (function () {
15063
15158
  addedRecords: args.editParams.addedRecords, changedRecords: args.editParams.changedRecords,
15064
15159
  deletedRecords: args.editParams.deletedRecords
15065
15160
  };
15066
- if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj && this.parent.dragAndDropModule.actionObj.element) {
15161
+ if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj && this.parent.dragAndDropModule.actionObj.element && this.parent.dragAndDropModule.actionObj.action) {
15067
15162
  this.parent.dragAndDropModule.actionObj.element.style.display = 'none';
15068
15163
  }
15069
- if (this.parent.resizeModule && this.parent.resizeModule.actionObj && this.parent.resizeModule.actionObj.element) {
15164
+ if (this.parent.resizeModule && this.parent.resizeModule.actionObj && this.parent.resizeModule.actionObj.element && this.parent.resizeModule.actionObj.action) {
15070
15165
  this.parent.resizeModule.actionObj.element.style.display = 'none';
15071
15166
  }
15072
15167
  if (this.parent.isSpecificResourceEvents()) {
@@ -16275,7 +16370,11 @@ var ResourceBase = /** @__PURE__ @class */ (function () {
16275
16370
  var resColl = this.resourceCollection;
16276
16371
  var tr = createElement('tr');
16277
16372
  var td = createElement('td', { attrs: { tabindex: isVirtualScroll ? '-1' : '0' } });
16373
+ var existingGroupIndices = this.parent.activeView.getGroupIndices();
16278
16374
  for (var i = 0; i < resData.length; i++) {
16375
+ if (existingGroupIndices.length > 0 && existingGroupIndices.indexOf(resData[parseInt(i.toString(), 10)].groupIndex) > -1) {
16376
+ continue;
16377
+ }
16279
16378
  var ntd = td.cloneNode();
16280
16379
  rIndex = findIndexInData(resColl, 'name', resData[parseInt(i.toString(), 10)].resource.name);
16281
16380
  if (rIndex === resColl.length - 1) {
@@ -16456,6 +16555,7 @@ var ResourceBase = /** @__PURE__ @class */ (function () {
16456
16555
  this.setExpandedResources();
16457
16556
  var resourceCount = this.parent.virtualScrollModule.getRenderedCount();
16458
16557
  var startIndex = this.expandedResources.indexOf(this.renderedResources[0]);
16558
+ this.parent.virtualScrollModule.existingDataCollection = this.renderedResources;
16459
16559
  this.renderedResources = this.expandedResources.slice(startIndex, startIndex + resourceCount);
16460
16560
  if (this.renderedResources.length < resourceCount) {
16461
16561
  var sIndex = this.expandedResources.length - resourceCount;
@@ -18599,7 +18699,8 @@ var Schedule = /** @__PURE__ @class */ (function (_super) {
18599
18699
  };
18600
18700
  Schedule.prototype.onScheduleResize = function () {
18601
18701
  if (isNullOrUndefined(this.activeView) || ((this.isAdaptive || isMobile()) && document.activeElement
18602
- && document.activeElement.classList.contains(SUBJECT_CLASS)) || this.uiStateValues.isTapHold) {
18702
+ && (document.activeElement.classList.contains(SUBJECT_CLASS) ||
18703
+ document.activeElement.classList.contains(INLINE_SUBJECT_CLASS))) || this.uiStateValues.isTapHold) {
18603
18704
  return;
18604
18705
  }
18605
18706
  if (this.virtualScrollModule && this.activeView.isTimelineView()) {
@@ -21261,6 +21362,7 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
21261
21362
  EventHandler.remove(document, Browser.touchEndEvent, this.resizeStop);
21262
21363
  clearInterval(this.actionObj.scrollInterval);
21263
21364
  this.actionObj.scrollInterval = null;
21365
+ this.actionObj.action = null;
21264
21366
  this.removeCloneElementClasses();
21265
21367
  this.removeCloneElement();
21266
21368
  this.actionClass('removeClass');
@@ -21625,8 +21727,8 @@ var YearEvent = /** @__PURE__ @class */ (function (_super) {
21625
21727
  var monthDate = new Date(this.parent.selectedDate.getFullYear(), month, 1);
21626
21728
  var monthStart = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
21627
21729
  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);
21730
+ var startDate = getWeekFirstDate(monthStart, this.parent.activeViewOptions.firstDayOfWeek);
21731
+ var endDate = addDays(getWeekLastDate(monthEnd, this.parent.activeViewOptions.firstDayOfWeek), 1);
21630
21732
  for (var index = 0; startDate.getTime() < endDate.getTime(); index++) {
21631
21733
  var start = resetTime(new Date(startDate.getTime()));
21632
21734
  var end = addDays(new Date(start.getTime()), 1);
@@ -24180,6 +24282,15 @@ var ViewBase = /** @__PURE__ @class */ (function () {
24180
24282
  this.parent.resourceBase.expandedResources = this.colLevels[this.colLevels.length - 1];
24181
24283
  }
24182
24284
  };
24285
+ ViewBase.prototype.getGroupIndices = function (dataCollection) {
24286
+ var groupIndices = [];
24287
+ if (this.parent.virtualScrollModule && this.parent.activeViewOptions.group.resources.length > 0 && (dataCollection ||
24288
+ this.parent.virtualScrollModule.existingDataCollection.length > 0) && !this.parent.uiStateValues.isGroupAdaptive) {
24289
+ dataCollection = isNullOrUndefined(dataCollection) ? this.parent.virtualScrollModule.existingDataCollection : dataCollection;
24290
+ groupIndices = dataCollection.map(function (data) { return data.groupIndex; });
24291
+ }
24292
+ return groupIndices;
24293
+ };
24183
24294
  ViewBase.prototype.destroy = function () {
24184
24295
  if (this.element && this.element.parentNode) {
24185
24296
  remove(this.element);
@@ -24863,18 +24974,14 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
24863
24974
  var rows = [];
24864
24975
  var tr = createElement('tr');
24865
24976
  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
- }
24977
+ var existingGroupIndices = this.getGroupIndices();
24871
24978
  var handler = function (r) {
24872
24979
  var ntr = tr.cloneNode();
24873
24980
  for (var _i = 0, _a = _this.colLevels[_this.colLevels.length - 1]; _i < _a.length; _i++) {
24874
24981
  var tdData = _a[_i];
24875
24982
  var isAllowTdCreation = true;
24876
24983
  if (_this.parent.virtualScrollModule && _this.parent.activeViewOptions.group.resources.length > 0) {
24877
- if (existingGroupIndices.has(tdData.groupIndex)) {
24984
+ if (existingGroupIndices.indexOf(tdData.groupIndex) > -1) {
24878
24985
  isAllowTdCreation = false;
24879
24986
  }
24880
24987
  }
@@ -25676,7 +25783,13 @@ var Month = /** @__PURE__ @class */ (function (_super) {
25676
25783
  var tr = createElement('tr');
25677
25784
  var td = createElement('td', { attrs: { 'aria-selected': 'false' } });
25678
25785
  var slotDatas = this.getContentSlots();
25786
+ var isTimeline = this.parent.currentView === 'TimelineMonth';
25787
+ var existingGroupIndices = isTimeline ? this.getGroupIndices() : [];
25679
25788
  for (var row = 0; row < slotDatas.length; row++) {
25789
+ if (existingGroupIndices.length > 0 &&
25790
+ existingGroupIndices.indexOf(slotDatas[parseInt(row.toString(), 10)][0].groupIndex) > -1) {
25791
+ continue;
25792
+ }
25680
25793
  var ntr = tr.cloneNode();
25681
25794
  for (var col = 0; col < slotDatas[parseInt(row.toString(), 10)].length; col++) {
25682
25795
  var ntd = this.createContentTd(slotDatas[parseInt(row.toString(), 10)][parseInt(col.toString(), 10)], td);
@@ -26021,7 +26134,7 @@ var Year = /** @__PURE__ @class */ (function (_super) {
26021
26134
  this.setAriaAttributes(contentTable);
26022
26135
  var thead = createElement('thead', { className: 'e-week-header' });
26023
26136
  var tr = createElement('tr');
26024
- var currentWeek = getWeekFirstDate(firstDateOfMonth(currentDate), this.parent.firstDayOfWeek);
26137
+ var currentWeek = getWeekFirstDate(firstDateOfMonth(currentDate), this.parent.activeViewOptions.firstDayOfWeek);
26025
26138
  if (this.parent.activeViewOptions.showWeekNumber) {
26026
26139
  tr.appendChild(createElement('th'));
26027
26140
  }
@@ -26150,7 +26263,7 @@ var Year = /** @__PURE__ @class */ (function (_super) {
26150
26263
  return dateCol;
26151
26264
  };
26152
26265
  Year.prototype.getMonthDates = function (date) {
26153
- var startDate = getWeekFirstDate(firstDateOfMonth(date), this.parent.firstDayOfWeek);
26266
+ var startDate = getWeekFirstDate(firstDateOfMonth(date), this.parent.activeViewOptions.firstDayOfWeek);
26154
26267
  var endDate = addDays(new Date(+startDate), (6 * WEEK_LENGTH));
26155
26268
  var dateCollection = [];
26156
26269
  for (var start = startDate; start.getTime() < endDate.getTime(); start = addDays(start, 1)) {
@@ -26286,10 +26399,10 @@ var Year = /** @__PURE__ @class */ (function (_super) {
26286
26399
  return addDays(addMonths(this.getStartDate(), this.parent.monthsCount), -1);
26287
26400
  };
26288
26401
  Year.prototype.startDate = function () {
26289
- return this.parent.currentView === 'Year' ? getWeekFirstDate(this.getStartDate(), this.parent.firstDayOfWeek) : this.getStartDate();
26402
+ return this.parent.currentView === 'Year' ? getWeekFirstDate(this.getStartDate(), this.parent.activeViewOptions.firstDayOfWeek) : this.getStartDate();
26290
26403
  };
26291
26404
  Year.prototype.endDate = function () {
26292
- return this.parent.currentView === 'Year' ? addDays(getWeekLastDate(this.getEndDate(), this.parent.firstDayOfWeek), 1) :
26405
+ return this.parent.currentView === 'Year' ? addDays(getWeekLastDate(this.getEndDate(), this.parent.activeViewOptions.firstDayOfWeek), 1) :
26293
26406
  addDays(this.getEndDate(), 1);
26294
26407
  };
26295
26408
  Year.prototype.getEndDateFromStartDate = function (start) {
@@ -27472,7 +27585,7 @@ var TimelineHeaderRow = /** @__PURE__ @class */ (function () {
27472
27585
  var jsDate = +new Date(1970, 0, 1);
27473
27586
  var tzOffsetDiff = d.getTimezoneOffset() - new Date(1970, 0, 1).getTimezoneOffset();
27474
27587
  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()) {
27588
+ if (this.parent.activeViewOptions.firstDayOfWeek && this.parent.activeViewOptions.firstDayOfWeek > new Date(+d).getDay()) {
27476
27589
  key = key - 1;
27477
27590
  }
27478
27591
  result[parseInt(key.toString(), 10)] = result[parseInt(key.toString(), 10)] || [];
@@ -27795,7 +27908,12 @@ var TimelineViews = /** @__PURE__ @class */ (function (_super) {
27795
27908
  var tr = createElement('tr');
27796
27909
  var td = createElement('td', { attrs: { 'aria-selected': 'false' } });
27797
27910
  var trCount = this.getRowCount();
27911
+ var existingGroupIndices = this.getGroupIndices();
27798
27912
  for (var i = 0; i < trCount; i++) {
27913
+ if (existingGroupIndices.length > 0 &&
27914
+ existingGroupIndices.indexOf(this.parent.resourceBase.renderedResources[parseInt(i.toString(), 10)].groupIndex) > -1) {
27915
+ continue;
27916
+ }
27799
27917
  var ntr = tr.cloneNode();
27800
27918
  for (var _i = 0, _a = this.colLevels[this.colLevels.length - 1]; _i < _a.length; _i++) {
27801
27919
  var tdData = _a[_i];
@@ -28315,13 +28433,17 @@ var TimelineYear = /** @__PURE__ @class */ (function (_super) {
28315
28433
  TimelineYear.prototype.getContentRows = function () {
28316
28434
  var tRow = [];
28317
28435
  var monthCells = this.getMonths();
28436
+ var existingGroupIndices = this.getGroupIndices();
28318
28437
  for (var row = 0; row < this.parent.resourceBase.renderedResources.length; row++) {
28319
- var tr = createElement('tr');
28320
- tRow.push(tr);
28321
28438
  var resData = void 0;
28322
28439
  if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
28323
28440
  resData = this.parent.resourceBase.renderedResources[parseInt(row.toString(), 10)];
28441
+ if (existingGroupIndices.length > 0 && existingGroupIndices.indexOf(resData.groupIndex) > -1) {
28442
+ continue;
28443
+ }
28324
28444
  }
28445
+ var tr = createElement('tr');
28446
+ tRow.push(tr);
28325
28447
  var monthDate = new Date(this.parent.selectedDate.getFullYear(), monthCells[parseInt(row.toString(), 10)], 1);
28326
28448
  var date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
28327
28449
  for (var month = 0; month < this.columnCount; month++) {