@syncfusion/ej2-schedule 26.2.14 → 27.1.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/dist/ej2-schedule.umd.min.js +2 -2
  2. package/dist/ej2-schedule.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-schedule.es2015.js +166 -32
  4. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  5. package/dist/es6/ej2-schedule.es5.js +169 -32
  6. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  7. package/dist/global/ej2-schedule.min.js +2 -2
  8. package/dist/global/ej2-schedule.min.js.map +1 -1
  9. package/dist/global/index.d.ts +1 -1
  10. package/package.json +16 -17
  11. package/src/schedule/actions/crud.js +2 -2
  12. package/src/schedule/actions/keyboard.d.ts +1 -0
  13. package/src/schedule/actions/keyboard.js +45 -3
  14. package/src/schedule/actions/resize.js +1 -0
  15. package/src/schedule/actions/virtual-scroll.d.ts +1 -0
  16. package/src/schedule/actions/virtual-scroll.js +35 -4
  17. package/src/schedule/base/interface.d.ts +1 -0
  18. package/src/schedule/base/resource.js +5 -0
  19. package/src/schedule/base/schedule.js +2 -1
  20. package/src/schedule/event-renderer/event-base.js +18 -3
  21. package/src/schedule/event-renderer/inline-edit.js +9 -1
  22. package/src/schedule/event-renderer/month.js +4 -1
  23. package/src/schedule/event-renderer/timeline-view.js +4 -1
  24. package/src/schedule/event-renderer/year.js +2 -2
  25. package/src/schedule/renderer/header-renderer.d.ts +1 -0
  26. package/src/schedule/renderer/header-renderer.js +9 -1
  27. package/src/schedule/renderer/month.js +6 -0
  28. package/src/schedule/renderer/timeline-header-row.js +1 -1
  29. package/src/schedule/renderer/timeline-view.js +5 -0
  30. package/src/schedule/renderer/timeline-year.js +6 -2
  31. package/src/schedule/renderer/vertical-view.js +2 -6
  32. package/src/schedule/renderer/view-base.d.ts +1 -0
  33. package/src/schedule/renderer/view-base.js +9 -0
  34. package/src/schedule/renderer/year.js +4 -4
  35. package/styles/bootstrap-dark-lite.css +4169 -0
  36. package/styles/bootstrap-dark-lite.scss +18 -0
  37. package/styles/bootstrap-dark.css +818 -596
  38. package/styles/bootstrap-dark.scss +3 -2
  39. package/styles/bootstrap-lite.css +4164 -0
  40. package/styles/bootstrap-lite.scss +18 -0
  41. package/styles/bootstrap.css +818 -596
  42. package/styles/bootstrap.scss +3 -2
  43. package/styles/bootstrap4-lite.css +4211 -0
  44. package/styles/bootstrap4-lite.scss +18 -0
  45. package/styles/bootstrap4.css +803 -636
  46. package/styles/bootstrap4.scss +3 -2
  47. package/styles/bootstrap5-dark-lite.css +4210 -0
  48. package/styles/bootstrap5-dark-lite.scss +18 -0
  49. package/styles/bootstrap5-dark.css +819 -597
  50. package/styles/bootstrap5-dark.scss +3 -2
  51. package/styles/bootstrap5-lite.css +4210 -0
  52. package/styles/bootstrap5-lite.scss +18 -0
  53. package/styles/bootstrap5.3-lite.css +4256 -0
  54. package/styles/bootstrap5.3-lite.scss +18 -0
  55. package/styles/bootstrap5.3.css +5017 -0
  56. package/styles/bootstrap5.3.scss +20 -0
  57. package/styles/bootstrap5.css +819 -597
  58. package/styles/bootstrap5.scss +3 -2
  59. package/styles/fabric-dark-lite.css +4139 -0
  60. package/styles/fabric-dark-lite.scss +18 -0
  61. package/styles/fabric-dark.css +825 -595
  62. package/styles/fabric-dark.scss +3 -2
  63. package/styles/fabric-lite.css +4136 -0
  64. package/styles/fabric-lite.scss +18 -0
  65. package/styles/fabric.css +825 -588
  66. package/styles/fabric.scss +3 -2
  67. package/styles/fluent-dark-lite.css +4202 -0
  68. package/styles/fluent-dark-lite.scss +18 -0
  69. package/styles/fluent-dark.css +823 -593
  70. package/styles/fluent-dark.scss +3 -2
  71. package/styles/fluent-lite.css +4202 -0
  72. package/styles/fluent-lite.scss +18 -0
  73. package/styles/fluent.css +823 -593
  74. package/styles/fluent.scss +3 -2
  75. package/styles/fluent2-lite.css +4422 -0
  76. package/styles/fluent2-lite.scss +18 -0
  77. package/styles/fluent2.css +860 -602
  78. package/styles/fluent2.scss +3 -2
  79. package/styles/highcontrast-light-lite.css +4228 -0
  80. package/styles/highcontrast-light-lite.scss +18 -0
  81. package/styles/highcontrast-light.css +828 -584
  82. package/styles/highcontrast-light.scss +3 -2
  83. package/styles/highcontrast-lite.css +4237 -0
  84. package/styles/highcontrast-lite.scss +18 -0
  85. package/styles/highcontrast.css +829 -585
  86. package/styles/highcontrast.scss +3 -2
  87. package/styles/material-dark-lite.css +4216 -0
  88. package/styles/material-dark-lite.scss +18 -0
  89. package/styles/material-dark.css +828 -581
  90. package/styles/material-dark.scss +3 -2
  91. package/styles/material-lite.css +4242 -0
  92. package/styles/material-lite.scss +18 -0
  93. package/styles/material.css +826 -600
  94. package/styles/material.scss +3 -2
  95. package/styles/material3-dark-lite.css +4233 -0
  96. package/styles/material3-dark-lite.scss +18 -0
  97. package/styles/material3-dark.css +825 -602
  98. package/styles/material3-dark.scss +3 -2
  99. package/styles/material3-lite.css +4235 -0
  100. package/styles/material3-lite.scss +18 -0
  101. package/styles/material3.css +825 -602
  102. package/styles/material3.scss +3 -2
  103. package/styles/recurrence-editor/_bigger.scss +134 -0
  104. package/styles/recurrence-editor/_layout.scss +0 -110
  105. package/styles/recurrence-editor/bootstrap-dark.css +87 -131
  106. package/styles/recurrence-editor/bootstrap-dark.scss +1 -0
  107. package/styles/recurrence-editor/bootstrap.css +87 -131
  108. package/styles/recurrence-editor/bootstrap.scss +1 -0
  109. package/styles/recurrence-editor/bootstrap4.css +87 -149
  110. package/styles/recurrence-editor/bootstrap4.scss +1 -0
  111. package/styles/recurrence-editor/bootstrap5-dark.css +87 -135
  112. package/styles/recurrence-editor/bootstrap5-dark.scss +1 -0
  113. package/styles/recurrence-editor/bootstrap5.3.css +501 -0
  114. package/styles/recurrence-editor/bootstrap5.3.scss +9 -0
  115. package/styles/recurrence-editor/bootstrap5.css +87 -135
  116. package/styles/recurrence-editor/bootstrap5.scss +1 -0
  117. package/styles/recurrence-editor/fabric-dark.css +87 -130
  118. package/styles/recurrence-editor/fabric-dark.scss +1 -0
  119. package/styles/recurrence-editor/fabric.css +87 -123
  120. package/styles/recurrence-editor/fabric.scss +1 -0
  121. package/styles/recurrence-editor/fluent-dark.css +87 -122
  122. package/styles/recurrence-editor/fluent-dark.scss +1 -0
  123. package/styles/recurrence-editor/fluent.css +87 -122
  124. package/styles/recurrence-editor/fluent.scss +1 -0
  125. package/styles/recurrence-editor/fluent2.css +91 -117
  126. package/styles/recurrence-editor/fluent2.scss +1 -0
  127. package/styles/recurrence-editor/highcontrast-light.css +87 -118
  128. package/styles/recurrence-editor/highcontrast-light.scss +1 -0
  129. package/styles/recurrence-editor/highcontrast.css +87 -118
  130. package/styles/recurrence-editor/highcontrast.scss +1 -0
  131. package/styles/recurrence-editor/material-dark.css +87 -115
  132. package/styles/recurrence-editor/material-dark.scss +1 -0
  133. package/styles/recurrence-editor/material.css +87 -136
  134. package/styles/recurrence-editor/material.scss +1 -0
  135. package/styles/recurrence-editor/material3-dark.css +87 -140
  136. package/styles/recurrence-editor/material3-dark.scss +1 -0
  137. package/styles/recurrence-editor/material3.css +87 -140
  138. package/styles/recurrence-editor/material3.scss +1 -0
  139. package/styles/recurrence-editor/tailwind-dark.css +87 -116
  140. package/styles/recurrence-editor/tailwind-dark.scss +1 -0
  141. package/styles/recurrence-editor/tailwind.css +87 -116
  142. package/styles/recurrence-editor/tailwind.scss +1 -0
  143. package/styles/schedule/_bds-definition.scss +1 -1
  144. package/styles/schedule/_bigger.scss +809 -0
  145. package/styles/schedule/_bootstrap4-definition.scss +1 -1
  146. package/styles/schedule/_bootstrap5-definition.scss +1 -1
  147. package/styles/schedule/_bootstrap5.3-definition.scss +9 -6
  148. package/styles/schedule/_fluent-definition.scss +1 -1
  149. package/styles/schedule/_fluent2-definition.scss +6 -6
  150. package/styles/schedule/_fusionnew-definition.scss +1 -1
  151. package/styles/schedule/_layout.scss +5 -442
  152. package/styles/schedule/_tailwind-definition.scss +1 -1
  153. package/styles/schedule/_theme.scss +23 -1
  154. package/styles/schedule/bootstrap-dark.css +699 -483
  155. package/styles/schedule/bootstrap-dark.scss +1 -0
  156. package/styles/schedule/bootstrap.css +699 -483
  157. package/styles/schedule/bootstrap.scss +1 -0
  158. package/styles/schedule/bootstrap4.css +684 -523
  159. package/styles/schedule/bootstrap4.scss +1 -0
  160. package/styles/schedule/bootstrap5-dark.css +707 -491
  161. package/styles/schedule/bootstrap5-dark.scss +1 -0
  162. package/styles/schedule/bootstrap5.3.css +4615 -0
  163. package/styles/schedule/bootstrap5.3.scss +17 -0
  164. package/styles/schedule/bootstrap5.css +707 -491
  165. package/styles/schedule/bootstrap5.scss +1 -0
  166. package/styles/schedule/fabric-dark.css +706 -482
  167. package/styles/schedule/fabric-dark.scss +1 -0
  168. package/styles/schedule/fabric.css +706 -475
  169. package/styles/schedule/fabric.scss +1 -0
  170. package/styles/schedule/fluent-dark.css +716 -492
  171. package/styles/schedule/fluent-dark.scss +1 -0
  172. package/styles/schedule/fluent.css +716 -492
  173. package/styles/schedule/fluent.scss +1 -0
  174. package/styles/schedule/fluent2.css +746 -497
  175. package/styles/schedule/fluent2.scss +1 -0
  176. package/styles/schedule/highcontrast-light.css +714 -476
  177. package/styles/schedule/highcontrast-light.scss +1 -0
  178. package/styles/schedule/highcontrast.css +714 -476
  179. package/styles/schedule/highcontrast.scss +1 -0
  180. package/styles/schedule/material-dark.css +724 -483
  181. package/styles/schedule/material-dark.scss +1 -0
  182. package/styles/schedule/material.css +720 -500
  183. package/styles/schedule/material.scss +1 -0
  184. package/styles/schedule/material3-dark.css +714 -497
  185. package/styles/schedule/material3-dark.scss +1 -0
  186. package/styles/schedule/material3.css +714 -497
  187. package/styles/schedule/material3.scss +1 -0
  188. package/styles/schedule/tailwind-dark.css +718 -483
  189. package/styles/schedule/tailwind-dark.scss +1 -0
  190. package/styles/schedule/tailwind.css +718 -483
  191. package/styles/schedule/tailwind.scss +1 -0
  192. package/styles/tailwind-dark-lite.css +4179 -0
  193. package/styles/tailwind-dark-lite.scss +18 -0
  194. package/styles/tailwind-dark.css +827 -586
  195. package/styles/tailwind-dark.scss +3 -2
  196. package/styles/tailwind-lite.css +4179 -0
  197. package/styles/tailwind-lite.scss +18 -0
  198. package/styles/tailwind.css +827 -586
  199. package/styles/tailwind.scss +3 -2
  200. package/dist/ej2-schedule.min.js +0 -10
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 26.2.14
3
+ * version : 27.1.50
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-schedule@*",
3
- "_id": "@syncfusion/ej2-schedule@26.2.12",
3
+ "_id": "@syncfusion/ej2-schedule@27.1.48",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-mUILDakcc3sCVN0/q/N/vHLnFZjxmMf70dncdtrY/dPTE05kW6GNUfbKZMCflT09r86jZxo0BQM+WZ12d8eJ/A==",
5
+ "_integrity": "sha512-GQffkT4ABTCmTBf9pPJpeeK5ygE2veOdOPvSKFQOGA0ydZXSzDDbYhNSvfLGyHcybcJWj6NxNyNbbJ7kHI3deg==",
6
6
  "_location": "/@syncfusion/ej2-schedule",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -23,10 +23,10 @@
23
23
  "/@syncfusion/ej2-react-schedule",
24
24
  "/@syncfusion/ej2-vue-schedule"
25
25
  ],
26
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-schedule/-/ej2-schedule-26.2.12.tgz",
27
- "_shasum": "fd72425ccf4ccd964d292e1ab6111c0f3a09dc70",
26
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-schedule/-/ej2-schedule-27.1.48.tgz",
27
+ "_shasum": "e574faa7c52c4a0332da422baa23137a282c4c42",
28
28
  "_spec": "@syncfusion/ej2-schedule@*",
29
- "_where": "/jenkins/workspace/elease-automation_release_26.1.1/packages/included",
29
+ "_where": "/jenkins/workspace/elease-automation_release_27.1.1/packages/included",
30
30
  "author": {
31
31
  "name": "Syncfusion Inc."
32
32
  },
@@ -35,17 +35,16 @@
35
35
  },
36
36
  "bundleDependencies": false,
37
37
  "dependencies": {
38
- "@syncfusion/ej2-base": "~26.2.10",
39
- "@syncfusion/ej2-buttons": "~26.2.10",
40
- "@syncfusion/ej2-calendars": "~26.2.12",
41
- "@syncfusion/ej2-data": "~26.2.14",
42
- "@syncfusion/ej2-dropdowns": "~26.2.13",
43
- "@syncfusion/ej2-excel-export": "~26.2.11",
44
- "@syncfusion/ej2-inputs": "~26.2.14",
45
- "@syncfusion/ej2-lists": "~26.2.14",
46
- "@syncfusion/ej2-navigations": "~26.2.12",
47
- "@syncfusion/ej2-popups": "~26.2.11",
48
- "@types/requirejs": "^2.1.37"
38
+ "@syncfusion/ej2-base": "~27.1.50",
39
+ "@syncfusion/ej2-buttons": "~27.1.50",
40
+ "@syncfusion/ej2-calendars": "~27.1.50",
41
+ "@syncfusion/ej2-data": "~27.1.50",
42
+ "@syncfusion/ej2-dropdowns": "~27.1.50",
43
+ "@syncfusion/ej2-excel-export": "~27.1.50",
44
+ "@syncfusion/ej2-inputs": "~27.1.50",
45
+ "@syncfusion/ej2-lists": "~27.1.50",
46
+ "@syncfusion/ej2-navigations": "~27.1.50",
47
+ "@syncfusion/ej2-popups": "~27.1.50"
49
48
  },
50
49
  "deprecated": false,
51
50
  "description": "Flexible scheduling library with more built-in features and enhanced customization options similar to outlook and google calendar, allowing the users to plan and manage their appointments with efficient data-binding support.",
@@ -74,6 +73,6 @@
74
73
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
75
74
  },
76
75
  "typings": "index.d.ts",
77
- "version": "26.2.14",
76
+ "version": "27.1.50",
78
77
  "sideEffects": false
79
78
  }
@@ -112,10 +112,10 @@ var Crud = /** @class */ (function () {
112
112
  addedRecords: args.editParams.addedRecords, changedRecords: args.editParams.changedRecords,
113
113
  deletedRecords: args.editParams.deletedRecords
114
114
  };
115
- if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj && this.parent.dragAndDropModule.actionObj.element) {
115
+ if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj && this.parent.dragAndDropModule.actionObj.element && this.parent.dragAndDropModule.actionObj.action) {
116
116
  this.parent.dragAndDropModule.actionObj.element.style.display = 'none';
117
117
  }
118
- if (this.parent.resizeModule && this.parent.resizeModule.actionObj && this.parent.resizeModule.actionObj.element) {
118
+ if (this.parent.resizeModule && this.parent.resizeModule.actionObj && this.parent.resizeModule.actionObj.element && this.parent.resizeModule.actionObj.action) {
119
119
  this.parent.resizeModule.actionObj.element.style.display = 'none';
120
120
  }
121
121
  if (this.parent.isSpecificResourceEvents()) {
@@ -13,6 +13,7 @@ export declare class KeyboardInteraction {
13
13
  private keyboardModule;
14
14
  constructor(parent: Schedule);
15
15
  private keyActionHandler;
16
+ private processShiftAltN;
16
17
  private processFTwelve;
17
18
  private addEventListener;
18
19
  private removeEventListener;
@@ -43,7 +43,9 @@ var KeyboardInteraction = /** @class */ (function () {
43
43
  ctrlShiftUpArrow: 'ctrl+shift+uparrow',
44
44
  ctrlShiftDownArrow: 'ctrl+shift+downarrow',
45
45
  ctrlShiftLeftArrow: 'ctrl+shift+leftarrow',
46
- ctrlShiftRightArrow: 'ctrl+shift+rightarrow'
46
+ ctrlShiftRightArrow: 'ctrl+shift+rightarrow',
47
+ shiftAltY: 'shift+alt+y',
48
+ shiftAltN: 'shift+alt+n'
47
49
  };
48
50
  this.parent = parent;
49
51
  this.parent.element.tabIndex = this.parent.element.tabIndex === -1 ? 0 : this.parent.element.tabIndex;
@@ -124,6 +126,43 @@ var KeyboardInteraction = /** @class */ (function () {
124
126
  this.processFTwelve(e);
125
127
  }
126
128
  break;
129
+ case 'shiftAltY':
130
+ this.parent.changeDate(new Date(), e);
131
+ break;
132
+ case 'shiftAltN':
133
+ if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda' ||
134
+ this.parent.currentView === 'Year') {
135
+ return;
136
+ }
137
+ this.processShiftAltN(e);
138
+ break;
139
+ }
140
+ };
141
+ KeyboardInteraction.prototype.processShiftAltN = function (e) {
142
+ var selectedCells = this.parent.getSelectedCells();
143
+ var target = e.target;
144
+ var cellData = extend({}, null, true);
145
+ if (selectedCells.length > 0 && (closest(target, '.' + cls.WORK_CELLS_CLASS)
146
+ || closest(target, '.' + cls.ALLDAY_CELLS_CLASS) || closest(target, '.' + cls.HEADER_CELLS_CLASS))) {
147
+ cellData = this.getSelectedElements(target);
148
+ }
149
+ else if (closest(target, '.' + cls.APPOINTMENT_CLASS) && !isNullOrUndefined(this.parent.activeEventData.event)) {
150
+ var event_1 = this.parent.activeEventData.event;
151
+ cellData.startTime = event_1.StartTime;
152
+ cellData.endTime = event_1.EndTime;
153
+ cellData.isAllDay = event_1.IsAllDay;
154
+ }
155
+ else {
156
+ var workHour = this.parent.getStartEndTime(this.parent.workHours.start);
157
+ var slotInterval = this.parent.activeViewOptions.timeScale.interval /
158
+ this.parent.activeViewOptions.timeScale.slotCount;
159
+ cellData.startTime = new Date(this.parent.selectedDate);
160
+ cellData.startTime.setHours(workHour.getHours(), workHour.getMinutes(), 0, 0);
161
+ cellData.endTime = new Date(cellData.startTime.getTime() + slotInterval * 60000);
162
+ }
163
+ var args = extend(cellData, { cancel: false, event: e });
164
+ if (args != null) {
165
+ this.parent.eventWindow.openEditor(args, 'Add');
127
166
  }
128
167
  };
129
168
  KeyboardInteraction.prototype.processFTwelve = function (e) {
@@ -549,8 +588,11 @@ var KeyboardInteraction = /** @class */ (function () {
549
588
  return this.parent.eventBase.selectWorkCellByTime([selectedObject]);
550
589
  };
551
590
  KeyboardInteraction.prototype.processViewNavigation = function (e) {
552
- var index = parseInt(e.key, 10) - 1;
553
- if (!isNullOrUndefined(this.parent.views) && index < this.parent.views.length) {
591
+ if (isNullOrUndefined(e.code)) {
592
+ return;
593
+ }
594
+ var index = parseInt(e.code.slice(e.code.length - 1), 10) - 1;
595
+ if (!isNaN(index) && !isNullOrUndefined(this.parent.views) && index < this.parent.views.length) {
554
596
  var view = this.parent.viewCollections[parseInt(index.toString(), 10)].option;
555
597
  this.parent.changeView(view, e, undefined, index);
556
598
  if (this.parent.headerModule) {
@@ -321,6 +321,7 @@ var Resize = /** @class */ (function (_super) {
321
321
  EventHandler.remove(document, Browser.touchEndEvent, this.resizeStop);
322
322
  clearInterval(this.actionObj.scrollInterval);
323
323
  this.actionObj.scrollInterval = null;
324
+ this.actionObj.action = null;
324
325
  this.removeCloneElementClasses();
325
326
  this.removeCloneElement();
326
327
  this.actionClass('removeClass');
@@ -41,6 +41,7 @@ export declare class VirtualScroll {
41
41
  private getByIdCollection;
42
42
  private setStartEndIndex;
43
43
  updateContent(resWrap: HTMLElement, conWrap: HTMLElement, eventWrap: HTMLElement, resCollection: TdData[]): void;
44
+ private removeObsoleteRows;
44
45
  private updateHorizontalContent;
45
46
  private updateMonthViewContent;
46
47
  private updateOtherViewContent;
@@ -114,6 +114,7 @@ var VirtualScroll = /** @class */ (function () {
114
114
  firstTDIndex = (endIndex > this.parent.resourceBase.expandedResources.length) ?
115
115
  (this.parent.resourceBase.expandedResources.length - this.renderedLength) : firstTDIndex;
116
116
  firstTDIndex = firstTDIndex < 0 ? 0 : firstTDIndex;
117
+ this.existingDataCollection = this.parent.resourceBase.renderedResources;
117
118
  this.parent.resourceBase.renderedResources = this.parent.resourceBase.expandedResources.slice(firstTDIndex, endIndex);
118
119
  if (this.parent.resourceBase.renderedResources.length > 0) {
119
120
  this.updateContent(resWrap, conWrap, eventWrap, this.parent.resourceBase.renderedResources);
@@ -163,6 +164,7 @@ var VirtualScroll = /** @class */ (function () {
163
164
  var scrollHeight = this.parent.rowAutoHeight ?
164
165
  (conTable.offsetHeight - conWrap.offsetHeight) : this.bufferCount * this.itemSize;
165
166
  var resCollection = [];
167
+ this.existingDataCollection = this.parent.resourceBase.renderedResources;
166
168
  if ((conWrap.scrollTop) - this.translateY < 0) {
167
169
  resCollection = this.upScroll(conWrap, firstTDIndex);
168
170
  }
@@ -366,18 +368,47 @@ var VirtualScroll = /** @class */ (function () {
366
368
  this.parent.element.focus();
367
369
  }
368
370
  for (var i = 0; i < renderedLength; i++) {
369
- remove(resWrap.querySelector('tbody tr'));
370
- remove(conWrap.querySelector('tbody tr'));
371
371
  remove(eventWrap.querySelector('div'));
372
372
  }
373
373
  this.parent.resourceBase.renderedResources = resCollection;
374
+ var currentGroupIndices = this.parent.activeView.getGroupIndices(resCollection);
375
+ var previousGroupIndices = this.parent.activeView.getGroupIndices(this.existingDataCollection);
376
+ var newGroupIndices = currentGroupIndices.filter(function (index) { return previousGroupIndices.indexOf(index) < 0; });
377
+ var resWrapRows = Array.from(resWrap.querySelectorAll('tbody tr'));
378
+ var conWrapRows = Array.from(conWrap.querySelectorAll('tbody tr'));
379
+ var resWrapBody = resWrap.querySelector('tbody');
380
+ var conWrapBody = conWrap.querySelector('tbody');
381
+ this.removeObsoleteRows(resWrapRows, currentGroupIndices);
382
+ this.removeObsoleteRows(conWrapRows, currentGroupIndices);
374
383
  var resourceRows = this.parent.resourceBase.getContentRows(resCollection, true);
375
384
  var contentRows = this.parent.activeView.getContentRows();
376
385
  var eventRows = this.parent.activeView.getEventRows(resCollection.length);
377
- append(resourceRows, resWrap.querySelector('tbody'));
378
- append(contentRows, conWrap.querySelector('tbody'));
386
+ for (var i = 0; i < newGroupIndices.length; i++) {
387
+ var index = currentGroupIndices.indexOf(newGroupIndices[parseInt(i.toString(), 10)]);
388
+ if (index === 0) {
389
+ prepend([resourceRows[parseInt(i.toString(), 10)]], resWrapBody);
390
+ prepend([contentRows[parseInt(i.toString(), 10)]], conWrapBody);
391
+ }
392
+ else if (resWrapBody && conWrapBody && resWrapBody.children[parseInt(index.toString(), 10)] &&
393
+ conWrapBody.children[parseInt(index.toString(), 10)]) {
394
+ resWrapBody.insertBefore(resourceRows[parseInt(i.toString(), 10)], resWrapBody.children[parseInt(index.toString(), 10)]);
395
+ conWrapBody.insertBefore(contentRows[parseInt(i.toString(), 10)], conWrapBody.children[parseInt(index.toString(), 10)]);
396
+ }
397
+ else {
398
+ append([resourceRows[parseInt(i.toString(), 10)]], resWrapBody);
399
+ append([contentRows[parseInt(i.toString(), 10)]], conWrapBody);
400
+ }
401
+ }
379
402
  append(eventRows, eventWrap);
380
403
  };
404
+ VirtualScroll.prototype.removeObsoleteRows = function (elements, currentGroupIndices) {
405
+ elements.forEach(function (element) {
406
+ var groupIndex = parseInt(element.firstElementChild.getAttribute('data-group-index'), 10);
407
+ if (currentGroupIndices.indexOf(groupIndex) < 0) {
408
+ remove(element);
409
+ }
410
+ });
411
+ };
381
412
  VirtualScroll.prototype.updateHorizontalContent = function (conWrap, resCollection) {
382
413
  this.existingDataCollection = this.parent.resourceBase.expandedResources;
383
414
  this.parent.resourceBase.expandedResources = resCollection;
@@ -449,6 +449,7 @@ export interface IRenderer {
449
449
  getAdjustedDate?(date: Date): Date;
450
450
  viewIndex: number;
451
451
  colLevels: TdData[][];
452
+ getGroupIndices(dataCollection?: TdData[]): number[];
452
453
  }
453
454
  /** @private */
454
455
  export interface EJ2Instance extends HTMLElement {
@@ -96,7 +96,11 @@ var ResourceBase = /** @class */ (function () {
96
96
  var resColl = this.resourceCollection;
97
97
  var tr = createElement('tr');
98
98
  var td = createElement('td', { attrs: { tabindex: isVirtualScroll ? '-1' : '0' } });
99
+ var existingGroupIndices = this.parent.activeView.getGroupIndices();
99
100
  for (var i = 0; i < resData.length; i++) {
101
+ if (existingGroupIndices.length > 0 && existingGroupIndices.indexOf(resData[parseInt(i.toString(), 10)].groupIndex) > -1) {
102
+ continue;
103
+ }
100
104
  var ntd = td.cloneNode();
101
105
  rIndex = util.findIndexInData(resColl, 'name', resData[parseInt(i.toString(), 10)].resource.name);
102
106
  if (rIndex === resColl.length - 1) {
@@ -277,6 +281,7 @@ var ResourceBase = /** @class */ (function () {
277
281
  this.setExpandedResources();
278
282
  var resourceCount = this.parent.virtualScrollModule.getRenderedCount();
279
283
  var startIndex = this.expandedResources.indexOf(this.renderedResources[0]);
284
+ this.parent.virtualScrollModule.existingDataCollection = this.renderedResources;
280
285
  this.renderedResources = this.expandedResources.slice(startIndex, startIndex + resourceCount);
281
286
  if (this.renderedResources.length < resourceCount) {
282
287
  var sIndex = this.expandedResources.length - resourceCount;
@@ -1257,7 +1257,8 @@ var Schedule = /** @class */ (function (_super) {
1257
1257
  };
1258
1258
  Schedule.prototype.onScheduleResize = function () {
1259
1259
  if (isNullOrUndefined(this.activeView) || ((this.isAdaptive || util.isMobile()) && document.activeElement
1260
- && document.activeElement.classList.contains(cls.SUBJECT_CLASS)) || this.uiStateValues.isTapHold) {
1260
+ && (document.activeElement.classList.contains(cls.SUBJECT_CLASS) ||
1261
+ document.activeElement.classList.contains(cls.INLINE_SUBJECT_CLASS))) || this.uiStateValues.isTapHold) {
1261
1262
  return;
1262
1263
  }
1263
1264
  if (this.virtualScrollModule && this.activeView.isTimelineView()) {
@@ -897,6 +897,7 @@ var EventBase = /** @class */ (function () {
897
897
  this.parent.activeEventData = { event: eventObject, element: target };
898
898
  };
899
899
  EventBase.prototype.generateOccurrence = function (event, viewDate, isMaxCount) {
900
+ var _this = this;
900
901
  var startDate = event[this.parent.eventFields.startTime];
901
902
  var endDate = event[this.parent.eventFields.endTime];
902
903
  var eventRule = event[this.parent.eventFields.recurrenceRule];
@@ -911,6 +912,10 @@ var EventBase = /** @class */ (function () {
911
912
  var newTimezone = this.parent.timezone || this.parent.tzModule.getLocalTimezoneName();
912
913
  var firstDay = this.parent.activeViewOptions.firstDayOfWeek;
913
914
  var calendarMode = this.parent.calendarMode;
915
+ if (event[this.parent.eventFields.recurrenceRule] && event[this.parent.eventFields.recurrenceRule].includes('BYMONTHDAY') &&
916
+ this.parent.timezone && event[this.parent.eventFields.startTimezone] && event[this.parent.eventFields.endTimezone]) {
917
+ startDate = this.parent.tzModule.convert(event[this.parent.eventFields.startTime], this.parent.timezone, event[this.parent.eventFields.startTimezone]);
918
+ }
914
919
  var dates = generate(startDate, eventRule, exception, firstDay, maxCount, viewDate, calendarMode, newTimezone);
915
920
  if (this.parent.currentView === 'Agenda' && eventRule.indexOf('COUNT') === -1 && eventRule.indexOf('UNTIL') === -1) {
916
921
  if (isNullOrUndefined(event.generatedDates)) {
@@ -925,11 +930,21 @@ var EventBase = /** @class */ (function () {
925
930
  }
926
931
  }
927
932
  }
933
+ var isDSTAdjusted = false;
934
+ var convertedDates = [];
935
+ if (event[this.parent.eventFields.recurrenceRule] && event[this.parent.eventFields.recurrenceRule].includes('BYMONTHDAY') &&
936
+ this.parent.timezone && event[this.parent.eventFields.startTimezone] && event[this.parent.eventFields.endTimezone]) {
937
+ isDSTAdjusted = true;
938
+ convertedDates.push.apply(convertedDates, dates.map(function (date) {
939
+ return _this.parent.tzModule.convert(new Date(date), event[_this.parent.eventFields.startTimezone], _this.parent.timezone).getTime();
940
+ }));
941
+ }
942
+ convertedDates = convertedDates.length > 0 ? convertedDates : dates;
928
943
  var occurrenceCollection = [];
929
- for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {
930
- var date = dates_1[_i];
944
+ for (var _i = 0, convertedDates_1 = convertedDates; _i < convertedDates_1.length; _i++) {
945
+ var date = convertedDates_1[_i];
931
946
  var clonedObject = extend({}, event, null, true);
932
- date = this.getDSTAdjustedTime(date, clonedObject);
947
+ date = !isDSTAdjusted ? this.getDSTAdjustedTime(date, clonedObject) : date;
933
948
  clonedObject[this.parent.eventFields.startTime] = new Date(date);
934
949
  clonedObject[this.parent.eventFields.endTime] = new Date(new Date(date).setMilliseconds(duration));
935
950
  clonedObject[this.parent.eventFields.recurrenceID] = clonedObject[this.parent.eventFields.id];
@@ -90,7 +90,15 @@ var InlineEdit = /** @class */ (function () {
90
90
  subjectWrap.insertBefore(inlineSubject, subjectWrap.firstChild);
91
91
  }
92
92
  else {
93
- args.element.querySelector('.e-appointment-details').prepend(inlineSubject);
93
+ var elementSelector = ['TimelineDay', 'TimelineWeek', 'TimelineWorkWeek', 'TimelineMonth'].indexOf(this.parent.currentView) > -1 ?
94
+ '.e-inner-wrap' : '.e-appointment-details';
95
+ var innerWrapElement = args.element.querySelector(elementSelector);
96
+ if (isNullOrUndefined(innerWrapElement)) {
97
+ args.element.querySelector('.e-appointment-details').prepend(inlineSubject);
98
+ }
99
+ else {
100
+ innerWrapElement.prepend(inlineSubject);
101
+ }
94
102
  }
95
103
  inlineSubject.focus();
96
104
  }
@@ -347,7 +347,10 @@ var MonthEvent = /** @class */ (function (_super) {
347
347
  if (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) {
348
348
  for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {
349
349
  var sourceRes = this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)];
350
- this.renderEventsHandler(sourceRes.renderDates, sourceRes.workDays, sourceRes);
350
+ if (!this.parent.uiStateValues.isGroupAdaptive ||
351
+ (this.parent.uiStateValues.groupIndex === sourceRes.groupIndex && this.parent.uiStateValues.isGroupAdaptive)) {
352
+ this.renderEventsHandler(sourceRes.renderDates, sourceRes.workDays, sourceRes);
353
+ }
351
354
  if (this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex !==
352
355
  this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex) {
353
356
  var target = this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)];
@@ -133,7 +133,10 @@ var TimelineEvent = /** @class */ (function (_super) {
133
133
  for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {
134
134
  var source = this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)];
135
135
  this.rowIndex = source.groupIndex;
136
- this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, source);
136
+ if (!this.parent.uiStateValues.isGroupAdaptive ||
137
+ (this.parent.uiStateValues.groupIndex === source.groupIndex && this.parent.uiStateValues.isGroupAdaptive)) {
138
+ this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, source);
139
+ }
137
140
  if (this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)] && this.parent.crudModule.crudObj.sourceEvent[parseInt(i.toString(), 10)].groupIndex !==
138
141
  this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)].groupIndex) {
139
142
  var target = this.parent.crudModule.crudObj.targetEvent[parseInt(i.toString(), 10)];
@@ -67,8 +67,8 @@ var YearEvent = /** @class */ (function (_super) {
67
67
  var monthDate = new Date(this.parent.selectedDate.getFullYear(), month, 1);
68
68
  var monthStart = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
69
69
  var monthEnd = this.parent.calendarUtil.getMonthEndDate(new Date(monthDate.getTime()));
70
- var startDate = util.getWeekFirstDate(monthStart, this.parent.firstDayOfWeek);
71
- var endDate = util.addDays(util.getWeekLastDate(monthEnd, this.parent.firstDayOfWeek), 1);
70
+ var startDate = util.getWeekFirstDate(monthStart, this.parent.activeViewOptions.firstDayOfWeek);
71
+ var endDate = util.addDays(util.getWeekLastDate(monthEnd, this.parent.activeViewOptions.firstDayOfWeek), 1);
72
72
  for (var index = 0; startDate.getTime() < endDate.getTime(); index++) {
73
73
  var start = util.resetTime(new Date(startDate.getTime()));
74
74
  var end = util.addDays(new Date(start.getTime()), 1);
@@ -37,6 +37,7 @@ export declare class HeaderRenderer {
37
37
  private calendarChange;
38
38
  setCalendarTimezone(): void;
39
39
  private calculateViewIndex;
40
+ private toolbarCreateHandler;
40
41
  private toolbarClickHandler;
41
42
  private hasSelectedDate;
42
43
  getHeaderElement(): HTMLElement;
@@ -81,10 +81,12 @@ var HeaderRenderer = /** @class */ (function () {
81
81
  items: args.items,
82
82
  overflowMode: 'Popup',
83
83
  clicked: _this.toolbarClickHandler.bind(_this),
84
+ created: _this.toolbarCreateHandler.bind(_this),
84
85
  enableRtl: _this.parent.enableRtl,
85
86
  enableHtmlSanitizer: _this.parent.enableHtmlSanitizer,
86
87
  locale: _this.parent.locale
87
88
  });
89
+ _this.toolbarObj.isStringTemplate = true;
88
90
  _this.toolbarObj.root = _this.parent.root ? _this.parent.root : _this.parent;
89
91
  _this.toolbarObj.appendTo(_this.parent.element.querySelector('.' + cls.HEADER_TOOLBAR));
90
92
  _this.toolbarObj.element.setAttribute('aria-label', 'Scheduler');
@@ -517,6 +519,12 @@ var HeaderRenderer = /** @class */ (function () {
517
519
  var views = [].slice.call(this.element.querySelectorAll('.e-views'));
518
520
  return views.indexOf(target);
519
521
  };
522
+ HeaderRenderer.prototype.toolbarCreateHandler = function () {
523
+ if (this.parent && this.parent.portals && this.toolbarObj && this.toolbarObj.portals) {
524
+ this.parent.portals = this.parent.portals.concat(this.toolbarObj.portals);
525
+ this.parent['renderReactTemplates']();
526
+ }
527
+ };
520
528
  HeaderRenderer.prototype.toolbarClickHandler = function (args) {
521
529
  if (!args.item) {
522
530
  return;
@@ -660,7 +668,7 @@ var HeaderRenderer = /** @class */ (function () {
660
668
  var firstDate = new Date(dates[0].getTime());
661
669
  var lastDate = new Date(dates[dates.length - 1].getTime());
662
670
  if (this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'TimelineWorkWeek') {
663
- firstDate = util.getWeekFirstDate(util.resetTime(this.parent.selectedDate), this.parent.firstDayOfWeek);
671
+ firstDate = util.getWeekFirstDate(util.resetTime(this.parent.selectedDate), this.parent.activeViewOptions.firstDayOfWeek);
664
672
  lastDate = util.addDays(firstDate, 7 * this.parent.activeViewOptions.interval);
665
673
  }
666
674
  else if (this.parent.currentView === 'Month') {
@@ -483,7 +483,13 @@ var Month = /** @class */ (function (_super) {
483
483
  var tr = createElement('tr');
484
484
  var td = createElement('td', { attrs: { 'aria-selected': 'false' } });
485
485
  var slotDatas = this.getContentSlots();
486
+ var isTimeline = this.parent.currentView === 'TimelineMonth';
487
+ var existingGroupIndices = isTimeline ? this.getGroupIndices() : [];
486
488
  for (var row = 0; row < slotDatas.length; row++) {
489
+ if (existingGroupIndices.length > 0 &&
490
+ existingGroupIndices.indexOf(slotDatas[parseInt(row.toString(), 10)][0].groupIndex) > -1) {
491
+ continue;
492
+ }
487
493
  var ntr = tr.cloneNode();
488
494
  for (var col = 0; col < slotDatas[parseInt(row.toString(), 10)].length; col++) {
489
495
  var ntd = this.createContentTd(slotDatas[parseInt(row.toString(), 10)][parseInt(col.toString(), 10)], td);
@@ -35,7 +35,7 @@ var TimelineHeaderRow = /** @class */ (function () {
35
35
  var jsDate = +new Date(1970, 0, 1);
36
36
  var tzOffsetDiff = d.getTimezoneOffset() - new Date(1970, 0, 1).getTimezoneOffset();
37
37
  var key = Math.ceil(((((+d - jsDate) - (tzOffsetDiff * 60 * 1000)) / MS_PER_DAY) + new Date(jsDate).getDay() + 1) / 7);
38
- if (this.parent.firstDayOfWeek && this.parent.firstDayOfWeek > new Date(+d).getDay()) {
38
+ if (this.parent.activeViewOptions.firstDayOfWeek && this.parent.activeViewOptions.firstDayOfWeek > new Date(+d).getDay()) {
39
39
  key = key - 1;
40
40
  }
41
41
  result[parseInt(key.toString(), 10)] = result[parseInt(key.toString(), 10)] || [];
@@ -237,7 +237,12 @@ var TimelineViews = /** @class */ (function (_super) {
237
237
  var tr = createElement('tr');
238
238
  var td = createElement('td', { attrs: { 'aria-selected': 'false' } });
239
239
  var trCount = this.getRowCount();
240
+ var existingGroupIndices = this.getGroupIndices();
240
241
  for (var i = 0; i < trCount; i++) {
242
+ if (existingGroupIndices.length > 0 &&
243
+ existingGroupIndices.indexOf(this.parent.resourceBase.renderedResources[parseInt(i.toString(), 10)].groupIndex) > -1) {
244
+ continue;
245
+ }
241
246
  var ntr = tr.cloneNode();
242
247
  for (var _i = 0, _a = this.colLevels[this.colLevels.length - 1]; _i < _a.length; _i++) {
243
248
  var tdData = _a[_i];
@@ -301,13 +301,17 @@ var TimelineYear = /** @class */ (function (_super) {
301
301
  TimelineYear.prototype.getContentRows = function () {
302
302
  var tRow = [];
303
303
  var monthCells = this.getMonths();
304
+ var existingGroupIndices = this.getGroupIndices();
304
305
  for (var row = 0; row < this.parent.resourceBase.renderedResources.length; row++) {
305
- var tr = createElement('tr');
306
- tRow.push(tr);
307
306
  var resData = void 0;
308
307
  if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {
309
308
  resData = this.parent.resourceBase.renderedResources[parseInt(row.toString(), 10)];
309
+ if (existingGroupIndices.length > 0 && existingGroupIndices.indexOf(resData.groupIndex) > -1) {
310
+ continue;
311
+ }
310
312
  }
313
+ var tr = createElement('tr');
314
+ tRow.push(tr);
311
315
  var monthDate = new Date(this.parent.selectedDate.getFullYear(), monthCells[parseInt(row.toString(), 10)], 1);
312
316
  var date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));
313
317
  for (var month = 0; month < this.columnCount; month++) {
@@ -678,18 +678,14 @@ var VerticalView = /** @class */ (function (_super) {
678
678
  var rows = [];
679
679
  var tr = createElement('tr');
680
680
  var td = createElement('td', { attrs: { 'aria-selected': 'false' } });
681
- var existingGroupIndices = new Set();
682
- if (this.parent.virtualScrollModule && this.parent.activeViewOptions.group.resources.length > 0 &&
683
- this.parent.virtualScrollModule.existingDataCollection.length > 0) {
684
- existingGroupIndices = new Set(this.parent.virtualScrollModule.existingDataCollection.map(function (data) { return data.groupIndex; }));
685
- }
681
+ var existingGroupIndices = this.getGroupIndices();
686
682
  var handler = function (r) {
687
683
  var ntr = tr.cloneNode();
688
684
  for (var _i = 0, _a = _this.colLevels[_this.colLevels.length - 1]; _i < _a.length; _i++) {
689
685
  var tdData = _a[_i];
690
686
  var isAllowTdCreation = true;
691
687
  if (_this.parent.virtualScrollModule && _this.parent.activeViewOptions.group.resources.length > 0) {
692
- if (existingGroupIndices.has(tdData.groupIndex)) {
688
+ if (existingGroupIndices.indexOf(tdData.groupIndex) > -1) {
693
689
  isAllowTdCreation = false;
694
690
  }
695
691
  }
@@ -75,5 +75,6 @@ export declare class ViewBase {
75
75
  getViewEndDate(): Date;
76
76
  getAdjustedDate(startTime: Date): Date;
77
77
  resetColLevels(): void;
78
+ getGroupIndices(dataCollection?: TdData[]): number[];
78
79
  destroy(): void;
79
80
  }
@@ -625,6 +625,15 @@ var ViewBase = /** @class */ (function () {
625
625
  this.parent.resourceBase.expandedResources = this.colLevels[this.colLevels.length - 1];
626
626
  }
627
627
  };
628
+ ViewBase.prototype.getGroupIndices = function (dataCollection) {
629
+ var groupIndices = [];
630
+ if (this.parent.virtualScrollModule && this.parent.activeViewOptions.group.resources.length > 0 && (dataCollection ||
631
+ this.parent.virtualScrollModule.existingDataCollection.length > 0) && !this.parent.uiStateValues.isGroupAdaptive) {
632
+ dataCollection = isNullOrUndefined(dataCollection) ? this.parent.virtualScrollModule.existingDataCollection : dataCollection;
633
+ groupIndices = dataCollection.map(function (data) { return data.groupIndex; });
634
+ }
635
+ return groupIndices;
636
+ };
628
637
  ViewBase.prototype.destroy = function () {
629
638
  if (this.element && this.element.parentNode) {
630
639
  remove(this.element);
@@ -113,7 +113,7 @@ var Year = /** @class */ (function (_super) {
113
113
  this.setAriaAttributes(contentTable);
114
114
  var thead = createElement('thead', { className: 'e-week-header' });
115
115
  var tr = createElement('tr');
116
- var currentWeek = util.getWeekFirstDate(util.firstDateOfMonth(currentDate), this.parent.firstDayOfWeek);
116
+ var currentWeek = util.getWeekFirstDate(util.firstDateOfMonth(currentDate), this.parent.activeViewOptions.firstDayOfWeek);
117
117
  if (this.parent.activeViewOptions.showWeekNumber) {
118
118
  tr.appendChild(createElement('th'));
119
119
  }
@@ -242,7 +242,7 @@ var Year = /** @class */ (function (_super) {
242
242
  return dateCol;
243
243
  };
244
244
  Year.prototype.getMonthDates = function (date) {
245
- var startDate = util.getWeekFirstDate(util.firstDateOfMonth(date), this.parent.firstDayOfWeek);
245
+ var startDate = util.getWeekFirstDate(util.firstDateOfMonth(date), this.parent.activeViewOptions.firstDayOfWeek);
246
246
  var endDate = util.addDays(new Date(+startDate), (6 * util.WEEK_LENGTH));
247
247
  var dateCollection = [];
248
248
  for (var start = startDate; start.getTime() < endDate.getTime(); start = util.addDays(start, 1)) {
@@ -378,10 +378,10 @@ var Year = /** @class */ (function (_super) {
378
378
  return util.addDays(util.addMonths(this.getStartDate(), this.parent.monthsCount), -1);
379
379
  };
380
380
  Year.prototype.startDate = function () {
381
- return this.parent.currentView === 'Year' ? util.getWeekFirstDate(this.getStartDate(), this.parent.firstDayOfWeek) : this.getStartDate();
381
+ return this.parent.currentView === 'Year' ? util.getWeekFirstDate(this.getStartDate(), this.parent.activeViewOptions.firstDayOfWeek) : this.getStartDate();
382
382
  };
383
383
  Year.prototype.endDate = function () {
384
- return this.parent.currentView === 'Year' ? util.addDays(util.getWeekLastDate(this.getEndDate(), this.parent.firstDayOfWeek), 1) :
384
+ return this.parent.currentView === 'Year' ? util.addDays(util.getWeekLastDate(this.getEndDate(), this.parent.activeViewOptions.firstDayOfWeek), 1) :
385
385
  util.addDays(this.getEndDate(), 1);
386
386
  };
387
387
  Year.prototype.getEndDateFromStartDate = function (start) {