@syncfusion/ej2-schedule 20.3.58 → 20.4.38

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 (158) hide show
  1. package/.eslintrc.json +16 -1
  2. package/CHANGELOG.md +10 -0
  3. package/README.md +62 -46
  4. package/dist/ej2-schedule.min.js +2 -2
  5. package/dist/ej2-schedule.umd.min.js +2 -2
  6. package/dist/ej2-schedule.umd.min.js.map +1 -1
  7. package/dist/es6/ej2-schedule.es2015.js +821 -528
  8. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  9. package/dist/es6/ej2-schedule.es5.js +860 -539
  10. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  11. package/dist/global/ej2-schedule.min.js +2 -2
  12. package/dist/global/ej2-schedule.min.js.map +1 -1
  13. package/dist/global/index.d.ts +1 -1
  14. package/package.json +22 -30
  15. package/src/common/calendar-util.js +1 -1
  16. package/src/recurrence-editor/date-generator.js +26 -26
  17. package/src/recurrence-editor/recurrence-editor.js +5 -5
  18. package/src/schedule/actions/action-base.js +3 -3
  19. package/src/schedule/actions/crud.js +16 -16
  20. package/src/schedule/actions/drag.js +36 -32
  21. package/src/schedule/actions/keyboard.js +10 -8
  22. package/src/schedule/actions/resize.js +6 -6
  23. package/src/schedule/actions/touch.js +4 -3
  24. package/src/schedule/actions/virtual-scroll.js +10 -7
  25. package/src/schedule/base/interface.d.ts +8 -1
  26. package/src/schedule/base/resource.d.ts +1 -0
  27. package/src/schedule/base/resource.js +179 -93
  28. package/src/schedule/base/schedule-model.d.ts +7 -0
  29. package/src/schedule/base/schedule.d.ts +23 -0
  30. package/src/schedule/base/schedule.js +73 -22
  31. package/src/schedule/base/util.js +4 -6
  32. package/src/schedule/event-renderer/agenda-base.js +36 -31
  33. package/src/schedule/event-renderer/event-base.js +25 -25
  34. package/src/schedule/event-renderer/inline-edit.js +8 -5
  35. package/src/schedule/event-renderer/month.js +17 -14
  36. package/src/schedule/event-renderer/timeline-view.js +11 -11
  37. package/src/schedule/event-renderer/vertical-view.d.ts +1 -0
  38. package/src/schedule/event-renderer/vertical-view.js +97 -70
  39. package/src/schedule/event-renderer/year.js +25 -17
  40. package/src/schedule/exports/calendar-export.js +4 -4
  41. package/src/schedule/exports/calendar-import.js +14 -15
  42. package/src/schedule/exports/excel-export.js +1 -1
  43. package/src/schedule/exports/print.js +39 -4
  44. package/src/schedule/models/group-model.d.ts +8 -0
  45. package/src/schedule/models/group.d.ts +7 -0
  46. package/src/schedule/models/group.js +3 -0
  47. package/src/schedule/models/views-model.d.ts +8 -1
  48. package/src/schedule/models/views.d.ts +7 -1
  49. package/src/schedule/models/views.js +3 -0
  50. package/src/schedule/popups/event-tooltip.js +3 -2
  51. package/src/schedule/popups/event-window.js +36 -30
  52. package/src/schedule/popups/quick-popups.js +6 -6
  53. package/src/schedule/renderer/agenda.js +5 -5
  54. package/src/schedule/renderer/header-renderer.d.ts +1 -1
  55. package/src/schedule/renderer/header-renderer.js +21 -5
  56. package/src/schedule/renderer/month-agenda.js +11 -4
  57. package/src/schedule/renderer/month.js +44 -16
  58. package/src/schedule/renderer/renderer.js +3 -3
  59. package/src/schedule/renderer/timeline-header-row.js +7 -7
  60. package/src/schedule/renderer/timeline-month.js +5 -5
  61. package/src/schedule/renderer/timeline-view.js +2 -2
  62. package/src/schedule/renderer/timeline-year.js +20 -14
  63. package/src/schedule/renderer/vertical-view.js +24 -9
  64. package/src/schedule/renderer/view-base.d.ts +3 -0
  65. package/src/schedule/renderer/view-base.js +11 -3
  66. package/src/schedule/renderer/year.js +11 -5
  67. package/styles/bootstrap-dark.css +364 -101
  68. package/styles/bootstrap.css +363 -99
  69. package/styles/bootstrap4.css +375 -141
  70. package/styles/bootstrap5-dark.css +339 -137
  71. package/styles/bootstrap5.css +339 -137
  72. package/styles/fabric-dark.css +330 -101
  73. package/styles/fabric.css +316 -106
  74. package/styles/fluent-dark.css +395 -102
  75. package/styles/fluent.css +395 -102
  76. package/styles/highcontrast-light.css +407 -98
  77. package/styles/highcontrast.css +399 -113
  78. package/styles/material-dark.css +362 -110
  79. package/styles/material.css +404 -110
  80. package/styles/recurrence-editor/_layout.scss +42 -28
  81. package/styles/recurrence-editor/bootstrap-dark.css +137 -28
  82. package/styles/recurrence-editor/bootstrap-dark.scss +5 -0
  83. package/styles/recurrence-editor/bootstrap.css +137 -28
  84. package/styles/recurrence-editor/bootstrap.scss +5 -0
  85. package/styles/recurrence-editor/bootstrap4.css +171 -28
  86. package/styles/recurrence-editor/bootstrap4.scss +5 -0
  87. package/styles/recurrence-editor/bootstrap5-dark.css +178 -28
  88. package/styles/recurrence-editor/bootstrap5-dark.scss +5 -0
  89. package/styles/recurrence-editor/bootstrap5.css +178 -28
  90. package/styles/recurrence-editor/bootstrap5.scss +5 -0
  91. package/styles/recurrence-editor/fabric-dark.css +113 -28
  92. package/styles/recurrence-editor/fabric-dark.scss +5 -0
  93. package/styles/recurrence-editor/fabric.css +106 -28
  94. package/styles/recurrence-editor/fabric.scss +5 -0
  95. package/styles/recurrence-editor/fluent-dark.css +158 -28
  96. package/styles/recurrence-editor/fluent-dark.scss +5 -0
  97. package/styles/recurrence-editor/fluent.css +158 -28
  98. package/styles/recurrence-editor/fluent.scss +5 -0
  99. package/styles/recurrence-editor/highcontrast-light.css +110 -28
  100. package/styles/recurrence-editor/highcontrast-light.scss +5 -0
  101. package/styles/recurrence-editor/highcontrast.css +110 -28
  102. package/styles/recurrence-editor/highcontrast.scss +5 -0
  103. package/styles/recurrence-editor/material-dark.css +138 -28
  104. package/styles/recurrence-editor/material-dark.scss +5 -0
  105. package/styles/recurrence-editor/material.css +163 -28
  106. package/styles/recurrence-editor/material.scss +5 -0
  107. package/styles/recurrence-editor/tailwind-dark.css +126 -28
  108. package/styles/recurrence-editor/tailwind-dark.scss +5 -0
  109. package/styles/recurrence-editor/tailwind.css +126 -28
  110. package/styles/recurrence-editor/tailwind.scss +5 -0
  111. package/styles/schedule/_bootstrap-dark-definition.scss +63 -4
  112. package/styles/schedule/_bootstrap-definition.scss +62 -3
  113. package/styles/schedule/_bootstrap4-definition.scss +65 -5
  114. package/styles/schedule/_bootstrap5-definition.scss +63 -5
  115. package/styles/schedule/_fabric-dark-definition.scss +61 -3
  116. package/styles/schedule/_fabric-definition.scss +62 -3
  117. package/styles/schedule/_fluent-definition.scss +63 -6
  118. package/styles/schedule/_fusionnew-definition.scss +60 -3
  119. package/styles/schedule/_highcontrast-definition.scss +62 -3
  120. package/styles/schedule/_highcontrast-light-definition.scss +62 -3
  121. package/styles/schedule/_layout.scss +117 -506
  122. package/styles/schedule/_material-dark-definition.scss +63 -4
  123. package/styles/schedule/_material-definition.scss +63 -4
  124. package/styles/schedule/_material3-definition.scss +62 -3
  125. package/styles/schedule/_tailwind-definition.scss +63 -6
  126. package/styles/schedule/_theme.scss +97 -62
  127. package/styles/schedule/bootstrap-dark.css +332 -73
  128. package/styles/schedule/bootstrap-dark.scss +11 -0
  129. package/styles/schedule/bootstrap.css +331 -71
  130. package/styles/schedule/bootstrap.scss +11 -0
  131. package/styles/schedule/bootstrap4.css +343 -113
  132. package/styles/schedule/bootstrap4.scss +11 -0
  133. package/styles/schedule/bootstrap5-dark.css +307 -109
  134. package/styles/schedule/bootstrap5-dark.scss +11 -0
  135. package/styles/schedule/bootstrap5.css +307 -109
  136. package/styles/schedule/bootstrap5.scss +11 -0
  137. package/styles/schedule/fabric-dark.css +298 -73
  138. package/styles/schedule/fabric-dark.scss +11 -0
  139. package/styles/schedule/fabric.css +284 -78
  140. package/styles/schedule/fabric.scss +11 -0
  141. package/styles/schedule/fluent-dark.css +363 -74
  142. package/styles/schedule/fluent-dark.scss +11 -0
  143. package/styles/schedule/fluent.css +363 -74
  144. package/styles/schedule/fluent.scss +11 -0
  145. package/styles/schedule/highcontrast-light.css +375 -70
  146. package/styles/schedule/highcontrast-light.scss +11 -0
  147. package/styles/schedule/highcontrast.css +367 -85
  148. package/styles/schedule/highcontrast.scss +11 -0
  149. package/styles/schedule/material-dark.css +330 -82
  150. package/styles/schedule/material-dark.scss +11 -0
  151. package/styles/schedule/material.css +372 -82
  152. package/styles/schedule/material.scss +11 -0
  153. package/styles/schedule/tailwind-dark.css +246 -111
  154. package/styles/schedule/tailwind-dark.scss +11 -0
  155. package/styles/schedule/tailwind.css +246 -111
  156. package/styles/schedule/tailwind.scss +11 -0
  157. package/styles/tailwind-dark.css +279 -140
  158. package/styles/tailwind.css +279 -140
@@ -218,7 +218,7 @@ var Schedule = /** @class */ (function (_super) {
218
218
  };
219
219
  Schedule.prototype.getViewIndex = function (viewName) {
220
220
  for (var item = 0; item < this.viewCollections.length; item++) {
221
- var checkIndex = this.viewCollections[item].option;
221
+ var checkIndex = this.viewCollections[parseInt(item.toString(), 10)].option;
222
222
  if (checkIndex === viewName) {
223
223
  return item;
224
224
  }
@@ -255,6 +255,7 @@ var Schedule = /** @class */ (function (_super) {
255
255
  var fieldViewName = viewName.charAt(0).toLowerCase() + viewName.slice(1);
256
256
  obj.cellHeaderTemplateName = obj.cellHeaderTemplate ? obj.option : '';
257
257
  obj.dateHeaderTemplateName = obj.dateHeaderTemplate ? obj.option : '';
258
+ obj.dateRangeTemplateName = obj.dateRangeTemplate ? obj.option : '';
258
259
  obj.cellTemplateName = obj.cellTemplate ? obj.option : '';
259
260
  obj.dayHeaderTemplateName = obj.dayHeaderTemplate ? obj.option : '';
260
261
  obj.monthHeaderTemplateName = obj.monthHeaderTemplate ? obj.option : '';
@@ -268,11 +269,11 @@ var Schedule = /** @class */ (function (_super) {
268
269
  delete obj.interval;
269
270
  }
270
271
  this.viewCollections.push(obj);
271
- if (isNullOrUndefined(this.viewOptions[fieldViewName])) {
272
- this.viewOptions[fieldViewName] = [obj];
272
+ if (isNullOrUndefined(this.viewOptions["" + fieldViewName])) {
273
+ this.viewOptions["" + fieldViewName] = [obj];
273
274
  }
274
275
  else {
275
- this.viewOptions[fieldViewName].push(obj);
276
+ this.viewOptions["" + fieldViewName].push(obj);
276
277
  }
277
278
  count++;
278
279
  }
@@ -300,7 +301,8 @@ var Schedule = /** @class */ (function (_super) {
300
301
  allowGroupEdit: this.group.allowGroupEdit,
301
302
  resources: this.group.resources,
302
303
  headerTooltipTemplate: this.group.headerTooltipTemplate,
303
- enableCompactView: this.group.enableCompactView
304
+ enableCompactView: this.group.enableCompactView,
305
+ hideNonWorkingDays: ['Day', 'Week', 'WorkWeek', 'Month'].indexOf(this.currentView) > -1 ? this.group.hideNonWorkingDays : false
304
306
  };
305
307
  var workDays = this.viewCollections[this.viewIndex].workDays ? [] : this.workDays;
306
308
  var scheduleOptions = {
@@ -317,6 +319,7 @@ var Schedule = /** @class */ (function (_super) {
317
319
  cellTemplate: this.cellTemplate,
318
320
  eventTemplate: this.eventSettings.template,
319
321
  dateHeaderTemplate: this.dateHeaderTemplate,
322
+ dateRangeTemplate: this.dateRangeTemplate,
320
323
  resourceHeaderTemplate: this.resourceHeaderTemplate,
321
324
  headerIndentTemplate: this.headerIndentTemplate,
322
325
  firstMonthOfYear: this.firstMonthOfYear,
@@ -396,6 +399,7 @@ var Schedule = /** @class */ (function (_super) {
396
399
  this.monthHeaderTemplateFn = this.templateParser(this.activeViewOptions.monthHeaderTemplate);
397
400
  this.cellTemplateFn = this.templateParser(this.activeViewOptions.cellTemplate);
398
401
  this.dateHeaderTemplateFn = this.templateParser(this.activeViewOptions.dateHeaderTemplate);
402
+ this.dateRangeTemplateFn = this.templateParser(this.activeViewOptions.dateRangeTemplate);
399
403
  this.majorSlotTemplateFn = this.templateParser(this.activeViewOptions.timeScale.majorSlotTemplate);
400
404
  this.minorSlotTemplateFn = this.templateParser(this.activeViewOptions.timeScale.minorSlotTemplate);
401
405
  this.appointmentTemplateFn = this.templateParser(this.activeViewOptions.eventTemplate);
@@ -508,16 +512,18 @@ var Schedule = /** @class */ (function (_super) {
508
512
  if (!muteOnChange && index === this.viewIndex && this.currentView === view || index < 0) {
509
513
  return;
510
514
  }
511
- this.viewIndex = index;
515
+ var previousView = this.activeViewOptions ? this.activeViewOptions.option : this.currentView;
512
516
  var args = { requestType: 'viewNavigate', cancel: false, event: event };
513
517
  this.trigger(events.actionBegin, args, function (actionArgs) {
514
518
  if (!actionArgs.cancel) {
515
519
  var navArgs = {
516
- action: 'view', cancel: false, currentDate: _this.selectedDate, previousView: _this.currentView, currentView: view, viewIndex: _this.viewIndex
520
+ action: 'view', cancel: false, currentDate: _this.selectedDate, previousView: previousView, currentView: view, viewIndex: index
517
521
  };
518
522
  _this.trigger(events.navigating, navArgs, function (navigationArgs) {
519
523
  if (!navigationArgs.cancel) {
520
- _this.uiStateValues.isInitial = view.indexOf('Timeline') > -1 || _this.currentView.indexOf('Timeline') > -1 ? true : _this.uiStateValues.isInitial;
524
+ var isVertical = ['Day', 'Week', 'WorkWeek'].indexOf(view) > -1 && ['Day', 'Week', 'WorkWeek'].indexOf(previousView) < 0;
525
+ _this.uiStateValues.isInitial = isVertical || view.indexOf('Timeline') > -1 || view.indexOf('Year') > -1;
526
+ _this.uiStateValues.top = view.indexOf('Timeline') > -1 && previousView.indexOf('Timeline') < 0 ? 0 : _this.uiStateValues.top;
521
527
  _this.viewIndex = navigationArgs.viewIndex;
522
528
  _this.setProperties({ currentView: view }, true);
523
529
  if (_this.headerModule) {
@@ -530,8 +536,14 @@ var Schedule = /** @class */ (function (_super) {
530
536
  args = { requestType: 'viewNavigate', cancel: false, event: event };
531
537
  _this.trigger(events.actionComplete, args);
532
538
  }
539
+ else {
540
+ _this.currentView = previousView;
541
+ }
533
542
  });
534
543
  }
544
+ else {
545
+ _this.currentView = previousView;
546
+ }
535
547
  });
536
548
  };
537
549
  /**
@@ -552,7 +564,7 @@ var Schedule = /** @class */ (function (_super) {
552
564
  };
553
565
  _this.trigger(events.navigating, navArgs, function (navigationArgs) {
554
566
  if (!navigationArgs.cancel) {
555
- _this.uiStateValues.isInitial = _this.activeView.isTimelineView() ? true : _this.uiStateValues.isInitial;
567
+ _this.uiStateValues.isInitial = _this.activeView.isTimelineView() && _this.currentView !== 'TimelineYear';
556
568
  _this.validateDate(navigationArgs.currentDate);
557
569
  if (_this.headerModule) {
558
570
  _this.headerModule.setCalendarDate(navigationArgs.currentDate);
@@ -959,6 +971,15 @@ var Schedule = /** @class */ (function (_super) {
959
971
  Schedule.prototype.getDateHeaderTemplate = function () {
960
972
  return this.dateHeaderTemplateFn;
961
973
  };
974
+ /**
975
+ * Method to process date range template
976
+ *
977
+ * @returns {CallbackFunction} Returns the callback function
978
+ * @private
979
+ */
980
+ Schedule.prototype.getDateRangeTemplate = function () {
981
+ return this.dateRangeTemplateFn;
982
+ };
962
983
  /**
963
984
  * Method to process major slot template
964
985
  *
@@ -1318,14 +1339,14 @@ var Schedule = /** @class */ (function (_super) {
1318
1339
  case 'dateFormat':
1319
1340
  this.activeViewOptions = this.getActiveViewOptions();
1320
1341
  if (this.headerModule) {
1321
- this.headerModule.updateDateRange(this.activeView.getDateRangeText());
1342
+ this.headerModule.updateDateRange();
1322
1343
  }
1323
1344
  break;
1324
1345
  case 'showHeaderBar':
1325
1346
  this.destroyHeaderModule();
1326
1347
  if (newProp.showHeaderBar) {
1327
1348
  this.headerModule = new HeaderRenderer(this);
1328
- this.headerModule.updateDateRange(this.activeView.getDateRangeText());
1349
+ this.headerModule.updateDateRange();
1329
1350
  }
1330
1351
  this.notify(events.scrollUiUpdate, { cssProperties: this.getCssProperties() });
1331
1352
  if (this.activeView.isTimelineView()) {
@@ -1382,6 +1403,13 @@ var Schedule = /** @class */ (function (_super) {
1382
1403
  this.dateHeaderTemplateFn = this.templateParser(this.activeViewOptions.dateHeaderTemplate);
1383
1404
  state.isLayout = true;
1384
1405
  break;
1406
+ case 'dateRangeTemplate':
1407
+ this.activeViewOptions.dateRangeTemplate = newProp.dateRangeTemplate;
1408
+ this.dateRangeTemplateFn = this.templateParser(this.activeViewOptions.dateRangeTemplate);
1409
+ if (this.headerModule) {
1410
+ this.headerModule.updateDateRange();
1411
+ }
1412
+ break;
1385
1413
  case 'dayHeaderTemplate':
1386
1414
  this.activeViewOptions.dayHeaderTemplate = newProp.dayHeaderTemplate;
1387
1415
  this.dayHeaderTemplateFn = this.templateParser(this.activeViewOptions.dayHeaderTemplate);
@@ -1561,7 +1589,7 @@ var Schedule = /** @class */ (function (_super) {
1561
1589
  if (this.showHeaderBar && this.headerModule) {
1562
1590
  this.destroyHeaderModule();
1563
1591
  this.headerModule = new HeaderRenderer(this);
1564
- this.headerModule.updateDateRange(this.activeView.getDateRangeText());
1592
+ this.headerModule.updateDateRange();
1565
1593
  }
1566
1594
  state.isLayout = true;
1567
1595
  break;
@@ -1584,7 +1612,7 @@ var Schedule = /** @class */ (function (_super) {
1584
1612
  for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {
1585
1613
  var prop = _a[_i];
1586
1614
  if (prop === 'headerTooltipTemplate') {
1587
- this.headerTooltipTemplateFn = this.templateParser(newProp[prop]);
1615
+ this.headerTooltipTemplateFn = this.templateParser(newProp.headerTooltipTemplate);
1588
1616
  }
1589
1617
  else {
1590
1618
  state.isLayout = true;
@@ -1759,7 +1787,7 @@ var Schedule = /** @class */ (function (_super) {
1759
1787
  util.resetTime(date);
1760
1788
  var renderDates = this.activeView.renderDates;
1761
1789
  if (!isNullOrUndefined(groupIndex) && this.resourceBase && !this.activeView.isTimelineView()) {
1762
- renderDates = this.resourceBase.lastResourceLevel[groupIndex].renderDates;
1790
+ renderDates = this.resourceBase.lastResourceLevel[parseInt(groupIndex.toString(), 10)].renderDates;
1763
1791
  }
1764
1792
  var colIndex = this.getIndexOfDate(renderDates, date);
1765
1793
  if (colIndex >= 0) {
@@ -1771,16 +1799,16 @@ var Schedule = /** @class */ (function (_super) {
1771
1799
  for (var i = startIndex; i < endIndex; i++) {
1772
1800
  if (this.activeView.isTimelineView()) {
1773
1801
  var rowIndex = (!isNullOrUndefined(groupIndex)) ? groupIndex : 0;
1774
- cells.push(tableEle.rows[rowIndex].cells[i]);
1802
+ cells.push(tableEle.rows[parseInt(rowIndex.toString(), 10)].cells[parseInt(i.toString(), 10)]);
1775
1803
  }
1776
1804
  else {
1777
1805
  if (!isNullOrUndefined(groupIndex)) {
1778
1806
  var selector = '.' + cls.WORK_CELLS_CLASS + '[data-group-index="' + groupIndex + '"]';
1779
- var tds = [].slice.call(tableEle.rows[i].querySelectorAll(selector));
1780
- cells.push(tds[colIndex]);
1807
+ var tds = [].slice.call(tableEle.rows[parseInt(i.toString(), 10)].querySelectorAll(selector));
1808
+ cells.push(tds[parseInt(colIndex.toString(), 10)]);
1781
1809
  }
1782
1810
  else {
1783
- cells.push(tableEle.rows[i].cells[colIndex]);
1811
+ cells.push(tableEle.rows[parseInt(i.toString(), 10)].cells[parseInt(colIndex.toString(), 10)]);
1784
1812
  }
1785
1813
  }
1786
1814
  }
@@ -1865,7 +1893,7 @@ var Schedule = /** @class */ (function (_super) {
1865
1893
  Schedule.prototype.changeCurrentView = function (viewName, viewIndex) {
1866
1894
  var index = this.getViewIndex(viewName);
1867
1895
  var view = viewName.charAt(0).toLowerCase() + viewName.slice(1);
1868
- var viewOptions = this.viewOptions[view];
1896
+ var viewOptions = this.viewOptions["" + view];
1869
1897
  if (viewOptions) {
1870
1898
  index = this.viewCollections.indexOf(viewOptions[viewIndex || 0]);
1871
1899
  }
@@ -1894,7 +1922,7 @@ var Schedule = /** @class */ (function (_super) {
1894
1922
  if (index < 0 || index >= this.resourceBase.lastResourceLevel.length) {
1895
1923
  return undefined;
1896
1924
  }
1897
- var data = this.resourceBase.lastResourceLevel[index];
1925
+ var data = this.resourceBase.lastResourceLevel[parseInt(index.toString(), 10)];
1898
1926
  var groupData = {};
1899
1927
  this.resourceBase.setResourceValues(groupData, index);
1900
1928
  return { resource: data.resource, resourceData: data.resourceData, groupData: groupData };
@@ -2236,6 +2264,12 @@ var Schedule = /** @class */ (function (_super) {
2236
2264
  this.dateHeaderTemplateFn = this.templateParser(this.activeViewOptions.dateHeaderTemplate);
2237
2265
  this.activeView.refreshHeader();
2238
2266
  break;
2267
+ case 'dateRangeTemplate':
2268
+ this.dateRangeTemplateFn = this.templateParser(this.activeViewOptions.dateRangeTemplate);
2269
+ if (this.headerModule) {
2270
+ this.headerModule.refresh();
2271
+ }
2272
+ break;
2239
2273
  case 'resourceHeaderTemplate':
2240
2274
  this.resourceHeaderTemplateFn = this.templateParser(this.activeViewOptions.resourceHeaderTemplate);
2241
2275
  if (this.activeView.isTimelineView()) {
@@ -2341,7 +2375,8 @@ var Schedule = /** @class */ (function (_super) {
2341
2375
  eventEnd = this.getDateTime(eventEnd);
2342
2376
  var eventCollection = this.eventBase.filterEvents(eventStart, eventEnd);
2343
2377
  if (!isNullOrUndefined(groupIndex) && this.resourceBase && this.resourceBase.lastResourceLevel.length > 0) {
2344
- eventCollection = this.eventBase.filterEventsByResource(this.resourceBase.lastResourceLevel[groupIndex], eventCollection);
2378
+ eventCollection =
2379
+ this.eventBase.filterEventsByResource(this.resourceBase.lastResourceLevel[parseInt(groupIndex.toString(), 10)], eventCollection);
2345
2380
  }
2346
2381
  if (eventObj) {
2347
2382
  if (eventObj.Guid) {
@@ -2474,6 +2509,19 @@ var Schedule = /** @class */ (function (_super) {
2474
2509
  this.quickPopup.quickPopupHide(true);
2475
2510
  }
2476
2511
  };
2512
+ /**
2513
+ * Closes the tooltip.
2514
+ * For example, when the context menu is opened for an event,
2515
+ * the tooltip can be closed by calling this method.
2516
+ *
2517
+ * @function closeTooltip
2518
+ * @returns {void}
2519
+ */
2520
+ Schedule.prototype.closeTooltip = function () {
2521
+ if (this.eventTooltip) {
2522
+ this.eventTooltip.close();
2523
+ }
2524
+ };
2477
2525
  /**
2478
2526
  * Select the resource based on group index in mobile mode.
2479
2527
  *
@@ -2586,7 +2634,7 @@ var Schedule = /** @class */ (function (_super) {
2586
2634
  ];
2587
2635
  for (var _i = 0, modules_1 = modules; _i < modules_1.length; _i++) {
2588
2636
  var module = modules_1[_i];
2589
- this[module] = null;
2637
+ this["" + module] = null;
2590
2638
  }
2591
2639
  util.removeChildren(this.element);
2592
2640
  var removeClasses = [cls.ROOT, cls.RTL, cls.DEVICE_CLASS, cls.MULTI_DRAG];
@@ -2679,6 +2727,9 @@ var Schedule = /** @class */ (function (_super) {
2679
2727
  __decorate([
2680
2728
  Property()
2681
2729
  ], Schedule.prototype, "dateHeaderTemplate", void 0);
2730
+ __decorate([
2731
+ Property()
2732
+ ], Schedule.prototype, "dateRangeTemplate", void 0);
2682
2733
  __decorate([
2683
2734
  Property()
2684
2735
  ], Schedule.prototype, "cellHeaderTemplate", void 0);
@@ -269,8 +269,6 @@ export function getDateFromString(date) {
269
269
  return date.indexOf('Date') !== -1 ? new Date(parseInt(date.match(/\d+/g).toString(), 10)) :
270
270
  date.indexOf('T') !== -1 ? new Date(date) : new Date(date.replace(/-/g, '/'));
271
271
  }
272
- /** @private */
273
- var scrollWidth = null;
274
272
  /**
275
273
  * Method to get scrollbar width
276
274
  *
@@ -286,7 +284,7 @@ export function getScrollBarWidth() {
286
284
  Math.ceil(devicePixelRatio % 1) : Math.floor(devicePixelRatio % 1) : 0;
287
285
  value = (divNode.offsetWidth - divNode.clientWidth - ratio) | 0;
288
286
  document.body.removeChild(divNode);
289
- return scrollWidth = value;
287
+ return value;
290
288
  }
291
289
  /**
292
290
  * Method to find the index from data collection
@@ -301,12 +299,12 @@ export function getScrollBarWidth() {
301
299
  // eslint-disable-next-line max-len
302
300
  export function findIndexInData(data, field, value, event, resourceCollection) {
303
301
  for (var i = 0, length_1 = data.length; i < length_1; i++) {
304
- if (data[i][field] === value) {
302
+ if (data[parseInt(i.toString(), 10)]["" + field] === value) {
305
303
  if (event) {
306
304
  var field_1 = resourceCollection.slice(-2)[0].field;
307
- var res = (event[field_1] instanceof Array ? event[field_1] : [event[field_1]]);
305
+ var res = (event["" + field_1] instanceof Array ? event["" + field_1] : [event["" + field_1]]);
308
306
  var resData = res.join(',');
309
- if (resData.includes(data[i][resourceCollection.slice(-1)[0].groupIDField])) {
307
+ if (resData.includes(data[parseInt(i.toString(), 10)][resourceCollection.slice(-1)[0].groupIDField])) {
310
308
  return i;
311
309
  }
312
310
  }
@@ -50,40 +50,41 @@ var AgendaBase = /** @class */ (function (_super) {
50
50
  listElements.forEach(function (element, li) {
51
51
  var appWrapper = createElement('div', {
52
52
  className: cls.APPOINTMENT_CLASS, attrs: {
53
- 'data-id': 'Appointment_' + listData[li][_this.parent.eventFields.id],
54
- 'data-guid': listData[li].Guid,
53
+ 'data-id': 'Appointment_' + listData[parseInt(li.toString(), 10)]["" + _this.parent.eventFields.id],
54
+ 'data-guid': listData[parseInt(li.toString(), 10)].Guid,
55
55
  'role': 'button',
56
56
  'tabindex': '0',
57
- 'aria-disabled': _this.parent.eventBase.getReadonlyAttribute(listData[li]),
57
+ 'aria-disabled': _this.parent.eventBase.getReadonlyAttribute(listData[parseInt(li.toString(), 10)]),
58
58
  'aria-pressed': 'false',
59
- 'aria-label': _this.parent.getAnnouncementString(listData[li])
59
+ 'aria-label': _this.parent.getAnnouncementString(listData[parseInt(li.toString(), 10)])
60
60
  }
61
61
  });
62
62
  if (!isNullOrUndefined(groupIndex)) {
63
63
  appWrapper.setAttribute('data-group-index', groupIndex.toString());
64
64
  }
65
- _this.parent.eventBase.applyResourceColor(appWrapper, listData[li], 'borderColor', groupOrder);
65
+ _this.parent.eventBase.applyResourceColor(appWrapper, listData[parseInt(li.toString(), 10)], 'borderColor', groupOrder);
66
66
  var templateEle;
67
67
  if (!isNullOrUndefined(_this.parent.activeViewOptions.eventTemplate)) {
68
68
  addClass([appWrapper], cls.EVENT_TEMPLATE);
69
69
  var scheduleId = _this.parent.element.id + '_';
70
70
  var viewName = _this.parent.activeViewOptions.eventTemplateName;
71
71
  var templateId = scheduleId + viewName + 'eventTemplate';
72
- templateEle = _this.parent.getAppointmentTemplate()(listData[li], _this.parent, 'eventTemplate', templateId, false);
73
- if (!isNullOrUndefined(listData[li][fieldMapping.recurrenceRule])) {
74
- var iconClass = (listData[li][fieldMapping.id] === listData[li][fieldMapping.recurrenceID]) ?
72
+ templateEle = _this.parent.getAppointmentTemplate()(listData[parseInt(li.toString(), 10)], _this.parent, 'eventTemplate', templateId, false);
73
+ if (!isNullOrUndefined(listData[parseInt(li.toString(), 10)][fieldMapping.recurrenceRule])) {
74
+ var iconClass = (listData[parseInt(li.toString(), 10)][fieldMapping.id] ===
75
+ listData[parseInt(li.toString(), 10)][fieldMapping.recurrenceID]) ?
75
76
  cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;
76
77
  appWrapper.appendChild(createElement('div', { className: cls.ICON + ' ' + iconClass }));
77
78
  }
78
79
  }
79
80
  else {
80
- templateEle = _this.createAppointment(listData[li]);
81
+ templateEle = _this.createAppointment(listData[parseInt(li.toString(), 10)]);
81
82
  }
82
83
  append([].slice.call(templateEle), appWrapper);
83
84
  util.removeChildren(element);
84
85
  element.appendChild(appWrapper);
85
86
  var args = {
86
- data: extend({}, listData[li], null, true),
87
+ data: extend({}, listData[parseInt(li.toString(), 10)], null, true),
87
88
  element: element, cancel: false
88
89
  };
89
90
  _this.parent.trigger(event.eventRendered, args, function (eventArgs) {
@@ -185,7 +186,7 @@ var AgendaBase = /** @class */ (function (_super) {
185
186
  var data = [];
186
187
  agendaDate = firstDate;
187
188
  // eslint-disable-next-line max-len
188
- var resDataCollection = this.parent.eventBase.filterEvents(agendaDate, agendaLastDate, agendaCollection, resData[res]);
189
+ var resDataCollection = this.parent.eventBase.filterEvents(agendaDate, agendaLastDate, agendaCollection, resData[parseInt(res.toString(), 10)]);
189
190
  if (resDataCollection.length > 0 || !this.parent.hideEmptyAgendaDays || this.parent.currentView === 'MonthAgenda') {
190
191
  for (var r = 0; r < noOfDays; r++) {
191
192
  // eslint-disable-next-line max-len
@@ -195,19 +196,22 @@ var AgendaBase = /** @class */ (function (_super) {
195
196
  data.push(resDayCollection[0]);
196
197
  eventObj = {
197
198
  rowSpan: 1, type: 'eventColumn', resource: resColl[resColl.length - 1],
198
- groupIndex: resData[res].groupIndex, groupOrder: resData[res].groupOrder,
199
- resourceData: resData[res].resourceData, eventData: resDayCollection, date: agendaDate
199
+ groupIndex: resData[parseInt(res.toString(), 10)].groupIndex,
200
+ groupOrder: resData[parseInt(res.toString(), 10)].groupOrder,
201
+ resourceData: resData[parseInt(res.toString(), 10)].resourceData,
202
+ eventData: resDayCollection, date: agendaDate
200
203
  };
201
204
  dateObj = {
202
- rowSpan: 1, type: 'dateColumn', resource: resColl[resColl.length - 1],
203
- groupOrder: resData[res].groupOrder, resourceData: resData[res].resourceData,
205
+ rowSpan: 1, type: 'dateColumn', resource: resColl[parseInt((resColl.length - 1).toString(), 10)],
206
+ groupOrder: resData[parseInt(res.toString(), 10)].groupOrder,
207
+ resourceData: resData[parseInt(res.toString(), 10)].resourceData,
204
208
  date: agendaDate
205
209
  };
206
- if (!lastLevelInfo[tempIndex]) {
207
- lastLevelInfo[tempIndex] = [];
210
+ if (!lastLevelInfo[parseInt(tempIndex.toString(), 10)]) {
211
+ lastLevelInfo[parseInt(tempIndex.toString(), 10)] = [];
208
212
  }
209
- lastLevelInfo[tempIndex].push(eventObj);
210
- lastLevelInfo[tempIndex].push(dateObj);
213
+ lastLevelInfo[parseInt(tempIndex.toString(), 10)].push(eventObj);
214
+ lastLevelInfo[parseInt(tempIndex.toString(), 10)].push(dateObj);
211
215
  tempIndex++;
212
216
  }
213
217
  agendaDate = util.addDays(agendaDate, 1);
@@ -215,12 +219,13 @@ var AgendaBase = /** @class */ (function (_super) {
215
219
  || this.parent.currentView === 'MonthAgenda') {
216
220
  lastLevelInfo[lastLevelInfo.length - 1][1].cssClass = cls.AGENDA_DAY_BORDER_CLASS;
217
221
  var tempObj = {
218
- rowSpan: data.length, type: 'resourceColumn', resource: resColl[resColl.length - 1],
219
- groupOrder: resData[res].groupOrder.slice(0, -1), resourceData: resData[res].resourceData,
222
+ rowSpan: data.length, type: 'resourceColumn', resource: resColl[parseInt((resColl.length - 1).toString(), 10)],
223
+ groupOrder: resData[parseInt(res.toString(), 10)].groupOrder.slice(0, -1),
224
+ resourceData: resData[parseInt(res.toString(), 10)].resourceData,
220
225
  groupIndex: (lastLevelInfo.length - data.length), className: [cls.RESOURCE_NAME],
221
226
  date: agendaDate
222
227
  };
223
- lastLevelInfo[lastLevelInfo.length - data.length].push(tempObj);
228
+ lastLevelInfo[parseInt((lastLevelInfo.length - data.length).toString(), 10)].push(tempObj);
224
229
  tempLastLevelInfo.push(extend({}, tempObj, null, true));
225
230
  break;
226
231
  }
@@ -236,15 +241,15 @@ var AgendaBase = /** @class */ (function (_super) {
236
241
  var z = 0;
237
242
  for (var u = 0; u < tempLastLevelInfo.length; u++) {
238
243
  // eslint-disable-next-line max-len
239
- if (tempLastLevelInfo[u].groupOrder[topResources.length - (y + 1)] === data[x][topResources[topResources.length - (y + 1)].idField]) {
240
- totalRowSpan = totalRowSpan + tempLastLevelInfo[u].rowSpan;
241
- tempGroupedData.push(extend({}, tempLastLevelInfo[u], null, true));
244
+ if (tempLastLevelInfo[parseInt(u.toString(), 10)].groupOrder[topResources.length - (y + 1)] === data[parseInt(x.toString(), 10)][topResources[topResources.length - (y + 1)].idField]) {
245
+ totalRowSpan = totalRowSpan + tempLastLevelInfo[parseInt(u.toString(), 10)].rowSpan;
246
+ tempGroupedData.push(extend({}, tempLastLevelInfo[parseInt(u.toString(), 10)], null, true));
242
247
  }
243
248
  if (++z === tempLastLevelInfo.length && tempGroupedData.length > 0) {
244
249
  tempGroupedData[0].rowSpan = totalRowSpan;
245
250
  tempGroupedData[0].type = 'parentColumnLevel_' + (y + 1);
246
251
  tempGroupedData[0].resource = topResources[topResources.length - (y + 1)];
247
- tempGroupedData[0].resourceData = data[x];
252
+ tempGroupedData[0].resourceData = data[parseInt(x.toString(), 10)];
248
253
  tempGroupedData[0].date = agendaDate;
249
254
  lastLevelInfo[tempGroupedData[0].groupIndex].push(tempGroupedData[0]);
250
255
  tempGroupedData = [];
@@ -272,22 +277,22 @@ var AgendaBase = /** @class */ (function (_super) {
272
277
  var tContentCollection = [];
273
278
  var parentCollection = this.parent.resourceBase.resourceCollection.slice(0, -1);
274
279
  for (var w = 0; w < tContent.length; w++) {
275
- tContentCollection = tContentCollection.concat(tContent[w]);
280
+ tContentCollection = tContentCollection.concat(tContent[parseInt(w.toString(), 10)]);
276
281
  }
277
282
  level = (parentCollection.length > 0) ? 'parentColumnLevel_' + parentCollection.length : 'resourceColumn';
278
283
  var rowSpanCollection = tContentCollection.filter(function (data) { return data.type === level; });
279
284
  for (var x = 0; x < rowSpanCollection.length; x++) {
280
- rowSpan = rowSpan + rowSpanCollection[x].rowSpan;
285
+ rowSpan = rowSpan + rowSpanCollection[parseInt(x.toString(), 10)].rowSpan;
281
286
  }
282
287
  }
283
288
  for (var row = 0; row < tContent.length; row++) {
284
289
  ntr = tr.cloneNode();
285
- for (var col = tContent[row].length - 1; col >= 0; col--) {
286
- var data = tContent[row][col];
290
+ for (var col = tContent[parseInt(row.toString(), 10)].length - 1; col >= 0; col--) {
291
+ var data = tContent[parseInt(row.toString(), 10)][parseInt(col.toString(), 10)];
287
292
  var ntd = td.cloneNode();
288
293
  if (data.type === 'dateColumn') {
289
294
  if (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') {
290
- tempData = tContent[row][col];
295
+ tempData = tContent[parseInt(row.toString(), 10)][parseInt(col.toString(), 10)];
291
296
  continue;
292
297
  }
293
298
  ntd.setAttribute('data-date', data.date.getTime().toString());
@@ -45,8 +45,8 @@ var EventBase = /** @class */ (function () {
45
45
  event_1 = this_1.processTimezone(event_1);
46
46
  }
47
47
  for (var level = 0; level < resourceCollection.length; level++) {
48
- if (event_1[resourceCollection[level].field] === null || event_1[resourceCollection[level].field] === 0) {
49
- event_1[resourceCollection[level].field] = undefined;
48
+ if (event_1[resourceCollection[parseInt(level.toString(), 10)].field] === null || event_1[resourceCollection[parseInt(level.toString(), 10)].field] === 0) {
49
+ event_1[resourceCollection[parseInt(level.toString(), 10)].field] = undefined;
50
50
  }
51
51
  }
52
52
  if (!isNullOrUndefined(event_1[fields.recurrenceRule]) && event_1[fields.recurrenceRule] === '') {
@@ -218,7 +218,7 @@ var EventBase = /** @class */ (function () {
218
218
  var resourceData;
219
219
  if (this.parent.activeViewOptions.group.resources.length > 0) {
220
220
  var data = this.getGroupIndexFromEvent(eventObj);
221
- resourceData = this.parent.resourceBase.lastResourceLevel[data];
221
+ resourceData = this.parent.resourceBase.lastResourceLevel[parseInt(data.toString(), 10)];
222
222
  }
223
223
  var blockEvents = extend([], this.parent.blockProcessed, null, true);
224
224
  for (var _i = 0, blockEvents_1 = blockEvents; _i < blockEvents_1.length; _i++) {
@@ -270,15 +270,15 @@ var EventBase = /** @class */ (function () {
270
270
  var predicate = {};
271
271
  var resourceCollection = this.parent.resourceBase.resourceCollection;
272
272
  for (var level = 0; level < resourceCollection.length; level++) {
273
- predicate[resourceCollection[level].field] = resourceTdData.groupOrder[level];
273
+ predicate[resourceCollection[parseInt(level.toString(), 10)].field] = resourceTdData.groupOrder[parseInt(level.toString(), 10)];
274
274
  }
275
275
  var keys = Object.keys(predicate);
276
276
  var filteredCollection = appointments.filter(function (eventObj) { return keys.every(function (key) {
277
- if (eventObj[key] instanceof Array) {
278
- return eventObj[key].indexOf(predicate[key]) > -1;
277
+ if (eventObj["" + key] instanceof Array) {
278
+ return eventObj["" + key].indexOf(predicate["" + key]) > -1;
279
279
  }
280
280
  else {
281
- return eventObj[key] === predicate[key];
281
+ return eventObj["" + key] === predicate["" + key];
282
282
  }
283
283
  }); });
284
284
  return filteredCollection;
@@ -383,7 +383,7 @@ var EventBase = /** @class */ (function () {
383
383
  }
384
384
  var cStart = start;
385
385
  for (var level = 0; level < this.slots.length; level++) {
386
- var slot = this.slots[level];
386
+ var slot = this.slots[parseInt(level.toString(), 10)];
387
387
  if (this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'TimelineWorkWeek'
388
388
  || this.parent.activeViewOptions.group.byDate || this.parent.activeViewOptions.showWeekend) {
389
389
  var slotDates = [];
@@ -418,9 +418,9 @@ var EventBase = /** @class */ (function () {
418
418
  var hasBreak = endIndex !== -1;
419
419
  endIndex = hasBreak ? endIndex : slot.length - 1;
420
420
  var count = ((endIndex - startIndex) + 1);
421
- var isLeft = (slot[startIndex] !== orgStart);
422
- var isRight = (slot[endIndex] !== orgEnd);
423
- ranges.push(this.cloneEventObject(event, slot[startIndex], slot[endIndex], count, isLeft, isRight));
421
+ var isLeft = (slot[parseInt(startIndex.toString(), 10)] !== orgStart);
422
+ var isRight = (slot[parseInt(endIndex.toString(), 10)] !== orgEnd);
423
+ ranges.push(this.cloneEventObject(event, slot[parseInt(startIndex.toString(), 10)], slot[parseInt(endIndex.toString(), 10)], count, isLeft, isRight));
424
424
  if (hasBreak) {
425
425
  break;
426
426
  }
@@ -430,8 +430,8 @@ var EventBase = /** @class */ (function () {
430
430
  if (this.dateInRange(cStart, slot[0], slot[slot.length - 1])) {
431
431
  var availSlot = [];
432
432
  for (var i = 0; i < slot.length; i++) {
433
- if (this.dateInRange(slot[i], orgStart, orgEnd)) {
434
- availSlot.push(slot[i]);
433
+ if (this.dateInRange(slot[parseInt(i.toString(), 10)], orgStart, orgEnd)) {
434
+ availSlot.push(slot[parseInt(i.toString(), 10)]);
435
435
  }
436
436
  }
437
437
  if (availSlot.length > 0) {
@@ -607,9 +607,9 @@ var EventBase = /** @class */ (function () {
607
607
  var levelName;
608
608
  var idField;
609
609
  for (var i = this.parent.resourceBase.resourceCollection.length - 1; i >= 0; i--) {
610
- var resourceData = eventData[this.parent.resourceBase.resourceCollection[i].field];
610
+ var resourceData = eventData[this.parent.resourceBase.resourceCollection[parseInt(i.toString(), 10)].field];
611
611
  if (!isNullOrUndefined(resourceData)) {
612
- resource = this.parent.resourceBase.resourceCollection[i];
612
+ resource = this.parent.resourceBase.resourceCollection[parseInt(i.toString(), 10)];
613
613
  levelIndex = i;
614
614
  levelName = resource.name;
615
615
  idField = resource.field;
@@ -628,8 +628,8 @@ var EventBase = /** @class */ (function () {
628
628
  return null;
629
629
  })[0];
630
630
  }
631
- var id = ((eventData[idField] instanceof Array) ?
632
- eventData[idField][0] : eventData[idField]);
631
+ var id = ((eventData["" + idField] instanceof Array) ?
632
+ eventData["" + idField][0] : eventData["" + idField]);
633
633
  if (levelIndex > 0) {
634
634
  var parentField = this.parent.resourceCollection[levelIndex - 1].field;
635
635
  return this.parent.resourceBase.getIndexFromResourceId(id, levelName, resource, eventData, parentField);
@@ -1006,7 +1006,7 @@ var EventBase = /** @class */ (function () {
1006
1006
  var idField = isGuid ? 'Guid' : (isFollowing) ? this.parent.eventFields.followingID : this.parent.eventFields.recurrenceID;
1007
1007
  var fieldKey = isGuid ? 'Guid' : this.parent.eventFields.id;
1008
1008
  var dataSource = isGuid ? this.parent.eventsProcessed : this.parent.eventsData;
1009
- return dataSource.filter(function (data) { return data[idField] === eventObj[fieldKey]; });
1009
+ return dataSource.filter(function (data) { return data["" + idField] === eventObj["" + fieldKey]; });
1010
1010
  };
1011
1011
  EventBase.prototype.getOccurrencesByID = function (id) {
1012
1012
  var fields = this.parent.eventFields;
@@ -1050,14 +1050,14 @@ var EventBase = /** @class */ (function () {
1050
1050
  var exDateString_1 = parentObject[fields.recurrenceException].split(',');
1051
1051
  var _loop_3 = function (i, len) {
1052
1052
  var edited = this_2.parent.eventsData.filter(function (eventObj) {
1053
- return eventObj[fields.recurrenceID] === parentObject[fields.id] && eventObj[fields.recurrenceException] === exDateString_1[i];
1053
+ return eventObj[fields.recurrenceID] === parentObject[fields.id] && eventObj[fields.recurrenceException] === exDateString_1[parseInt(i.toString(), 10)];
1054
1054
  });
1055
1055
  if (edited.length === 0) {
1056
- var exDate = getDateFromRecurrenceDateString(exDateString_1[i]);
1056
+ var exDate = getDateFromRecurrenceDateString(exDateString_1[parseInt(i.toString(), 10)]);
1057
1057
  var childObject = extend({}, recurrenceData, null, true);
1058
1058
  childObject[fields.recurrenceID] = parentObject[fields.id];
1059
1059
  delete childObject[fields.followingID];
1060
- childObject[fields.recurrenceException] = exDateString_1[i];
1060
+ childObject[fields.recurrenceException] = exDateString_1[parseInt(i.toString(), 10)];
1061
1061
  var startDate = new Date(exDate.getTime());
1062
1062
  var time = parentObject[fields.endTime].getTime() - parentObject[fields.startTime].getTime();
1063
1063
  var endDate = new Date(startDate.getTime());
@@ -1209,14 +1209,14 @@ var EventBase = /** @class */ (function () {
1209
1209
  var filteredDates;
1210
1210
  if (dateRender[0] < this.parent.minDate && dateRender[dateRender.length - 1] > this.parent.maxDate) {
1211
1211
  for (var i = 0; i < dateRender.length; i++) {
1212
- if (util.resetTime(dateRender[i]).getTime() === util.resetTime(new Date(this.parent.minDate)).getTime()) {
1212
+ if (util.resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === util.resetTime(new Date(this.parent.minDate)).getTime()) {
1213
1213
  firstDate = i;
1214
1214
  }
1215
- if (util.resetTime(dateRender[i]).getTime() === util.resetTime(new Date(this.parent.maxDate)).getTime()) {
1215
+ if (util.resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === util.resetTime(new Date(this.parent.maxDate)).getTime()) {
1216
1216
  lastDate = i;
1217
1217
  }
1218
1218
  }
1219
- filteredDates = dateRender.filter(function (date) { return date >= dateRender[firstDate] && date <= dateRender[lastDate]; });
1219
+ filteredDates = dateRender.filter(function (date) { return date >= dateRender[parseInt(firstDate.toString(), 10)] && date <= dateRender[parseInt(lastDate.toString(), 10)]; });
1220
1220
  }
1221
1221
  return filteredDates;
1222
1222
  };
@@ -1267,7 +1267,7 @@ var EventBase = /** @class */ (function () {
1267
1267
  var tr = createElement('tr');
1268
1268
  var levels = this.parent.activeView.colLevels.slice(-1)[0];
1269
1269
  for (var i = 0, len = levels.length; i < len; i++) {
1270
- var col = levels[i];
1270
+ var col = levels[parseInt(i.toString(), 10)];
1271
1271
  var appointmentWrap = createElement('td', {
1272
1272
  className: (type === 'allDay') ? cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS : (type === 'timeIndicator') ?
1273
1273
  cls.TIMELINE_WRAPPER_CLASS : cls.DAY_WRAPPER_CLASS, attrs: { 'data-date': col.date.getTime().toString() }