@syncfusion/ej2-schedule 25.2.6 → 26.1.35

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 (161) 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 +331 -332
  6. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  7. package/dist/es6/ej2-schedule.es5.js +392 -407
  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/drag.js +2 -1
  17. package/src/schedule/actions/keyboard.js +1 -1
  18. package/src/schedule/actions/virtual-scroll.js +2 -1
  19. package/src/schedule/base/interface.js +0 -1
  20. package/src/schedule/base/schedule-model.d.ts +11 -11
  21. package/src/schedule/base/schedule.d.ts +11 -11
  22. package/src/schedule/base/schedule.js +22 -9
  23. package/src/schedule/base/util.js +1 -1
  24. package/src/schedule/event-renderer/event-base.js +5 -3
  25. package/src/schedule/event-renderer/timeline-view.js +4 -2
  26. package/src/schedule/event-renderer/year.js +2 -1
  27. package/src/schedule/exports/calendar-import.js +1 -2
  28. package/src/schedule/models/toolbar-model.d.ts +2 -2
  29. package/src/schedule/popups/event-window.js +1 -1
  30. package/src/schedule/renderer/header-renderer.js +6 -4
  31. package/src/schedule/renderer/vertical-view.js +3 -0
  32. package/src/schedule/renderer/view-base.js +8 -4
  33. package/styles/bootstrap-dark.css +236 -147
  34. package/styles/bootstrap-dark.scss +19 -2
  35. package/styles/bootstrap.css +237 -148
  36. package/styles/bootstrap.scss +19 -2
  37. package/styles/bootstrap4.css +239 -153
  38. package/styles/bootstrap4.scss +19 -2
  39. package/styles/bootstrap5-dark.css +229 -144
  40. package/styles/bootstrap5-dark.scss +19 -2
  41. package/styles/bootstrap5.css +229 -144
  42. package/styles/bootstrap5.scss +19 -2
  43. package/styles/fabric-dark.css +234 -146
  44. package/styles/fabric-dark.scss +19 -2
  45. package/styles/fabric.css +234 -146
  46. package/styles/fabric.scss +19 -2
  47. package/styles/fluent-dark.css +229 -142
  48. package/styles/fluent-dark.scss +19 -2
  49. package/styles/fluent.css +229 -142
  50. package/styles/fluent.scss +19 -2
  51. package/styles/fluent2.css +5932 -0
  52. package/styles/fluent2.scss +19 -0
  53. package/styles/highcontrast-light.css +229 -138
  54. package/styles/highcontrast-light.scss +19 -2
  55. package/styles/highcontrast.css +229 -138
  56. package/styles/highcontrast.scss +19 -2
  57. package/styles/material-dark.css +273 -155
  58. package/styles/material-dark.scss +19 -2
  59. package/styles/material.css +285 -156
  60. package/styles/material.scss +19 -2
  61. package/styles/material3-dark.css +278 -154
  62. package/styles/material3-dark.scss +19 -2
  63. package/styles/material3.css +278 -154
  64. package/styles/material3.scss +19 -2
  65. package/styles/recurrence-editor/_bds-definition.scss +0 -1
  66. package/styles/recurrence-editor/_bootstrap-dark-definition.scss +0 -1
  67. package/styles/recurrence-editor/_bootstrap-definition.scss +0 -1
  68. package/styles/recurrence-editor/_bootstrap4-definition.scss +0 -1
  69. package/styles/recurrence-editor/_bootstrap5-definition.scss +0 -1
  70. package/styles/recurrence-editor/_bootstrap5.3-definition.scss +14 -0
  71. package/styles/recurrence-editor/_fabric-dark-definition.scss +0 -1
  72. package/styles/recurrence-editor/_fabric-definition.scss +0 -1
  73. package/styles/recurrence-editor/_fluent-definition.scss +0 -1
  74. package/styles/recurrence-editor/_fluent2-definition.scss +14 -0
  75. package/styles/recurrence-editor/_fusionnew-definition.scss +0 -1
  76. package/styles/recurrence-editor/_highcontrast-definition.scss +0 -1
  77. package/styles/recurrence-editor/_highcontrast-light-definition.scss +0 -1
  78. package/styles/recurrence-editor/_layout.scss +1 -17
  79. package/styles/recurrence-editor/_material-dark-definition.scss +0 -1
  80. package/styles/recurrence-editor/_material-definition.scss +0 -1
  81. package/styles/recurrence-editor/_material3-definition.scss +0 -1
  82. package/styles/recurrence-editor/_tailwind-definition.scss +0 -1
  83. package/styles/recurrence-editor/bootstrap-dark.css +21 -23
  84. package/styles/recurrence-editor/bootstrap.css +21 -23
  85. package/styles/recurrence-editor/bootstrap4.css +22 -23
  86. package/styles/recurrence-editor/bootstrap5-dark.css +22 -23
  87. package/styles/recurrence-editor/bootstrap5.css +22 -23
  88. package/styles/recurrence-editor/fabric-dark.css +19 -22
  89. package/styles/recurrence-editor/fabric.css +19 -22
  90. package/styles/recurrence-editor/fluent-dark.css +22 -23
  91. package/styles/recurrence-editor/fluent.css +22 -23
  92. package/styles/recurrence-editor/fluent2.css +1534 -0
  93. package/styles/recurrence-editor/fluent2.scss +8 -0
  94. package/styles/recurrence-editor/highcontrast-light.css +19 -22
  95. package/styles/recurrence-editor/highcontrast.css +19 -22
  96. package/styles/recurrence-editor/material-dark.css +32 -26
  97. package/styles/recurrence-editor/material.css +32 -26
  98. package/styles/recurrence-editor/material3-dark.css +33 -27
  99. package/styles/recurrence-editor/material3.css +33 -27
  100. package/styles/recurrence-editor/tailwind-dark.css +32 -26
  101. package/styles/recurrence-editor/tailwind.css +32 -26
  102. package/styles/schedule/_bds-definition.scss +0 -15
  103. package/styles/schedule/_bootstrap-dark-definition.scss +4 -19
  104. package/styles/schedule/_bootstrap-definition.scss +4 -19
  105. package/styles/schedule/_bootstrap4-definition.scss +3 -18
  106. package/styles/schedule/_bootstrap5-definition.scss +1 -22
  107. package/styles/schedule/_bootstrap5.3-definition.scss +273 -0
  108. package/styles/schedule/_fabric-dark-definition.scss +4 -17
  109. package/styles/schedule/_fabric-definition.scss +4 -19
  110. package/styles/schedule/_fluent-definition.scss +0 -14
  111. package/styles/schedule/_fluent2-definition.scss +273 -0
  112. package/styles/schedule/_fusionnew-definition.scss +0 -21
  113. package/styles/schedule/_highcontrast-definition.scss +1 -16
  114. package/styles/schedule/_highcontrast-light-definition.scss +1 -16
  115. package/styles/schedule/_layout.scss +83 -130
  116. package/styles/schedule/_material-dark-definition.scss +5 -20
  117. package/styles/schedule/_material-definition.scss +4 -19
  118. package/styles/schedule/_material3-definition.scss +1 -23
  119. package/styles/schedule/_tailwind-definition.scss +0 -16
  120. package/styles/schedule/_theme.scss +14 -2
  121. package/styles/schedule/bootstrap-dark.css +220 -126
  122. package/styles/schedule/bootstrap.css +221 -127
  123. package/styles/schedule/bootstrap4.css +223 -132
  124. package/styles/schedule/bootstrap5-dark.css +213 -123
  125. package/styles/schedule/bootstrap5.css +213 -123
  126. package/styles/schedule/fabric-dark.css +218 -125
  127. package/styles/schedule/fabric.css +218 -125
  128. package/styles/schedule/fluent-dark.css +213 -121
  129. package/styles/schedule/fluent.css +213 -121
  130. package/styles/schedule/fluent2.css +5536 -0
  131. package/styles/schedule/fluent2.scss +16 -0
  132. package/styles/schedule/highcontrast-light.css +213 -117
  133. package/styles/schedule/highcontrast.css +213 -117
  134. package/styles/schedule/icons/_bds.scss +6 -21
  135. package/styles/schedule/icons/_bootstrap-dark.scss +4 -16
  136. package/styles/schedule/icons/_bootstrap.scss +4 -16
  137. package/styles/schedule/icons/_bootstrap4.scss +8 -26
  138. package/styles/schedule/icons/_bootstrap5.3.scss +220 -0
  139. package/styles/schedule/icons/_bootstrap5.scss +7 -22
  140. package/styles/schedule/icons/_fabric-dark.scss +5 -17
  141. package/styles/schedule/icons/_fabric.scss +5 -17
  142. package/styles/schedule/icons/_fluent.scss +7 -22
  143. package/styles/schedule/icons/_fluent2.scss +220 -0
  144. package/styles/schedule/icons/_fusionnew.scss +7 -22
  145. package/styles/schedule/icons/_highcontrast-light.scss +5 -17
  146. package/styles/schedule/icons/_highcontrast.scss +5 -17
  147. package/styles/schedule/icons/_material-dark.scss +5 -17
  148. package/styles/schedule/icons/_material.scss +5 -17
  149. package/styles/schedule/icons/_material3.scss +7 -22
  150. package/styles/schedule/icons/_tailwind.scss +7 -22
  151. package/styles/schedule/material-dark.css +257 -134
  152. package/styles/schedule/material.css +269 -135
  153. package/styles/schedule/material3-dark.css +262 -133
  154. package/styles/schedule/material3.css +262 -133
  155. package/styles/schedule/tailwind-dark.css +223 -124
  156. package/styles/schedule/tailwind.css +223 -124
  157. package/styles/tailwind-dark.css +239 -145
  158. package/styles/tailwind-dark.scss +19 -2
  159. package/styles/tailwind.css +239 -145
  160. package/styles/tailwind.scss +19 -2
  161. package/CHANGELOG.md +0 -1930
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 25.2.6
3
+ * version : 26.1.35
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@25.2.4",
3
+ "_id": "@syncfusion/ej2-schedule@22.9.0",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-GotTq1HrcT++YmcD8AsfKhcdJtUYrCa0DLNCTe2vYuPOHHPiJbNyJuXqVGIhENXl9OsDqa3D2RwyddA0Ntd7kA==",
5
+ "_integrity": "sha512-cbmdRc8J/qV77jIuDMYvpqRZxfgaaT8ATKKb8JFgIE2W/9wR2bhVqd9nWjMfnqTB2n8C+s07mz1p590gCbi5eQ==",
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-25.2.4.tgz",
27
- "_shasum": "e8ed70e9296b26f48063202ea4729c9917b27076",
26
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-release/@syncfusion/ej2-schedule/-/ej2-schedule-22.9.0.tgz",
27
+ "_shasum": "dc4b9da9933cae83dd17089bda3a219960824ba3",
28
28
  "_spec": "@syncfusion/ej2-schedule@*",
29
- "_where": "/jenkins/workspace/elease-automation_release_25.1.1/packages/included",
29
+ "_where": "/jenkins/workspace/elease-automation_release_26.1.1/packages/included",
30
30
  "author": {
31
31
  "name": "Syncfusion Inc."
32
32
  },
@@ -35,16 +35,17 @@
35
35
  },
36
36
  "bundleDependencies": false,
37
37
  "dependencies": {
38
- "@syncfusion/ej2-base": "~25.2.5",
39
- "@syncfusion/ej2-buttons": "~25.2.6",
40
- "@syncfusion/ej2-calendars": "~25.2.5",
41
- "@syncfusion/ej2-data": "~25.2.3",
42
- "@syncfusion/ej2-dropdowns": "~25.2.6",
43
- "@syncfusion/ej2-excel-export": "~25.2.3",
44
- "@syncfusion/ej2-inputs": "~25.2.6",
45
- "@syncfusion/ej2-lists": "~25.2.3",
46
- "@syncfusion/ej2-navigations": "~25.2.6",
47
- "@syncfusion/ej2-popups": "~25.2.6"
38
+ "@syncfusion/ej2-base": "~26.1.35",
39
+ "@syncfusion/ej2-buttons": "~26.1.35",
40
+ "@syncfusion/ej2-calendars": "~26.1.35",
41
+ "@syncfusion/ej2-data": "~26.1.35",
42
+ "@syncfusion/ej2-dropdowns": "~26.1.35",
43
+ "@syncfusion/ej2-excel-export": "~26.1.35",
44
+ "@syncfusion/ej2-inputs": "~26.1.35",
45
+ "@syncfusion/ej2-lists": "~26.1.35",
46
+ "@syncfusion/ej2-navigations": "~26.1.35",
47
+ "@syncfusion/ej2-popups": "~26.1.35",
48
+ "@types/requirejs": "^2.1.37"
48
49
  },
49
50
  "deprecated": false,
50
51
  "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.",
@@ -73,6 +74,6 @@
73
74
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
74
75
  },
75
76
  "typings": "index.d.ts",
76
- "version": "25.2.6",
77
+ "version": "26.1.35",
77
78
  "sideEffects": false
78
79
  }
@@ -142,6 +142,7 @@ export function generate(startDate, rule, excludeDate, startDayOfWeek, maximumCo
142
142
  return data;
143
143
  }
144
144
  maxOccurrence = maximumCount;
145
+ startDayOfWeek = startDayOfWeek || 0;
145
146
  setFirstDayOfWeek(DAYINDEX[parseInt(startDayOfWeek.toString(), 10)]);
146
147
  if (ruleObject.until) {
147
148
  var end = resetTime(ruleObject.until);
@@ -221,13 +221,13 @@ export interface RecurrenceEditorChangeEventArgs {
221
221
  */
222
222
  export declare type RepeatType = 'none' | 'daily' | 'weekly' | 'monthly' | 'yearly';
223
223
  /**
224
- * Defines the available types of recurrence end for the recurrence editor.
225
- * ```props
226
- * The following options are available:
227
- *
228
- * never :- Denotes that the recurrence has no end date and continues indefinitely.
229
- * until :- Denotes that the recurrence ends on a specified date.
230
- * count :- Denotes that the recurrence ends after a specified number of occurrences.
231
- * ```
224
+ * Defines the available types of recurrence end for the recurrence editor.
225
+ * ```props
226
+ * The following options are available:
227
+ *
228
+ * never :- Denotes that the recurrence has no end date and continues indefinitely.
229
+ * until :- Denotes that the recurrence ends on a specified date.
230
+ * count :- Denotes that the recurrence ends after a specified number of occurrences.
231
+ * ```
232
232
  */
233
233
  export declare type EndType = 'never' | 'until' | 'count';
@@ -51,7 +51,6 @@ var MONTHWEEK = 'e-month-week';
51
51
  var ENDON = 'e-end-on';
52
52
  var MONTHEXPANDERLABEL = 'e-month-expander-label';
53
53
  var WEEKEXPANDERLABEL = 'e-week-expander-label';
54
- var ENDONLABEL = 'e-end-on-label';
55
54
  var ENDONLEFT = 'e-end-on-left';
56
55
  var MONTHDAYELEMENT = 'e-monthday-element';
57
56
  var ENDONELEMENT = 'e-end-on-element';
@@ -933,7 +932,7 @@ var RecurrenceEditor = /** @class */ (function (_super) {
933
932
  }
934
933
  };
935
934
  RecurrenceEditor.prototype.getCalendarMode = function () {
936
- return this.calendarMode.toLowerCase();
935
+ return !isNullOrUndefined(this.calendarMode) ? this.calendarMode.toLowerCase() : 'gregorian';
937
936
  };
938
937
  RecurrenceEditor.prototype.getRuleSummary = function (rule) {
939
938
  if (rule === void 0) { rule = this.getRecurrenceRule(); }
@@ -294,7 +294,8 @@ var DragAndDrop = /** @class */ (function (_super) {
294
294
  if (this.parent.quickPopup) {
295
295
  this.parent.quickPopup.quickPopupHide(true);
296
296
  }
297
- if ((!isNullOrUndefined(e.target)) && e.target.classList && e.target.classList.contains(cls.DISABLE_DATES)) {
297
+ if ((!isNullOrUndefined(e.target)) && e.target.classList &&
298
+ e.target.classList.contains(cls.DISABLE_DATES)) {
298
299
  return;
299
300
  }
300
301
  var eventObj = extend({}, this.actionObj.event, null, true);
@@ -550,7 +550,7 @@ var KeyboardInteraction = /** @class */ (function () {
550
550
  };
551
551
  KeyboardInteraction.prototype.processViewNavigation = function (e) {
552
552
  var index = parseInt(e.key, 10) - 1;
553
- if (index < this.parent.views.length) {
553
+ if (!isNullOrUndefined(this.parent.views) && index < this.parent.views.length) {
554
554
  var view = this.parent.viewCollections[parseInt(index.toString(), 10)].option;
555
555
  this.parent.changeView(view, e, undefined, index);
556
556
  if (this.parent.headerModule) {
@@ -57,7 +57,7 @@ var VirtualScroll = /** @class */ (function () {
57
57
  conTable.offsetHeight / this.renderedLength) + 'px';
58
58
  var conWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);
59
59
  if ((conWrap.scrollHeight - conWrap.scrollTop) < conWrap.offsetHeight * this.bufferCount) {
60
- virtual.style.height = parseInt(virtual.style.height) + (conWrap.offsetHeight * this.bufferCount) + 'px';
60
+ virtual.style.height = parseInt(virtual.style.height, 10) + (conWrap.offsetHeight * this.bufferCount) + 'px';
61
61
  }
62
62
  }
63
63
  else {
@@ -107,6 +107,7 @@ var VirtualScroll = /** @class */ (function () {
107
107
  var endIndex = (firstTDIndex + this.renderedLength);
108
108
  firstTDIndex = (endIndex > this.parent.resourceBase.expandedResources.length) ?
109
109
  (this.parent.resourceBase.expandedResources.length - this.renderedLength) : firstTDIndex;
110
+ firstTDIndex = firstTDIndex < 0 ? 0 : firstTDIndex;
110
111
  this.parent.resourceBase.renderedResources = this.parent.resourceBase.expandedResources.slice(firstTDIndex, endIndex);
111
112
  if (this.parent.resourceBase.renderedResources.length > 0) {
112
113
  this.updateContent(resWrap, conWrap, eventWrap, this.parent.resourceBase.renderedResources);
@@ -1 +0,0 @@
1
-
@@ -55,17 +55,17 @@ export interface ScheduleModel extends ComponentModel{
55
55
  allowSwiping?: boolean;
56
56
 
57
57
  /**
58
- * To render the custom toolbar items, the `toolbarItems` property can be used. It contains built-in and custom toolbar items.
59
- * To avail the built-in toolbar items, the below string values are assigned to the `name` property of the `ToolbarItemModel`.
60
- * * `Previous`: Schedule component navigates to the previous date from the current date.
61
- * * `Next`: Schedule component navigates to the next date from the current date.
62
- * * `Today`: Schedule component navigates to the current date from any date.
63
- * * `Views`: Schedule component render the defined view options in the toolbar. If view option is not defined, then it will render default view options in the Schedule.
64
- * * `DateRangeText`: Schedule component displays the current date text range.
65
- * * `NewEvent`: Schedule component render the icon to add a new event.
66
- *
67
- * @default []
68
- */
58
+ * To render the custom toolbar items, the `toolbarItems` property can be used. It contains built-in and custom toolbar items.
59
+ * To avail the built-in toolbar items, the below string values are assigned to the `name` property of the `ToolbarItemModel`.
60
+ * * `Previous`: Schedule component navigates to the previous date from the current date.
61
+ * * `Next`: Schedule component navigates to the next date from the current date.
62
+ * * `Today`: Schedule component navigates to the current date from any date.
63
+ * * `Views`: Schedule component render the defined view options in the toolbar. If view option is not defined, then it will render default view options in the Schedule.
64
+ * * `DateRangeText`: Schedule component displays the current date text range.
65
+ * * `NewEvent`: Schedule component render the icon to add a new event.
66
+ *
67
+ * @default []
68
+ */
69
69
  toolbarItems?: ToolbarItemModel[]
70
70
 
71
71
  /**
@@ -183,17 +183,17 @@ export declare class Schedule extends Component<HTMLElement> implements INotifyP
183
183
  */
184
184
  allowSwiping: boolean;
185
185
  /**
186
- * To render the custom toolbar items, the `toolbarItems` property can be used. It contains built-in and custom toolbar items.
187
- * To avail the built-in toolbar items, the below string values are assigned to the `name` property of the `ToolbarItemModel`.
188
- * * `Previous`: Schedule component navigates to the previous date from the current date.
189
- * * `Next`: Schedule component navigates to the next date from the current date.
190
- * * `Today`: Schedule component navigates to the current date from any date.
191
- * * `Views`: Schedule component render the defined view options in the toolbar. If view option is not defined, then it will render default view options in the Schedule.
192
- * * `DateRangeText`: Schedule component displays the current date text range.
193
- * * `NewEvent`: Schedule component render the icon to add a new event.
194
- *
195
- * @default []
196
- */
186
+ * To render the custom toolbar items, the `toolbarItems` property can be used. It contains built-in and custom toolbar items.
187
+ * To avail the built-in toolbar items, the below string values are assigned to the `name` property of the `ToolbarItemModel`.
188
+ * * `Previous`: Schedule component navigates to the previous date from the current date.
189
+ * * `Next`: Schedule component navigates to the next date from the current date.
190
+ * * `Today`: Schedule component navigates to the current date from any date.
191
+ * * `Views`: Schedule component render the defined view options in the toolbar. If view option is not defined, then it will render default view options in the Schedule.
192
+ * * `DateRangeText`: Schedule component displays the current date text range.
193
+ * * `NewEvent`: Schedule component render the icon to add a new event.
194
+ *
195
+ * @default []
196
+ */
197
197
  toolbarItems: ToolbarItemModel[];
198
198
  /**
199
199
  * To set the active view on scheduler, the `currentView` property can be used and it usually accepts either of the following available
@@ -241,8 +241,10 @@ var Schedule = /** @class */ (function (_super) {
241
241
  if (selectedDate === void 0) { selectedDate = this.selectedDate; }
242
242
  // persist the selected date value
243
243
  var date = selectedDate instanceof Date ? new Date(selectedDate.getTime()) : new Date(selectedDate);
244
- var minDate = this.minDate instanceof Date ? new Date(this.minDate.getTime()) : new Date(this.minDate);
245
- var maxDate = this.maxDate instanceof Date ? new Date(this.maxDate.getTime()) : new Date(this.maxDate);
244
+ var minDate = isNullOrUndefined(this.minDate) ? new Date(1900, 0, 1) :
245
+ this.minDate instanceof Date ? new Date(this.minDate.getTime()) : new Date(this.minDate);
246
+ var maxDate = isNullOrUndefined(this.maxDate) ? new Date(2099, 11, 31) :
247
+ this.maxDate instanceof Date ? new Date(this.maxDate.getTime()) : new Date(this.maxDate);
246
248
  if (minDate <= maxDate) {
247
249
  if (date < minDate) {
248
250
  date = minDate;
@@ -270,6 +272,9 @@ var Schedule = /** @class */ (function (_super) {
270
272
  };
271
273
  Schedule.prototype.setViewOptions = function (isModuleLoad) {
272
274
  if (isModuleLoad === void 0) { isModuleLoad = false; }
275
+ if (isNullOrUndefined(this.views) || this.views.length === 0) {
276
+ return;
277
+ }
273
278
  this.viewOptions = {};
274
279
  this.viewCollections = [];
275
280
  var viewName;
@@ -342,7 +347,7 @@ var Schedule = /** @class */ (function (_super) {
342
347
  byDate: isYearView ? false : this.group.byDate,
343
348
  byGroupID: this.group.byGroupID,
344
349
  allowGroupEdit: this.group.allowGroupEdit,
345
- resources: this.group.resources,
350
+ resources: isNullOrUndefined(this.group.resources) ? [] : this.group.resources,
346
351
  headerTooltipTemplate: this.group.headerTooltipTemplate,
347
352
  enableCompactView: this.group.enableCompactView,
348
353
  hideNonWorkingDays: ['Day', 'Week', 'WorkWeek', 'Month'].indexOf(this.currentView) > -1 ? this.group.hideNonWorkingDays : false
@@ -478,7 +483,7 @@ var Schedule = /** @class */ (function (_super) {
478
483
  var culShortNames = [];
479
484
  var cldrObj;
480
485
  var nameSpace = '';
481
- if (this.locale === 'en' || this.locale === 'en-US') {
486
+ if (isNullOrUndefined(this.locale) || this.locale === 'en' || this.locale === 'en-US') {
482
487
  nameSpace = 'days.stand-alone.';
483
488
  cldrObj = (getValue(nameSpace + type, getDefaultDateObject(this.getCalendarMode())));
484
489
  }
@@ -497,7 +502,7 @@ var Schedule = /** @class */ (function (_super) {
497
502
  this.internalTimeFormat = this.timeFormat;
498
503
  return;
499
504
  }
500
- if (this.locale === 'en' || this.locale === 'en-US') {
505
+ if (isNullOrUndefined(this.locale) || this.locale === 'en' || this.locale === 'en-US') {
501
506
  this.internalTimeFormat = (getValue('timeFormats.short', getDefaultDateObject(this.getCalendarMode())));
502
507
  }
503
508
  else {
@@ -511,7 +516,7 @@ var Schedule = /** @class */ (function (_super) {
511
516
  * @private
512
517
  */
513
518
  Schedule.prototype.getCalendarMode = function () {
514
- return this.calendarMode.toLowerCase();
519
+ return !isNullOrUndefined(this.calendarMode) ? this.calendarMode.toLowerCase() : 'gregorian';
515
520
  };
516
521
  /**
517
522
  * Method to get time in string
@@ -641,7 +646,9 @@ var Schedule = /** @class */ (function (_super) {
641
646
  */
642
647
  Schedule.prototype.isMinMaxDate = function (date) {
643
648
  if (date === void 0) { date = this.selectedDate; }
644
- return ((date.getTime() >= this.minDate.getTime()) && (date.getTime() <= this.maxDate.getTime()));
649
+ var maxDate = isNullOrUndefined(this.maxDate) ? new Date(2099, 11, 31) : this.maxDate;
650
+ var minDate = isNullOrUndefined(this.minDate) ? new Date(1900, 0, 1) : this.minDate;
651
+ return ((date.getTime() >= minDate.getTime()) && (date.getTime() <= maxDate.getTime()));
645
652
  };
646
653
  /**
647
654
  * Method to validate the selected date
@@ -723,7 +730,8 @@ var Schedule = /** @class */ (function (_super) {
723
730
  if (this && isNullOrUndefined(this.uiStateValues) || !(this.enablePersistence)) {
724
731
  this.uiStateValues = {
725
732
  expand: false, isInitial: true, left: 0, top: 0, isGroupAdaptive: false,
726
- isIgnoreOccurrence: false, groupIndex: this.adaptiveGroupIndex, action: false, isBlock: false, isCustomMonth: true, isPreventTimezone: false
733
+ isIgnoreOccurrence: false, groupIndex: this.adaptiveGroupIndex, action: false,
734
+ isBlock: false, isCustomMonth: true, isPreventTimezone: false
727
735
  };
728
736
  }
729
737
  this.currentTimezoneDate = this.getCurrentTime();
@@ -1545,7 +1553,9 @@ var Schedule = /** @class */ (function (_super) {
1545
1553
  break;
1546
1554
  case 'timezone':
1547
1555
  this.eventBase.timezonePropertyChange(oldProp.timezone);
1548
- this.headerModule.setCalendarTimezone();
1556
+ if (this.headerModule) {
1557
+ this.headerModule.setCalendarTimezone();
1558
+ }
1549
1559
  break;
1550
1560
  case 'enableRtl':
1551
1561
  this.setRtlClass();
@@ -1569,6 +1579,9 @@ var Schedule = /** @class */ (function (_super) {
1569
1579
  this.changeView(this.currentView, null, true);
1570
1580
  }
1571
1581
  else if (state.isDate) {
1582
+ if (isNullOrUndefined(this.selectedDate)) {
1583
+ this.setProperties({ selectedDate: this.getCurrentTime() }, true);
1584
+ }
1572
1585
  this.changeDate(this.selectedDate);
1573
1586
  }
1574
1587
  else if (state.isLayout) {
@@ -73,7 +73,7 @@ export function getTranslateX(element) {
73
73
  export function getWeekFirstDate(date, firstDayOfWeek) {
74
74
  var date1 = new Date(date.getTime());
75
75
  firstDayOfWeek = (firstDayOfWeek - date1.getDay() + 7 * (-1)) % 7;
76
- return new Date(date1.setDate(date1.getDate() + firstDayOfWeek));
76
+ return new Date(date1.setDate(date1.getDate() + (isNaN(firstDayOfWeek) ? 0 : firstDayOfWeek)));
77
77
  }
78
78
  /**
79
79
  * Method to get week last date
@@ -1230,12 +1230,14 @@ var EventBase = /** @class */ (function () {
1230
1230
  var firstDate = 0;
1231
1231
  var lastDate = dateRender.length;
1232
1232
  var filteredDates;
1233
- if (dateRender[0] < this.parent.minDate && dateRender[dateRender.length - 1] > this.parent.maxDate) {
1233
+ var maxDate = isNullOrUndefined(this.parent.maxDate) ? new Date(2099, 11, 31) : this.parent.maxDate;
1234
+ var minDate = isNullOrUndefined(this.parent.minDate) ? new Date(1900, 0, 1) : this.parent.minDate;
1235
+ if (dateRender[0] < minDate && dateRender[dateRender.length - 1] > maxDate) {
1234
1236
  for (var i = 0; i < dateRender.length; i++) {
1235
- if (util.resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === util.resetTime(new Date(this.parent.minDate)).getTime()) {
1237
+ if (util.resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === util.resetTime(new Date(minDate)).getTime()) {
1236
1238
  firstDate = i;
1237
1239
  }
1238
- if (util.resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === util.resetTime(new Date(this.parent.maxDate)).getTime()) {
1240
+ if (util.resetTime(dateRender[parseInt(i.toString(), 10)]).getTime() === util.resetTime(new Date(maxDate)).getTime()) {
1239
1241
  lastDate = i;
1240
1242
  }
1241
1243
  }
@@ -70,8 +70,10 @@ var TimelineEvent = /** @class */ (function (_super) {
70
70
  for (var _a = 0, appointments_2 = appointments; _a < appointments_2.length; _a++) {
71
71
  var app = appointments_2[_a];
72
72
  var eventData = app.data;
73
- if (eventData.trimStartTime.getTime() <= date.getTime() &&
74
- eventData.trimEndTime.getTime() > date.getTime()) {
73
+ if ((eventData.trimStartTime.getTime() <= date.getTime() &&
74
+ eventData.trimEndTime.getTime() > date.getTime()) ||
75
+ (eventData.trimStartTime.getTime() === date.getTime() &&
76
+ eventData.trimEndTime.getTime() === date.getTime())) {
75
77
  appointmentsList.push(app);
76
78
  }
77
79
  }
@@ -175,7 +175,8 @@ var YearEvent = /** @class */ (function (_super) {
175
175
  return "continue";
176
176
  }
177
177
  }
178
- var enableAppRender = this_1.maxOrIndicator || (overlapIndex < eventsPerRow) || (this_1.cellHeight > availedHeight);
178
+ var enableAppRender = this_1.maxOrIndicator || (overlapIndex < eventsPerRow) ||
179
+ (this_1.cellHeight > availedHeight);
179
180
  if (this_1.parent.rowAutoHeight || enableAppRender || this_1.cellHeight > availedHeight) {
180
181
  this_1.renderEvent(eventWrapper, eventData, row, leftValue, rightValue, monthStart, dayIndex);
181
182
  if (this_1.parent.rowAutoHeight || this_1.cellHeight > availedHeight) {
@@ -49,8 +49,7 @@ var ICalendarImport = /** @class */ (function () {
49
49
  else {
50
50
  newlineOffset = 1;
51
51
  }
52
- // eslint-disable-next-line security/detect-object-injection
53
- var firstChar = iCalString[lastPosition];
52
+ var firstChar = iCalString.charAt(lastPosition);
54
53
  if (firstChar === ' ' || firstChar === '\n' || firstChar === '\t') {
55
54
  iString += iCalString.slice(lastPosition + 1, position - newlineOffset);
56
55
  }
@@ -168,9 +168,9 @@ export interface ToolbarItemModel {
168
168
 
169
169
  /**
170
170
  * Specifies the unique name for each toolbar item rendered in Schedule. This name is used to map the toolbar items in the Schedule component.
171
- *
171
+ *
172
172
  * To access the default toolbar items, provide the name below,
173
- *
173
+ *
174
174
  * * `Custom`: Schedule component render the custom toolbar item.
175
175
  * * `Previous`: Schedule component navigates to the previous date from the current date.
176
176
  * * `Next`: Schedule component navigates to the next date from the current date.
@@ -1107,7 +1107,7 @@ var EventWindow = /** @class */ (function () {
1107
1107
  };
1108
1108
  EventWindow.prototype.getFormat = function (formatType) {
1109
1109
  var format;
1110
- if (this.parent.locale === 'en' || this.parent.locale === 'en-US') {
1110
+ if (isNullOrUndefined(this.parent.locale) || this.parent.locale === 'en' || this.parent.locale === 'en-US') {
1111
1111
  format = getValue(formatType + '.short', getDefaultDateObject(this.parent.getCalendarMode()));
1112
1112
  }
1113
1113
  else {
@@ -74,7 +74,8 @@ var HeaderRenderer = /** @class */ (function () {
74
74
  };
75
75
  HeaderRenderer.prototype.renderToolbar = function () {
76
76
  var _this = this;
77
- var items = (this.parent.toolbarItems && this.parent.toolbarItems.length > 0) ? this.getToolbarItems() : this.getItems();
77
+ var items = (this.parent.toolbarItems && this.parent.toolbarItems.length > 0) ?
78
+ this.getToolbarItems() : this.getItems();
78
79
  this.parent.trigger(events.actionBegin, { requestType: 'toolbarItemRendering', items: items }, function (args) {
79
80
  _this.toolbarObj = new Toolbar({
80
81
  items: args.items,
@@ -167,6 +168,7 @@ var HeaderRenderer = /** @class */ (function () {
167
168
  if (!selEle) {
168
169
  return;
169
170
  }
171
+ selEle.firstElementChild.setAttribute('aria-haspopup', 'true');
170
172
  var textEle = selEle.querySelector('.e-tbar-btn-text');
171
173
  if (this.parent.activeViewOptions.dateRangeTemplate) {
172
174
  textEle.textContent = '';
@@ -314,7 +316,7 @@ var HeaderRenderer = /** @class */ (function () {
314
316
  items.push(__assign({}, tbItem, propItem));
315
317
  break;
316
318
  case 'Views':
317
- if (this.parent.views.length > 1) {
319
+ if (!isNullOrUndefined(this.parent.views) && this.parent.views.length > 1) {
318
320
  for (var _b = 0, _c = this.parent.views; _b < _c.length; _b++) {
319
321
  var view = _c[_b];
320
322
  tbItem = this.getItemObject(view);
@@ -364,11 +366,11 @@ var HeaderRenderer = /** @class */ (function () {
364
366
  align: 'Right', showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-today',
365
367
  text: this.l10n.getConstant('today'), cssClass: 'e-today', overflow: 'Show'
366
368
  });
367
- if (this.parent.views.length > 1) {
369
+ if (!isNullOrUndefined(this.parent.views) && this.parent.views.length > 1) {
368
370
  items.push({ align: 'Right', type: 'Separator', cssClass: 'e-schedule-seperator' });
369
371
  }
370
372
  }
371
- if (this.parent.views.length > 1) {
373
+ if (!isNullOrUndefined(this.parent.views) && this.parent.views.length > 1) {
372
374
  for (var _i = 0, _a = this.parent.views; _i < _a.length; _i++) {
373
375
  var item = _a[_i];
374
376
  items.push(this.getItemObject(item));
@@ -134,6 +134,9 @@ var VerticalView = /** @class */ (function (_super) {
134
134
  this.highlightCurrentTime();
135
135
  }
136
136
  this.retainScrollPosition();
137
+ if (!isNullOrUndefined(timeCells) && !isNullOrUndefined(content) && timeCells.scrollTop !== content.scrollTop) {
138
+ timeCells.scrollTop = content.scrollTop;
139
+ }
137
140
  };
138
141
  VerticalView.prototype.setContentHeight = function (element, leftPanelElement, height) {
139
142
  if (this.parent.isAdaptive && !this.isTimelineView()) {
@@ -35,10 +35,11 @@ var ViewBase = /** @class */ (function () {
35
35
  }
36
36
  });
37
37
  });
38
- if (!isNullOrUndefined(this.parent.resourceBase.renderedResources) && this.parent.resourceBase.renderedResources.length > 0) {
38
+ var rendereData = this.parent.resourceBase.renderedResources;
39
+ if (!isNullOrUndefined(rendereData) && rendereData.length > 0) {
39
40
  for (var i = 0; i < resourceTd.length; i++) {
40
41
  var element = resourceTd[parseInt(i.toString(), 10)];
41
- var data = this.parent.resourceBase.renderedResources[parseInt(i.toString(), 10)];
42
+ var data = rendereData[parseInt(i.toString(), 10)];
42
43
  if (this.parent.activeView && !isNullOrUndefined(element) && !isNullOrUndefined(data)
43
44
  && parseInt(element.getAttribute('data-group-index'), 10) === data.groupIndex) {
44
45
  this.parent.activeView.setResourceHeaderContent(element, data, cls.RESOURCE_TEXT_CLASS);
@@ -103,6 +104,9 @@ var ViewBase = /** @class */ (function () {
103
104
  table.setAttribute('aria-label', this.getLabelText(this.parent.currentView));
104
105
  };
105
106
  ViewBase.prototype.createColGroup = function (table, lastRow) {
107
+ if (isNullOrUndefined(lastRow)) {
108
+ return;
109
+ }
106
110
  var length = lastRow.length;
107
111
  if (lastRow[0] && lastRow[0].colSpan) {
108
112
  length = lastRow.map(function (value) { return value.colSpan; }).reduce(function (prev, next) { return prev + next; });
@@ -246,7 +250,7 @@ var ViewBase = /** @class */ (function () {
246
250
  };
247
251
  ViewBase.prototype.isWorkDay = function (date, workDays) {
248
252
  if (workDays === void 0) { workDays = this.parent.activeViewOptions.workDays; }
249
- if (workDays.indexOf(date.getDay()) >= 0) {
253
+ if (!isNullOrUndefined(workDays) && workDays.indexOf(date.getDay()) >= 0) {
250
254
  return true;
251
255
  }
252
256
  return false;
@@ -373,7 +377,7 @@ var ViewBase = /** @class */ (function () {
373
377
  }
374
378
  var formattedStr;
375
379
  var longDateFormat;
376
- if (this.parent.locale === 'en' || this.parent.locale === 'en-US') {
380
+ if (isNullOrUndefined(this.parent.locale) || this.parent.locale === 'en' || this.parent.locale === 'en-US') {
377
381
  longDateFormat = getValue('dateFormats.long', getDefaultDateObject(mode));
378
382
  }
379
383
  else {