@syncfusion/ej2-schedule 20.4.53 → 21.1.37

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 (107) hide show
  1. package/CHANGELOG.md +18 -0
  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 +339 -144
  6. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  7. package/dist/es6/ej2-schedule.es5.js +374 -165
  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 +16 -16
  13. package/src/common/calendar-util.d.ts +7 -0
  14. package/src/recurrence-editor/recurrence-editor.d.ts +10 -0
  15. package/src/schedule/actions/action-base.js +5 -0
  16. package/src/schedule/actions/crud.js +1 -0
  17. package/src/schedule/actions/data.d.ts +14 -2
  18. package/src/schedule/actions/data.js +26 -2
  19. package/src/schedule/actions/keyboard.js +15 -14
  20. package/src/schedule/base/interface.d.ts +23 -23
  21. package/src/schedule/base/resource.js +5 -6
  22. package/src/schedule/base/schedule-model.d.ts +34 -27
  23. package/src/schedule/base/schedule.d.ts +50 -27
  24. package/src/schedule/base/schedule.js +44 -8
  25. package/src/schedule/base/type.d.ts +66 -1
  26. package/src/schedule/event-renderer/agenda-base.js +6 -2
  27. package/src/schedule/event-renderer/event-base.d.ts +2 -1
  28. package/src/schedule/event-renderer/event-base.js +34 -13
  29. package/src/schedule/event-renderer/month.js +4 -5
  30. package/src/schedule/event-renderer/vertical-view.d.ts +0 -1
  31. package/src/schedule/event-renderer/vertical-view.js +6 -30
  32. package/src/schedule/event-renderer/year.d.ts +1 -0
  33. package/src/schedule/event-renderer/year.js +135 -54
  34. package/src/schedule/models/event-settings-model.d.ts +11 -2
  35. package/src/schedule/models/event-settings.d.ts +10 -2
  36. package/src/schedule/models/event-settings.js +3 -0
  37. package/src/schedule/models/fields-model.d.ts +4 -2
  38. package/src/schedule/models/fields.d.ts +6 -4
  39. package/src/schedule/models/fields.js +2 -2
  40. package/src/schedule/models/header-rows-model.d.ts +5 -5
  41. package/src/schedule/models/header-rows.d.ts +5 -5
  42. package/src/schedule/models/quick-info-templates-model.d.ts +3 -3
  43. package/src/schedule/models/quick-info-templates.d.ts +3 -3
  44. package/src/schedule/models/views-model.d.ts +16 -15
  45. package/src/schedule/models/views.d.ts +16 -15
  46. package/src/schedule/popups/event-tooltip.js +2 -1
  47. package/src/schedule/popups/event-window.js +26 -5
  48. package/src/schedule/popups/quick-popups.js +32 -10
  49. package/src/schedule/renderer/header-renderer.js +1 -0
  50. package/src/schedule/renderer/month-agenda.d.ts +3 -2
  51. package/src/schedule/renderer/month-agenda.js +5 -0
  52. package/src/schedule/renderer/month.d.ts +1 -0
  53. package/src/schedule/renderer/month.js +5 -3
  54. package/src/schedule/renderer/timeline-year.js +12 -8
  55. package/src/schedule/renderer/vertical-view.js +1 -1
  56. package/src/schedule/renderer/view-base.js +3 -4
  57. package/src/schedule/renderer/year.js +5 -1
  58. package/styles/bootstrap-dark.css +99 -89
  59. package/styles/bootstrap.css +99 -89
  60. package/styles/bootstrap4.css +99 -89
  61. package/styles/bootstrap5-dark.css +110 -100
  62. package/styles/bootstrap5.css +110 -100
  63. package/styles/fabric-dark.css +98 -88
  64. package/styles/fabric.css +98 -88
  65. package/styles/fluent-dark.css +109 -99
  66. package/styles/fluent.css +109 -99
  67. package/styles/highcontrast-light.css +98 -88
  68. package/styles/highcontrast.css +98 -88
  69. package/styles/material-dark.css +98 -88
  70. package/styles/material.css +98 -88
  71. package/styles/recurrence-editor/_bootstrap5-definition.scss +1 -1
  72. package/styles/recurrence-editor/_fluent-definition.scss +1 -1
  73. package/styles/recurrence-editor/_tailwind-definition.scss +1 -1
  74. package/styles/schedule/_bootstrap-dark-definition.scss +8 -1
  75. package/styles/schedule/_bootstrap-definition.scss +8 -1
  76. package/styles/schedule/_bootstrap4-definition.scss +7 -0
  77. package/styles/schedule/_bootstrap5-definition.scss +17 -10
  78. package/styles/schedule/_fabric-dark-definition.scss +7 -0
  79. package/styles/schedule/_fabric-definition.scss +7 -0
  80. package/styles/schedule/_fluent-definition.scss +15 -8
  81. package/styles/schedule/_fusionnew-definition.scss +7 -0
  82. package/styles/schedule/_highcontrast-definition.scss +7 -0
  83. package/styles/schedule/_highcontrast-light-definition.scss +7 -0
  84. package/styles/schedule/_layout.scss +63 -48
  85. package/styles/schedule/_material-dark-definition.scss +7 -0
  86. package/styles/schedule/_material-definition.scss +7 -0
  87. package/styles/schedule/_tailwind-definition.scss +17 -10
  88. package/styles/schedule/_theme.scss +40 -41
  89. package/styles/schedule/bootstrap-dark.css +99 -89
  90. package/styles/schedule/bootstrap.css +99 -89
  91. package/styles/schedule/bootstrap4.css +99 -89
  92. package/styles/schedule/bootstrap5-dark.css +110 -100
  93. package/styles/schedule/bootstrap5.css +110 -100
  94. package/styles/schedule/fabric-dark.css +98 -88
  95. package/styles/schedule/fabric.css +98 -88
  96. package/styles/schedule/fluent-dark.css +109 -99
  97. package/styles/schedule/fluent.css +109 -99
  98. package/styles/schedule/highcontrast-light.css +98 -88
  99. package/styles/schedule/highcontrast.css +98 -88
  100. package/styles/schedule/material-dark.css +98 -88
  101. package/styles/schedule/material.css +98 -88
  102. package/styles/schedule/tailwind-dark.css +106 -96
  103. package/styles/schedule/tailwind.css +106 -96
  104. package/styles/tailwind-dark.css +106 -96
  105. package/styles/tailwind.css +106 -96
  106. package/styles/recurrence-editor/_material3-definition.scss +0 -13
  107. package/styles/schedule/_material3-definition.scss +0 -283
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 20.4.53
3
+ * version : 21.1.37
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. 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@20.4.52",
3
+ "_id": "@syncfusion/ej2-schedule@21.1.35",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-uvECp2PMDWK18jedeq5o1vF4NyacCb46ARZkPrApDlPZh/4Iqlvjeg74bBq+rlvNv88RV1ZO/EQQRDyma6S8VQ==",
5
+ "_integrity": "sha512-cu0+Yb4W4QdCR1k/uA6LvJ08ZEVMa7dywB0Xi5RTFvLNZ/1p7r07a6adKCitcKvBxFfdajEa11c8OM0z3/KGhQ==",
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.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-schedule/-/ej2-schedule-20.4.52.tgz",
27
- "_shasum": "b864b662411395cc14d52ed776c4b45961412870",
26
+ "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-schedule/-/ej2-schedule-21.1.35.tgz",
27
+ "_shasum": "a23988578cbeeca76962a0b80a03e90bbd878c77",
28
28
  "_spec": "@syncfusion/ej2-schedule@*",
29
- "_where": "/jenkins/workspace/ease-automation_release_19.1.0.1/packages/included",
29
+ "_where": "/jenkins/workspace/elease-automation_release_21.1.1/packages/included",
30
30
  "author": {
31
31
  "name": "Syncfusion Inc."
32
32
  },
@@ -35,16 +35,16 @@
35
35
  },
36
36
  "bundleDependencies": false,
37
37
  "dependencies": {
38
- "@syncfusion/ej2-base": "~20.4.51",
39
- "@syncfusion/ej2-buttons": "~20.4.53",
40
- "@syncfusion/ej2-calendars": "~20.4.52",
41
- "@syncfusion/ej2-data": "~20.4.48",
42
- "@syncfusion/ej2-dropdowns": "~20.4.53",
43
- "@syncfusion/ej2-excel-export": "~20.4.53",
44
- "@syncfusion/ej2-inputs": "~20.4.52",
45
- "@syncfusion/ej2-lists": "~20.4.50",
46
- "@syncfusion/ej2-navigations": "~20.4.53",
47
- "@syncfusion/ej2-popups": "~20.4.53"
38
+ "@syncfusion/ej2-base": "~21.1.37",
39
+ "@syncfusion/ej2-buttons": "~21.1.37",
40
+ "@syncfusion/ej2-calendars": "~21.1.37",
41
+ "@syncfusion/ej2-data": "~21.1.37",
42
+ "@syncfusion/ej2-dropdowns": "~21.1.37",
43
+ "@syncfusion/ej2-excel-export": "~21.1.37",
44
+ "@syncfusion/ej2-inputs": "~21.1.37",
45
+ "@syncfusion/ej2-lists": "~21.1.37",
46
+ "@syncfusion/ej2-navigations": "~21.1.37",
47
+ "@syncfusion/ej2-popups": "~21.1.37"
48
48
  },
49
49
  "deprecated": false,
50
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.",
@@ -73,6 +73,6 @@
73
73
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
74
74
  },
75
75
  "typings": "index.d.ts",
76
- "version": "20.4.53",
76
+ "version": "21.1.37",
77
77
  "sideEffects": false
78
78
  }
@@ -1,6 +1,13 @@
1
1
  /**
2
2
  * Calendar functionalities
3
3
  */
4
+ /**
5
+ * Defines the calendar type of the scheduler.
6
+ * ```props
7
+ * Islamic :- Denotes the Islamic calendar.
8
+ * Gregorian :- Denotes the Gregorian calendar.
9
+ * ```
10
+ */
4
11
  export declare type CalendarType = 'Islamic' | 'Gregorian';
5
12
  /** @private */
6
13
  export interface CalendarUtil {
@@ -203,4 +203,14 @@ export interface RecurrenceEditorChangeEventArgs {
203
203
  /** Returns the current recurrence rule. */
204
204
  value: string;
205
205
  }
206
+ /**
207
+ * Defines the repeat type of the recurrence editor.
208
+ * ```props
209
+ * none :- Denotes no repetition.
210
+ * daily :- Denotes repetition every day.
211
+ * weekly :- Denotes repetition every week.
212
+ * monthly :- Denotes repetition every month.
213
+ * yearly :- Denotes repetition every year.
214
+ * ```
215
+ */
206
216
  export declare type RepeatType = 'none' | 'daily' | 'weekly' | 'monthly' | 'yearly';
@@ -63,6 +63,7 @@ var ActionBase = /** @class */ (function () {
63
63
  parseInt(this.actionObj.element.getAttribute('data-group-index'), 10) === this.actionObj.groupIndex : true;
64
64
  if (+eventObj[this.parent.eventFields.startTime] === +this.actionObj.event[this.parent.eventFields.startTime] &&
65
65
  +eventObj[this.parent.eventFields.endTime] === +this.actionObj.event[this.parent.eventFields.endTime] && isSameResource) {
66
+ this.parent.crudModule.crudObj.isCrudAction = false;
66
67
  return;
67
68
  }
68
69
  if (eventObj[this.parent.eventFields.recurrenceRule]) {
@@ -344,6 +345,10 @@ var ActionBase = /** @class */ (function () {
344
345
  }
345
346
  appWidth = eventObj.isSpanned.count * this.actionObj.cellWidth;
346
347
  }
348
+ if (!isResize && this.parent.activeViewOptions.orientation === 'Vertical' && this.parent.activeViewOptions.group.resources.length !== 0) {
349
+ var eventObj = this.yearEvent.isSpannedEvent(event, event[this.parent.eventFields.startTime]);
350
+ appWidth = eventObj.isSpanned.count * this.actionObj.cellWidth;
351
+ }
347
352
  var appointmentElement = this.createAppointmentElement(this.actionObj.groupIndex, event[this.parent.eventFields.subject]);
348
353
  appointmentElement.setAttribute('drag', 'true');
349
354
  addClass([appointmentElement], cls.CLONE_ELEMENT_CLASS);
@@ -204,6 +204,7 @@ var Crud = /** @class */ (function () {
204
204
  if (this.parent.currentAction !== 'EditFollowingEvents' && !this.isBlockEvent(eventData)
205
205
  && this.parent.eventBase.isBlockRange(eventData)) {
206
206
  this.parent.quickPopup.openValidationError('blockAlert', eventData);
207
+ this.parent.crudModule.crudObj.isCrudAction = false;
207
208
  return;
208
209
  }
209
210
  var updateEvents = (eventData instanceof Array) ? eventData : [eventData];
@@ -1,4 +1,5 @@
1
- import { Query, DataManager } from '@syncfusion/ej2-data';
1
+ import { Query, DataManager, Predicate } from '@syncfusion/ej2-data';
2
+ import { Schedule } from '../base/schedule';
2
3
  /**
3
4
  * data module is used to generate query and data source.
4
5
  *
@@ -7,14 +8,16 @@ import { Query, DataManager } from '@syncfusion/ej2-data';
7
8
  export declare class Data {
8
9
  dataManager: DataManager;
9
10
  private query;
11
+ private parent;
10
12
  /**
11
13
  * Constructor for data module
12
14
  *
15
+ * @param {Schedule} parent Accepts the schedule element instance
13
16
  * @param {Object | DataManager} dataSource Accepts the datasource as JSON objects or DataManager
14
17
  * @param {Query} query Accepts the query to process the data
15
18
  * @private
16
19
  */
17
- constructor(dataSource?: Record<string, any>[] | DataManager, query?: Query);
20
+ constructor(parent: Schedule, dataSource?: Record<string, any>[] | DataManager, query?: Query);
18
21
  /**
19
22
  * The function used to initialize dataManager and query
20
23
  *
@@ -33,6 +36,15 @@ export declare class Data {
33
36
  * @private
34
37
  */
35
38
  generateQuery(startDate?: Date, endDate?: Date): Query;
39
+ /**
40
+ * The function used to generate updated Query from schedule model
41
+ *
42
+ * @param {Date} startDate Accepts the start date
43
+ * @param {Date} endDate Accepts the end date
44
+ * @returns {void}
45
+ * @private
46
+ */
47
+ getStartEndQuery(startDate?: Date, endDate?: Date): Predicate;
36
48
  /**
37
49
  * The function used to get dataSource by executing given Query
38
50
  *
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Query, DataManager } from '@syncfusion/ej2-data';
2
+ import { Query, DataManager, Predicate } from '@syncfusion/ej2-data';
3
3
  /**
4
4
  * data module is used to generate query and data source.
5
5
  *
@@ -9,11 +9,13 @@ var Data = /** @class */ (function () {
9
9
  /**
10
10
  * Constructor for data module
11
11
  *
12
+ * @param {Schedule} parent Accepts the schedule element instance
12
13
  * @param {Object | DataManager} dataSource Accepts the datasource as JSON objects or DataManager
13
14
  * @param {Query} query Accepts the query to process the data
14
15
  * @private
15
16
  */
16
- function Data(dataSource, query) {
17
+ function Data(parent, dataSource, query) {
18
+ this.parent = parent;
17
19
  this.initDataManager(dataSource, query);
18
20
  }
19
21
  /**
@@ -38,6 +40,11 @@ var Data = /** @class */ (function () {
38
40
  */
39
41
  Data.prototype.generateQuery = function (startDate, endDate) {
40
42
  var query = this.query.clone();
43
+ if (this.parent && this.parent.eventSettings.includeFiltersInQuery && startDate && endDate) {
44
+ var dateQuery = this.getStartEndQuery(startDate, endDate);
45
+ var recurrenceQuery = new Predicate(this.parent.eventFields.recurrenceRule, 'notequal', null).and(new Predicate(this.parent.eventFields.recurrenceRule, 'notequal', ''));
46
+ return query.where(dateQuery.or(recurrenceQuery));
47
+ }
41
48
  if (startDate) {
42
49
  query.addParams('StartDate', startDate.toISOString());
43
50
  }
@@ -46,6 +53,23 @@ var Data = /** @class */ (function () {
46
53
  }
47
54
  return query;
48
55
  };
56
+ /**
57
+ * The function used to generate updated Query from schedule model
58
+ *
59
+ * @param {Date} startDate Accepts the start date
60
+ * @param {Date} endDate Accepts the end date
61
+ * @returns {void}
62
+ * @private
63
+ */
64
+ Data.prototype.getStartEndQuery = function (startDate, endDate) {
65
+ var fieldMapping = this.parent.eventFields;
66
+ var dateQuery = new Predicate(fieldMapping.startTime, 'greaterthanorequal', startDate)
67
+ .and(new Predicate(fieldMapping.endTime, 'greaterthanorequal', startDate))
68
+ .and(new Predicate(fieldMapping.startTime, 'lessthan', endDate))
69
+ .or(new Predicate(fieldMapping.startTime, 'lessthanorequal', startDate)
70
+ .and(new Predicate(fieldMapping.endTime, 'greaterthan', startDate)));
71
+ return dateQuery;
72
+ };
49
73
  /**
50
74
  * The function used to get dataSource by executing given Query
51
75
  *
@@ -446,15 +446,16 @@ var KeyboardInteraction = /** @class */ (function () {
446
446
  var args = {
447
447
  element: target, requestType: cellSelect
448
448
  };
449
- var cellData = {};
450
- var cellDetails = this.parent.getCellDetails(target);
451
- if (this.parent.eventWindow && cellDetails) {
452
- if (this.parent.activeCellsData.element !== cellDetails.element) {
453
- this.parent.activeCellsData = cellDetails;
454
- }
455
- this.parent.eventWindow.convertToEventData(this.parent.activeCellsData, cellData);
456
- args.data = cellData;
457
- }
449
+ // activeCellsData is not reset on schedule property changed(group properties)
450
+ // const cellData: Record<string, any> = {};
451
+ // const cellDetails: CellClickEventArgs = this.parent.getCellDetails(target);
452
+ // if (this.parent.eventWindow && cellDetails) {
453
+ // if (this.parent.activeCellsData.element !== cellDetails.element) {
454
+ // this.parent.activeCellsData = cellDetails;
455
+ // }
456
+ // this.parent.eventWindow.convertToEventData(this.parent.activeCellsData as unknown as Record<string, any>, cellData);
457
+ // args.data = cellData;
458
+ // }
458
459
  this.parent.trigger(event.select, args, function () {
459
460
  _this.initialTarget = target;
460
461
  _this.selectedCells = [target];
@@ -477,7 +478,7 @@ var KeyboardInteraction = /** @class */ (function () {
477
478
  nextAppEle = isReverse ? appointments[appointments.length - 1] : appointments[0];
478
479
  }
479
480
  if (nextAppEle) {
480
- this.parent.eventBase.addSelectedAppointments([nextAppEle]);
481
+ this.parent.eventBase.addSelectedAppointments([nextAppEle], true);
481
482
  nextAppEle.focus();
482
483
  addClass([nextAppEle], cls.AGENDA_SELECTED_CELL);
483
484
  }
@@ -504,7 +505,7 @@ var KeyboardInteraction = /** @class */ (function () {
504
505
  if (filteredElements_1.length > 0) {
505
506
  var selectedElement = isReverse ? filteredElements_1[filteredElements_1.length - 1] : filteredElements_1[0];
506
507
  var focusElements = this.getAppointmentElementsByGuid(selectedElement.getAttribute('data-guid'));
507
- this.parent.eventBase.addSelectedAppointments(focusElements);
508
+ this.parent.eventBase.addSelectedAppointments(focusElements, true);
508
509
  (focusElements[focusElements.length - 1]).focus();
509
510
  }
510
511
  }
@@ -963,7 +964,7 @@ var KeyboardInteraction = /** @class */ (function () {
963
964
  if (appElements.length > 0) {
964
965
  this.parent.eventBase.removeSelectedAppointmentClass();
965
966
  var focusAppointment = isReverse ? appElements.slice(-1)[0] : appElements[0];
966
- this.parent.eventBase.addSelectedAppointments([focusAppointment]);
967
+ this.parent.eventBase.addSelectedAppointments([focusAppointment], true);
967
968
  focusAppointment.focus();
968
969
  e.preventDefault();
969
970
  }
@@ -1065,7 +1066,7 @@ var KeyboardInteraction = /** @class */ (function () {
1065
1066
  var nextAppEle = eventEle[0];
1066
1067
  if (nextAppEle) {
1067
1068
  this.parent.eventBase.removeSelectedAppointmentClass();
1068
- this.parent.eventBase.addSelectedAppointments([nextAppEle]);
1069
+ this.parent.eventBase.addSelectedAppointments([nextAppEle], true);
1069
1070
  nextAppEle.focus();
1070
1071
  }
1071
1072
  }
@@ -1077,7 +1078,7 @@ var KeyboardInteraction = /** @class */ (function () {
1077
1078
  if (appElements.length > 0) {
1078
1079
  this.parent.eventBase.removeSelectedAppointmentClass();
1079
1080
  var focusAppointment = appElements[0];
1080
- this.parent.eventBase.addSelectedAppointments([focusAppointment]);
1081
+ this.parent.eventBase.addSelectedAppointments([focusAppointment], true);
1081
1082
  focusAppointment.focus();
1082
1083
  e.preventDefault();
1083
1084
  }
@@ -118,15 +118,15 @@ export interface PopupOpenEventArgs extends BaseEventArgs {
118
118
  /**
119
119
  * Returns the type of the popup which is currently being opted to open.
120
120
  * The available type values are as follows,
121
- * * DeleteAlert
122
- * * EditEventInfo
123
- * * Editor
124
- * * EventContainer
125
- * * QuickInfo
126
- * * RecurrenceAlert
127
- * * RecurrenceValidationAlert
128
- * * ValidationAlert
129
- * * ViewEventInfo
121
+ * * `DeleteAlert`: Denotes the popup showing delete confirmation message.
122
+ * * `EditEventInfo`: Denotes the quick popup on the events in responsive mode.
123
+ * * `Editor`: Denotes the detailed editor window.
124
+ * * `EventContainer`: Denotes the more indicator popup.
125
+ * * `QuickInfo`: Denotes the quick popup.
126
+ * * `RecurrenceAlert`: Denotes the popup showing recurrence alerts.
127
+ * * `RecurrenceValidationAlert`: Denotes the popup showing recurrence validation alerts.
128
+ * * `ValidationAlert`: Denotes the popup showing validation alerts.
129
+ * * `ViewEventInfo`: Denotes the quick popup on the cells in responsive mode.
130
130
  */
131
131
  type: PopupType;
132
132
  /** Returns the cell or event data. */
@@ -150,15 +150,15 @@ export interface PopupCloseEventArgs extends BaseEventArgs {
150
150
  /**
151
151
  * Returns the type of the popup which is currently being opted to open.
152
152
  * The available type values are as follows,
153
- * * DeleteAlert
154
- * * EditEventInfo
155
- * * Editor
156
- * * EventContainer
157
- * * QuickInfo
158
- * * RecurrenceAlert
159
- * * RecurrenceValidationAlert
160
- * * ValidationAlert
161
- * * ViewEventInfo
153
+ * * `DeleteAlert`: Denotes the popup showing delete confirmation message.
154
+ * * `EditEventInfo`: Denotes the quick popup on the events in responsive mode.
155
+ * * `Editor`: Denotes the detailed editor window.
156
+ * * `EventContainer`: Denotes the more indicator popup.
157
+ * * `QuickInfo`: Denotes the quick popup.
158
+ * * `RecurrenceAlert`: Denotes the popup showing recurrence alerts.
159
+ * * `RecurrenceValidationAlert`: Denotes the popup showing recurrence validation alerts.
160
+ * * `ValidationAlert`: Denotes the popup showing validation alerts.
161
+ * * `ViewEventInfo`: Denotes the quick popup on the cells in responsive mode.
162
162
  */
163
163
  type: PopupType;
164
164
  /** Returns the cell or event data. */
@@ -313,7 +313,7 @@ export interface ResourceDetails {
313
313
  export interface TimezoneFields {
314
314
  /** Assigns the timezone display text. */
315
315
  Text: string;
316
- /** Assigns the IANA timezone value. */
316
+ /** Assigns the [`IANA`](https://docs.actian.com/ingres/11.0/index.html#page/Ing_Install/IANA_World_Regions_and_Time_Zone_Names.htm) timezone value. */
317
317
  Value: string;
318
318
  }
319
319
  /** An interface that holds options of events once it bound to scheduler. */
@@ -328,6 +328,10 @@ export interface DataBindingEventArgs extends BaseEventArgs {
328
328
  count?: number;
329
329
  aggregates?: Record<string, any>;
330
330
  }
331
+ /** An interface that holds the custom sort comparer function. */
332
+ export interface SortComparerFunction {
333
+ (param: Record<string, any>[]): Record<string, any>[];
334
+ }
331
335
  /** @private */
332
336
  export interface InlineClickArgs extends BaseEventArgs {
333
337
  data?: Record<string, any>;
@@ -581,7 +585,3 @@ export interface CrudAction {
581
585
  export interface CallbackFunction extends Function {
582
586
  bind<T, A0, A1, A2, A3, A extends any[], R>(this: (this: T, args0: A0, args1: A1, args2: A2, args3: A3, ...args: A[]) => R, thisArgs: T, args0: A0, args1: A1, args2: A2, args3: A3): (...args: A[]) => R;
583
587
  }
584
- /** @private */
585
- export interface SortComparerFunction {
586
- (param: Record<string, any>[]): Record<string, any>[];
587
- }
@@ -196,7 +196,7 @@ var ResourceBase = /** @class */ (function () {
196
196
  classList(target, [cls.RESOURCE_COLLAPSE_CLASS], [cls.RESOURCE_EXPAND_CLASS]);
197
197
  hide = false;
198
198
  }
199
- var eventElements = [].slice.call(_this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));
199
+ var eventElements = [].slice.call(_this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS + ',.' + cls.MORE_INDICATOR_CLASS));
200
200
  for (var _i = 0, eventElements_1 = eventElements; _i < eventElements_1.length; _i++) {
201
201
  var element = eventElements_1[_i];
202
202
  remove(element);
@@ -326,6 +326,7 @@ var ResourceBase = /** @class */ (function () {
326
326
  this.treeViewObj = new TreeView({
327
327
  cssClass: this.parent.cssClass,
328
328
  enableRtl: this.parent.enableRtl,
329
+ enableHtmlSanitizer: this.parent.enableHtmlSanitizer,
329
330
  fields: {
330
331
  dataSource: [].slice.call(this.generateTreeData()),
331
332
  id: 'resourceId',
@@ -430,10 +431,8 @@ var ResourceBase = /** @class */ (function () {
430
431
  var resourceText = resourceLevel.dataSource.filter(function (resData) {
431
432
  return resData[resourceLevel.idField] === resource.groupOrder[parseInt(i.toString(), 10)];
432
433
  });
433
- var resourceName = createElement('div', {
434
- className: cls.RESOURCE_NAME,
435
- innerHTML: resourceText[0][resourceLevel.textField]
436
- });
434
+ var resourceName = createElement('div', { className: cls.RESOURCE_NAME });
435
+ resourceName.innerText = this_2.parent.sanitize(resourceText[0][resourceLevel.textField]);
437
436
  headerCollection.push(resourceName);
438
437
  var levelIcon = createElement('div', { className: 'e-icons e-icon-next' });
439
438
  headerCollection.push(levelIcon);
@@ -513,7 +512,7 @@ var ResourceBase = /** @class */ (function () {
513
512
  var promises = [];
514
513
  for (var _i = 0, _a = this.parent.resources; _i < _a.length; _i++) {
515
514
  var resource = _a[_i];
516
- var dataModule = new Data(resource.dataSource, resource.query);
515
+ var dataModule = new Data(this.parent, resource.dataSource, resource.query);
517
516
  promises.push(dataModule.getData(dataModule.generateQuery()));
518
517
  }
519
518
  Promise.all(promises).then(function (e) { return _this.dataManagerSuccess(e, isSetModel); })
@@ -1,4 +1,4 @@
1
- import { Component, ModuleDeclaration, Property, Event, Animation, Collection, append } from '@syncfusion/ej2-base';import { EventHandler, EmitType, Browser, Internationalization, getDefaultDateObject, cldrData, L10n } from '@syncfusion/ej2-base';import { getValue, compile, extend, isNullOrUndefined, NotifyPropertyChanges, INotifyPropertyChanged, Complex } from '@syncfusion/ej2-base';import { getElement, removeClass, addClass, classList, remove } from '@syncfusion/ej2-base';import { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';import { HeaderRenderer } from '../renderer/header-renderer';import { Scroll } from '../actions/scroll';import { ScheduleTouch } from '../actions/touch';import { KeyboardInteraction } from '../actions/keyboard';import { Data } from '../actions/data';import { View, CurrentAction, ReturnType, WeekRule } from '../base/type';import { EventBase } from '../event-renderer/event-base';import { InlineEdit } from '../event-renderer/inline-edit';import { QuickPopups } from '../popups/quick-popups';import { EventTooltip } from '../popups/event-tooltip';import { EventWindow } from '../popups/event-window';import { Render } from '../renderer/renderer';import { Day } from '../renderer/day';import { Week } from '../renderer/week';import { WorkWeek } from '../renderer/work-week';import { Month } from '../renderer/month';import { Year } from '../renderer/year';import { Agenda } from '../renderer/agenda';import { MonthAgenda } from '../renderer/month-agenda';import { TimelineViews } from '../renderer/timeline-view';import { TimelineMonth } from '../renderer/timeline-month';import { TimelineYear } from '../renderer/timeline-year';import { WorkHours } from '../models/work-hours';import { TimeScale } from '../models/time-scale';import { QuickInfoTemplates } from '../models/quick-info-templates';import { HeaderRows } from '../models/header-rows';import { Crud } from '../actions/crud';import { Resize } from '../actions/resize';import { DragAndDrop } from '../actions/drag';import { VirtualScroll } from '../actions/virtual-scroll';import { WorkCellInteraction } from '../actions/work-cells';import { WorkHoursModel, ViewsModel, EventSettingsModel, GroupModel, ResourcesModel, TimeScaleModel } from '../models/models';import { QuickInfoTemplatesModel, HeaderRowsModel } from '../models/models';import { EventSettings } from '../models/event-settings';import { Group } from '../models/group';import { Resources } from '../models/resources';import { ICalendarExport } from '../exports/calendar-export';import { ICalendarImport } from '../exports/calendar-import';import { ExcelExport } from '../exports/excel-export';import { Print } from '../exports/print';import { IRenderer, ActionEventArgs, NavigatingEventArgs, CellClickEventArgs, RenderCellEventArgs, ScrollCss, TimezoneFields } from '../base/interface';import { EventClickArgs, EventRenderedArgs, PopupOpenEventArgs, UIStateArgs, DragEventArgs, ResizeEventArgs } from '../base/interface';import { EventFieldsMapping, TdData, ResourceDetails, ResizeEdges, StateArgs, ExportOptions, SelectEventArgs } from '../base/interface';import { ViewsData, PopupCloseEventArgs, HoverEventArgs, MoreEventsClickArgs, CallbackFunction } from '../base/interface';import { CalendarUtil, Gregorian, Islamic, CalendarType } from '../../common/calendar-util';import { ResourceBase } from '../base/resource';import { Timezone, timezoneData } from '../timezone/timezone';import { RecurrenceEditor } from '../../recurrence-editor/recurrence-editor';import * as events from '../base/constant';import * as cls from '../base/css-constant';import * as util from '../base/util';
1
+ import { Component, ModuleDeclaration, Property, Event, Animation, Collection, append } from '@syncfusion/ej2-base';import { EventHandler, EmitType, Browser, Internationalization, getDefaultDateObject, cldrData, L10n } from '@syncfusion/ej2-base';import { getValue, compile, extend, isNullOrUndefined, NotifyPropertyChanges, INotifyPropertyChanged, Complex } from '@syncfusion/ej2-base';import { getElement, removeClass, addClass, classList, remove, SanitizeHtmlHelper } from '@syncfusion/ej2-base';import { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';import { HeaderRenderer } from '../renderer/header-renderer';import { Scroll } from '../actions/scroll';import { ScheduleTouch } from '../actions/touch';import { KeyboardInteraction } from '../actions/keyboard';import { Data } from '../actions/data';import { View, CurrentAction, ReturnType, WeekRule } from '../base/type';import { EventBase } from '../event-renderer/event-base';import { InlineEdit } from '../event-renderer/inline-edit';import { QuickPopups } from '../popups/quick-popups';import { EventTooltip } from '../popups/event-tooltip';import { EventWindow } from '../popups/event-window';import { Render } from '../renderer/renderer';import { Day } from '../renderer/day';import { Week } from '../renderer/week';import { WorkWeek } from '../renderer/work-week';import { Month } from '../renderer/month';import { Year } from '../renderer/year';import { Agenda } from '../renderer/agenda';import { MonthAgenda } from '../renderer/month-agenda';import { TimelineViews } from '../renderer/timeline-view';import { TimelineMonth } from '../renderer/timeline-month';import { TimelineYear } from '../renderer/timeline-year';import { WorkHours } from '../models/work-hours';import { TimeScale } from '../models/time-scale';import { QuickInfoTemplates } from '../models/quick-info-templates';import { HeaderRows } from '../models/header-rows';import { Crud } from '../actions/crud';import { Resize } from '../actions/resize';import { DragAndDrop } from '../actions/drag';import { VirtualScroll } from '../actions/virtual-scroll';import { WorkCellInteraction } from '../actions/work-cells';import { WorkHoursModel, ViewsModel, EventSettingsModel, GroupModel, ResourcesModel, TimeScaleModel } from '../models/models';import { QuickInfoTemplatesModel, HeaderRowsModel } from '../models/models';import { EventSettings } from '../models/event-settings';import { Group } from '../models/group';import { Resources } from '../models/resources';import { ICalendarExport } from '../exports/calendar-export';import { ICalendarImport } from '../exports/calendar-import';import { ExcelExport } from '../exports/excel-export';import { Print } from '../exports/print';import { IRenderer, ActionEventArgs, NavigatingEventArgs, CellClickEventArgs, RenderCellEventArgs, ScrollCss, TimezoneFields } from '../base/interface';import { EventClickArgs, EventRenderedArgs, PopupOpenEventArgs, UIStateArgs, DragEventArgs, ResizeEventArgs } from '../base/interface';import { EventFieldsMapping, TdData, ResourceDetails, ResizeEdges, StateArgs, ExportOptions, SelectEventArgs } from '../base/interface';import { ViewsData, PopupCloseEventArgs, HoverEventArgs, MoreEventsClickArgs, CallbackFunction } from '../base/interface';import { CalendarUtil, Gregorian, Islamic, CalendarType } from '../../common/calendar-util';import { ResourceBase } from '../base/resource';import { Timezone, timezoneData } from '../timezone/timezone';import { RecurrenceEditor } from '../../recurrence-editor/recurrence-editor';import * as events from '../base/constant';import * as cls from '../base/css-constant';import * as util from '../base/util';
2
2
  import {ComponentModel} from '@syncfusion/ej2-base';
3
3
 
4
4
  /**
@@ -61,18 +61,18 @@ export interface ScheduleModel extends ComponentModel{
61
61
  /**
62
62
  * To set the active view on scheduler, the `currentView` property can be used and it usually accepts either of the following available
63
63
  * view options. The view option specified in this property will be initially loaded on the schedule.
64
- * * Day
65
- * * Week
66
- * * WorkWeek
67
- * * Month
68
- * * Year
69
- * * Agenda
70
- * * MonthAgenda
71
- * * TimelineDay
72
- * * TimelineWeek
73
- * * TimelineWorkWeek
74
- * * TimelineMonth
75
- * * TimelineYear
64
+ * * `Day`: Denotes Day view of the scheduler.
65
+ * * `Week`: Denotes Week view of the scheduler.
66
+ * * `WorkWeek`: Denotes Work Week view of the scheduler.
67
+ * * `Month`: Denotes Month view of the scheduler.
68
+ * * `Year`: Denotes Year view of the scheduler.
69
+ * * `Agenda`: Denotes Agenda view of the scheduler.
70
+ * * `MonthAgenda`: Denotes Month Agenda view of the scheduler.
71
+ * * `TimelineDay`: Denotes Timeline Day view of the scheduler.
72
+ * * `TimelineWeek`: Denotes Timeline Week view of the scheduler.
73
+ * * `TimelineWorkWeek`: Denotes Timeline Work Week view of the scheduler.
74
+ * * `TimelineMonth`: Denotes Timeline Month view of the scheduler.
75
+ * * `TimelineYear`: Denotes Timeline Year view of the scheduler.
76
76
  *
77
77
  * {% codeBlock src='schedule/currentView/index.md' %}{% endcodeBlock %}
78
78
  *
@@ -86,13 +86,12 @@ export interface ScheduleModel extends ComponentModel{
86
86
  * Schedule displays all the views namely `Day`, `Week`, `Work Week`, `Month` and `Agenda`.
87
87
  *
88
88
  * Example for array of views:
89
- * {% codeBlock src="schedule/view-api/index.ts" %}{% endcodeBlock %}
89
+ * {% codeBlock src="schedule/views/index.md" %}{% endcodeBlock %}
90
90
  *
91
91
  * Example for array of view objects:
92
- * {% codeBlock src="schedule/view-api/array.ts" %}{% endcodeBlock %}
93
- * {% codeBlock src='schedule/views/index.md' %}{% endcodeBlock %}
92
+ * {% codeBlock src='schedule/viewOption/index.md' %}{% endcodeBlock %}
94
93
  *
95
- * @default '['Day', 'Week', 'WorkWeek', 'Month', 'Agenda']'
94
+ * @default '["Day", "Week", "WorkWeek", "Month", "Agenda"]'
96
95
  */
97
96
  views?: View[] | ViewsModel[];
98
97
 
@@ -182,9 +181,9 @@ export interface ScheduleModel extends ComponentModel{
182
181
  /**
183
182
  * It allows the Scheduler to display week numbers based on following available week options. The week
184
183
  * option specified in this property will be initially loaded on the schedule.
185
- * * FirstDay
186
- * * FirstFourDayWeek
187
- * * FirstFullWeek
184
+ * * `FirstDay`: Denotes that the first week of the year starts on the first day of the year and ends before the following designated first day of the week.
185
+ * * `FirstFourDayWeek`:Denotes that the first week of the year is the first week with four or more days before the designated first day of the week.
186
+ * * `FirstFullWeek`: Denotes that the first week of the year begins on the first occurrence of the designated first day of the week on or after the first day of the year.
188
187
  *
189
188
  * {% codeBlock src='schedule/weekRule/index.md' %}{% endcodeBlock %}
190
189
  *
@@ -242,6 +241,14 @@ export interface ScheduleModel extends ComponentModel{
242
241
  */
243
242
  timeFormat?: string;
244
243
 
244
+ /**
245
+ * Specifies whether to enable the rendering of untrusted HTML values in the Schedule component.
246
+ * When this property is enabled, the component will sanitize any suspected untrusted strings and scripts before rendering them.
247
+ *
248
+ * @default true
249
+ */
250
+ enableHtmlSanitizer?: boolean;
251
+
245
252
  /**
246
253
  * When set to `true`, If valid, the scroll on the all day row is activated when the all day row
247
254
  * height reaches the max height when the all day row is expanded.
@@ -362,9 +369,9 @@ export interface ScheduleModel extends ComponentModel{
362
369
  * The template option which is used to render the customized work cells on the Schedule. Here, the template accepts either
363
370
  * the string or HTMLElement as template design and then the parsed design is displayed onto the work cells.
364
371
  * The fields accessible via template are as follows.
365
- * * date
366
- * * groupIndex
367
- * * type
372
+ * * `date`: Returns the date of the cell.
373
+ * * `groupIndex`: Returns the group index of the cell.
374
+ * * `type`: Returns the type of the work cell.
368
375
  *
369
376
  * Refer to the below code snippet.
370
377
  *
@@ -551,8 +558,8 @@ export interface ScheduleModel extends ComponentModel{
551
558
  * Template option to customize the resource header bar. Here, the template accepts either
552
559
  * the string or HTMLElement as template design and then the parsed design is displayed onto the resource header cells.
553
560
  * The following can be accessible via template.
554
- * * resource - All the resource fields.
555
- * * resourceData - object collection of current resource.
561
+ * * `resource` - All the resource fields.
562
+ * * `resourceData` - Object collection of current resource.
556
563
  *
557
564
  * Refer to the below code snippet.
558
565
  *
@@ -586,7 +593,7 @@ export interface ScheduleModel extends ComponentModel{
586
593
 
587
594
  /**
588
595
  * Allows defining the collection of resources to be displayed on the Schedule. The resource collection needs to be defined
589
- * with unique resource names to identify it along with the respective dataSource and field mapping options.
596
+ * with unique resource names to identify it along with the respective dataSource and field mapping options.
590
597
  *
591
598
  * {% codeBlock src='schedule/resources/index.md' %}{% endcodeBlock %}
592
599
  *
@@ -596,7 +603,7 @@ export interface ScheduleModel extends ComponentModel{
596
603
 
597
604
  /**
598
605
  * Allows defining the collection of custom header rows to display the year, month, week, date and hour label as an individual row
599
- * on the timeline view of the scheduler.
606
+ * on the timeline view of the scheduler.
600
607
  *
601
608
  * {% codeBlock src='schedule/headerRows/index.md' %}{% endcodeBlock %}
602
609
  *