@syncfusion/ej2-schedule 25.2.7 → 26.1.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 (174) hide show
  1. package/.eslintrc.json +3 -2
  2. package/dist/ej2-schedule.min.js +2 -2
  3. package/dist/ej2-schedule.umd.min.js +2 -2
  4. package/dist/ej2-schedule.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-schedule.es2015.js +436 -376
  6. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  7. package/dist/es6/ej2-schedule.es5.js +496 -450
  8. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  9. package/dist/global/ej2-schedule.min.js +2 -2
  10. package/dist/global/ej2-schedule.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +17 -16
  13. package/src/recurrence-editor/date-generator.js +1 -0
  14. package/src/recurrence-editor/recurrence-editor.d.ts +8 -8
  15. package/src/recurrence-editor/recurrence-editor.js +1 -2
  16. package/src/schedule/actions/crud.js +3 -1
  17. package/src/schedule/actions/drag.js +2 -1
  18. package/src/schedule/actions/keyboard.js +1 -1
  19. package/src/schedule/actions/resize.js +5 -0
  20. package/src/schedule/actions/virtual-scroll.js +2 -1
  21. package/src/schedule/base/interface.js +0 -1
  22. package/src/schedule/base/schedule-model.d.ts +11 -11
  23. package/src/schedule/base/schedule.d.ts +11 -11
  24. package/src/schedule/base/schedule.js +28 -12
  25. package/src/schedule/base/util.js +1 -1
  26. package/src/schedule/event-renderer/agenda-base.js +2 -2
  27. package/src/schedule/event-renderer/event-base.js +6 -4
  28. package/src/schedule/event-renderer/month.js +2 -1
  29. package/src/schedule/event-renderer/timeline-view.js +10 -3
  30. package/src/schedule/event-renderer/vertical-view.js +4 -4
  31. package/src/schedule/event-renderer/year.js +3 -2
  32. package/src/schedule/exports/calendar-import.js +1 -2
  33. package/src/schedule/exports/print.js +10 -7
  34. package/src/schedule/models/toolbar-model.d.ts +2 -2
  35. package/src/schedule/popups/event-window.js +1 -1
  36. package/src/schedule/popups/quick-popups.js +1 -1
  37. package/src/schedule/renderer/header-renderer.js +7 -5
  38. package/src/schedule/renderer/month.js +5 -4
  39. package/src/schedule/renderer/renderer.js +8 -2
  40. package/src/schedule/renderer/timeline-year.js +3 -3
  41. package/src/schedule/renderer/vertical-view.d.ts +1 -0
  42. package/src/schedule/renderer/vertical-view.js +24 -9
  43. package/src/schedule/renderer/view-base.d.ts +1 -0
  44. package/src/schedule/renderer/view-base.js +33 -6
  45. package/src/schedule/renderer/year.js +1 -1
  46. package/styles/bootstrap-dark.css +236 -147
  47. package/styles/bootstrap-dark.scss +19 -2
  48. package/styles/bootstrap.css +237 -148
  49. package/styles/bootstrap.scss +19 -2
  50. package/styles/bootstrap4.css +239 -153
  51. package/styles/bootstrap4.scss +19 -2
  52. package/styles/bootstrap5-dark.css +229 -144
  53. package/styles/bootstrap5-dark.scss +19 -2
  54. package/styles/bootstrap5.css +229 -144
  55. package/styles/bootstrap5.scss +19 -2
  56. package/styles/fabric-dark.css +234 -146
  57. package/styles/fabric-dark.scss +19 -2
  58. package/styles/fabric.css +234 -146
  59. package/styles/fabric.scss +19 -2
  60. package/styles/fluent-dark.css +229 -142
  61. package/styles/fluent-dark.scss +19 -2
  62. package/styles/fluent.css +229 -142
  63. package/styles/fluent.scss +19 -2
  64. package/styles/fluent2.css +5947 -0
  65. package/styles/fluent2.scss +19 -0
  66. package/styles/highcontrast-light.css +229 -138
  67. package/styles/highcontrast-light.scss +19 -2
  68. package/styles/highcontrast.css +229 -138
  69. package/styles/highcontrast.scss +19 -2
  70. package/styles/material-dark.css +273 -155
  71. package/styles/material-dark.scss +19 -2
  72. package/styles/material.css +285 -156
  73. package/styles/material.scss +19 -2
  74. package/styles/material3-dark.css +278 -154
  75. package/styles/material3-dark.scss +19 -2
  76. package/styles/material3.css +278 -154
  77. package/styles/material3.scss +19 -2
  78. package/styles/recurrence-editor/_bds-definition.scss +0 -1
  79. package/styles/recurrence-editor/_bootstrap-dark-definition.scss +0 -1
  80. package/styles/recurrence-editor/_bootstrap-definition.scss +0 -1
  81. package/styles/recurrence-editor/_bootstrap4-definition.scss +0 -1
  82. package/styles/recurrence-editor/_bootstrap5-definition.scss +0 -1
  83. package/styles/recurrence-editor/_bootstrap5.3-definition.scss +14 -0
  84. package/styles/recurrence-editor/_fabric-dark-definition.scss +0 -1
  85. package/styles/recurrence-editor/_fabric-definition.scss +0 -1
  86. package/styles/recurrence-editor/_fluent-definition.scss +0 -1
  87. package/styles/recurrence-editor/_fluent2-definition.scss +14 -0
  88. package/styles/recurrence-editor/_fusionnew-definition.scss +0 -1
  89. package/styles/recurrence-editor/_highcontrast-definition.scss +0 -1
  90. package/styles/recurrence-editor/_highcontrast-light-definition.scss +0 -1
  91. package/styles/recurrence-editor/_layout.scss +1 -17
  92. package/styles/recurrence-editor/_material-dark-definition.scss +0 -1
  93. package/styles/recurrence-editor/_material-definition.scss +0 -1
  94. package/styles/recurrence-editor/_material3-definition.scss +0 -1
  95. package/styles/recurrence-editor/_tailwind-definition.scss +0 -1
  96. package/styles/recurrence-editor/bootstrap-dark.css +21 -23
  97. package/styles/recurrence-editor/bootstrap.css +21 -23
  98. package/styles/recurrence-editor/bootstrap4.css +22 -23
  99. package/styles/recurrence-editor/bootstrap5-dark.css +22 -23
  100. package/styles/recurrence-editor/bootstrap5.css +22 -23
  101. package/styles/recurrence-editor/fabric-dark.css +19 -22
  102. package/styles/recurrence-editor/fabric.css +19 -22
  103. package/styles/recurrence-editor/fluent-dark.css +22 -23
  104. package/styles/recurrence-editor/fluent.css +22 -23
  105. package/styles/recurrence-editor/fluent2.css +1534 -0
  106. package/styles/recurrence-editor/fluent2.scss +8 -0
  107. package/styles/recurrence-editor/highcontrast-light.css +19 -22
  108. package/styles/recurrence-editor/highcontrast.css +19 -22
  109. package/styles/recurrence-editor/material-dark.css +32 -26
  110. package/styles/recurrence-editor/material.css +32 -26
  111. package/styles/recurrence-editor/material3-dark.css +33 -27
  112. package/styles/recurrence-editor/material3.css +33 -27
  113. package/styles/recurrence-editor/tailwind-dark.css +32 -26
  114. package/styles/recurrence-editor/tailwind.css +32 -26
  115. package/styles/schedule/_bds-definition.scss +0 -15
  116. package/styles/schedule/_bootstrap-dark-definition.scss +4 -19
  117. package/styles/schedule/_bootstrap-definition.scss +4 -19
  118. package/styles/schedule/_bootstrap4-definition.scss +3 -18
  119. package/styles/schedule/_bootstrap5-definition.scss +1 -22
  120. package/styles/schedule/_bootstrap5.3-definition.scss +273 -0
  121. package/styles/schedule/_fabric-dark-definition.scss +4 -17
  122. package/styles/schedule/_fabric-definition.scss +4 -19
  123. package/styles/schedule/_fluent-definition.scss +0 -14
  124. package/styles/schedule/_fluent2-definition.scss +273 -0
  125. package/styles/schedule/_fusionnew-definition.scss +0 -21
  126. package/styles/schedule/_highcontrast-definition.scss +1 -16
  127. package/styles/schedule/_highcontrast-light-definition.scss +1 -16
  128. package/styles/schedule/_layout.scss +83 -130
  129. package/styles/schedule/_material-dark-definition.scss +5 -20
  130. package/styles/schedule/_material-definition.scss +4 -19
  131. package/styles/schedule/_material3-definition.scss +1 -23
  132. package/styles/schedule/_tailwind-definition.scss +0 -16
  133. package/styles/schedule/_theme.scss +18 -2
  134. package/styles/schedule/bootstrap-dark.css +220 -126
  135. package/styles/schedule/bootstrap.css +221 -127
  136. package/styles/schedule/bootstrap4.css +223 -132
  137. package/styles/schedule/bootstrap5-dark.css +213 -123
  138. package/styles/schedule/bootstrap5.css +213 -123
  139. package/styles/schedule/fabric-dark.css +218 -125
  140. package/styles/schedule/fabric.css +218 -125
  141. package/styles/schedule/fluent-dark.css +213 -121
  142. package/styles/schedule/fluent.css +213 -121
  143. package/styles/schedule/fluent2.css +5551 -0
  144. package/styles/schedule/fluent2.scss +16 -0
  145. package/styles/schedule/highcontrast-light.css +213 -117
  146. package/styles/schedule/highcontrast.css +213 -117
  147. package/styles/schedule/icons/_bds.scss +6 -21
  148. package/styles/schedule/icons/_bootstrap-dark.scss +4 -16
  149. package/styles/schedule/icons/_bootstrap.scss +4 -16
  150. package/styles/schedule/icons/_bootstrap4.scss +8 -26
  151. package/styles/schedule/icons/_bootstrap5.3.scss +220 -0
  152. package/styles/schedule/icons/_bootstrap5.scss +7 -22
  153. package/styles/schedule/icons/_fabric-dark.scss +5 -17
  154. package/styles/schedule/icons/_fabric.scss +5 -17
  155. package/styles/schedule/icons/_fluent.scss +7 -22
  156. package/styles/schedule/icons/_fluent2.scss +220 -0
  157. package/styles/schedule/icons/_fusionnew.scss +7 -22
  158. package/styles/schedule/icons/_highcontrast-light.scss +5 -17
  159. package/styles/schedule/icons/_highcontrast.scss +5 -17
  160. package/styles/schedule/icons/_material-dark.scss +5 -17
  161. package/styles/schedule/icons/_material.scss +5 -17
  162. package/styles/schedule/icons/_material3.scss +7 -22
  163. package/styles/schedule/icons/_tailwind.scss +7 -22
  164. package/styles/schedule/material-dark.css +257 -134
  165. package/styles/schedule/material.css +269 -135
  166. package/styles/schedule/material3-dark.css +262 -133
  167. package/styles/schedule/material3.css +262 -133
  168. package/styles/schedule/tailwind-dark.css +223 -124
  169. package/styles/schedule/tailwind.css +223 -124
  170. package/styles/tailwind-dark.css +239 -145
  171. package/styles/tailwind-dark.scss +19 -2
  172. package/styles/tailwind.css +239 -145
  173. package/styles/tailwind.scss +19 -2
  174. package/CHANGELOG.md +0 -1932
@@ -1,9 +1,9 @@
1
- import { Animation, Browser, ChildProperty, Collection, Complex, Component, Draggable, Event, EventHandler, HijriParser, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, SanitizeHtmlHelper, Touch, addClass, append, classList, cldrData, closest, compile, createElement, detach, extend, formatUnit, getDefaultDateObject, getElement, getValue, initializeCSPTemplate, isNullOrUndefined, prepend, print, remove, removeClass, setStyleAttribute } from '@syncfusion/ej2-base';
2
- import { Dialog, Popup, Tooltip, createSpinner, hideSpinner, isCollide, showSpinner } from '@syncfusion/ej2-popups';
1
+ import { createElement, remove, isNullOrUndefined, closest, addClass, removeClass, append, extend, formatUnit, Touch, EventHandler, Browser, KeyboardEvents, HijriParser, getValue, getDefaultDateObject, cldrData, prepend, setStyleAttribute, Animation, initializeCSPTemplate, Component, L10n, classList, detach, Property, Event, NotifyPropertyChanges, SanitizeHtmlHelper, ChildProperty, Complex, Internationalization, compile, getElement, Collection, Draggable, print as print$1 } from '@syncfusion/ej2-base';
2
+ import { Popup, Dialog, isCollide, Tooltip, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';
3
3
  import { Toolbar, TreeView } from '@syncfusion/ej2-navigations';
4
4
  import { Calendar, DatePicker, DateTimePicker } from '@syncfusion/ej2-calendars';
5
- import { DataManager, Deferred, Predicate, Query } from '@syncfusion/ej2-data';
6
- import { Button, CheckBox, RadioButton } from '@syncfusion/ej2-buttons';
5
+ import { DataManager, Query, Predicate, Deferred } from '@syncfusion/ej2-data';
6
+ import { Button, RadioButton, CheckBox } from '@syncfusion/ej2-buttons';
7
7
  import { FormValidator, Input, NumericTextBox } from '@syncfusion/ej2-inputs';
8
8
  import { DropDownList, MultiSelect } from '@syncfusion/ej2-dropdowns';
9
9
  import { ListBase } from '@syncfusion/ej2-lists';
@@ -74,7 +74,7 @@ const initialLoad = 'initial-load';
74
74
  /** @private */
75
75
  const initialEnd = 'initial-end';
76
76
  /** @private */
77
- const print$1 = 'print';
77
+ const print = 'print';
78
78
  /** @private */
79
79
  const dataReady = 'data-ready';
80
80
  /** @private */
@@ -168,7 +168,7 @@ function getTranslateX(element) {
168
168
  function getWeekFirstDate(date, firstDayOfWeek) {
169
169
  const date1 = new Date(date.getTime());
170
170
  firstDayOfWeek = (firstDayOfWeek - date1.getDay() + 7 * (-1)) % 7;
171
- return new Date(date1.setDate(date1.getDate() + firstDayOfWeek));
171
+ return new Date(date1.setDate(date1.getDate() + (isNaN(firstDayOfWeek) ? 0 : firstDayOfWeek)));
172
172
  }
173
173
  /**
174
174
  * Method to get week last date
@@ -666,8 +666,6 @@ const PREVIOUS_TIMELINE_CLASS = 'e-previous-timeline';
666
666
  const HIDE_CHILDS_CLASS = 'e-hide-childs';
667
667
  /** @private */
668
668
  const SCROLL_CONTAINER_CLASS = 'e-scroll-container';
669
- /** @private */
670
-
671
669
  /** @private */
672
670
  const TIMELINE_WRAPPER_CLASS = 'e-timeline-wrapper';
673
671
  /** @private */
@@ -1074,7 +1072,8 @@ class HeaderRenderer {
1074
1072
  this.renderToolbar();
1075
1073
  }
1076
1074
  renderToolbar() {
1077
- const items = (this.parent.toolbarItems && this.parent.toolbarItems.length > 0) ? this.getToolbarItems() : this.getItems();
1075
+ const items = (this.parent.toolbarItems && this.parent.toolbarItems.length > 0) ?
1076
+ this.getToolbarItems() : this.getItems();
1078
1077
  this.parent.trigger(actionBegin, { requestType: 'toolbarItemRendering', items: items }, (args) => {
1079
1078
  this.toolbarObj = new Toolbar({
1080
1079
  items: args.items,
@@ -1166,6 +1165,7 @@ class HeaderRenderer {
1166
1165
  if (!selEle) {
1167
1166
  return;
1168
1167
  }
1168
+ selEle.firstElementChild.setAttribute('aria-haspopup', 'true');
1169
1169
  const textEle = selEle.querySelector('.e-tbar-btn-text');
1170
1170
  if (this.parent.activeViewOptions.dateRangeTemplate) {
1171
1171
  textEle.textContent = '';
@@ -1175,7 +1175,7 @@ class HeaderRenderer {
1175
1175
  };
1176
1176
  const viewName = this.parent.activeViewOptions.dateRangeTemplateName;
1177
1177
  const templateId = this.parent.element.id + '_' + viewName + 'dateRangeTemplate';
1178
- const dateTemplate = [].slice.call(this.parent.getDateRangeTemplate()(args, this.parent, 'dateRangeTemplate', templateId, false));
1178
+ const dateTemplate = [].slice.call(this.parent.getDateRangeTemplate()(args, this.parent, 'dateRangeTemplate', templateId, false, undefined, undefined, this.parent.root));
1179
1179
  append(dateTemplate, textEle);
1180
1180
  }
1181
1181
  else {
@@ -1312,7 +1312,7 @@ class HeaderRenderer {
1312
1312
  items.push(Object.assign({}, tbItem, propItem));
1313
1313
  break;
1314
1314
  case 'Views':
1315
- if (this.parent.views.length > 1) {
1315
+ if (!isNullOrUndefined(this.parent.views) && this.parent.views.length > 1) {
1316
1316
  for (const view of this.parent.views) {
1317
1317
  tbItem = this.getItemObject(view);
1318
1318
  tbItem.align = propItem.align ? propItem.align : item.align;
@@ -1361,11 +1361,11 @@ class HeaderRenderer {
1361
1361
  align: 'Right', showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-today',
1362
1362
  text: this.l10n.getConstant('today'), cssClass: 'e-today', overflow: 'Show'
1363
1363
  });
1364
- if (this.parent.views.length > 1) {
1364
+ if (!isNullOrUndefined(this.parent.views) && this.parent.views.length > 1) {
1365
1365
  items.push({ align: 'Right', type: 'Separator', cssClass: 'e-schedule-seperator' });
1366
1366
  }
1367
1367
  }
1368
- if (this.parent.views.length > 1) {
1368
+ if (!isNullOrUndefined(this.parent.views) && this.parent.views.length > 1) {
1369
1369
  for (const item of this.parent.views) {
1370
1370
  items.push(this.getItemObject(item));
1371
1371
  }
@@ -2581,7 +2581,7 @@ class KeyboardInteraction {
2581
2581
  }
2582
2582
  processViewNavigation(e) {
2583
2583
  const index = parseInt(e.key, 10) - 1;
2584
- if (index < this.parent.views.length) {
2584
+ if (!isNullOrUndefined(this.parent.views) && index < this.parent.views.length) {
2585
2585
  const view = this.parent.viewCollections[parseInt(index.toString(), 10)].option;
2586
2586
  this.parent.changeView(view, e, undefined, index);
2587
2587
  if (this.parent.headerModule) {
@@ -3961,6 +3961,7 @@ function generate(startDate, rule, excludeDate, startDayOfWeek, maximumCount = M
3961
3961
  return data;
3962
3962
  }
3963
3963
  maxOccurrence = maximumCount;
3964
+ startDayOfWeek = startDayOfWeek || 0;
3964
3965
  setFirstDayOfWeek(DAYINDEX[parseInt(startDayOfWeek.toString(), 10)]);
3965
3966
  if (ruleObject.until) {
3966
3967
  const end = resetTime(ruleObject.until);
@@ -5451,7 +5452,6 @@ function roundDateValues(date) {
5451
5452
  }
5452
5453
 
5453
5454
  /* eslint-disable @typescript-eslint/no-explicit-any */
5454
- /* eslint-disable max-len */
5455
5455
  /**
5456
5456
  * EventBase for appointment rendering
5457
5457
  */
@@ -6507,7 +6507,7 @@ class EventBase {
6507
6507
  const templateId = scheduleId + viewName + 'eventTemplate';
6508
6508
  const templateName = isResourceEventTemplate && this.parent.currentView.indexOf('Year') === -1 ?
6509
6509
  this.parent.getEventTemplateName(resIndex) : 'eventTemplate';
6510
- templateElement = this.parent.getAppointmentTemplate()(record, this.parent, templateName, templateId, false);
6510
+ templateElement = this.parent.getAppointmentTemplate()(record, this.parent, templateName, templateId, false, undefined, undefined, this.parent.root);
6511
6511
  }
6512
6512
  else {
6513
6513
  const appointmentSubject = createElement('div', { className: SUBJECT_CLASS });
@@ -6603,12 +6603,14 @@ class EventBase {
6603
6603
  let firstDate = 0;
6604
6604
  let lastDate = dateRender.length;
6605
6605
  let filteredDates;
6606
- if (dateRender[0] < this.parent.minDate && dateRender[dateRender.length - 1] > this.parent.maxDate) {
6606
+ const maxDate = isNullOrUndefined(this.parent.maxDate) ? new Date(2099, 11, 31) : this.parent.maxDate;
6607
+ const minDate = isNullOrUndefined(this.parent.minDate) ? new Date(1900, 0, 1) : this.parent.minDate;
6608
+ if (dateRender[0] < minDate && dateRender[dateRender.length - 1] > maxDate) {
6607
6609
  for (let i = 0; i < dateRender.length; i++) {
6608
- if (resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === resetTime(new Date(this.parent.minDate)).getTime()) {
6610
+ if (resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === resetTime(new Date(minDate)).getTime()) {
6609
6611
  firstDate = i;
6610
6612
  }
6611
- if (resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === resetTime(new Date(this.parent.maxDate)).getTime()) {
6613
+ if (resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === resetTime(new Date(maxDate)).getTime()) {
6612
6614
  lastDate = i;
6613
6615
  }
6614
6616
  }
@@ -7072,7 +7074,7 @@ class VerticalEvent extends EventBase {
7072
7074
  const templateId = elementId + viewName + 'eventTemplate';
7073
7075
  const resIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex : resource;
7074
7076
  const templateName = this.isResourceEventTemplate ? this.parent.getEventTemplateName(resIndex) : 'eventTemplate';
7075
- templateElement = this.parent.getAppointmentTemplate()(record, this.parent, templateName, templateId, false);
7077
+ templateElement = this.parent.getAppointmentTemplate()(record, this.parent, templateName, templateId, false, undefined, undefined, this.parent.root);
7076
7078
  }
7077
7079
  else {
7078
7080
  const appointmentSubject = createElement('div', { className: SUBJECT_CLASS });
@@ -7282,7 +7284,7 @@ class VerticalEvent extends EventBase {
7282
7284
  }
7283
7285
  if (eStart <= eEnd && isValidEvent && this.isWorkDayAvailable(resource, eStart)) {
7284
7286
  const appHeight = this.getHeight(eStart, eEnd);
7285
- if (eStart.getTime() > schedule.startHour.getTime()) {
7287
+ if (eStart.getTime() >= schedule.startHour.getTime()) {
7286
7288
  topValue = this.getTopValue(eStart, dayIndex, resource);
7287
7289
  }
7288
7290
  const appIndex = this.getOverlapIndex(record, dayIndex, false, resource);
@@ -7537,12 +7539,12 @@ class VerticalEvent extends EventBase {
7537
7539
  let rowHeight;
7538
7540
  if (this.parent.uiStateValues.expand) {
7539
7541
  target.setAttribute('title', this.parent.localeObj.getConstant('collapseAllDaySection'));
7540
- target.setAttribute('aria-label', 'Collapse section');
7542
+ target.setAttribute('aria-label', this.parent.localeObj.getConstant('collapseAllDaySection'));
7541
7543
  rowHeight = ((this.allDayLevel + 1) * this.getEventHeight()) + 4;
7542
7544
  }
7543
7545
  else {
7544
7546
  target.setAttribute('title', this.parent.localeObj.getConstant('expandAllDaySection'));
7545
- target.setAttribute('aria-label', 'Expand section');
7547
+ target.setAttribute('aria-label', this.parent.localeObj.getConstant('expandAllDaySection'));
7546
7548
  rowHeight = (3 * this.getEventHeight()) + 4;
7547
7549
  this.parent.element.querySelector('.' + DATE_HEADER_WRAP_CLASS).scrollTop = 0;
7548
7550
  }
@@ -7951,7 +7953,7 @@ class MonthEvent extends EventBase {
7951
7953
  const viewName = this.parent.activeViewOptions.eventTemplateName;
7952
7954
  const templateId = scheduleId + viewName + 'eventTemplate';
7953
7955
  const eventTemplate = this.isResourceEventTemplate ? this.parent.getEventTemplateName(resIndex) : 'eventTemplate';
7954
- templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, eventTemplate, templateId, false);
7956
+ templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, eventTemplate, templateId, false, undefined, undefined, this.parent.root);
7955
7957
  }
7956
7958
  else {
7957
7959
  const eventLocation = (record[this.fields.location] || this.parent.eventSettings.fields.location.default || '');
@@ -8080,6 +8082,7 @@ class MonthEvent extends EventBase {
8080
8082
  if (indicator) {
8081
8083
  const count = parseInt(indicator.getAttribute('data-count'), 10) + 1;
8082
8084
  indicator.setAttribute('data-count', count.toString());
8085
+ indicator.setAttribute('aria-label', count + ' ' + this.parent.localeObj.getConstant('moreEvents'));
8083
8086
  indicator.innerHTML = this.getMoreIndicatorText(count);
8084
8087
  }
8085
8088
  else {
@@ -8251,7 +8254,6 @@ class MonthEvent extends EventBase {
8251
8254
  }
8252
8255
 
8253
8256
  /* eslint-disable max-len */
8254
- /* eslint-disable @typescript-eslint/no-explicit-any */
8255
8257
  const EVENT_GAP$1 = 2;
8256
8258
  const BLOCK_INDICATOR_WIDTH = 22;
8257
8259
  const BLOCK_INDICATOR_HEIGHT = 18;
@@ -8301,8 +8303,10 @@ class TimelineEvent extends MonthEvent {
8301
8303
  else {
8302
8304
  for (const app of appointments) {
8303
8305
  const eventData = app.data;
8304
- if (eventData.trimStartTime.getTime() <= date.getTime() &&
8305
- eventData.trimEndTime.getTime() > date.getTime()) {
8306
+ if ((eventData.trimStartTime.getTime() <= date.getTime() &&
8307
+ eventData.trimEndTime.getTime() > date.getTime()) ||
8308
+ (eventData.trimStartTime.getTime() === date.getTime() &&
8309
+ eventData.trimEndTime.getTime() === date.getTime())) {
8306
8310
  appointmentsList.push(app);
8307
8311
  }
8308
8312
  }
@@ -8683,8 +8687,13 @@ class TimelineEvent extends MonthEvent {
8683
8687
  }
8684
8688
  }
8685
8689
  getSameDayEventsWidth(startDate, endDate) {
8690
+ let intervalMins = this.interval;
8691
+ if (this.slotsPerDay === 1) {
8692
+ const hoursRange = getStartEndHours(resetTime(new Date(startDate.getTime())), this.startHour, this.endHour);
8693
+ intervalMins = (hoursRange.endHour.getTime() - hoursRange.startHour.getTime()) / MS_PER_MINUTE;
8694
+ }
8686
8695
  return ((getUniversalTime(endDate) - getUniversalTime(startDate)) /
8687
- MS_PER_MINUTE * (this.cellWidth * this.slotCount) / this.interval);
8696
+ MS_PER_MINUTE * (this.cellWidth * this.slotCount) / intervalMins);
8688
8697
  }
8689
8698
  getSpannedEventsWidth(startDate, endDate, diffInDays) {
8690
8699
  const width = (diffInDays * this.slotsPerDay) * this.cellWidth;
@@ -9297,14 +9306,14 @@ class QuickPopups {
9297
9306
  removeClass([element], ICON);
9298
9307
  }
9299
9308
  quickDialogClass(action) {
9300
- const classList$$1 = [
9309
+ const classList = [
9301
9310
  QUICK_DIALOG_OCCURRENCE_CLASS, QUICK_DIALOG_SERIES_CLASS, QUICK_DIALOG_DELETE_CLASS,
9302
9311
  QUICK_DIALOG_CANCEL_CLASS, QUICK_DIALOG_ALERT_BTN_CLASS, DISABLE_CLASS
9303
9312
  ];
9304
9313
  const okButton = this.quickDialog.element.querySelector('.' + QUICK_DIALOG_ALERT_OK);
9305
9314
  const cancelButton = this.quickDialog.element.querySelector('.' + QUICK_DIALOG_ALERT_CANCEL);
9306
9315
  const followingEventButton = this.quickDialog.element.querySelector('.' + QUICK_DIALOG_ALERT_FOLLOWING);
9307
- removeClass([okButton, cancelButton], classList$$1);
9316
+ removeClass([okButton, cancelButton], classList);
9308
9317
  addClass([this.quickDialog.element.querySelector('.' + QUICK_DIALOG_CANCEL_CLASS)], DISABLE_CLASS);
9309
9318
  if (this.parent.eventSettings.editFollowingEvents) {
9310
9319
  addClass([followingEventButton], DISABLE_CLASS);
@@ -9475,7 +9484,7 @@ class QuickPopups {
9475
9484
  let templateElement;
9476
9485
  if (!isNullOrUndefined(this.parent.activeViewOptions.eventTemplate)) {
9477
9486
  const tempId = this.parent.element.id + '_' + this.parent.activeViewOptions.eventTemplateName + 'eventTemplate';
9478
- templateElement = this.parent.getAppointmentTemplate()(eventData, this.parent, 'eventTemplate', tempId, false);
9487
+ templateElement = this.parent.getAppointmentTemplate()(eventData, this.parent, 'eventTemplate', tempId, false, undefined, undefined, this.parent.root);
9479
9488
  append(templateElement, appointmentElement);
9480
9489
  }
9481
9490
  else {
@@ -10703,7 +10712,7 @@ class EventTooltip {
10703
10712
  }
10704
10713
  }
10705
10714
 
10706
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
10715
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
10707
10716
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10708
10717
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10709
10718
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -11599,7 +11608,7 @@ let RecurrenceEditor = class RecurrenceEditor extends Component {
11599
11608
  }
11600
11609
  }
11601
11610
  getCalendarMode() {
11602
- return this.calendarMode.toLowerCase();
11611
+ return !isNullOrUndefined(this.calendarMode) ? this.calendarMode.toLowerCase() : 'gregorian';
11603
11612
  }
11604
11613
  getRuleSummary(rule = this.getRecurrenceRule()) {
11605
11614
  return generateSummary(rule, this.localeObj, this.locale, this.calendarMode);
@@ -11779,43 +11788,43 @@ let RecurrenceEditor = class RecurrenceEditor extends Component {
11779
11788
  }
11780
11789
  }
11781
11790
  };
11782
- __decorate$1([
11791
+ __decorate([
11783
11792
  Property(['none', 'daily', 'weekly', 'monthly', 'yearly'])
11784
11793
  ], RecurrenceEditor.prototype, "frequencies", void 0);
11785
- __decorate$1([
11794
+ __decorate([
11786
11795
  Property(['never', 'until', 'count'])
11787
11796
  ], RecurrenceEditor.prototype, "endTypes", void 0);
11788
- __decorate$1([
11797
+ __decorate([
11789
11798
  Property(0)
11790
11799
  ], RecurrenceEditor.prototype, "firstDayOfWeek", void 0);
11791
- __decorate$1([
11800
+ __decorate([
11792
11801
  Property(new Date())
11793
11802
  ], RecurrenceEditor.prototype, "startDate", void 0);
11794
- __decorate$1([
11803
+ __decorate([
11795
11804
  Property()
11796
11805
  ], RecurrenceEditor.prototype, "dateFormat", void 0);
11797
- __decorate$1([
11806
+ __decorate([
11798
11807
  Property('Gregorian')
11799
11808
  ], RecurrenceEditor.prototype, "calendarMode", void 0);
11800
- __decorate$1([
11809
+ __decorate([
11801
11810
  Property()
11802
11811
  ], RecurrenceEditor.prototype, "cssClass", void 0);
11803
- __decorate$1([
11812
+ __decorate([
11804
11813
  Property()
11805
11814
  ], RecurrenceEditor.prototype, "value", void 0);
11806
- __decorate$1([
11815
+ __decorate([
11807
11816
  Property(new Date(1900, 0, 1))
11808
11817
  ], RecurrenceEditor.prototype, "minDate", void 0);
11809
- __decorate$1([
11818
+ __decorate([
11810
11819
  Property(new Date(2099, 11, 31))
11811
11820
  ], RecurrenceEditor.prototype, "maxDate", void 0);
11812
- __decorate$1([
11821
+ __decorate([
11813
11822
  Property(0)
11814
11823
  ], RecurrenceEditor.prototype, "selectedType", void 0);
11815
- __decorate$1([
11824
+ __decorate([
11816
11825
  Event()
11817
11826
  ], RecurrenceEditor.prototype, "change", void 0);
11818
- RecurrenceEditor = __decorate$1([
11827
+ RecurrenceEditor = __decorate([
11819
11828
  NotifyPropertyChanges
11820
11829
  ], RecurrenceEditor);
11821
11830
 
@@ -12897,7 +12906,7 @@ class EventWindow {
12897
12906
  }
12898
12907
  getFormat(formatType) {
12899
12908
  let format;
12900
- if (this.parent.locale === 'en' || this.parent.locale === 'en-US') {
12909
+ if (isNullOrUndefined(this.parent.locale) || this.parent.locale === 'en' || this.parent.locale === 'en-US') {
12901
12910
  format = getValue(formatType + '.short', getDefaultDateObject(this.parent.getCalendarMode()));
12902
12911
  }
12903
12912
  else {
@@ -13814,7 +13823,7 @@ class VirtualScroll {
13814
13823
  conTable.offsetHeight / this.renderedLength) + 'px';
13815
13824
  const conWrap = this.parent.element.querySelector('.' + CONTENT_WRAP_CLASS);
13816
13825
  if ((conWrap.scrollHeight - conWrap.scrollTop) < conWrap.offsetHeight * this.bufferCount) {
13817
- virtual.style.height = parseInt(virtual.style.height) + (conWrap.offsetHeight * this.bufferCount) + 'px';
13826
+ virtual.style.height = parseInt(virtual.style.height, 10) + (conWrap.offsetHeight * this.bufferCount) + 'px';
13818
13827
  }
13819
13828
  }
13820
13829
  else {
@@ -13864,6 +13873,7 @@ class VirtualScroll {
13864
13873
  const endIndex = (firstTDIndex + this.renderedLength);
13865
13874
  firstTDIndex = (endIndex > this.parent.resourceBase.expandedResources.length) ?
13866
13875
  (this.parent.resourceBase.expandedResources.length - this.renderedLength) : firstTDIndex;
13876
+ firstTDIndex = firstTDIndex < 0 ? 0 : firstTDIndex;
13867
13877
  this.parent.resourceBase.renderedResources = this.parent.resourceBase.expandedResources.slice(firstTDIndex, endIndex);
13868
13878
  if (this.parent.resourceBase.renderedResources.length > 0) {
13869
13879
  this.updateContent(resWrap, conWrap, eventWrap, this.parent.resourceBase.renderedResources);
@@ -14359,13 +14369,19 @@ class Render {
14359
14369
  }
14360
14370
  }
14361
14371
  updateLabelText(view) {
14362
- const content = this.parent.activeView.getLabelText(view);
14363
14372
  this.parent.element.setAttribute('role', 'application');
14364
- this.parent.element.setAttribute('aria-label', content);
14373
+ this.parent.element.removeAttribute('aria-labelledby');
14374
+ this.parent.element.removeAttribute('aria-label');
14375
+ if (view === 'Year') {
14376
+ this.parent.element.setAttribute('aria-label', this.parent.activeView.getLabelText(view));
14377
+ }
14378
+ else {
14379
+ this.parent.element.setAttribute('aria-labelledby', this.parent.element.id + '_table');
14380
+ }
14365
14381
  }
14366
14382
  }
14367
14383
 
14368
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14384
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14369
14385
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14370
14386
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14371
14387
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -14376,17 +14392,17 @@ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators,
14376
14392
  */
14377
14393
  class WorkHours extends ChildProperty {
14378
14394
  }
14379
- __decorate$2([
14395
+ __decorate$1([
14380
14396
  Property(true)
14381
14397
  ], WorkHours.prototype, "highlight", void 0);
14382
- __decorate$2([
14398
+ __decorate$1([
14383
14399
  Property('09:00')
14384
14400
  ], WorkHours.prototype, "start", void 0);
14385
- __decorate$2([
14401
+ __decorate$1([
14386
14402
  Property('18:00')
14387
14403
  ], WorkHours.prototype, "end", void 0);
14388
14404
 
14389
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14405
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14390
14406
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14391
14407
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14392
14408
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -14397,23 +14413,23 @@ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators,
14397
14413
  */
14398
14414
  class TimeScale extends ChildProperty {
14399
14415
  }
14400
- __decorate$3([
14416
+ __decorate$2([
14401
14417
  Property(true)
14402
14418
  ], TimeScale.prototype, "enable", void 0);
14403
- __decorate$3([
14419
+ __decorate$2([
14404
14420
  Property(60)
14405
14421
  ], TimeScale.prototype, "interval", void 0);
14406
- __decorate$3([
14422
+ __decorate$2([
14407
14423
  Property(2)
14408
14424
  ], TimeScale.prototype, "slotCount", void 0);
14409
- __decorate$3([
14425
+ __decorate$2([
14410
14426
  Property()
14411
14427
  ], TimeScale.prototype, "minorSlotTemplate", void 0);
14412
- __decorate$3([
14428
+ __decorate$2([
14413
14429
  Property()
14414
14430
  ], TimeScale.prototype, "majorSlotTemplate", void 0);
14415
14431
 
14416
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14432
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14417
14433
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14418
14434
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14419
14435
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -14424,20 +14440,20 @@ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators,
14424
14440
  */
14425
14441
  class QuickInfoTemplates extends ChildProperty {
14426
14442
  }
14427
- __decorate$4([
14443
+ __decorate$3([
14428
14444
  Property('Both')
14429
14445
  ], QuickInfoTemplates.prototype, "templateType", void 0);
14430
- __decorate$4([
14446
+ __decorate$3([
14431
14447
  Property()
14432
14448
  ], QuickInfoTemplates.prototype, "header", void 0);
14433
- __decorate$4([
14449
+ __decorate$3([
14434
14450
  Property()
14435
14451
  ], QuickInfoTemplates.prototype, "content", void 0);
14436
- __decorate$4([
14452
+ __decorate$3([
14437
14453
  Property()
14438
14454
  ], QuickInfoTemplates.prototype, "footer", void 0);
14439
14455
 
14440
- var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14456
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14441
14457
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14442
14458
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14443
14459
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -14448,15 +14464,14 @@ var __decorate$5 = (undefined && undefined.__decorate) || function (decorators,
14448
14464
  */
14449
14465
  class HeaderRows extends ChildProperty {
14450
14466
  }
14451
- __decorate$5([
14467
+ __decorate$4([
14452
14468
  Property()
14453
14469
  ], HeaderRows.prototype, "option", void 0);
14454
- __decorate$5([
14470
+ __decorate$4([
14455
14471
  Property()
14456
14472
  ], HeaderRows.prototype, "template", void 0);
14457
14473
 
14458
14474
  /* eslint-disable @typescript-eslint/no-explicit-any */
14459
- /* eslint-disable max-len */
14460
14475
  /**
14461
14476
  * Schedule CRUD operations
14462
14477
  */
@@ -14510,7 +14525,9 @@ class Crud {
14510
14525
  this.parent.trigger(dataBound, null, () => {
14511
14526
  this.parent.hideSpinner();
14512
14527
  if (this.parent.isPrinting) {
14513
- this.parent.notify(print$1, {});
14528
+ setTimeout(() => {
14529
+ this.parent.notify(print, {});
14530
+ }, 100);
14514
14531
  }
14515
14532
  });
14516
14533
  });
@@ -15286,32 +15303,31 @@ class WorkCellInteraction {
15286
15303
  }
15287
15304
  }
15288
15305
 
15289
- var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15306
+ var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15290
15307
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15291
15308
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15292
15309
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15293
15310
  return c > 3 && r && Object.defineProperty(target, key, r), r;
15294
15311
  };
15295
- /* eslint-disable @typescript-eslint/no-explicit-any */
15296
15312
  /**
15297
15313
  * Configuration that applies on each appointment field options of scheduler.
15298
15314
  */
15299
15315
  class FieldOptions extends ChildProperty {
15300
15316
  }
15301
- __decorate$8([
15317
+ __decorate$5([
15302
15318
  Property()
15303
15319
  ], FieldOptions.prototype, "name", void 0);
15304
- __decorate$8([
15320
+ __decorate$5([
15305
15321
  Property()
15306
15322
  ], FieldOptions.prototype, "default", void 0);
15307
- __decorate$8([
15323
+ __decorate$5([
15308
15324
  Property()
15309
15325
  ], FieldOptions.prototype, "title", void 0);
15310
- __decorate$8([
15326
+ __decorate$5([
15311
15327
  Property({})
15312
15328
  ], FieldOptions.prototype, "validation", void 0);
15313
15329
 
15314
- var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15330
+ var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15315
15331
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15316
15332
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15317
15333
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -15326,120 +15342,119 @@ var __decorate$7 = (undefined && undefined.__decorate) || function (decorators,
15326
15342
  */
15327
15343
  class Field extends ChildProperty {
15328
15344
  }
15329
- __decorate$7([
15345
+ __decorate$6([
15330
15346
  Property('Id')
15331
15347
  ], Field.prototype, "id", void 0);
15332
- __decorate$7([
15348
+ __decorate$6([
15333
15349
  Property('IsBlock')
15334
15350
  ], Field.prototype, "isBlock", void 0);
15335
- __decorate$7([
15351
+ __decorate$6([
15336
15352
  Complex({ name: 'Subject' }, FieldOptions)
15337
15353
  ], Field.prototype, "subject", void 0);
15338
- __decorate$7([
15354
+ __decorate$6([
15339
15355
  Complex({ name: 'StartTime' }, FieldOptions)
15340
15356
  ], Field.prototype, "startTime", void 0);
15341
- __decorate$7([
15357
+ __decorate$6([
15342
15358
  Complex({ name: 'EndTime' }, FieldOptions)
15343
15359
  ], Field.prototype, "endTime", void 0);
15344
- __decorate$7([
15360
+ __decorate$6([
15345
15361
  Complex({ name: 'StartTimezone' }, FieldOptions)
15346
15362
  ], Field.prototype, "startTimezone", void 0);
15347
- __decorate$7([
15363
+ __decorate$6([
15348
15364
  Complex({ name: 'EndTimezone' }, FieldOptions)
15349
15365
  ], Field.prototype, "endTimezone", void 0);
15350
- __decorate$7([
15366
+ __decorate$6([
15351
15367
  Complex({ name: 'Location' }, FieldOptions)
15352
15368
  ], Field.prototype, "location", void 0);
15353
- __decorate$7([
15369
+ __decorate$6([
15354
15370
  Complex({ name: 'Description' }, FieldOptions)
15355
15371
  ], Field.prototype, "description", void 0);
15356
- __decorate$7([
15372
+ __decorate$6([
15357
15373
  Complex({ name: 'IsAllDay' }, FieldOptions)
15358
15374
  ], Field.prototype, "isAllDay", void 0);
15359
- __decorate$7([
15375
+ __decorate$6([
15360
15376
  Complex({ name: 'RecurrenceID' }, FieldOptions)
15361
15377
  ], Field.prototype, "recurrenceID", void 0);
15362
- __decorate$7([
15378
+ __decorate$6([
15363
15379
  Complex({ name: 'RecurrenceRule' }, FieldOptions)
15364
15380
  ], Field.prototype, "recurrenceRule", void 0);
15365
- __decorate$7([
15381
+ __decorate$6([
15366
15382
  Complex({ name: 'RecurrenceException' }, FieldOptions)
15367
15383
  ], Field.prototype, "recurrenceException", void 0);
15368
- __decorate$7([
15384
+ __decorate$6([
15369
15385
  Property('IsReadonly')
15370
15386
  ], Field.prototype, "isReadonly", void 0);
15371
- __decorate$7([
15387
+ __decorate$6([
15372
15388
  Property('FollowingID')
15373
15389
  ], Field.prototype, "followingID", void 0);
15374
15390
 
15375
- var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15391
+ var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15376
15392
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15377
15393
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15378
15394
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15379
15395
  return c > 3 && r && Object.defineProperty(target, key, r), r;
15380
15396
  };
15381
- /* eslint-disable @typescript-eslint/no-explicit-any */
15382
15397
  /**
15383
15398
  * Holds the configuration of event related options and dataSource binding to Schedule.
15384
15399
  */
15385
15400
  class EventSettings extends ChildProperty {
15386
15401
  }
15387
- __decorate$6([
15402
+ __decorate$7([
15388
15403
  Property()
15389
15404
  ], EventSettings.prototype, "template", void 0);
15390
- __decorate$6([
15405
+ __decorate$7([
15391
15406
  Property([])
15392
15407
  ], EventSettings.prototype, "dataSource", void 0);
15393
- __decorate$6([
15408
+ __decorate$7([
15394
15409
  Property()
15395
15410
  ], EventSettings.prototype, "query", void 0);
15396
- __decorate$6([
15411
+ __decorate$7([
15397
15412
  Complex({}, Field)
15398
15413
  ], EventSettings.prototype, "fields", void 0);
15399
- __decorate$6([
15414
+ __decorate$7([
15400
15415
  Property(false)
15401
15416
  ], EventSettings.prototype, "enableTooltip", void 0);
15402
- __decorate$6([
15417
+ __decorate$7([
15403
15418
  Property('AllDayRow')
15404
15419
  ], EventSettings.prototype, "spannedEventPlacement", void 0);
15405
- __decorate$6([
15420
+ __decorate$7([
15406
15421
  Property(1)
15407
15422
  ], EventSettings.prototype, "minimumEventDuration", void 0);
15408
- __decorate$6([
15423
+ __decorate$7([
15409
15424
  Property()
15410
15425
  ], EventSettings.prototype, "tooltipTemplate", void 0);
15411
- __decorate$6([
15426
+ __decorate$7([
15412
15427
  Property()
15413
15428
  ], EventSettings.prototype, "resourceColorField", void 0);
15414
- __decorate$6([
15429
+ __decorate$7([
15415
15430
  Property(false)
15416
15431
  ], EventSettings.prototype, "editFollowingEvents", void 0);
15417
- __decorate$6([
15432
+ __decorate$7([
15418
15433
  Property(true)
15419
15434
  ], EventSettings.prototype, "allowAdding", void 0);
15420
- __decorate$6([
15435
+ __decorate$7([
15421
15436
  Property(true)
15422
15437
  ], EventSettings.prototype, "allowEditing", void 0);
15423
- __decorate$6([
15438
+ __decorate$7([
15424
15439
  Property(true)
15425
15440
  ], EventSettings.prototype, "allowDeleting", void 0);
15426
- __decorate$6([
15441
+ __decorate$7([
15427
15442
  Property(false)
15428
15443
  ], EventSettings.prototype, "enableMaxHeight", void 0);
15429
- __decorate$6([
15444
+ __decorate$7([
15430
15445
  Property(false)
15431
15446
  ], EventSettings.prototype, "enableIndicator", void 0);
15432
- __decorate$6([
15447
+ __decorate$7([
15433
15448
  Property(false)
15434
15449
  ], EventSettings.prototype, "ignoreWhitespace", void 0);
15435
- __decorate$6([
15450
+ __decorate$7([
15436
15451
  Property()
15437
15452
  ], EventSettings.prototype, "sortComparer", void 0);
15438
- __decorate$6([
15453
+ __decorate$7([
15439
15454
  Property()
15440
15455
  ], EventSettings.prototype, "includeFiltersInQuery", void 0);
15441
15456
 
15442
- var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15457
+ var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15443
15458
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15444
15459
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15445
15460
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -15450,88 +15465,86 @@ var __decorate$9 = (undefined && undefined.__decorate) || function (decorators,
15450
15465
  */
15451
15466
  class Group extends ChildProperty {
15452
15467
  }
15453
- __decorate$9([
15468
+ __decorate$8([
15454
15469
  Property(false)
15455
15470
  ], Group.prototype, "byDate", void 0);
15456
- __decorate$9([
15471
+ __decorate$8([
15457
15472
  Property(true)
15458
15473
  ], Group.prototype, "byGroupID", void 0);
15459
- __decorate$9([
15474
+ __decorate$8([
15460
15475
  Property(false)
15461
15476
  ], Group.prototype, "allowGroupEdit", void 0);
15462
- __decorate$9([
15477
+ __decorate$8([
15463
15478
  Property([])
15464
15479
  ], Group.prototype, "resources", void 0);
15465
- __decorate$9([
15480
+ __decorate$8([
15466
15481
  Property(true)
15467
15482
  ], Group.prototype, "enableCompactView", void 0);
15468
- __decorate$9([
15483
+ __decorate$8([
15469
15484
  Property()
15470
15485
  ], Group.prototype, "headerTooltipTemplate", void 0);
15471
- __decorate$9([
15486
+ __decorate$8([
15472
15487
  Property(false)
15473
15488
  ], Group.prototype, "hideNonWorkingDays", void 0);
15474
15489
 
15475
- var __decorate$10 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15490
+ var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15476
15491
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15477
15492
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15478
15493
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15479
15494
  return c > 3 && r && Object.defineProperty(target, key, r), r;
15480
15495
  };
15481
- /* eslint-disable @typescript-eslint/no-explicit-any */
15482
15496
  /**
15483
15497
  * A class that represents the resource related configurations and its data binding options.
15484
15498
  */
15485
15499
  class Resources extends ChildProperty {
15486
15500
  }
15487
- __decorate$10([
15501
+ __decorate$9([
15488
15502
  Property()
15489
15503
  ], Resources.prototype, "field", void 0);
15490
- __decorate$10([
15504
+ __decorate$9([
15491
15505
  Property()
15492
15506
  ], Resources.prototype, "title", void 0);
15493
- __decorate$10([
15507
+ __decorate$9([
15494
15508
  Property()
15495
15509
  ], Resources.prototype, "name", void 0);
15496
- __decorate$10([
15510
+ __decorate$9([
15497
15511
  Property(false)
15498
15512
  ], Resources.prototype, "allowMultiple", void 0);
15499
- __decorate$10([
15513
+ __decorate$9([
15500
15514
  Property([])
15501
15515
  ], Resources.prototype, "dataSource", void 0);
15502
- __decorate$10([
15516
+ __decorate$9([
15503
15517
  Property()
15504
15518
  ], Resources.prototype, "query", void 0);
15505
- __decorate$10([
15519
+ __decorate$9([
15506
15520
  Property('Id')
15507
15521
  ], Resources.prototype, "idField", void 0);
15508
- __decorate$10([
15522
+ __decorate$9([
15509
15523
  Property('Text')
15510
15524
  ], Resources.prototype, "textField", void 0);
15511
- __decorate$10([
15525
+ __decorate$9([
15512
15526
  Property('Expanded')
15513
15527
  ], Resources.prototype, "expandedField", void 0);
15514
- __decorate$10([
15528
+ __decorate$9([
15515
15529
  Property('GroupID')
15516
15530
  ], Resources.prototype, "groupIDField", void 0);
15517
- __decorate$10([
15531
+ __decorate$9([
15518
15532
  Property('Color')
15519
15533
  ], Resources.prototype, "colorField", void 0);
15520
- __decorate$10([
15534
+ __decorate$9([
15521
15535
  Property('StartHour')
15522
15536
  ], Resources.prototype, "startHourField", void 0);
15523
- __decorate$10([
15537
+ __decorate$9([
15524
15538
  Property('EndHour')
15525
15539
  ], Resources.prototype, "endHourField", void 0);
15526
- __decorate$10([
15540
+ __decorate$9([
15527
15541
  Property('WorkDays')
15528
15542
  ], Resources.prototype, "workDaysField", void 0);
15529
- __decorate$10([
15543
+ __decorate$9([
15530
15544
  Property('CssClass')
15531
15545
  ], Resources.prototype, "cssClassField", void 0);
15532
15546
 
15533
15547
  /* eslint-disable @typescript-eslint/no-explicit-any */
15534
- /* eslint-disable max-len */
15535
15548
  class ResourceBase {
15536
15549
  constructor(parent) {
15537
15550
  this.resourceCollection = [];
@@ -16565,7 +16578,7 @@ class ResourceBase {
16565
16578
  }
16566
16579
  }
16567
16580
 
16568
- var __decorate$11 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16581
+ var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16569
16582
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16570
16583
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16571
16584
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -16573,71 +16586,70 @@ var __decorate$11 = (undefined && undefined.__decorate) || function (decorators,
16573
16586
  };
16574
16587
  class ToolbarItem extends ChildProperty {
16575
16588
  }
16576
- __decorate$11([
16589
+ __decorate$a([
16577
16590
  Property('')
16578
16591
  ], ToolbarItem.prototype, "id", void 0);
16579
- __decorate$11([
16592
+ __decorate$a([
16580
16593
  Property('')
16581
16594
  ], ToolbarItem.prototype, "text", void 0);
16582
- __decorate$11([
16595
+ __decorate$a([
16583
16596
  Property('auto')
16584
16597
  ], ToolbarItem.prototype, "width", void 0);
16585
- __decorate$11([
16598
+ __decorate$a([
16586
16599
  Property('')
16587
16600
  ], ToolbarItem.prototype, "cssClass", void 0);
16588
- __decorate$11([
16601
+ __decorate$a([
16589
16602
  Property(false)
16590
16603
  ], ToolbarItem.prototype, "showAlwaysInPopup", void 0);
16591
- __decorate$11([
16604
+ __decorate$a([
16592
16605
  Property(false)
16593
16606
  ], ToolbarItem.prototype, "disabled", void 0);
16594
- __decorate$11([
16607
+ __decorate$a([
16595
16608
  Property('')
16596
16609
  ], ToolbarItem.prototype, "prefixIcon", void 0);
16597
- __decorate$11([
16610
+ __decorate$a([
16598
16611
  Property('')
16599
16612
  ], ToolbarItem.prototype, "suffixIcon", void 0);
16600
- __decorate$11([
16613
+ __decorate$a([
16601
16614
  Property(true)
16602
16615
  ], ToolbarItem.prototype, "visible", void 0);
16603
- __decorate$11([
16616
+ __decorate$a([
16604
16617
  Property('None')
16605
16618
  ], ToolbarItem.prototype, "overflow", void 0);
16606
- __decorate$11([
16619
+ __decorate$a([
16607
16620
  Property('')
16608
16621
  ], ToolbarItem.prototype, "template", void 0);
16609
- __decorate$11([
16622
+ __decorate$a([
16610
16623
  Property('Button')
16611
16624
  ], ToolbarItem.prototype, "type", void 0);
16612
- __decorate$11([
16625
+ __decorate$a([
16613
16626
  Property('Both')
16614
16627
  ], ToolbarItem.prototype, "showTextOn", void 0);
16615
- __decorate$11([
16628
+ __decorate$a([
16616
16629
  Property(null)
16617
16630
  ], ToolbarItem.prototype, "htmlAttributes", void 0);
16618
- __decorate$11([
16631
+ __decorate$a([
16619
16632
  Property('')
16620
16633
  ], ToolbarItem.prototype, "tooltipText", void 0);
16621
- __decorate$11([
16634
+ __decorate$a([
16622
16635
  Property('Left')
16623
16636
  ], ToolbarItem.prototype, "align", void 0);
16624
- __decorate$11([
16637
+ __decorate$a([
16625
16638
  Property(-1)
16626
16639
  ], ToolbarItem.prototype, "tabIndex", void 0);
16627
- __decorate$11([
16640
+ __decorate$a([
16628
16641
  Property('Custom')
16629
16642
  ], ToolbarItem.prototype, "name", void 0);
16630
- __decorate$11([
16643
+ __decorate$a([
16631
16644
  Event()
16632
16645
  ], ToolbarItem.prototype, "click", void 0);
16633
16646
 
16634
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16647
+ var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16635
16648
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16636
16649
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16637
16650
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16638
16651
  return c > 3 && r && Object.defineProperty(target, key, r), r;
16639
16652
  };
16640
- /* eslint-disable @typescript-eslint/no-explicit-any */
16641
16653
  /**
16642
16654
  * Represents the Schedule component that displays a list of events scheduled against specific date and timings,
16643
16655
  * thus helping us to plan and manage it properly.
@@ -16824,8 +16836,10 @@ let Schedule = class Schedule extends Component {
16824
16836
  validateDate(selectedDate = this.selectedDate) {
16825
16837
  // persist the selected date value
16826
16838
  let date = selectedDate instanceof Date ? new Date(selectedDate.getTime()) : new Date(selectedDate);
16827
- const minDate = this.minDate instanceof Date ? new Date(this.minDate.getTime()) : new Date(this.minDate);
16828
- const maxDate = this.maxDate instanceof Date ? new Date(this.maxDate.getTime()) : new Date(this.maxDate);
16839
+ const minDate = isNullOrUndefined(this.minDate) ? new Date(1900, 0, 1) :
16840
+ this.minDate instanceof Date ? new Date(this.minDate.getTime()) : new Date(this.minDate);
16841
+ const maxDate = isNullOrUndefined(this.maxDate) ? new Date(2099, 11, 31) :
16842
+ this.maxDate instanceof Date ? new Date(this.maxDate.getTime()) : new Date(this.maxDate);
16829
16843
  if (minDate <= maxDate) {
16830
16844
  if (date < minDate) {
16831
16845
  date = minDate;
@@ -16852,6 +16866,9 @@ let Schedule = class Schedule extends Component {
16852
16866
  return -1;
16853
16867
  }
16854
16868
  setViewOptions(isModuleLoad = false) {
16869
+ if (isNullOrUndefined(this.views) || this.views.length === 0) {
16870
+ return;
16871
+ }
16855
16872
  this.viewOptions = {};
16856
16873
  this.viewCollections = [];
16857
16874
  let viewName;
@@ -16923,7 +16940,7 @@ let Schedule = class Schedule extends Component {
16923
16940
  byDate: isYearView ? false : this.group.byDate,
16924
16941
  byGroupID: this.group.byGroupID,
16925
16942
  allowGroupEdit: this.group.allowGroupEdit,
16926
- resources: this.group.resources,
16943
+ resources: isNullOrUndefined(this.group.resources) ? [] : this.group.resources,
16927
16944
  headerTooltipTemplate: this.group.headerTooltipTemplate,
16928
16945
  enableCompactView: this.group.enableCompactView,
16929
16946
  hideNonWorkingDays: ['Day', 'Week', 'WorkWeek', 'Month'].indexOf(this.currentView) > -1 ? this.group.hideNonWorkingDays : false
@@ -17059,7 +17076,7 @@ let Schedule = class Schedule extends Component {
17059
17076
  const culShortNames = [];
17060
17077
  let cldrObj;
17061
17078
  let nameSpace = '';
17062
- if (this.locale === 'en' || this.locale === 'en-US') {
17079
+ if (isNullOrUndefined(this.locale) || this.locale === 'en' || this.locale === 'en-US') {
17063
17080
  nameSpace = 'days.stand-alone.';
17064
17081
  cldrObj = (getValue(nameSpace + type, getDefaultDateObject(this.getCalendarMode())));
17065
17082
  }
@@ -17077,7 +17094,7 @@ let Schedule = class Schedule extends Component {
17077
17094
  this.internalTimeFormat = this.timeFormat;
17078
17095
  return;
17079
17096
  }
17080
- if (this.locale === 'en' || this.locale === 'en-US') {
17097
+ if (isNullOrUndefined(this.locale) || this.locale === 'en' || this.locale === 'en-US') {
17081
17098
  this.internalTimeFormat = (getValue('timeFormats.short', getDefaultDateObject(this.getCalendarMode())));
17082
17099
  }
17083
17100
  else {
@@ -17091,7 +17108,7 @@ let Schedule = class Schedule extends Component {
17091
17108
  * @private
17092
17109
  */
17093
17110
  getCalendarMode() {
17094
- return this.calendarMode.toLowerCase();
17111
+ return !isNullOrUndefined(this.calendarMode) ? this.calendarMode.toLowerCase() : 'gregorian';
17095
17112
  }
17096
17113
  /**
17097
17114
  * Method to get time in string
@@ -17218,7 +17235,9 @@ let Schedule = class Schedule extends Component {
17218
17235
  * @private
17219
17236
  */
17220
17237
  isMinMaxDate(date = this.selectedDate) {
17221
- return ((date.getTime() >= this.minDate.getTime()) && (date.getTime() <= this.maxDate.getTime()));
17238
+ const maxDate = isNullOrUndefined(this.maxDate) ? new Date(2099, 11, 31) : this.maxDate;
17239
+ const minDate = isNullOrUndefined(this.minDate) ? new Date(1900, 0, 1) : this.minDate;
17240
+ return ((date.getTime() >= minDate.getTime()) && (date.getTime() <= maxDate.getTime()));
17222
17241
  }
17223
17242
  /**
17224
17243
  * Method to validate the selected date
@@ -17298,7 +17317,8 @@ let Schedule = class Schedule extends Component {
17298
17317
  if (this && isNullOrUndefined(this.uiStateValues) || !(this.enablePersistence)) {
17299
17318
  this.uiStateValues = {
17300
17319
  expand: false, isInitial: true, left: 0, top: 0, isGroupAdaptive: false,
17301
- isIgnoreOccurrence: false, groupIndex: this.adaptiveGroupIndex, action: false, isBlock: false, isCustomMonth: true, isPreventTimezone: false
17320
+ isIgnoreOccurrence: false, groupIndex: this.adaptiveGroupIndex, action: false,
17321
+ isBlock: false, isCustomMonth: true, isPreventTimezone: false
17302
17322
  };
17303
17323
  }
17304
17324
  this.currentTimezoneDate = this.getCurrentTime();
@@ -17355,6 +17375,7 @@ let Schedule = class Schedule extends Component {
17355
17375
  subject: 'Subject',
17356
17376
  addTitle: 'Add title',
17357
17377
  moreDetails: 'More Details',
17378
+ moreEvents: 'More Events',
17358
17379
  save: 'Save',
17359
17380
  editContent: 'How would you like to change the appointment in the series?',
17360
17381
  deleteContent: 'Are you sure you want to delete this event?',
@@ -17389,6 +17410,7 @@ let Schedule = class Schedule extends Component {
17389
17410
  ok: 'Ok',
17390
17411
  yes: 'Yes',
17391
17412
  no: 'No',
17413
+ of: 'of',
17392
17414
  occurrence: 'Occurrence',
17393
17415
  series: 'Series',
17394
17416
  previous: 'Previous',
@@ -17958,7 +17980,7 @@ let Schedule = class Schedule extends Component {
17958
17980
  const scheduleId = this.element.id + '_';
17959
17981
  const viewName = this.activeViewOptions.headerIndentTemplateName;
17960
17982
  const templateId = scheduleId + viewName + 'headerIndentTemplate';
17961
- const indentTemplate = [].slice.call(this.getHeaderIndentTemplate()(data, this, 'headerIndentTemplate', templateId, false));
17983
+ const indentTemplate = [].slice.call(this.getHeaderIndentTemplate()(data, this, 'headerIndentTemplate', templateId, false, undefined, undefined, this.root));
17962
17984
  append(indentTemplate, td);
17963
17985
  }
17964
17986
  }
@@ -18117,7 +18139,9 @@ let Schedule = class Schedule extends Component {
18117
18139
  break;
18118
18140
  case 'timezone':
18119
18141
  this.eventBase.timezonePropertyChange(oldProp.timezone);
18120
- this.headerModule.setCalendarTimezone();
18142
+ if (this.headerModule) {
18143
+ this.headerModule.setCalendarTimezone();
18144
+ }
18121
18145
  break;
18122
18146
  case 'enableRtl':
18123
18147
  this.setRtlClass();
@@ -18141,6 +18165,9 @@ let Schedule = class Schedule extends Component {
18141
18165
  this.changeView(this.currentView, null, true);
18142
18166
  }
18143
18167
  else if (state.isDate) {
18168
+ if (isNullOrUndefined(this.selectedDate)) {
18169
+ this.setProperties({ selectedDate: this.getCurrentTime() }, true);
18170
+ }
18144
18171
  this.changeDate(this.selectedDate);
18145
18172
  }
18146
18173
  else if (state.isLayout) {
@@ -18481,8 +18508,9 @@ let Schedule = class Schedule extends Component {
18481
18508
  }
18482
18509
  const msMajorInterval = this.activeViewOptions.timeScale.interval * MS_PER_MINUTE;
18483
18510
  const msInterval = msMajorInterval / this.activeViewOptions.timeScale.slotCount;
18484
- let startIndex = Math.round((startHour.getTime() - viewStartHour.getTime()) / msInterval);
18485
- let endIndex = Math.ceil((endHour.getTime() - viewStartHour.getTime()) / msInterval);
18511
+ const offsetDiff = ((viewStartHour.getTimezoneOffset() - startHour.getTimezoneOffset()) * MS_PER_MINUTE);
18512
+ let startIndex = Math.round((startHour.getTime() - viewStartHour.getTime() + offsetDiff) / msInterval);
18513
+ let endIndex = Math.ceil((endHour.getTime() - viewStartHour.getTime() + offsetDiff) / msInterval);
18486
18514
  const tempStartIndex = startIndex;
18487
18515
  const tempEndIndex = endIndex;
18488
18516
  const cells = [];
@@ -19370,274 +19398,274 @@ let Schedule = class Schedule extends Component {
19370
19398
  removeClass([this.element], removeClasses);
19371
19399
  }
19372
19400
  };
19373
- __decorate([
19401
+ __decorate$b([
19374
19402
  Property('auto')
19375
19403
  ], Schedule.prototype, "width", void 0);
19376
- __decorate([
19404
+ __decorate$b([
19377
19405
  Property('auto')
19378
19406
  ], Schedule.prototype, "height", void 0);
19379
- __decorate([
19407
+ __decorate$b([
19380
19408
  Property(true)
19381
19409
  ], Schedule.prototype, "showHeaderBar", void 0);
19382
- __decorate([
19410
+ __decorate$b([
19383
19411
  Property(true)
19384
19412
  ], Schedule.prototype, "showTimeIndicator", void 0);
19385
- __decorate([
19413
+ __decorate$b([
19386
19414
  Property(true)
19387
19415
  ], Schedule.prototype, "allowSwiping", void 0);
19388
- __decorate([
19416
+ __decorate$b([
19389
19417
  Collection([], ToolbarItem)
19390
19418
  ], Schedule.prototype, "toolbarItems", void 0);
19391
- __decorate([
19419
+ __decorate$b([
19392
19420
  Property('Week')
19393
19421
  ], Schedule.prototype, "currentView", void 0);
19394
- __decorate([
19422
+ __decorate$b([
19395
19423
  Property(['Day', 'Week', 'WorkWeek', 'Month', 'Agenda'])
19396
19424
  ], Schedule.prototype, "views", void 0);
19397
- __decorate([
19425
+ __decorate$b([
19398
19426
  Property(new Date())
19399
19427
  ], Schedule.prototype, "selectedDate", void 0);
19400
- __decorate([
19428
+ __decorate$b([
19401
19429
  Property(new Date(1900, 0, 1))
19402
19430
  ], Schedule.prototype, "minDate", void 0);
19403
- __decorate([
19431
+ __decorate$b([
19404
19432
  Property(new Date(2099, 11, 31))
19405
19433
  ], Schedule.prototype, "maxDate", void 0);
19406
- __decorate([
19434
+ __decorate$b([
19407
19435
  Property()
19408
19436
  ], Schedule.prototype, "dateFormat", void 0);
19409
- __decorate([
19437
+ __decorate$b([
19410
19438
  Property('Gregorian')
19411
19439
  ], Schedule.prototype, "calendarMode", void 0);
19412
- __decorate([
19440
+ __decorate$b([
19413
19441
  Property(true)
19414
19442
  ], Schedule.prototype, "showWeekend", void 0);
19415
- __decorate([
19443
+ __decorate$b([
19416
19444
  Property(0)
19417
19445
  ], Schedule.prototype, "firstDayOfWeek", void 0);
19418
- __decorate([
19446
+ __decorate$b([
19419
19447
  Property('FirstDay')
19420
19448
  ], Schedule.prototype, "weekRule", void 0);
19421
- __decorate([
19449
+ __decorate$b([
19422
19450
  Property([1, 2, 3, 4, 5])
19423
19451
  ], Schedule.prototype, "workDays", void 0);
19424
- __decorate([
19452
+ __decorate$b([
19425
19453
  Property(12)
19426
19454
  ], Schedule.prototype, "monthsCount", void 0);
19427
- __decorate([
19455
+ __decorate$b([
19428
19456
  Property('00:00')
19429
19457
  ], Schedule.prototype, "startHour", void 0);
19430
- __decorate([
19458
+ __decorate$b([
19431
19459
  Property('24:00')
19432
19460
  ], Schedule.prototype, "endHour", void 0);
19433
- __decorate([
19461
+ __decorate$b([
19434
19462
  Property(null)
19435
19463
  ], Schedule.prototype, "timeFormat", void 0);
19436
- __decorate([
19464
+ __decorate$b([
19437
19465
  Property(true)
19438
19466
  ], Schedule.prototype, "enableHtmlSanitizer", void 0);
19439
- __decorate([
19467
+ __decorate$b([
19440
19468
  Property(false)
19441
19469
  ], Schedule.prototype, "enableAllDayScroll", void 0);
19442
- __decorate([
19470
+ __decorate$b([
19443
19471
  Property(false)
19444
19472
  ], Schedule.prototype, "enableAdaptiveUI", void 0);
19445
- __decorate([
19473
+ __decorate$b([
19446
19474
  Property(true)
19447
19475
  ], Schedule.prototype, "allowResizing", void 0);
19448
- __decorate([
19476
+ __decorate$b([
19449
19477
  Complex({}, WorkHours)
19450
19478
  ], Schedule.prototype, "workHours", void 0);
19451
- __decorate([
19479
+ __decorate$b([
19452
19480
  Complex({}, TimeScale)
19453
19481
  ], Schedule.prototype, "timeScale", void 0);
19454
- __decorate([
19482
+ __decorate$b([
19455
19483
  Property(true)
19456
19484
  ], Schedule.prototype, "allowKeyboardInteraction", void 0);
19457
- __decorate([
19485
+ __decorate$b([
19458
19486
  Property(true)
19459
19487
  ], Schedule.prototype, "allowDragAndDrop", void 0);
19460
- __decorate([
19488
+ __decorate$b([
19461
19489
  Property()
19462
19490
  ], Schedule.prototype, "dateHeaderTemplate", void 0);
19463
- __decorate([
19491
+ __decorate$b([
19464
19492
  Property()
19465
19493
  ], Schedule.prototype, "dateRangeTemplate", void 0);
19466
- __decorate([
19494
+ __decorate$b([
19467
19495
  Property()
19468
19496
  ], Schedule.prototype, "cellHeaderTemplate", void 0);
19469
- __decorate([
19497
+ __decorate$b([
19470
19498
  Property()
19471
19499
  ], Schedule.prototype, "dayHeaderTemplate", void 0);
19472
- __decorate([
19500
+ __decorate$b([
19473
19501
  Property()
19474
19502
  ], Schedule.prototype, "monthHeaderTemplate", void 0);
19475
- __decorate([
19503
+ __decorate$b([
19476
19504
  Property()
19477
19505
  ], Schedule.prototype, "cellTemplate", void 0);
19478
- __decorate([
19506
+ __decorate$b([
19479
19507
  Property(false)
19480
19508
  ], Schedule.prototype, "readonly", void 0);
19481
- __decorate([
19509
+ __decorate$b([
19482
19510
  Property(true)
19483
19511
  ], Schedule.prototype, "showQuickInfo", void 0);
19484
- __decorate([
19512
+ __decorate$b([
19485
19513
  Property(false)
19486
19514
  ], Schedule.prototype, "allowInline", void 0);
19487
- __decorate([
19515
+ __decorate$b([
19488
19516
  Property(true)
19489
19517
  ], Schedule.prototype, "allowMultiCellSelection", void 0);
19490
- __decorate([
19518
+ __decorate$b([
19491
19519
  Property(true)
19492
19520
  ], Schedule.prototype, "allowMultiRowSelection", void 0);
19493
- __decorate([
19521
+ __decorate$b([
19494
19522
  Property(false)
19495
19523
  ], Schedule.prototype, "quickInfoOnSelectionEnd", void 0);
19496
- __decorate([
19524
+ __decorate$b([
19497
19525
  Property(false)
19498
19526
  ], Schedule.prototype, "showWeekNumber", void 0);
19499
- __decorate([
19527
+ __decorate$b([
19500
19528
  Property(false)
19501
19529
  ], Schedule.prototype, "rowAutoHeight", void 0);
19502
- __decorate([
19530
+ __decorate$b([
19503
19531
  Property(false)
19504
19532
  ], Schedule.prototype, "allowMultiDrag", void 0);
19505
- __decorate([
19533
+ __decorate$b([
19506
19534
  Property(0)
19507
19535
  ], Schedule.prototype, "firstMonthOfYear", void 0);
19508
- __decorate([
19536
+ __decorate$b([
19509
19537
  Property()
19510
19538
  ], Schedule.prototype, "editorTemplate", void 0);
19511
- __decorate([
19539
+ __decorate$b([
19512
19540
  Property()
19513
19541
  ], Schedule.prototype, "editorHeaderTemplate", void 0);
19514
- __decorate([
19542
+ __decorate$b([
19515
19543
  Property()
19516
19544
  ], Schedule.prototype, "editorFooterTemplate", void 0);
19517
- __decorate([
19545
+ __decorate$b([
19518
19546
  Complex({}, QuickInfoTemplates)
19519
19547
  ], Schedule.prototype, "quickInfoTemplates", void 0);
19520
- __decorate([
19548
+ __decorate$b([
19521
19549
  Property(7)
19522
19550
  ], Schedule.prototype, "agendaDaysCount", void 0);
19523
- __decorate([
19551
+ __decorate$b([
19524
19552
  Property(true)
19525
19553
  ], Schedule.prototype, "hideEmptyAgendaDays", void 0);
19526
- __decorate([
19554
+ __decorate$b([
19527
19555
  Property(true)
19528
19556
  ], Schedule.prototype, "enableRecurrenceValidation", void 0);
19529
- __decorate([
19557
+ __decorate$b([
19530
19558
  Property()
19531
19559
  ], Schedule.prototype, "timezone", void 0);
19532
- __decorate([
19560
+ __decorate$b([
19533
19561
  Complex({}, EventSettings)
19534
19562
  ], Schedule.prototype, "eventSettings", void 0);
19535
- __decorate([
19563
+ __decorate$b([
19536
19564
  Property(timezoneData)
19537
19565
  ], Schedule.prototype, "timezoneDataSource", void 0);
19538
- __decorate([
19566
+ __decorate$b([
19539
19567
  Property()
19540
19568
  ], Schedule.prototype, "resourceHeaderTemplate", void 0);
19541
- __decorate([
19569
+ __decorate$b([
19542
19570
  Property()
19543
19571
  ], Schedule.prototype, "headerIndentTemplate", void 0);
19544
- __decorate([
19572
+ __decorate$b([
19545
19573
  Complex({}, Group)
19546
19574
  ], Schedule.prototype, "group", void 0);
19547
- __decorate([
19575
+ __decorate$b([
19548
19576
  Collection([], Resources)
19549
19577
  ], Schedule.prototype, "resources", void 0);
19550
- __decorate([
19578
+ __decorate$b([
19551
19579
  Collection([], HeaderRows)
19552
19580
  ], Schedule.prototype, "headerRows", void 0);
19553
- __decorate([
19581
+ __decorate$b([
19554
19582
  Property()
19555
19583
  ], Schedule.prototype, "cssClass", void 0);
19556
- __decorate([
19584
+ __decorate$b([
19557
19585
  Property()
19558
19586
  ], Schedule.prototype, "eventDragArea", void 0);
19559
- __decorate([
19587
+ __decorate$b([
19560
19588
  Event()
19561
19589
  ], Schedule.prototype, "created", void 0);
19562
- __decorate([
19590
+ __decorate$b([
19563
19591
  Event()
19564
19592
  ], Schedule.prototype, "destroyed", void 0);
19565
- __decorate([
19593
+ __decorate$b([
19566
19594
  Event()
19567
19595
  ], Schedule.prototype, "cellClick", void 0);
19568
- __decorate([
19596
+ __decorate$b([
19569
19597
  Event()
19570
19598
  ], Schedule.prototype, "cellDoubleClick", void 0);
19571
- __decorate([
19599
+ __decorate$b([
19572
19600
  Event()
19573
19601
  ], Schedule.prototype, "moreEventsClick", void 0);
19574
- __decorate([
19602
+ __decorate$b([
19575
19603
  Event()
19576
19604
  ], Schedule.prototype, "hover", void 0);
19577
- __decorate([
19605
+ __decorate$b([
19578
19606
  Event()
19579
19607
  ], Schedule.prototype, "select", void 0);
19580
- __decorate([
19608
+ __decorate$b([
19581
19609
  Event()
19582
19610
  ], Schedule.prototype, "actionBegin", void 0);
19583
- __decorate([
19611
+ __decorate$b([
19584
19612
  Event()
19585
19613
  ], Schedule.prototype, "actionComplete", void 0);
19586
- __decorate([
19614
+ __decorate$b([
19587
19615
  Event()
19588
19616
  ], Schedule.prototype, "actionFailure", void 0);
19589
- __decorate([
19617
+ __decorate$b([
19590
19618
  Event()
19591
19619
  ], Schedule.prototype, "navigating", void 0);
19592
- __decorate([
19620
+ __decorate$b([
19593
19621
  Event()
19594
19622
  ], Schedule.prototype, "renderCell", void 0);
19595
- __decorate([
19623
+ __decorate$b([
19596
19624
  Event()
19597
19625
  ], Schedule.prototype, "eventClick", void 0);
19598
- __decorate([
19626
+ __decorate$b([
19599
19627
  Event()
19600
19628
  ], Schedule.prototype, "eventDoubleClick", void 0);
19601
- __decorate([
19629
+ __decorate$b([
19602
19630
  Event()
19603
19631
  ], Schedule.prototype, "eventRendered", void 0);
19604
- __decorate([
19632
+ __decorate$b([
19605
19633
  Event()
19606
19634
  ], Schedule.prototype, "dataBinding", void 0);
19607
- __decorate([
19635
+ __decorate$b([
19608
19636
  Event()
19609
19637
  ], Schedule.prototype, "popupOpen", void 0);
19610
- __decorate([
19638
+ __decorate$b([
19611
19639
  Event()
19612
19640
  ], Schedule.prototype, "popupClose", void 0);
19613
- __decorate([
19641
+ __decorate$b([
19614
19642
  Event()
19615
19643
  ], Schedule.prototype, "dragStart", void 0);
19616
- __decorate([
19644
+ __decorate$b([
19617
19645
  Event()
19618
19646
  ], Schedule.prototype, "drag", void 0);
19619
- __decorate([
19647
+ __decorate$b([
19620
19648
  Event()
19621
19649
  ], Schedule.prototype, "dragStop", void 0);
19622
- __decorate([
19650
+ __decorate$b([
19623
19651
  Event()
19624
19652
  ], Schedule.prototype, "resizeStart", void 0);
19625
- __decorate([
19653
+ __decorate$b([
19626
19654
  Event()
19627
19655
  ], Schedule.prototype, "resizing", void 0);
19628
- __decorate([
19656
+ __decorate$b([
19629
19657
  Event()
19630
19658
  ], Schedule.prototype, "resizeStop", void 0);
19631
- __decorate([
19659
+ __decorate$b([
19632
19660
  Event()
19633
19661
  ], Schedule.prototype, "virtualScrollStart", void 0);
19634
- __decorate([
19662
+ __decorate$b([
19635
19663
  Event()
19636
19664
  ], Schedule.prototype, "virtualScrollStop", void 0);
19637
- __decorate([
19665
+ __decorate$b([
19638
19666
  Event()
19639
19667
  ], Schedule.prototype, "dataBound", void 0);
19640
- Schedule = __decorate([
19668
+ Schedule = __decorate$b([
19641
19669
  NotifyPropertyChanges
19642
19670
  ], Schedule);
19643
19671
 
@@ -20179,6 +20207,11 @@ class Resize extends ActionBase {
20179
20207
  }
20180
20208
  const viewElement = this.parent.element.querySelector('.' + CONTENT_WRAP_CLASS);
20181
20209
  this.scrollArgs = { element: viewElement, width: viewElement.scrollWidth, height: viewElement.scrollHeight };
20210
+ // 883565 - To fix the resizing not working issue at the last column of the timeline view
20211
+ if (['Month', 'TimelineYear'].indexOf(this.parent.currentView) < 0) {
20212
+ const scrollWidth = Math.round(this.scrollArgs.width / this.actionObj.cellWidth) * this.actionObj.cellWidth;
20213
+ this.scrollArgs.width = this.scrollArgs.width < scrollWidth ? scrollWidth : this.scrollArgs.width;
20214
+ }
20182
20215
  EventHandler.add(document, Browser.touchMoveEvent, this.resizing, this);
20183
20216
  EventHandler.add(document, Browser.touchEndEvent, this.resizeStop, this);
20184
20217
  });
@@ -20821,7 +20854,8 @@ class YearEvent extends TimelineEvent {
20821
20854
  continue;
20822
20855
  }
20823
20856
  }
20824
- const enableAppRender = this.maxOrIndicator || (overlapIndex < eventsPerRow) || (this.cellHeight > availedHeight);
20857
+ const enableAppRender = this.maxOrIndicator || (overlapIndex < eventsPerRow) ||
20858
+ (this.cellHeight > availedHeight);
20825
20859
  if (this.parent.rowAutoHeight || enableAppRender || this.cellHeight > availedHeight) {
20826
20860
  this.renderEvent(eventWrapper, eventData, row, leftValue, rightValue, monthStart, dayIndex);
20827
20861
  if (this.parent.rowAutoHeight || this.cellHeight > availedHeight) {
@@ -21106,7 +21140,7 @@ class YearEvent extends TimelineEvent {
21106
21140
  const eventObj = extend({}, record, null, true);
21107
21141
  if (this.parent.activeViewOptions.eventTemplate) {
21108
21142
  const templateId = this.parent.element.id + '_' + this.parent.activeViewOptions.eventTemplateName + 'eventTemplate';
21109
- templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, 'eventTemplate', templateId, false);
21143
+ templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, 'eventTemplate', templateId, false, undefined, undefined, this.parent.root);
21110
21144
  }
21111
21145
  else {
21112
21146
  const locationEle = (record[this.fields.location] || this.parent.eventSettings.fields.location.default || '');
@@ -21517,7 +21551,8 @@ class DragAndDrop extends ActionBase {
21517
21551
  if (this.parent.quickPopup) {
21518
21552
  this.parent.quickPopup.quickPopupHide(true);
21519
21553
  }
21520
- if ((!isNullOrUndefined(e.target)) && e.target.classList && e.target.classList.contains(DISABLE_DATES)) {
21554
+ if ((!isNullOrUndefined(e.target)) && e.target.classList &&
21555
+ e.target.classList.contains(DISABLE_DATES)) {
21521
21556
  return;
21522
21557
  }
21523
21558
  const eventObj = extend({}, this.actionObj.event, null, true);
@@ -21758,13 +21793,13 @@ class DragAndDrop extends ActionBase {
21758
21793
  if (this.parent.currentView === 'TimelineYear' && (!td.classList.contains(WORK_CELLS_CLASS) || td.classList.contains(OTHERMONTH_CLASS))) {
21759
21794
  return;
21760
21795
  }
21761
- const dragStart$$1 = this.parent.getDateFromElement(td);
21762
- const dragEnd = new Date(dragStart$$1.getTime());
21796
+ const dragStart = this.parent.getDateFromElement(td);
21797
+ const dragEnd = new Date(dragStart.getTime());
21763
21798
  dragEnd.setMilliseconds(eventDuration);
21764
21799
  if (this.parent.activeViewOptions.group.resources.length > 0) {
21765
21800
  this.actionObj.groupIndex = parseInt(td.getAttribute('data-group-index'), 10);
21766
21801
  }
21767
- this.actionObj.start = new Date(dragStart$$1.getTime());
21802
+ this.actionObj.start = new Date(dragStart.getTime());
21768
21803
  this.actionObj.end = new Date(dragEnd.getTime());
21769
21804
  this.actionObj.clone.style.top = formatUnit(td.offsetParent.offsetTop);
21770
21805
  this.actionObj.clone.style.left = formatUnit(td.offsetLeft);
@@ -21835,13 +21870,13 @@ class DragAndDrop extends ActionBase {
21835
21870
  if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
21836
21871
  this.actionObj.groupIndex = parseInt(td.getAttribute('data-group-index'), 10);
21837
21872
  }
21838
- let dragStart$$1;
21873
+ let dragStart;
21839
21874
  let dragEnd;
21840
21875
  if (this.parent.activeViewOptions.timeScale.enable && !this.isAllDayDrag) {
21841
21876
  this.appendCloneElement(this.getEventWrapper(colIndex));
21842
- dragStart$$1 = this.parent.getDateFromElement(td);
21843
- dragStart$$1.setMinutes(dragStart$$1.getMinutes() + (diffInMinutes / heightPerMinute));
21844
- dragEnd = new Date(dragStart$$1.getTime());
21877
+ dragStart = this.parent.getDateFromElement(td);
21878
+ dragStart.setMinutes(dragStart.getMinutes() + (diffInMinutes / heightPerMinute));
21879
+ dragEnd = new Date(dragStart.getTime());
21845
21880
  if (this.actionObj.element.classList.contains(ALLDAY_APPOINTMENT_CLASS)) {
21846
21881
  dragEnd.setMinutes(dragEnd.getMinutes() + this.actionObj.slotInterval);
21847
21882
  }
@@ -21850,10 +21885,10 @@ class DragAndDrop extends ActionBase {
21850
21885
  }
21851
21886
  }
21852
21887
  else {
21853
- dragStart$$1 = this.parent.getDateFromElement(td);
21854
- dragStart$$1.setDate(dragStart$$1.getDate() - this.daysVariation);
21855
- dragStart$$1.setHours(eventStart.getHours(), eventStart.getMinutes(), eventStart.getSeconds());
21856
- dragEnd = new Date(dragStart$$1.getTime());
21888
+ dragStart = this.parent.getDateFromElement(td);
21889
+ dragStart.setDate(dragStart.getDate() - this.daysVariation);
21890
+ dragStart.setHours(eventStart.getHours(), eventStart.getMinutes(), eventStart.getSeconds());
21891
+ dragEnd = new Date(dragStart.getTime());
21857
21892
  dragEnd.setMilliseconds(eventDuration);
21858
21893
  if (!this.actionObj.element.classList.contains(ALLDAY_APPOINTMENT_CLASS) &&
21859
21894
  this.actionObj.clone.classList.contains(ALLDAY_APPOINTMENT_CLASS)) {
@@ -21861,9 +21896,9 @@ class DragAndDrop extends ActionBase {
21861
21896
  }
21862
21897
  const index = this.parent.activeViewOptions.group.byDate || (this.parent.virtualScrollModule &&
21863
21898
  !this.parent.activeViewOptions.timeScale.enable) ? colIndex : undefined;
21864
- this.updateAllDayEvents(dragStart$$1, dragEnd, index);
21899
+ this.updateAllDayEvents(dragStart, dragEnd, index);
21865
21900
  }
21866
- this.actionObj.start = new Date(+dragStart$$1);
21901
+ this.actionObj.start = new Date(+dragStart);
21867
21902
  this.actionObj.end = new Date(+dragEnd);
21868
21903
  const event = this.getUpdatedEvent(this.actionObj.start, this.actionObj.end, this.actionObj.event);
21869
21904
  const dynamicWrappers = [].slice.call(this.parent.element.querySelectorAll('.e-dynamic-clone'));
@@ -22177,13 +22212,13 @@ class DragAndDrop extends ActionBase {
22177
22212
  this.actionObj.groupIndex = parseInt(td.getAttribute('data-group-index'), 10);
22178
22213
  }
22179
22214
  const timeString = new Date(currentDate.setDate(currentDate.getDate() - this.daysVariation));
22180
- const dragStart$$1 = new Date(timeString.getTime());
22215
+ const dragStart = new Date(timeString.getTime());
22181
22216
  const startTimeDiff = getUniversalTime(eventObj[this.parent.eventFields.startTime]) -
22182
22217
  getUniversalTime(resetTime(new Date(+eventObj[this.parent.eventFields.startTime])));
22183
- dragStart$$1.setMilliseconds(startTimeDiff);
22184
- const dragEnd = new Date(dragStart$$1.getTime());
22218
+ dragStart.setMilliseconds(startTimeDiff);
22219
+ const dragEnd = new Date(dragStart.getTime());
22185
22220
  dragEnd.setMilliseconds(eventDuration);
22186
- this.actionObj.start = new Date(dragStart$$1.getTime());
22221
+ this.actionObj.start = new Date(dragStart.getTime());
22187
22222
  this.actionObj.end = new Date(dragEnd.getTime());
22188
22223
  }
22189
22224
  }
@@ -22595,10 +22630,11 @@ class ViewBase {
22595
22630
  }
22596
22631
  });
22597
22632
  });
22598
- if (!isNullOrUndefined(this.parent.resourceBase.renderedResources) && this.parent.resourceBase.renderedResources.length > 0) {
22633
+ const rendereData = this.parent.resourceBase.renderedResources;
22634
+ if (!isNullOrUndefined(rendereData) && rendereData.length > 0) {
22599
22635
  for (let i = 0; i < resourceTd.length; i++) {
22600
22636
  const element = resourceTd[parseInt(i.toString(), 10)];
22601
- const data = this.parent.resourceBase.renderedResources[parseInt(i.toString(), 10)];
22637
+ const data = rendereData[parseInt(i.toString(), 10)];
22602
22638
  if (this.parent.activeView && !isNullOrUndefined(element) && !isNullOrUndefined(data)
22603
22639
  && parseInt(element.getAttribute('data-group-index'), 10) === data.groupIndex) {
22604
22640
  this.parent.activeView.setResourceHeaderContent(element, data, RESOURCE_TEXT_CLASS);
@@ -22660,9 +22696,15 @@ class ViewBase {
22660
22696
  }
22661
22697
  setAriaAttributes(table) {
22662
22698
  table.setAttribute('role', 'grid');
22699
+ if (this.parent.currentView !== 'Year') {
22700
+ table.setAttribute('id', this.parent.element.id + '_table');
22701
+ }
22663
22702
  table.setAttribute('aria-label', this.getLabelText(this.parent.currentView));
22664
22703
  }
22665
22704
  createColGroup(table, lastRow) {
22705
+ if (isNullOrUndefined(lastRow)) {
22706
+ return;
22707
+ }
22666
22708
  let length = lastRow.length;
22667
22709
  if (lastRow[0] && lastRow[0].colSpan) {
22668
22710
  length = lastRow.map((value) => value.colSpan).reduce((prev, next) => prev + next);
@@ -22802,7 +22844,7 @@ class ViewBase {
22802
22844
  this.parent.getCurrentTime().getFullYear() && date.getMonth() === this.parent.getCurrentTime().getMonth();
22803
22845
  }
22804
22846
  isWorkDay(date, workDays = this.parent.activeViewOptions.workDays) {
22805
- if (workDays.indexOf(date.getDay()) >= 0) {
22847
+ if (!isNullOrUndefined(workDays) && workDays.indexOf(date.getDay()) >= 0) {
22806
22848
  return true;
22807
22849
  }
22808
22850
  return false;
@@ -22900,9 +22942,29 @@ class ViewBase {
22900
22942
  const weekLength = type === 'next' ? WEEK_LENGTH : -WEEK_LENGTH;
22901
22943
  return addDays(this.parent.selectedDate, weekLength * this.parent.activeViewOptions.interval);
22902
22944
  }
22945
+ formatViewLabel(view, startDate, endDate) {
22946
+ const formatOptions = { type: 'date', skeleton: 'full', calendar: this.parent.getCalendarMode() };
22947
+ return this.parent.localeObj.getConstant(view) + ' ' + this.parent.localeObj.getConstant('start') + ' ' + this.parent.globalize.formatDate(startDate, formatOptions) + ' '
22948
+ + this.parent.localeObj.getConstant('endAt') + ' ' + this.parent.globalize.formatDate(endDate, formatOptions);
22949
+ }
22903
22950
  getLabelText(view) {
22904
22951
  const viewStr = view.charAt(0).toLowerCase() + view.substring(1);
22905
- return this.parent.localeObj.getConstant(viewStr) + ' of ' + capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { skeleton: 'long', calendar: this.parent.getCalendarMode() }), 'single');
22952
+ if (view === 'Year' || view === 'TimelineYear') {
22953
+ return this.formatViewLabel(viewStr, this.parent.activeView.getStartDate(), this.parent.activeView.getEndDate());
22954
+ }
22955
+ else {
22956
+ if (this.renderDates.length > 0) {
22957
+ if (this.parent.currentView === 'Day' || this.parent.currentView === 'TimelineDay') {
22958
+ return this.parent.localeObj.getConstant(viewStr) + ' of ' + capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { type: 'date', skeleton: 'full', calendar: this.parent.getCalendarMode() }), 'single');
22959
+ }
22960
+ else {
22961
+ return this.formatViewLabel(viewStr, this.renderDates[0], this.renderDates[this.renderDates.length - 1]);
22962
+ }
22963
+ }
22964
+ else {
22965
+ return '';
22966
+ }
22967
+ }
22906
22968
  }
22907
22969
  getDateRangeText() {
22908
22970
  if (this.parent.isAdaptive) {
@@ -22929,7 +22991,7 @@ class ViewBase {
22929
22991
  }
22930
22992
  let formattedStr;
22931
22993
  let longDateFormat;
22932
- if (this.parent.locale === 'en' || this.parent.locale === 'en-US') {
22994
+ if (isNullOrUndefined(this.parent.locale) || this.parent.locale === 'en' || this.parent.locale === 'en-US') {
22933
22995
  longDateFormat = getValue('dateFormats.long', getDefaultDateObject(mode));
22934
22996
  }
22935
22997
  else {
@@ -22992,7 +23054,7 @@ class ViewBase {
22992
23054
  const scheduleId = this.parent.element.id + '_';
22993
23055
  const viewName = this.parent.activeViewOptions.resourceHeaderTemplateName;
22994
23056
  const templateId = scheduleId + viewName + 'resourceHeaderTemplate';
22995
- const quickTemplate = [].slice.call(this.parent.getResourceHeaderTemplate()(data, this.parent, 'resourceHeaderTemplate', templateId, false));
23057
+ const quickTemplate = [].slice.call(this.parent.getResourceHeaderTemplate()(data, this.parent, 'resourceHeaderTemplate', templateId, false, undefined, undefined, this.parent.root));
22996
23058
  append(quickTemplate, tdElement);
22997
23059
  }
22998
23060
  else {
@@ -23274,6 +23336,9 @@ class VerticalView extends ViewBase {
23274
23336
  this.highlightCurrentTime();
23275
23337
  }
23276
23338
  this.retainScrollPosition();
23339
+ if (!isNullOrUndefined(timeCells) && !isNullOrUndefined(content) && timeCells.scrollTop !== content.scrollTop) {
23340
+ timeCells.scrollTop = content.scrollTop;
23341
+ }
23277
23342
  }
23278
23343
  setContentHeight(element, leftPanelElement, height) {
23279
23344
  if (this.parent.isAdaptive && !this.isTimelineView()) {
@@ -23356,12 +23421,12 @@ class VerticalView extends ViewBase {
23356
23421
  const start = this.parent.getStartEndTime(workStartHour);
23357
23422
  const end = this.parent.getStartEndTime(workEndHour);
23358
23423
  for (const col of renderDates) {
23359
- const classList$$1 = [HEADER_CELLS_CLASS];
23424
+ const classList = [HEADER_CELLS_CLASS];
23360
23425
  if (this.isCurrentDate(col)) {
23361
- classList$$1.push(CURRENT_DAY_CLASS);
23426
+ classList.push(CURRENT_DAY_CLASS);
23362
23427
  }
23363
23428
  dateCol.push({
23364
- date: col, type: 'dateHeader', className: classList$$1, colSpan: 1,
23429
+ date: col, type: 'dateHeader', className: classList, colSpan: 1,
23365
23430
  workDays: workDays, startHour: new Date(+start), endHour: new Date(+end)
23366
23431
  });
23367
23432
  }
@@ -23515,7 +23580,7 @@ class VerticalView extends ViewBase {
23515
23580
  templateName = 'dateHeaderTemplate';
23516
23581
  const args = { date: date, type: type };
23517
23582
  const viewName = this.parent.activeViewOptions.dateHeaderTemplateName;
23518
- cntEle = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false));
23583
+ cntEle = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false, undefined, undefined, this.parent.root));
23519
23584
  }
23520
23585
  else {
23521
23586
  wrapper.innerHTML = this.parent.activeView.isTimelineView() ?
@@ -23529,7 +23594,7 @@ class VerticalView extends ViewBase {
23529
23594
  if (this.parent.activeViewOptions.timeScale.majorSlotTemplate) {
23530
23595
  templateName = 'majorSlotTemplate';
23531
23596
  const args = { date: date, type: type };
23532
- cntEle = [].slice.call(this.parent.getMajorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false));
23597
+ cntEle = [].slice.call(this.parent.getMajorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false, undefined, undefined, this.parent.root));
23533
23598
  }
23534
23599
  else {
23535
23600
  wrapper.innerHTML = `<span>${this.getTime(date)}</span>`;
@@ -23540,7 +23605,7 @@ class VerticalView extends ViewBase {
23540
23605
  if (this.parent.activeViewOptions.timeScale.minorSlotTemplate) {
23541
23606
  templateName = 'minorSlotTemplate';
23542
23607
  const args = { date: date, type: type };
23543
- cntEle = [].slice.call(this.parent.getMinorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false));
23608
+ cntEle = [].slice.call(this.parent.getMinorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false, undefined, undefined, this.parent.root));
23544
23609
  }
23545
23610
  else {
23546
23611
  cntEle = [].slice.call(wrapper.childNodes);
@@ -23551,7 +23616,7 @@ class VerticalView extends ViewBase {
23551
23616
  const viewName = this.parent.activeViewOptions.cellTemplateName;
23552
23617
  templateName = 'cellTemplate';
23553
23618
  const args = { date: date, type: type, groupIndex: groupIndex };
23554
- cntEle = [].slice.call(this.parent.getCellTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false));
23619
+ cntEle = [].slice.call(this.parent.getCellTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false, undefined, undefined, this.parent.root));
23555
23620
  }
23556
23621
  break;
23557
23622
  }
@@ -23670,7 +23735,8 @@ class VerticalView extends ViewBase {
23670
23735
  const appointmentExpandCollapse = createElement('div', {
23671
23736
  attrs: {
23672
23737
  'tabindex': '0', 'role': 'list',
23673
- title: this.parent.localeObj.getConstant('expandAllDaySection'), 'aria-disabled': 'false', 'aria-label': 'Expand section'
23738
+ title: this.parent.localeObj.getConstant('expandAllDaySection'), 'aria-disabled': 'false',
23739
+ 'aria-label': this.parent.localeObj.getConstant('expandAllDaySection')
23674
23740
  },
23675
23741
  className: ALLDAY_APPOINTMENT_SECTION_CLASS + ' ' + APPOINTMENT_ROW_EXPAND_CLASS + ' ' +
23676
23742
  ICON + ' ' + DISABLE_CLASS
@@ -23820,11 +23886,11 @@ class VerticalView extends ViewBase {
23820
23886
  ntd.setAttribute('colspan', tdData.colSpan.toString());
23821
23887
  }
23822
23888
  const clsName = this.getContentTdClass(r);
23823
- const cellDate = resetTime(tdData.date);
23889
+ let cellDate = resetTime(tdData.date);
23824
23890
  if (!this.parent.isMinMaxDate(cellDate)) {
23825
23891
  clsName.push(DISABLE_DATES);
23826
23892
  }
23827
- setTime(cellDate, getDateInMs(r.date));
23893
+ cellDate = new Date(cellDate.setHours(r.date.getHours(), r.date.getMinutes(), r.date.getSeconds(), r.date.getMilliseconds()));
23828
23894
  let type = 'workCells';
23829
23895
  if (tdData.className.indexOf(RESOURCE_PARENT_CLASS) !== -1) {
23830
23896
  clsName.push(RESOURCE_GROUP_CELLS_CLASS);
@@ -23841,7 +23907,7 @@ class VerticalView extends ViewBase {
23841
23907
  const scheduleId = this.parent.element.id + '_';
23842
23908
  const viewName = this.parent.activeViewOptions.cellTemplateName;
23843
23909
  const templateId = scheduleId + viewName + 'cellTemplate';
23844
- const tooltipTemplate = [].slice.call(this.parent.getCellTemplate()(args, this.parent, 'cellTemplate', templateId, false));
23910
+ const tooltipTemplate = [].slice.call(this.parent.getCellTemplate()(args, this.parent, 'cellTemplate', templateId, false, undefined, undefined, this.parent.root));
23845
23911
  append(tooltipTemplate, ntd);
23846
23912
  }
23847
23913
  ntd.setAttribute('data-date', cellDate.getTime().toString());
@@ -23897,10 +23963,21 @@ class VerticalView extends ViewBase {
23897
23963
  end.setMilliseconds(end.getMilliseconds() + msInterval);
23898
23964
  return end;
23899
23965
  }
23966
+ getStartEndHours(startEndTime) {
23967
+ if (!isNullOrUndefined(startEndTime) && startEndTime !== '') {
23968
+ const startEndDate = new Date(2000, 0, 0, 0);
23969
+ const timeString = startEndTime.split(':');
23970
+ if (timeString.length === 2) {
23971
+ startEndDate.setHours(parseInt(timeString[0], 10), parseInt(timeString[1], 10), 0);
23972
+ }
23973
+ return startEndDate;
23974
+ }
23975
+ return new Date(2000, 0, 0, 0);
23976
+ }
23900
23977
  getTimeSlotRows(handler) {
23901
23978
  const rows = [];
23902
- const startHour = this.getStartHour();
23903
- const endHour = this.getEndHour();
23979
+ const startHour = this.getStartEndHours(this.parent.activeViewOptions.startHour);
23980
+ const endHour = this.getStartEndHours(this.parent.activeViewOptions.endHour);
23904
23981
  const msMajorInterval = this.parent.activeViewOptions.timeScale.interval * MS_PER_MINUTE;
23905
23982
  const msInterval = msMajorInterval / this.parent.activeViewOptions.timeScale.slotCount;
23906
23983
  let length = Math.round(MS_PER_DAY / msInterval);
@@ -24214,12 +24291,12 @@ class Month extends ViewBase {
24214
24291
  const dateSlots = [];
24215
24292
  const isCurrentMonth = this.isCurrentMonth(this.parent.selectedDate);
24216
24293
  for (let col = 0; col < count; col++) {
24217
- const classList$$1 = [HEADER_CELLS_CLASS];
24294
+ const classList = [HEADER_CELLS_CLASS];
24218
24295
  const currentDateIndex = renderDates.slice(0, count).map((date) => date.getDay());
24219
24296
  if (isCurrentMonth && currentDateIndex.indexOf(this.parent.currentTimezoneDate.getDay()) === col) {
24220
- classList$$1.push(CURRENT_DAY_CLASS);
24297
+ classList.push(CURRENT_DAY_CLASS);
24221
24298
  }
24222
- dateSlots.push({ date: renderDates[parseInt(col.toString(), 10)], type: 'monthDay', className: classList$$1, colSpan: 1, workDays: workDays });
24299
+ dateSlots.push({ date: renderDates[parseInt(col.toString(), 10)], type: 'monthDay', className: classList, colSpan: 1, workDays: workDays });
24223
24300
  }
24224
24301
  return dateSlots;
24225
24302
  }
@@ -24389,7 +24466,7 @@ class Month extends ViewBase {
24389
24466
  const elementId = this.parent.element.id + '_';
24390
24467
  const viewName = this.parent.activeViewOptions.dateHeaderTemplateName;
24391
24468
  const templateId = elementId + viewName + 'dateHeaderTemplate';
24392
- const dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(cellArgs, this.parent, 'dateHeaderTemplate', templateId, false));
24469
+ const dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(cellArgs, this.parent, 'dateHeaderTemplate', templateId, false, undefined, undefined, this.parent.root));
24393
24470
  if (dateTemplate && dateTemplate.length) {
24394
24471
  append(dateTemplate, tdEle);
24395
24472
  }
@@ -24416,10 +24493,10 @@ class Month extends ViewBase {
24416
24493
  return [];
24417
24494
  }
24418
24495
  const slotDatas = [];
24419
- const prepareSlots = (rowIndex, renderDate, resData, classList$$1) => {
24496
+ const prepareSlots = (rowIndex, renderDate, resData, classList) => {
24420
24497
  const data = {
24421
24498
  date: new Date(+renderDate), groupIndex: resData.groupIndex, workDays: resData.workDays,
24422
- type: 'monthCells', className: classList$$1 || [WORK_CELLS_CLASS]
24499
+ type: 'monthCells', className: classList || [WORK_CELLS_CLASS]
24423
24500
  };
24424
24501
  if (!slotDatas[parseInt(rowIndex.toString(), 10)]) {
24425
24502
  slotDatas[parseInt(rowIndex.toString(), 10)] = [];
@@ -24557,7 +24634,7 @@ class Month extends ViewBase {
24557
24634
  const scheduleId = this.parent.element.id + '_';
24558
24635
  const viewName = this.parent.activeViewOptions.cellTemplateName;
24559
24636
  const templateId = scheduleId + viewName + 'cellTemplate';
24560
- const cellTemplate = [].slice.call(this.parent.getCellTemplate()(args, this.parent, 'cellTemplate', templateId, false));
24637
+ const cellTemplate = [].slice.call(this.parent.getCellTemplate()(args, this.parent, 'cellTemplate', templateId, false, undefined, undefined, this.parent.root));
24561
24638
  append(cellTemplate, ntd);
24562
24639
  }
24563
24640
  const args = { elementType: type, element: ntd, date: data.date, groupIndex: data.groupIndex };
@@ -24574,7 +24651,7 @@ class Month extends ViewBase {
24574
24651
  const scheduleId = this.parent.element.id + '_';
24575
24652
  const viewName = this.parent.activeViewOptions.cellHeaderTemplateName;
24576
24653
  const templateId = scheduleId + viewName + 'cellHeaderTemplate';
24577
- const cellHeaderTemplate = [].slice.call(this.parent.getCellHeaderTemplate()(args, this.parent, 'cellHeaderTemplate', templateId, false));
24654
+ const cellHeaderTemplate = [].slice.call(this.parent.getCellHeaderTemplate()(args, this.parent, 'cellHeaderTemplate', templateId, false, undefined, undefined, this.parent.root));
24578
24655
  append(cellHeaderTemplate, dateHeader);
24579
24656
  }
24580
24657
  else {
@@ -24704,7 +24781,8 @@ class Month extends ViewBase {
24704
24781
  return this.formatDateRange(this.parent.selectedDate);
24705
24782
  }
24706
24783
  getLabelText(view) {
24707
- return this.parent.localeObj.getConstant(view) + ' of ' + capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { format: 'MMMM y', calendar: this.parent.getCalendarMode() }), 'single');
24784
+ const viewStr = view.charAt(0).toLowerCase() + view.substring(1);
24785
+ return this.formatViewLabel(viewStr, this.getStartDate(), this.getEndDate());
24708
24786
  }
24709
24787
  createWeekNumberElement(text) {
24710
24788
  const tr = createElement('tr');
@@ -24859,7 +24937,7 @@ class Year extends ViewBase {
24859
24937
  else {
24860
24938
  tr.appendChild(createElement('th', { innerHTML: this.parent.getDayNames('narrow')[currentWeek.getDay()] }));
24861
24939
  }
24862
- let nextDay = new Date(currentWeek.getTime() + MS_PER_DAY);
24940
+ const nextDay = new Date(currentWeek.getTime() + MS_PER_DAY);
24863
24941
  currentWeek = nextDay.getDate() === currentWeek.getDate() ? addDays(nextDay, 1) : nextDay;
24864
24942
  }
24865
24943
  thead.appendChild(tr);
@@ -24898,18 +24976,18 @@ class Year extends ViewBase {
24898
24976
  const args = { date: date, type: 'monthCells' };
24899
24977
  this.renderTemplates(this.parent.getCellTemplate(), args, 'cellTemplate', this.parent.activeViewOptions.cellTemplateName, td);
24900
24978
  }
24901
- let classList$$1 = [];
24979
+ let classList = [];
24902
24980
  if (currentDate.getMonth() !== date.getMonth()) {
24903
- classList$$1.push(OTHERMONTH_CLASS);
24981
+ classList.push(OTHERMONTH_CLASS);
24904
24982
  if (td.firstElementChild && !this.parent.activeViewOptions.cellTemplate) {
24905
24983
  td.firstElementChild.setAttribute('aria-disabled', 'true');
24906
24984
  }
24907
24985
  }
24908
24986
  if (this.isCurrentDate(date) && currentDate.getMonth() === date.getMonth()) {
24909
- classList$$1 = classList$$1.concat(['e-today', 'e-selected']);
24987
+ classList = classList.concat(['e-today', 'e-selected']);
24910
24988
  }
24911
- if (classList$$1.length > 0) {
24912
- addClass([td], classList$$1);
24989
+ if (classList.length > 0) {
24990
+ addClass([td], classList);
24913
24991
  }
24914
24992
  tr.appendChild(td);
24915
24993
  if (currentDate.getMonth() === date.getMonth()) {
@@ -25005,7 +25083,7 @@ class Year extends ViewBase {
25005
25083
  }
25006
25084
  renderTemplates(fn, args, tName, vName, ele) {
25007
25085
  const templateId = this.parent.element.id + '_' + vName + tName;
25008
- const template = [].slice.call(fn(args, this.parent, tName, templateId, false));
25086
+ const template = [].slice.call(fn(args, this.parent, tName, templateId, false, undefined, undefined, this.parent.root));
25009
25087
  append(template, ele);
25010
25088
  }
25011
25089
  onCellClick(e) {
@@ -25222,7 +25300,7 @@ class AgendaBase extends ViewBase {
25222
25300
  const scheduleId = this.parent.element.id + '_';
25223
25301
  const viewName = this.parent.activeViewOptions.eventTemplateName;
25224
25302
  const templateId = scheduleId + viewName + 'eventTemplate';
25225
- templateEle = this.parent.getAppointmentTemplate()(listData[parseInt(li.toString(), 10)], this.parent, 'eventTemplate', templateId, false);
25303
+ templateEle = this.parent.getAppointmentTemplate()(listData[parseInt(li.toString(), 10)], this.parent, 'eventTemplate', templateId, false, undefined, undefined, this.parent.root);
25226
25304
  if (!isNullOrUndefined(listData[parseInt(li.toString(), 10)][fieldMapping.recurrenceRule])) {
25227
25305
  const iconClass = (listData[parseInt(li.toString(), 10)][fieldMapping.id] ===
25228
25306
  listData[parseInt(li.toString(), 10)][fieldMapping.recurrenceID]) ?
@@ -25522,7 +25600,7 @@ class AgendaBase extends ViewBase {
25522
25600
  const scheduleId = this.parent.element.id + '_';
25523
25601
  const viewName = this.parent.activeViewOptions.dateHeaderTemplateName;
25524
25602
  const templateId = scheduleId + viewName + 'dateHeaderTemplate';
25525
- const dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, 'dateHeaderTemplate', templateId, false));
25603
+ const dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, 'dateHeaderTemplate', templateId, false, undefined, undefined, this.parent.root));
25526
25604
  append(dateTemplate, dateHeader);
25527
25605
  }
25528
25606
  else {
@@ -26607,11 +26685,11 @@ class TimelineMonth extends Month {
26607
26685
  getDateSlots(renderDates, workDays) {
26608
26686
  const dateSlots = [];
26609
26687
  for (const col of renderDates) {
26610
- const classList$$1 = [HEADER_CELLS_CLASS];
26688
+ const classList = [HEADER_CELLS_CLASS];
26611
26689
  if (this.isCurrentDate(col)) {
26612
- classList$$1.push(CURRENT_DAY_CLASS);
26690
+ classList.push(CURRENT_DAY_CLASS);
26613
26691
  }
26614
- dateSlots.push({ date: col, type: 'dateHeader', className: classList$$1, colSpan: 1, workDays: workDays });
26692
+ dateSlots.push({ date: col, type: 'dateHeader', className: classList, colSpan: 1, workDays: workDays });
26615
26693
  }
26616
26694
  return dateSlots;
26617
26695
  }
@@ -26958,15 +27036,15 @@ class TimelineYear extends Year {
26958
27036
  });
26959
27037
  if (isDateAvail) {
26960
27038
  const tds = [td];
26961
- const classList$$1 = [];
27039
+ const classList = [];
26962
27040
  if (this.parent.activeViewOptions.workDays.indexOf(date.getDay()) > -1) {
26963
- classList$$1.push(WORKDAY_CLASS);
27041
+ classList.push(WORKDAY_CLASS);
26964
27042
  }
26965
27043
  if (!this.parent.isMinMaxDate(date)) {
26966
27044
  addClass([td], DISABLE_DATES);
26967
27045
  }
26968
27046
  if (this.isCurrentDate(date)) {
26969
- classList$$1.push(CURRENT_DAY_CLASS);
27047
+ classList.push(CURRENT_DAY_CLASS);
26970
27048
  if (this.parent.activeViewOptions.orientation === 'Horizontal') {
26971
27049
  tds.push(this.element.querySelector('.' + HEADER_CELLS_CLASS + `:nth-child(${column + 1})`));
26972
27050
  }
@@ -26974,8 +27052,8 @@ class TimelineYear extends Year {
26974
27052
  tds.push(this.element.querySelectorAll('.' + MONTH_HEADER_CLASS).item(month));
26975
27053
  }
26976
27054
  }
26977
- if (classList$$1.length > 0) {
26978
- addClass(tds, classList$$1);
27055
+ if (classList.length > 0) {
27056
+ addClass(tds, classList);
26979
27057
  }
26980
27058
  }
26981
27059
  else {
@@ -27019,14 +27097,14 @@ class TimelineYear extends Year {
27019
27097
  let monthDate = new Date(this.parent.selectedDate.getFullYear(), monthCells[parseInt(row.toString(), 10)], 1);
27020
27098
  let date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
27021
27099
  for (let month = 0; month < this.columnCount; month++) {
27022
- let classList$$1 = [];
27100
+ let classList = [];
27023
27101
  const groupIndex = resData.groupIndex;
27024
- classList$$1 = classList$$1.concat(resData.className);
27025
- if (classList$$1.indexOf(RESOURCE_PARENT_CLASS) > -1) {
27026
- classList$$1.push(RESOURCE_GROUP_CELLS_CLASS);
27102
+ classList = classList.concat(resData.className);
27103
+ if (classList.indexOf(RESOURCE_PARENT_CLASS) > -1) {
27104
+ classList.push(RESOURCE_GROUP_CELLS_CLASS);
27027
27105
  }
27028
27106
  else {
27029
- classList$$1.push(WORKDAY_CLASS);
27107
+ classList.push(WORKDAY_CLASS);
27030
27108
  }
27031
27109
  monthDate = new Date(this.parent.selectedDate.getFullYear(), monthCells[parseInt(month.toString(), 10)], 1);
27032
27110
  date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
@@ -27037,7 +27115,7 @@ class TimelineYear extends Year {
27037
27115
  'data-date': date.getTime().toString()
27038
27116
  }
27039
27117
  });
27040
- addClass([tdELe], classList$$1);
27118
+ addClass([tdELe], classList);
27041
27119
  tdELe.setAttribute('data-group-index', groupIndex.toString());
27042
27120
  this.renderCellTemplate({ date: date, type: 'resourceGroupCells', groupIndex: groupIndex }, tdELe);
27043
27121
  this.wireEvents(tdELe);
@@ -27075,23 +27153,23 @@ class TimelineYear extends Year {
27075
27153
  monthTr.appendChild(monthTd);
27076
27154
  }
27077
27155
  for (let month = 0; month < this.columnCount; month++) {
27078
- let classList$$1 = [];
27156
+ let classList = [];
27079
27157
  let groupIndex;
27080
27158
  if (this.parent.activeViewOptions.orientation === 'Vertical') {
27081
27159
  groupIndex = resData.groupIndex;
27082
- classList$$1 = classList$$1.concat(resData.className);
27083
- if (classList$$1.indexOf(RESOURCE_PARENT_CLASS) > -1) {
27084
- classList$$1.push(RESOURCE_GROUP_CELLS_CLASS);
27160
+ classList = classList.concat(resData.className);
27161
+ if (classList.indexOf(RESOURCE_PARENT_CLASS) > -1) {
27162
+ classList.push(RESOURCE_GROUP_CELLS_CLASS);
27085
27163
  }
27086
27164
  else {
27087
- classList$$1.push(WORKDAY_CLASS);
27165
+ classList.push(WORKDAY_CLASS);
27088
27166
  }
27089
27167
  monthDate = new Date(this.parent.selectedDate.getFullYear(), months[parseInt(month.toString(), 10)], 1);
27090
27168
  date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
27091
27169
  }
27092
27170
  else {
27093
27171
  groupIndex = this.colLevels.slice(-1)[0][parseInt(month.toString(), 10)].groupIndex;
27094
- classList$$1.push(WORKDAY_CLASS);
27172
+ classList.push(WORKDAY_CLASS);
27095
27173
  }
27096
27174
  const startDateText = this.parent.globalize.formatDate(date, { type: 'dateTime', skeleton: 'full', calendar: this.parent.getCalendarMode() });
27097
27175
  const endDateText = this.parent.globalize.formatDate(this.parent.calendarUtil.getMonthEndDate(new Date(monthDate.getTime())), { type: 'dateTime', skeleton: 'full', calendar: this.parent.getCalendarMode() });
@@ -27103,7 +27181,7 @@ class TimelineYear extends Year {
27103
27181
  'aria-label': startDateText + ' ' + this.parent.localeObj.getConstant('endAt') + ' ' + endDateText
27104
27182
  }
27105
27183
  });
27106
- addClass([td], classList$$1);
27184
+ addClass([td], classList);
27107
27185
  td.setAttribute('data-group-index', groupIndex.toString());
27108
27186
  this.renderCellTemplate({ date: date, type: 'resourceGroupCells', groupIndex: groupIndex }, td);
27109
27187
  this.wireEvents(td);
@@ -27121,10 +27199,10 @@ class TimelineYear extends Year {
27121
27199
  const monthId = `schedule_${this.parent.activeViewOptions.dayHeaderTemplateName}monthHeaderTemplate`;
27122
27200
  if (type === 'dayHeaderTemplate') {
27123
27201
  args.day = this.parent.getDayNames('wide')[column % 7];
27124
- return [].slice.call(this.parent.getDayHeaderTemplate()(args, this.parent, 'dayHeaderTemplate', dayId, false));
27202
+ return [].slice.call(this.parent.getDayHeaderTemplate()(args, this.parent, 'dayHeaderTemplate', dayId, false, undefined, undefined, this.parent.root));
27125
27203
  }
27126
27204
  else {
27127
- return [].slice.call(this.parent.getMonthHeaderTemplate()(args, this.parent, 'monthHeaderTemplate', monthId, false));
27205
+ return [].slice.call(this.parent.getMonthHeaderTemplate()(args, this.parent, 'monthHeaderTemplate', monthId, false, undefined, undefined, this.parent.root));
27128
27206
  }
27129
27207
  }
27130
27208
  renderCellTemplate(data, td) {
@@ -27138,7 +27216,7 @@ class TimelineYear extends Year {
27138
27216
  const scheduleId = this.parent.element.id + '_';
27139
27217
  const viewName = this.parent.activeViewOptions.cellTemplateName;
27140
27218
  const templateId = scheduleId + viewName + 'cellTemplate';
27141
- const cellTemplate = [].slice.call(this.parent.getCellTemplate()(args, this.parent, 'cellTemplate', templateId, false));
27219
+ const cellTemplate = [].slice.call(this.parent.getCellTemplate()(args, this.parent, 'cellTemplate', templateId, false, undefined, undefined, this.parent.root));
27142
27220
  append(cellTemplate, td);
27143
27221
  }
27144
27222
  scrollToDate(scrollDate) {
@@ -27373,8 +27451,7 @@ class ICalendarImport {
27373
27451
  else {
27374
27452
  newlineOffset = 1;
27375
27453
  }
27376
- // eslint-disable-next-line security/detect-object-injection
27377
- const firstChar = iCalString[lastPosition];
27454
+ const firstChar = iCalString.charAt(lastPosition);
27378
27455
  if (firstChar === ' ' || firstChar === '\n' || firstChar === '\t') {
27379
27456
  iString += iCalString.slice(lastPosition + 1, position - newlineOffset);
27380
27457
  }
@@ -27721,8 +27798,9 @@ class Print {
27721
27798
  Schedule.Inject(Day, Week, WorkWeek, Month, Agenda, MonthAgenda, TimelineViews, TimelineMonth, Year, TimelineYear);
27722
27799
  this.printInstance = new Schedule(this.getPrintScheduleModel(printOptions));
27723
27800
  this.printInstance.isPrinting = true;
27801
+ this.printInstance.root = this.parent.root ? this.parent.root : this.parent;
27724
27802
  this.printInstance.appendTo(element);
27725
- this.printInstance.on(print$1, this.contentReady, this);
27803
+ this.printInstance.on(print, this.contentReady, this);
27726
27804
  this.printWindow = window.open('', 'print', 'height=' + window.outerHeight + ',width=' + window.outerWidth + ',tabbar=no');
27727
27805
  this.printWindow.moveTo(0, 0);
27728
27806
  this.printWindow.resizeTo(screen.availWidth, screen.availHeight);
@@ -27753,7 +27831,7 @@ class Print {
27753
27831
  eventSettings.dataSource = this.parent.eventsData;
27754
27832
  const eventTemplate = !isNullOrUndefined(printOptions.eventSettings) &&
27755
27833
  !isNullOrUndefined(printOptions.eventSettings.template) ? printOptions.eventSettings.template : eventSettings.template;
27756
- eventSettings.template = typeof (eventTemplate) === 'function' ? null : eventTemplate;
27834
+ eventSettings.template = !this.parent.isAngular && typeof (eventTemplate) === 'function' ? null : eventTemplate;
27757
27835
  printModel.eventSettings = eventSettings;
27758
27836
  break;
27759
27837
  }
@@ -27764,13 +27842,15 @@ class Print {
27764
27842
  break;
27765
27843
  case 'timeScale':
27766
27844
  timeScale = isNullOrUndefined(printOptions.timeScale) ? this.parent.timeScale : printOptions.timeScale;
27767
- timeScale.majorSlotTemplate = typeof (timeScale.majorSlotTemplate) === 'function' ? null : timeScale.majorSlotTemplate;
27768
- timeScale.minorSlotTemplate = typeof (timeScale.minorSlotTemplate) === 'function' ? null : timeScale.minorSlotTemplate;
27769
- printOptions.timeScale = timeScale;
27845
+ if (!this.parent.isAngular) {
27846
+ timeScale.majorSlotTemplate = typeof (timeScale.majorSlotTemplate) === 'function' ? null : timeScale.majorSlotTemplate;
27847
+ timeScale.minorSlotTemplate = typeof (timeScale.minorSlotTemplate) === 'function' ? null : timeScale.minorSlotTemplate;
27848
+ }
27849
+ printModel.timeScale = timeScale;
27770
27850
  break;
27771
27851
  case 'views':
27772
27852
  views = isNullOrUndefined(printOptions.views) ? this.parent.views : printOptions.views;
27773
- if (views && views.length > 0 && typeof (views[0]) === 'object') {
27853
+ if (!this.parent.isAngular && views && views.length > 0 && typeof (views[0]) === 'object') {
27774
27854
  for (const view of views) {
27775
27855
  scheduleTemplates.forEach((x) => {
27776
27856
  if (!isNullOrUndefined(view[`${x}`])) {
@@ -27784,8 +27864,8 @@ class Print {
27784
27864
  default:
27785
27865
  if (scheduleTemplates.indexOf(key) > -1) {
27786
27866
  printModel[`${key}`] = isNullOrUndefined(printOptions[`${key}`]) ?
27787
- (typeof (this.parent[`${key}`]) === 'function' ? null : this.parent[`${key}`]) :
27788
- (typeof (printOptions[`${key}`]) === 'function' ? null : printOptions[`${key}`]);
27867
+ (!this.parent.isAngular && typeof (this.parent[`${key}`]) === 'function' ? null : this.parent[`${key}`]) :
27868
+ (!this.parent.isAngular && typeof (printOptions[`${key}`]) === 'function' ? null : printOptions[`${key}`]);
27789
27869
  break;
27790
27870
  }
27791
27871
  if (scheduleEvents.indexOf(key) > -1) {
@@ -27800,9 +27880,9 @@ class Print {
27800
27880
  return printModel;
27801
27881
  }
27802
27882
  contentReady() {
27803
- this.printWindow = print(this.printInstance.element, this.printWindow);
27883
+ this.printWindow = print$1(this.printInstance.element, this.printWindow);
27804
27884
  this.printWindow.onbeforeunload = () => {
27805
- this.printInstance.off(print$1, this.contentReady);
27885
+ this.printInstance.off(print, this.contentReady);
27806
27886
  this.printInstance.element.remove();
27807
27887
  this.printInstance.destroy();
27808
27888
  this.printInstance = null;
@@ -27817,25 +27897,5 @@ class Print {
27817
27897
  }
27818
27898
  }
27819
27899
 
27820
- /**
27821
- * Exporting modules
27822
- */
27823
-
27824
- /**
27825
- * Schedule component exported items
27826
- */
27827
-
27828
- /**
27829
- * Recurrence-Editor component exported items
27830
- */
27831
-
27832
- /**
27833
- * Calendar util exported items
27834
- */
27835
-
27836
- /**
27837
- * Export Schedule components
27838
- */
27839
-
27840
- export { Schedule, cellClick, cellDoubleClick, moreEventsClick, select, hover, actionBegin, actionComplete, actionFailure, navigating, renderCell, eventClick, eventDoubleClick, eventRendered, dataBinding, dataBound, popupOpen, popupClose, dragStart, drag, dragStop, resizeStart, resizing, resizeStop, inlineClick, cellSelect, virtualScrollStart, virtualScrollStop, initialLoad, initialEnd, print$1 as print, dataReady, eventsLoaded, contentReady, scroll, virtualScroll, scrollUiUpdate, uiUpdate, documentClick, cellMouseDown, WEEK_LENGTH, DEFAULT_WEEKS, MS_PER_DAY, MS_PER_MINUTE, getElementHeightFromClass, getElementWidthFromClass, getTranslateY, getTranslateX, getWeekFirstDate, getWeekLastDate, firstDateOfMonth, lastDateOfMonth, getWeekNumber, getWeekMiddleDate, setTime, resetTime, getDateInMs, getDateCount, addDays, addMonths, addYears, getStartEndHours, getMaxDays, getDaysCount, getDateFromString, getScrollBarWidth, resetScrollbarWidth, findIndexInData, getOuterHeight, removeChildren, isDaylightSavingTime, getUniversalTime, isMobile, isIPadDevice, capitalizeFirstWord, getElementWidth, getElementHeight, getElementTop, Resize, DragAndDrop, HeaderRenderer, ViewBase, Day, Week, WorkWeek, Month, Year, Agenda, MonthAgenda, TimelineViews, TimelineMonth, TimelineYear, Timezone, timezoneData, ICalendarExport, ICalendarImport, ExcelExport, Print, RecurrenceEditor, generateSummary, generate, getDateFromRecurrenceDateString, extractObjectFromRule, getCalendarUtil, getRecurrenceStringFromDate, Gregorian, Islamic };
27900
+ export { Agenda, DEFAULT_WEEKS, Day, DragAndDrop, ExcelExport, Gregorian, HeaderRenderer, ICalendarExport, ICalendarImport, Islamic, MS_PER_DAY, MS_PER_MINUTE, Month, MonthAgenda, Print, RecurrenceEditor, Resize, Schedule, TimelineMonth, TimelineViews, TimelineYear, Timezone, ViewBase, WEEK_LENGTH, Week, WorkWeek, Year, actionBegin, actionComplete, actionFailure, addDays, addMonths, addYears, capitalizeFirstWord, cellClick, cellDoubleClick, cellMouseDown, cellSelect, contentReady, dataBinding, dataBound, dataReady, documentClick, drag, dragStart, dragStop, eventClick, eventDoubleClick, eventRendered, eventsLoaded, extractObjectFromRule, findIndexInData, firstDateOfMonth, generate, generateSummary, getCalendarUtil, getDateCount, getDateFromRecurrenceDateString, getDateFromString, getDateInMs, getDaysCount, getElementHeight, getElementHeightFromClass, getElementTop, getElementWidth, getElementWidthFromClass, getMaxDays, getOuterHeight, getRecurrenceStringFromDate, getScrollBarWidth, getStartEndHours, getTranslateX, getTranslateY, getUniversalTime, getWeekFirstDate, getWeekLastDate, getWeekMiddleDate, getWeekNumber, hover, initialEnd, initialLoad, inlineClick, isDaylightSavingTime, isIPadDevice, isMobile, lastDateOfMonth, moreEventsClick, navigating, popupClose, popupOpen, print, removeChildren, renderCell, resetScrollbarWidth, resetTime, resizeStart, resizeStop, resizing, scroll, scrollUiUpdate, select, setTime, timezoneData, uiUpdate, virtualScroll, virtualScrollStart, virtualScrollStop };
27841
27901
  //# sourceMappingURL=ej2-schedule.es2015.js.map