@syncfusion/ej2-schedule 26.1.35 → 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 (36) hide show
  1. package/dist/ej2-schedule.min.js +2 -2
  2. package/dist/ej2-schedule.umd.min.js +2 -2
  3. package/dist/ej2-schedule.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-schedule.es2015.js +106 -45
  5. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es5.js +105 -44
  7. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  8. package/dist/global/ej2-schedule.min.js +2 -2
  9. package/dist/global/ej2-schedule.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +11 -11
  12. package/src/schedule/actions/crud.js +3 -1
  13. package/src/schedule/actions/resize.js +5 -0
  14. package/src/schedule/base/schedule.js +6 -3
  15. package/src/schedule/event-renderer/agenda-base.js +2 -2
  16. package/src/schedule/event-renderer/event-base.js +1 -1
  17. package/src/schedule/event-renderer/month.js +2 -1
  18. package/src/schedule/event-renderer/timeline-view.js +6 -1
  19. package/src/schedule/event-renderer/vertical-view.js +4 -4
  20. package/src/schedule/event-renderer/year.js +1 -1
  21. package/src/schedule/exports/print.js +10 -7
  22. package/src/schedule/popups/quick-popups.js +1 -1
  23. package/src/schedule/renderer/header-renderer.js +1 -1
  24. package/src/schedule/renderer/month.js +5 -4
  25. package/src/schedule/renderer/renderer.js +8 -2
  26. package/src/schedule/renderer/timeline-year.js +3 -3
  27. package/src/schedule/renderer/vertical-view.d.ts +1 -0
  28. package/src/schedule/renderer/vertical-view.js +21 -9
  29. package/src/schedule/renderer/view-base.d.ts +1 -0
  30. package/src/schedule/renderer/view-base.js +25 -2
  31. package/src/schedule/renderer/year.js +1 -1
  32. package/styles/fluent2.css +64 -49
  33. package/styles/recurrence-editor/fluent2.css +30 -30
  34. package/styles/schedule/_fluent2-definition.scss +3 -3
  35. package/styles/schedule/_theme.scss +4 -0
  36. package/styles/schedule/fluent2.css +64 -49
@@ -1188,7 +1188,7 @@ var HeaderRenderer = /** @__PURE__ @class */ (function () {
1188
1188
  };
1189
1189
  var viewName = this.parent.activeViewOptions.dateRangeTemplateName;
1190
1190
  var templateId = this.parent.element.id + '_' + viewName + 'dateRangeTemplate';
1191
- var dateTemplate = [].slice.call(this.parent.getDateRangeTemplate()(args, this.parent, 'dateRangeTemplate', templateId, false));
1191
+ var dateTemplate = [].slice.call(this.parent.getDateRangeTemplate()(args, this.parent, 'dateRangeTemplate', templateId, false, undefined, undefined, this.parent.root));
1192
1192
  append(dateTemplate, textEle);
1193
1193
  }
1194
1194
  else {
@@ -6617,7 +6617,7 @@ var EventBase = /** @__PURE__ @class */ (function () {
6617
6617
  var templateId = scheduleId + viewName + 'eventTemplate';
6618
6618
  var templateName = isResourceEventTemplate && this.parent.currentView.indexOf('Year') === -1 ?
6619
6619
  this.parent.getEventTemplateName(resIndex) : 'eventTemplate';
6620
- templateElement = this.parent.getAppointmentTemplate()(record, this.parent, templateName, templateId, false);
6620
+ templateElement = this.parent.getAppointmentTemplate()(record, this.parent, templateName, templateId, false, undefined, undefined, this.parent.root);
6621
6621
  }
6622
6622
  else {
6623
6623
  var appointmentSubject = createElement('div', { className: SUBJECT_CLASS });
@@ -7221,7 +7221,7 @@ var VerticalEvent = /** @__PURE__ @class */ (function (_super) {
7221
7221
  var templateId = elementId + viewName + 'eventTemplate';
7222
7222
  var resIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex : resource;
7223
7223
  var templateName = this.isResourceEventTemplate ? this.parent.getEventTemplateName(resIndex) : 'eventTemplate';
7224
- templateElement = this.parent.getAppointmentTemplate()(record, this.parent, templateName, templateId, false);
7224
+ templateElement = this.parent.getAppointmentTemplate()(record, this.parent, templateName, templateId, false, undefined, undefined, this.parent.root);
7225
7225
  }
7226
7226
  else {
7227
7227
  var appointmentSubject = createElement('div', { className: SUBJECT_CLASS });
@@ -7436,7 +7436,7 @@ var VerticalEvent = /** @__PURE__ @class */ (function (_super) {
7436
7436
  }
7437
7437
  if (eStart <= eEnd && isValidEvent && this.isWorkDayAvailable(resource, eStart)) {
7438
7438
  var appHeight = this.getHeight(eStart, eEnd);
7439
- if (eStart.getTime() > schedule.startHour.getTime()) {
7439
+ if (eStart.getTime() >= schedule.startHour.getTime()) {
7440
7440
  topValue = this.getTopValue(eStart, dayIndex, resource);
7441
7441
  }
7442
7442
  var appIndex = this.getOverlapIndex(record, dayIndex, false, resource);
@@ -7703,12 +7703,12 @@ var VerticalEvent = /** @__PURE__ @class */ (function (_super) {
7703
7703
  var rowHeight;
7704
7704
  if (this.parent.uiStateValues.expand) {
7705
7705
  target.setAttribute('title', this.parent.localeObj.getConstant('collapseAllDaySection'));
7706
- target.setAttribute('aria-label', 'Collapse section');
7706
+ target.setAttribute('aria-label', this.parent.localeObj.getConstant('collapseAllDaySection'));
7707
7707
  rowHeight = ((this.allDayLevel + 1) * this.getEventHeight()) + 4;
7708
7708
  }
7709
7709
  else {
7710
7710
  target.setAttribute('title', this.parent.localeObj.getConstant('expandAllDaySection'));
7711
- target.setAttribute('aria-label', 'Expand section');
7711
+ target.setAttribute('aria-label', this.parent.localeObj.getConstant('expandAllDaySection'));
7712
7712
  rowHeight = (3 * this.getEventHeight()) + 4;
7713
7713
  this.parent.element.querySelector('.' + DATE_HEADER_WRAP_CLASS).scrollTop = 0;
7714
7714
  }
@@ -8141,7 +8141,7 @@ var MonthEvent = /** @__PURE__ @class */ (function (_super) {
8141
8141
  var viewName = this.parent.activeViewOptions.eventTemplateName;
8142
8142
  var templateId = scheduleId + viewName + 'eventTemplate';
8143
8143
  var eventTemplate = this.isResourceEventTemplate ? this.parent.getEventTemplateName(resIndex) : 'eventTemplate';
8144
- templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, eventTemplate, templateId, false);
8144
+ templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, eventTemplate, templateId, false, undefined, undefined, this.parent.root);
8145
8145
  }
8146
8146
  else {
8147
8147
  var eventLocation = (record[this.fields.location] || this.parent.eventSettings.fields.location.default || '');
@@ -8270,6 +8270,7 @@ var MonthEvent = /** @__PURE__ @class */ (function (_super) {
8270
8270
  if (indicator) {
8271
8271
  var count = parseInt(indicator.getAttribute('data-count'), 10) + 1;
8272
8272
  indicator.setAttribute('data-count', count.toString());
8273
+ indicator.setAttribute('aria-label', count + ' ' + this.parent.localeObj.getConstant('moreEvents'));
8273
8274
  indicator.innerHTML = this.getMoreIndicatorText(count);
8274
8275
  }
8275
8276
  else {
@@ -8905,8 +8906,13 @@ var TimelineEvent = /** @__PURE__ @class */ (function (_super) {
8905
8906
  }
8906
8907
  };
8907
8908
  TimelineEvent.prototype.getSameDayEventsWidth = function (startDate, endDate) {
8909
+ var intervalMins = this.interval;
8910
+ if (this.slotsPerDay === 1) {
8911
+ var hoursRange = getStartEndHours(resetTime(new Date(startDate.getTime())), this.startHour, this.endHour);
8912
+ intervalMins = (hoursRange.endHour.getTime() - hoursRange.startHour.getTime()) / MS_PER_MINUTE;
8913
+ }
8908
8914
  return ((getUniversalTime(endDate) - getUniversalTime(startDate)) /
8909
- MS_PER_MINUTE * (this.cellWidth * this.slotCount) / this.interval);
8915
+ MS_PER_MINUTE * (this.cellWidth * this.slotCount) / intervalMins);
8910
8916
  };
8911
8917
  TimelineEvent.prototype.getSpannedEventsWidth = function (startDate, endDate, diffInDays) {
8912
8918
  var width = (diffInDays * this.slotsPerDay) * this.cellWidth;
@@ -9708,7 +9714,7 @@ var QuickPopups = /** @__PURE__ @class */ (function () {
9708
9714
  var templateElement = void 0;
9709
9715
  if (!isNullOrUndefined(this_1.parent.activeViewOptions.eventTemplate)) {
9710
9716
  var tempId = this_1.parent.element.id + '_' + this_1.parent.activeViewOptions.eventTemplateName + 'eventTemplate';
9711
- templateElement = this_1.parent.getAppointmentTemplate()(eventData, this_1.parent, 'eventTemplate', tempId, false);
9717
+ templateElement = this_1.parent.getAppointmentTemplate()(eventData, this_1.parent, 'eventTemplate', tempId, false, undefined, undefined, this_1.parent.root);
9712
9718
  append(templateElement, appointmentElement);
9713
9719
  }
9714
9720
  else {
@@ -14694,9 +14700,15 @@ var Render = /** @__PURE__ @class */ (function () {
14694
14700
  }
14695
14701
  };
14696
14702
  Render.prototype.updateLabelText = function (view) {
14697
- var content = this.parent.activeView.getLabelText(view);
14698
14703
  this.parent.element.setAttribute('role', 'application');
14699
- this.parent.element.setAttribute('aria-label', content);
14704
+ this.parent.element.removeAttribute('aria-labelledby');
14705
+ this.parent.element.removeAttribute('aria-label');
14706
+ if (view === 'Year') {
14707
+ this.parent.element.setAttribute('aria-label', this.parent.activeView.getLabelText(view));
14708
+ }
14709
+ else {
14710
+ this.parent.element.setAttribute('aria-labelledby', this.parent.element.id + '_table');
14711
+ }
14700
14712
  };
14701
14713
  return Render;
14702
14714
  }());
@@ -14919,7 +14931,9 @@ var Crud = /** @__PURE__ @class */ (function () {
14919
14931
  _this.parent.trigger(dataBound, null, function () {
14920
14932
  _this.parent.hideSpinner();
14921
14933
  if (_this.parent.isPrinting) {
14922
- _this.parent.notify(print, {});
14934
+ setTimeout(function () {
14935
+ _this.parent.notify(print, {});
14936
+ }, 100);
14923
14937
  }
14924
14938
  });
14925
14939
  });
@@ -18021,6 +18035,7 @@ var Schedule = /** @__PURE__ @class */ (function (_super) {
18021
18035
  subject: 'Subject',
18022
18036
  addTitle: 'Add title',
18023
18037
  moreDetails: 'More Details',
18038
+ moreEvents: 'More Events',
18024
18039
  save: 'Save',
18025
18040
  editContent: 'How would you like to change the appointment in the series?',
18026
18041
  deleteContent: 'Are you sure you want to delete this event?',
@@ -18055,6 +18070,7 @@ var Schedule = /** @__PURE__ @class */ (function (_super) {
18055
18070
  ok: 'Ok',
18056
18071
  yes: 'Yes',
18057
18072
  no: 'No',
18073
+ of: 'of',
18058
18074
  occurrence: 'Occurrence',
18059
18075
  series: 'Series',
18060
18076
  previous: 'Previous',
@@ -18626,7 +18642,7 @@ var Schedule = /** @__PURE__ @class */ (function (_super) {
18626
18642
  var scheduleId = this.element.id + '_';
18627
18643
  var viewName = this.activeViewOptions.headerIndentTemplateName;
18628
18644
  var templateId = scheduleId + viewName + 'headerIndentTemplate';
18629
- var indentTemplate = [].slice.call(this.getHeaderIndentTemplate()(data, this, 'headerIndentTemplate', templateId, false));
18645
+ var indentTemplate = [].slice.call(this.getHeaderIndentTemplate()(data, this, 'headerIndentTemplate', templateId, false, undefined, undefined, this.root));
18630
18646
  append(indentTemplate, td);
18631
18647
  }
18632
18648
  };
@@ -19158,8 +19174,9 @@ var Schedule = /** @__PURE__ @class */ (function (_super) {
19158
19174
  }
19159
19175
  var msMajorInterval = this.activeViewOptions.timeScale.interval * MS_PER_MINUTE;
19160
19176
  var msInterval = msMajorInterval / this.activeViewOptions.timeScale.slotCount;
19161
- var startIndex = Math.round((startHour.getTime() - viewStartHour.getTime()) / msInterval);
19162
- var endIndex = Math.ceil((endHour.getTime() - viewStartHour.getTime()) / msInterval);
19177
+ var offsetDiff = ((viewStartHour.getTimezoneOffset() - startHour.getTimezoneOffset()) * MS_PER_MINUTE);
19178
+ var startIndex = Math.round((startHour.getTime() - viewStartHour.getTime() + offsetDiff) / msInterval);
19179
+ var endIndex = Math.ceil((endHour.getTime() - viewStartHour.getTime() + offsetDiff) / msInterval);
19163
19180
  var tempStartIndex = startIndex;
19164
19181
  var tempEndIndex = endIndex;
19165
19182
  var cells = [];
@@ -20903,6 +20920,11 @@ var Resize = /** @__PURE__ @class */ (function (_super) {
20903
20920
  }
20904
20921
  var viewElement = _this.parent.element.querySelector('.' + CONTENT_WRAP_CLASS);
20905
20922
  _this.scrollArgs = { element: viewElement, width: viewElement.scrollWidth, height: viewElement.scrollHeight };
20923
+ // 883565 - To fix the resizing not working issue at the last column of the timeline view
20924
+ if (['Month', 'TimelineYear'].indexOf(_this.parent.currentView) < 0) {
20925
+ var scrollWidth = Math.round(_this.scrollArgs.width / _this.actionObj.cellWidth) * _this.actionObj.cellWidth;
20926
+ _this.scrollArgs.width = _this.scrollArgs.width < scrollWidth ? scrollWidth : _this.scrollArgs.width;
20927
+ }
20906
20928
  EventHandler.add(document, Browser.touchMoveEvent, _this.resizing, _this);
20907
20929
  EventHandler.add(document, Browser.touchEndEvent, _this.resizeStop, _this);
20908
20930
  });
@@ -21878,7 +21900,7 @@ var YearEvent = /** @__PURE__ @class */ (function (_super) {
21878
21900
  var eventObj = extend({}, record, null, true);
21879
21901
  if (this.parent.activeViewOptions.eventTemplate) {
21880
21902
  var templateId = this.parent.element.id + '_' + this.parent.activeViewOptions.eventTemplateName + 'eventTemplate';
21881
- templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, 'eventTemplate', templateId, false);
21903
+ templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, 'eventTemplate', templateId, false, undefined, undefined, this.parent.root);
21882
21904
  }
21883
21905
  else {
21884
21906
  var locationEle = (record[this.fields.location] || this.parent.eventSettings.fields.location.default || '');
@@ -23469,6 +23491,9 @@ var ViewBase = /** @__PURE__ @class */ (function () {
23469
23491
  };
23470
23492
  ViewBase.prototype.setAriaAttributes = function (table) {
23471
23493
  table.setAttribute('role', 'grid');
23494
+ if (this.parent.currentView !== 'Year') {
23495
+ table.setAttribute('id', this.parent.element.id + '_table');
23496
+ }
23472
23497
  table.setAttribute('aria-label', this.getLabelText(this.parent.currentView));
23473
23498
  };
23474
23499
  ViewBase.prototype.createColGroup = function (table, lastRow) {
@@ -23716,9 +23741,29 @@ var ViewBase = /** @__PURE__ @class */ (function () {
23716
23741
  var weekLength = type === 'next' ? WEEK_LENGTH : -WEEK_LENGTH;
23717
23742
  return addDays(this.parent.selectedDate, weekLength * this.parent.activeViewOptions.interval);
23718
23743
  };
23744
+ ViewBase.prototype.formatViewLabel = function (view, startDate, endDate) {
23745
+ var formatOptions = { type: 'date', skeleton: 'full', calendar: this.parent.getCalendarMode() };
23746
+ return this.parent.localeObj.getConstant(view) + ' ' + this.parent.localeObj.getConstant('start') + ' ' + this.parent.globalize.formatDate(startDate, formatOptions) + ' '
23747
+ + this.parent.localeObj.getConstant('endAt') + ' ' + this.parent.globalize.formatDate(endDate, formatOptions);
23748
+ };
23719
23749
  ViewBase.prototype.getLabelText = function (view) {
23720
23750
  var viewStr = view.charAt(0).toLowerCase() + view.substring(1);
23721
- return this.parent.localeObj.getConstant(viewStr) + ' of ' + capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { skeleton: 'long', calendar: this.parent.getCalendarMode() }), 'single');
23751
+ if (view === 'Year' || view === 'TimelineYear') {
23752
+ return this.formatViewLabel(viewStr, this.parent.activeView.getStartDate(), this.parent.activeView.getEndDate());
23753
+ }
23754
+ else {
23755
+ if (this.renderDates.length > 0) {
23756
+ if (this.parent.currentView === 'Day' || this.parent.currentView === 'TimelineDay') {
23757
+ return this.parent.localeObj.getConstant(viewStr) + ' of ' + capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { type: 'date', skeleton: 'full', calendar: this.parent.getCalendarMode() }), 'single');
23758
+ }
23759
+ else {
23760
+ return this.formatViewLabel(viewStr, this.renderDates[0], this.renderDates[this.renderDates.length - 1]);
23761
+ }
23762
+ }
23763
+ else {
23764
+ return '';
23765
+ }
23766
+ }
23722
23767
  };
23723
23768
  ViewBase.prototype.getDateRangeText = function () {
23724
23769
  if (this.parent.isAdaptive) {
@@ -23809,7 +23854,7 @@ var ViewBase = /** @__PURE__ @class */ (function () {
23809
23854
  var scheduleId = this.parent.element.id + '_';
23810
23855
  var viewName = this.parent.activeViewOptions.resourceHeaderTemplateName;
23811
23856
  var templateId = scheduleId + viewName + 'resourceHeaderTemplate';
23812
- var quickTemplate = [].slice.call(this.parent.getResourceHeaderTemplate()(data, this.parent, 'resourceHeaderTemplate', templateId, false));
23857
+ var quickTemplate = [].slice.call(this.parent.getResourceHeaderTemplate()(data, this.parent, 'resourceHeaderTemplate', templateId, false, undefined, undefined, this.parent.root));
23813
23858
  append(quickTemplate, tdElement);
23814
23859
  }
23815
23860
  else {
@@ -24362,7 +24407,7 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
24362
24407
  templateName = 'dateHeaderTemplate';
24363
24408
  var args = { date: date, type: type };
24364
24409
  var viewName = this.parent.activeViewOptions.dateHeaderTemplateName;
24365
- cntEle = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false));
24410
+ cntEle = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false, undefined, undefined, this.parent.root));
24366
24411
  }
24367
24412
  else {
24368
24413
  wrapper.innerHTML = this.parent.activeView.isTimelineView() ?
@@ -24376,7 +24421,7 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
24376
24421
  if (this.parent.activeViewOptions.timeScale.majorSlotTemplate) {
24377
24422
  templateName = 'majorSlotTemplate';
24378
24423
  var args = { date: date, type: type };
24379
- cntEle = [].slice.call(this.parent.getMajorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false));
24424
+ cntEle = [].slice.call(this.parent.getMajorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false, undefined, undefined, this.parent.root));
24380
24425
  }
24381
24426
  else {
24382
24427
  wrapper.innerHTML = "<span>" + this.getTime(date) + "</span>";
@@ -24387,7 +24432,7 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
24387
24432
  if (this.parent.activeViewOptions.timeScale.minorSlotTemplate) {
24388
24433
  templateName = 'minorSlotTemplate';
24389
24434
  var args = { date: date, type: type };
24390
- cntEle = [].slice.call(this.parent.getMinorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false));
24435
+ cntEle = [].slice.call(this.parent.getMinorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false, undefined, undefined, this.parent.root));
24391
24436
  }
24392
24437
  else {
24393
24438
  cntEle = [].slice.call(wrapper.childNodes);
@@ -24398,7 +24443,7 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
24398
24443
  var viewName = this.parent.activeViewOptions.cellTemplateName;
24399
24444
  templateName = 'cellTemplate';
24400
24445
  var args = { date: date, type: type, groupIndex: groupIndex };
24401
- cntEle = [].slice.call(this.parent.getCellTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false));
24446
+ cntEle = [].slice.call(this.parent.getCellTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false, undefined, undefined, this.parent.root));
24402
24447
  }
24403
24448
  break;
24404
24449
  }
@@ -24517,7 +24562,8 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
24517
24562
  var appointmentExpandCollapse = createElement('div', {
24518
24563
  attrs: {
24519
24564
  'tabindex': '0', 'role': 'list',
24520
- title: this.parent.localeObj.getConstant('expandAllDaySection'), 'aria-disabled': 'false', 'aria-label': 'Expand section'
24565
+ title: this.parent.localeObj.getConstant('expandAllDaySection'), 'aria-disabled': 'false',
24566
+ 'aria-label': this.parent.localeObj.getConstant('expandAllDaySection')
24521
24567
  },
24522
24568
  className: ALLDAY_APPOINTMENT_SECTION_CLASS + ' ' + APPOINTMENT_ROW_EXPAND_CLASS + ' ' +
24523
24569
  ICON + ' ' + DISABLE_CLASS
@@ -24674,7 +24720,7 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
24674
24720
  if (!this.parent.isMinMaxDate(cellDate)) {
24675
24721
  clsName.push(DISABLE_DATES);
24676
24722
  }
24677
- setTime(cellDate, getDateInMs(r.date));
24723
+ cellDate = new Date(cellDate.setHours(r.date.getHours(), r.date.getMinutes(), r.date.getSeconds(), r.date.getMilliseconds()));
24678
24724
  var type = 'workCells';
24679
24725
  if (tdData.className.indexOf(RESOURCE_PARENT_CLASS) !== -1) {
24680
24726
  clsName.push(RESOURCE_GROUP_CELLS_CLASS);
@@ -24691,7 +24737,7 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
24691
24737
  var scheduleId = this.parent.element.id + '_';
24692
24738
  var viewName = this.parent.activeViewOptions.cellTemplateName;
24693
24739
  var templateId = scheduleId + viewName + 'cellTemplate';
24694
- var tooltipTemplate = [].slice.call(this.parent.getCellTemplate()(args_1, this.parent, 'cellTemplate', templateId, false));
24740
+ var tooltipTemplate = [].slice.call(this.parent.getCellTemplate()(args_1, this.parent, 'cellTemplate', templateId, false, undefined, undefined, this.parent.root));
24695
24741
  append(tooltipTemplate, ntd);
24696
24742
  }
24697
24743
  ntd.setAttribute('data-date', cellDate.getTime().toString());
@@ -24747,10 +24793,21 @@ var VerticalView = /** @__PURE__ @class */ (function (_super) {
24747
24793
  end.setMilliseconds(end.getMilliseconds() + msInterval);
24748
24794
  return end;
24749
24795
  };
24796
+ VerticalView.prototype.getStartEndHours = function (startEndTime) {
24797
+ if (!isNullOrUndefined(startEndTime) && startEndTime !== '') {
24798
+ var startEndDate = new Date(2000, 0, 0, 0);
24799
+ var timeString = startEndTime.split(':');
24800
+ if (timeString.length === 2) {
24801
+ startEndDate.setHours(parseInt(timeString[0], 10), parseInt(timeString[1], 10), 0);
24802
+ }
24803
+ return startEndDate;
24804
+ }
24805
+ return new Date(2000, 0, 0, 0);
24806
+ };
24750
24807
  VerticalView.prototype.getTimeSlotRows = function (handler) {
24751
24808
  var rows = [];
24752
- var startHour = this.getStartHour();
24753
- var endHour = this.getEndHour();
24809
+ var startHour = this.getStartEndHours(this.parent.activeViewOptions.startHour);
24810
+ var endHour = this.getStartEndHours(this.parent.activeViewOptions.endHour);
24754
24811
  var msMajorInterval = this.parent.activeViewOptions.timeScale.interval * MS_PER_MINUTE;
24755
24812
  var msInterval = msMajorInterval / this.parent.activeViewOptions.timeScale.slotCount;
24756
24813
  var length = Math.round(MS_PER_DAY / msInterval);
@@ -25304,7 +25361,7 @@ var Month = /** @__PURE__ @class */ (function (_super) {
25304
25361
  var elementId = this.parent.element.id + '_';
25305
25362
  var viewName = this.parent.activeViewOptions.dateHeaderTemplateName;
25306
25363
  var templateId = elementId + viewName + 'dateHeaderTemplate';
25307
- var dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(cellArgs, this.parent, 'dateHeaderTemplate', templateId, false));
25364
+ var dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(cellArgs, this.parent, 'dateHeaderTemplate', templateId, false, undefined, undefined, this.parent.root));
25308
25365
  if (dateTemplate && dateTemplate.length) {
25309
25366
  append(dateTemplate, tdEle);
25310
25367
  }
@@ -25480,7 +25537,7 @@ var Month = /** @__PURE__ @class */ (function (_super) {
25480
25537
  var scheduleId = this.parent.element.id + '_';
25481
25538
  var viewName = this.parent.activeViewOptions.cellTemplateName;
25482
25539
  var templateId = scheduleId + viewName + 'cellTemplate';
25483
- var cellTemplate = [].slice.call(this.parent.getCellTemplate()(args_1, this.parent, 'cellTemplate', templateId, false));
25540
+ var cellTemplate = [].slice.call(this.parent.getCellTemplate()(args_1, this.parent, 'cellTemplate', templateId, false, undefined, undefined, this.parent.root));
25484
25541
  append(cellTemplate, ntd);
25485
25542
  }
25486
25543
  var args = { elementType: type, element: ntd, date: data.date, groupIndex: data.groupIndex };
@@ -25497,7 +25554,7 @@ var Month = /** @__PURE__ @class */ (function (_super) {
25497
25554
  var scheduleId = this.parent.element.id + '_';
25498
25555
  var viewName = this.parent.activeViewOptions.cellHeaderTemplateName;
25499
25556
  var templateId = scheduleId + viewName + 'cellHeaderTemplate';
25500
- var cellHeaderTemplate = [].slice.call(this.parent.getCellHeaderTemplate()(args, this.parent, 'cellHeaderTemplate', templateId, false));
25557
+ var cellHeaderTemplate = [].slice.call(this.parent.getCellHeaderTemplate()(args, this.parent, 'cellHeaderTemplate', templateId, false, undefined, undefined, this.parent.root));
25501
25558
  append(cellHeaderTemplate, dateHeader);
25502
25559
  }
25503
25560
  else {
@@ -25627,7 +25684,8 @@ var Month = /** @__PURE__ @class */ (function (_super) {
25627
25684
  return this.formatDateRange(this.parent.selectedDate);
25628
25685
  };
25629
25686
  Month.prototype.getLabelText = function (view) {
25630
- return this.parent.localeObj.getConstant(view) + ' of ' + capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { format: 'MMMM y', calendar: this.parent.getCalendarMode() }), 'single');
25687
+ var viewStr = view.charAt(0).toLowerCase() + view.substring(1);
25688
+ return this.formatViewLabel(viewStr, this.getStartDate(), this.getEndDate());
25631
25689
  };
25632
25690
  Month.prototype.createWeekNumberElement = function (text) {
25633
25691
  var tr = createElement('tr');
@@ -25951,7 +26009,7 @@ var Year = /** @__PURE__ @class */ (function (_super) {
25951
26009
  };
25952
26010
  Year.prototype.renderTemplates = function (fn, args, tName, vName, ele) {
25953
26011
  var templateId = this.parent.element.id + '_' + vName + tName;
25954
- var template = [].slice.call(fn(args, this.parent, tName, templateId, false));
26012
+ var template = [].slice.call(fn(args, this.parent, tName, templateId, false, undefined, undefined, this.parent.root));
25955
26013
  append(template, ele);
25956
26014
  };
25957
26015
  Year.prototype.onCellClick = function (e) {
@@ -26183,7 +26241,7 @@ var AgendaBase = /** @__PURE__ @class */ (function (_super) {
26183
26241
  var scheduleId = _this.parent.element.id + '_';
26184
26242
  var viewName = _this.parent.activeViewOptions.eventTemplateName;
26185
26243
  var templateId = scheduleId + viewName + 'eventTemplate';
26186
- templateEle = _this.parent.getAppointmentTemplate()(listData[parseInt(li.toString(), 10)], _this.parent, 'eventTemplate', templateId, false);
26244
+ templateEle = _this.parent.getAppointmentTemplate()(listData[parseInt(li.toString(), 10)], _this.parent, 'eventTemplate', templateId, false, undefined, undefined, _this.parent.root);
26187
26245
  if (!isNullOrUndefined(listData[parseInt(li.toString(), 10)][fieldMapping.recurrenceRule])) {
26188
26246
  var iconClass = (listData[parseInt(li.toString(), 10)][fieldMapping.id] ===
26189
26247
  listData[parseInt(li.toString(), 10)][fieldMapping.recurrenceID]) ?
@@ -26487,7 +26545,7 @@ var AgendaBase = /** @__PURE__ @class */ (function (_super) {
26487
26545
  var scheduleId = this.parent.element.id + '_';
26488
26546
  var viewName = this.parent.activeViewOptions.dateHeaderTemplateName;
26489
26547
  var templateId = scheduleId + viewName + 'dateHeaderTemplate';
26490
- var dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, 'dateHeaderTemplate', templateId, false));
26548
+ var dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, 'dateHeaderTemplate', templateId, false, undefined, undefined, this.parent.root));
26491
26549
  append(dateTemplate, dateHeader);
26492
26550
  }
26493
26551
  else {
@@ -28189,10 +28247,10 @@ var TimelineYear = /** @__PURE__ @class */ (function (_super) {
28189
28247
  var monthId = "schedule_" + this.parent.activeViewOptions.dayHeaderTemplateName + "monthHeaderTemplate";
28190
28248
  if (type === 'dayHeaderTemplate') {
28191
28249
  args.day = this.parent.getDayNames('wide')[column % 7];
28192
- return [].slice.call(this.parent.getDayHeaderTemplate()(args, this.parent, 'dayHeaderTemplate', dayId, false));
28250
+ return [].slice.call(this.parent.getDayHeaderTemplate()(args, this.parent, 'dayHeaderTemplate', dayId, false, undefined, undefined, this.parent.root));
28193
28251
  }
28194
28252
  else {
28195
- return [].slice.call(this.parent.getMonthHeaderTemplate()(args, this.parent, 'monthHeaderTemplate', monthId, false));
28253
+ return [].slice.call(this.parent.getMonthHeaderTemplate()(args, this.parent, 'monthHeaderTemplate', monthId, false, undefined, undefined, this.parent.root));
28196
28254
  }
28197
28255
  };
28198
28256
  TimelineYear.prototype.renderCellTemplate = function (data, td) {
@@ -28206,7 +28264,7 @@ var TimelineYear = /** @__PURE__ @class */ (function (_super) {
28206
28264
  var scheduleId = this.parent.element.id + '_';
28207
28265
  var viewName = this.parent.activeViewOptions.cellTemplateName;
28208
28266
  var templateId = scheduleId + viewName + 'cellTemplate';
28209
- var cellTemplate = [].slice.call(this.parent.getCellTemplate()(args, this.parent, 'cellTemplate', templateId, false));
28267
+ var cellTemplate = [].slice.call(this.parent.getCellTemplate()(args, this.parent, 'cellTemplate', templateId, false, undefined, undefined, this.parent.root));
28210
28268
  append(cellTemplate, td);
28211
28269
  };
28212
28270
  TimelineYear.prototype.scrollToDate = function (scrollDate) {
@@ -28803,6 +28861,7 @@ var Print = /** @__PURE__ @class */ (function () {
28803
28861
  Schedule.Inject(Day, Week, WorkWeek, Month, Agenda, MonthAgenda, TimelineViews, TimelineMonth, Year, TimelineYear);
28804
28862
  this.printInstance = new Schedule(this.getPrintScheduleModel(printOptions));
28805
28863
  this.printInstance.isPrinting = true;
28864
+ this.printInstance.root = this.parent.root ? this.parent.root : this.parent;
28806
28865
  this.printInstance.appendTo(element);
28807
28866
  this.printInstance.on(print, this.contentReady, this);
28808
28867
  this.printWindow = window.open('', 'print', 'height=' + window.outerHeight + ',width=' + window.outerWidth + ',tabbar=no');
@@ -28836,7 +28895,7 @@ var Print = /** @__PURE__ @class */ (function () {
28836
28895
  eventSettings.dataSource = this.parent.eventsData;
28837
28896
  var eventTemplate = !isNullOrUndefined(printOptions.eventSettings) &&
28838
28897
  !isNullOrUndefined(printOptions.eventSettings.template) ? printOptions.eventSettings.template : eventSettings.template;
28839
- eventSettings.template = typeof (eventTemplate) === 'function' ? null : eventTemplate;
28898
+ eventSettings.template = !this.parent.isAngular && typeof (eventTemplate) === 'function' ? null : eventTemplate;
28840
28899
  printModel.eventSettings = eventSettings;
28841
28900
  break;
28842
28901
  }
@@ -28847,13 +28906,15 @@ var Print = /** @__PURE__ @class */ (function () {
28847
28906
  break;
28848
28907
  case 'timeScale':
28849
28908
  timeScale = isNullOrUndefined(printOptions.timeScale) ? this.parent.timeScale : printOptions.timeScale;
28850
- timeScale.majorSlotTemplate = typeof (timeScale.majorSlotTemplate) === 'function' ? null : timeScale.majorSlotTemplate;
28851
- timeScale.minorSlotTemplate = typeof (timeScale.minorSlotTemplate) === 'function' ? null : timeScale.minorSlotTemplate;
28852
- printOptions.timeScale = timeScale;
28909
+ if (!this.parent.isAngular) {
28910
+ timeScale.majorSlotTemplate = typeof (timeScale.majorSlotTemplate) === 'function' ? null : timeScale.majorSlotTemplate;
28911
+ timeScale.minorSlotTemplate = typeof (timeScale.minorSlotTemplate) === 'function' ? null : timeScale.minorSlotTemplate;
28912
+ }
28913
+ printModel.timeScale = timeScale;
28853
28914
  break;
28854
28915
  case 'views':
28855
28916
  views = isNullOrUndefined(printOptions.views) ? this.parent.views : printOptions.views;
28856
- if (views && views.length > 0 && typeof (views[0]) === 'object') {
28917
+ if (!this.parent.isAngular && views && views.length > 0 && typeof (views[0]) === 'object') {
28857
28918
  var _loop_1 = function (view) {
28858
28919
  scheduleTemplates.forEach(function (x) {
28859
28920
  if (!isNullOrUndefined(view["" + x])) {
@@ -28871,8 +28932,8 @@ var Print = /** @__PURE__ @class */ (function () {
28871
28932
  default:
28872
28933
  if (scheduleTemplates.indexOf(key) > -1) {
28873
28934
  printModel["" + key] = isNullOrUndefined(printOptions["" + key]) ?
28874
- (typeof (this.parent["" + key]) === 'function' ? null : this.parent["" + key]) :
28875
- (typeof (printOptions["" + key]) === 'function' ? null : printOptions["" + key]);
28935
+ (!this.parent.isAngular && typeof (this.parent["" + key]) === 'function' ? null : this.parent["" + key]) :
28936
+ (!this.parent.isAngular && typeof (printOptions["" + key]) === 'function' ? null : printOptions["" + key]);
28876
28937
  break;
28877
28938
  }
28878
28939
  if (scheduleEvents.indexOf(key) > -1) {