@syncfusion/ej2-schedule 21.2.10 → 22.1.34

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 (98) hide show
  1. package/.eslintrc.json +1 -0
  2. package/CHANGELOG.md +14 -0
  3. package/dist/ej2-schedule.min.js +2 -2
  4. package/dist/ej2-schedule.umd.min.js +2 -2
  5. package/dist/ej2-schedule.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es2015.js +50 -26
  7. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  8. package/dist/es6/ej2-schedule.es5.js +51 -27
  9. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  10. package/dist/global/ej2-schedule.min.js +2 -2
  11. package/dist/global/ej2-schedule.min.js.map +1 -1
  12. package/dist/global/index.d.ts +1 -1
  13. package/package.json +15 -15
  14. package/src/recurrence-editor/recurrence-editor-model.d.ts +8 -1
  15. package/src/recurrence-editor/recurrence-editor.d.ts +17 -0
  16. package/src/recurrence-editor/recurrence-editor.js +7 -4
  17. package/src/schedule/actions/keyboard.js +2 -0
  18. package/src/schedule/base/schedule-model.d.ts +18 -9
  19. package/src/schedule/base/schedule.d.ts +20 -11
  20. package/src/schedule/base/schedule.js +14 -5
  21. package/src/schedule/models/event-settings-model.d.ts +4 -2
  22. package/src/schedule/models/event-settings.d.ts +4 -2
  23. package/src/schedule/models/group-model.d.ts +2 -1
  24. package/src/schedule/models/group.d.ts +2 -1
  25. package/src/schedule/models/header-rows-model.d.ts +2 -1
  26. package/src/schedule/models/header-rows.d.ts +2 -1
  27. package/src/schedule/models/quick-info-templates-model.d.ts +6 -3
  28. package/src/schedule/models/quick-info-templates.d.ts +6 -3
  29. package/src/schedule/models/time-scale-model.d.ts +4 -2
  30. package/src/schedule/models/time-scale.d.ts +4 -2
  31. package/src/schedule/models/views-model.d.ts +18 -9
  32. package/src/schedule/models/views.d.ts +18 -9
  33. package/src/schedule/popups/event-tooltip.js +6 -3
  34. package/src/schedule/popups/event-window.js +18 -14
  35. package/src/schedule/popups/quick-popups.js +3 -1
  36. package/src/schedule/renderer/timeline-view.js +2 -1
  37. package/styles/bootstrap-dark.css +9 -12
  38. package/styles/bootstrap.css +9 -12
  39. package/styles/bootstrap4.css +10 -13
  40. package/styles/bootstrap5-dark.css +9 -12
  41. package/styles/bootstrap5.css +9 -12
  42. package/styles/fabric-dark.css +9 -12
  43. package/styles/fabric.css +9 -12
  44. package/styles/fluent-dark.css +9 -12
  45. package/styles/fluent.css +9 -12
  46. package/styles/highcontrast-light.css +10 -13
  47. package/styles/highcontrast.css +10 -13
  48. package/styles/material-dark.css +9 -12
  49. package/styles/material.css +9 -12
  50. package/styles/material3-dark.css +4597 -0
  51. package/styles/material3-dark.scss +4 -0
  52. package/styles/material3.css +4653 -0
  53. package/styles/material3.scss +4 -0
  54. package/styles/recurrence-editor/_material3-dark-definition.scss +1 -0
  55. package/styles/recurrence-editor/_material3-definition.scss +13 -0
  56. package/styles/recurrence-editor/material3-dark.css +593 -0
  57. package/styles/recurrence-editor/material3-dark.scss +9 -0
  58. package/styles/recurrence-editor/material3.css +649 -0
  59. package/styles/recurrence-editor/material3.scss +9 -0
  60. package/styles/schedule/_bootstrap-dark-definition.scss +3 -2
  61. package/styles/schedule/_bootstrap-definition.scss +3 -2
  62. package/styles/schedule/_bootstrap4-definition.scss +3 -2
  63. package/styles/schedule/_bootstrap5-definition.scss +3 -2
  64. package/styles/schedule/_fabric-dark-definition.scss +3 -2
  65. package/styles/schedule/_fabric-definition.scss +3 -2
  66. package/styles/schedule/_fluent-definition.scss +3 -2
  67. package/styles/schedule/_fusionnew-definition.scss +3 -2
  68. package/styles/schedule/_highcontrast-definition.scss +3 -2
  69. package/styles/schedule/_highcontrast-light-definition.scss +3 -2
  70. package/styles/schedule/_layout.scss +27 -17
  71. package/styles/schedule/_material-dark-definition.scss +3 -2
  72. package/styles/schedule/_material-definition.scss +3 -2
  73. package/styles/schedule/_material3-dark-definition.scss +1 -0
  74. package/styles/schedule/_material3-definition.scss +292 -0
  75. package/styles/schedule/_tailwind-definition.scss +3 -2
  76. package/styles/schedule/_theme.scss +7 -2
  77. package/styles/schedule/bootstrap-dark.css +9 -12
  78. package/styles/schedule/bootstrap.css +9 -12
  79. package/styles/schedule/bootstrap4.css +10 -13
  80. package/styles/schedule/bootstrap5-dark.css +9 -12
  81. package/styles/schedule/bootstrap5.css +9 -12
  82. package/styles/schedule/fabric-dark.css +9 -12
  83. package/styles/schedule/fabric.css +9 -12
  84. package/styles/schedule/fluent-dark.css +9 -12
  85. package/styles/schedule/fluent.css +9 -12
  86. package/styles/schedule/highcontrast-light.css +10 -13
  87. package/styles/schedule/highcontrast.css +10 -13
  88. package/styles/schedule/icons/_material3-dark.scss +1 -0
  89. package/styles/schedule/material-dark.css +9 -12
  90. package/styles/schedule/material.css +9 -12
  91. package/styles/schedule/material3-dark.css +4191 -0
  92. package/styles/schedule/material3-dark.scss +16 -0
  93. package/styles/schedule/material3.css +4247 -0
  94. package/styles/schedule/material3.scss +17 -0
  95. package/styles/schedule/tailwind-dark.css +9 -12
  96. package/styles/schedule/tailwind.css +9 -12
  97. package/styles/tailwind-dark.css +9 -12
  98. package/styles/tailwind.css +9 -12
@@ -1,4 +1,4 @@
1
- import { Animation, Browser, ChildProperty, Collection, Complex, Component, Draggable, Event, EventHandler, HijriParser, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, SanitizeHtmlHelper, Touch, addClass, append, classList, cldrData, closest, compile, createElement, detach, extend, formatUnit, getDefaultDateObject, getElement, getValue, isNullOrUndefined, prepend, print, remove, removeClass, setStyleAttribute } from '@syncfusion/ej2-base';
1
+ import { Animation, Browser, ChildProperty, Collection, Complex, Component, Draggable, Event, EventHandler, HijriParser, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, SanitizeHtmlHelper, Touch, addClass, append, classList, cldrData, closest, compile, createElement, detach, extend, formatUnit, getDefaultDateObject, getElement, getValue, initializeCSPTemplate, isNullOrUndefined, prepend, print, remove, removeClass, setStyleAttribute } from '@syncfusion/ej2-base';
2
2
  import { Dialog, Popup, Tooltip, createSpinner, hideSpinner, isCollide, showSpinner } from '@syncfusion/ej2-popups';
3
3
  import { Toolbar, TreeView } from '@syncfusion/ej2-navigations';
4
4
  import { Calendar, DatePicker, DateTimePicker } from '@syncfusion/ej2-calendars';
@@ -2433,6 +2433,7 @@ class KeyboardInteraction {
2433
2433
  return;
2434
2434
  }
2435
2435
  }
2436
+ e.preventDefault();
2436
2437
  this.selectCells(isMultiple, targetCell);
2437
2438
  }
2438
2439
  }
@@ -2480,6 +2481,7 @@ class KeyboardInteraction {
2480
2481
  return;
2481
2482
  }
2482
2483
  }
2484
+ e.preventDefault();
2483
2485
  this.selectCells(isMultiple, targetCell);
2484
2486
  }
2485
2487
  }
@@ -10132,7 +10134,9 @@ class QuickPopups {
10132
10134
  this.dialogEvent = event;
10133
10135
  }
10134
10136
  this.quickPopupHide();
10135
- this.parent.eventBase.focusElement();
10137
+ if (isNullOrUndefined(event) || (!isNullOrUndefined(event) && event.action !== 'escape')) {
10138
+ this.parent.eventBase.focusElement();
10139
+ }
10136
10140
  }
10137
10141
  addEventListener() {
10138
10142
  this.parent.on(cellClick, this.cellClick, this);
@@ -10326,7 +10330,10 @@ class EventTooltip {
10326
10330
  '<div class="e-location">' + tooltipLocation + '</div>' +
10327
10331
  '<div class="e-details">' + tooltipDetails + '</div>' +
10328
10332
  '<div class="e-all-day">' + tooltipTime + '</div></div>';
10329
- this.setContent(content);
10333
+ const contentTemp = function () {
10334
+ return content;
10335
+ };
10336
+ this.setContent(initializeCSPTemplate(contentTemp));
10330
10337
  }
10331
10338
  this.parent.renderTemplates();
10332
10339
  }
@@ -10557,7 +10564,7 @@ let RecurrenceEditor = class RecurrenceEditor extends Component {
10557
10564
  }
10558
10565
  else {
10559
10566
  if (!isNullOrUndefined(this.repeatType.value)) {
10560
- this.startState(this.repeatType.value.toString().toUpperCase(), NEVER, this.startDate);
10567
+ this.startState(this.repeatType.value.toString().toUpperCase(), this.endTypes[0], this.startDate);
10561
10568
  this.updateForm(this.repeatType.value.toString());
10562
10569
  }
10563
10570
  if (this.selectedType > 0) {
@@ -10936,11 +10943,10 @@ let RecurrenceEditor = class RecurrenceEditor extends Component {
10936
10943
  }
10937
10944
  }
10938
10945
  getEndData() {
10939
- const endData = [NEVER, UNTIL$1, COUNT];
10940
10946
  // eslint-disable-next-line @typescript-eslint/no-this-alias
10941
10947
  const self = this;
10942
10948
  const dataSource = [];
10943
- endData.forEach((data) => {
10949
+ this.endTypes.forEach((data) => {
10944
10950
  dataSource.push({ text: self.localeObj.getConstant(data), value: data });
10945
10951
  });
10946
10952
  return dataSource;
@@ -11236,7 +11242,7 @@ let RecurrenceEditor = class RecurrenceEditor extends Component {
11236
11242
  this.monthButtons = [];
11237
11243
  }
11238
11244
  resetFields() {
11239
- this.startState(NONE, NEVER, this.startDate);
11245
+ this.startState(NONE, this.endTypes[0], this.startDate);
11240
11246
  this.setDefaultValue();
11241
11247
  }
11242
11248
  updateRuleUntilDate(startDate) {
@@ -11417,6 +11423,7 @@ let RecurrenceEditor = class RecurrenceEditor extends Component {
11417
11423
  case 'locale':
11418
11424
  case 'frequencies':
11419
11425
  case 'firstDayOfWeek':
11426
+ case 'endTypes':
11420
11427
  this.refresh();
11421
11428
  break;
11422
11429
  case 'dateFormat':
@@ -11429,6 +11436,9 @@ let RecurrenceEditor = class RecurrenceEditor extends Component {
11429
11436
  __decorate$1([
11430
11437
  Property(['none', 'daily', 'weekly', 'monthly', 'yearly'])
11431
11438
  ], RecurrenceEditor.prototype, "frequencies", void 0);
11439
+ __decorate$1([
11440
+ Property(['never', 'until', 'count'])
11441
+ ], RecurrenceEditor.prototype, "endTypes", void 0);
11432
11442
  __decorate$1([
11433
11443
  Property(0)
11434
11444
  ], RecurrenceEditor.prototype, "firstDayOfWeek", void 0);
@@ -11876,8 +11886,10 @@ class EventWindow {
11876
11886
  const resourceDiv = this.createDivElement(value + '-container' + ' ' + 'e-resources');
11877
11887
  const resourceInput = this.createInputElement(value + ' ' + EVENT_FIELD$1, fieldName);
11878
11888
  resourceDiv.appendChild(resourceInput);
11879
- const resourceTemplate = '<div class="e-resource-template"><div class="e-resource-color" style="background-color:${' +
11880
- resourceData.colorField + '}"></div><div class="e-resource-text">${' + resourceData.textField + '}</div></div>';
11889
+ function resourceTemplate(data) {
11890
+ return `<div class="e-resource-template"><div class="e-resource-color" style="background-color:${data[resourceData.colorField]}"></div><div class="e-resource-text">${data[resourceData.textField]}</div></div>`;
11891
+ }
11892
+ initializeCSPTemplate(resourceTemplate, resourceData);
11881
11893
  if (resourceData.allowMultiple) {
11882
11894
  const listObj = new MultiSelect({
11883
11895
  enableRtl: this.parent.enableRtl,
@@ -12118,16 +12130,18 @@ class EventWindow {
12118
12130
  return labelText;
12119
12131
  }
12120
12132
  onChange(args) {
12121
- const targetSelector = `.${EVENT_WINDOW_ALL_DAY_CLASS},.${TIME_ZONE_CLASS},.${EVENT_WINDOW_REPEAT_CLASS}`;
12122
- const target = closest(args.event.target, targetSelector);
12123
- if (target.classList.contains(EVENT_WINDOW_ALL_DAY_CLASS)) {
12124
- this.onAllDayChange(args.checked);
12125
- }
12126
- else if (target.classList.contains(TIME_ZONE_CLASS)) {
12127
- this.timezoneChangeStyle(args.checked);
12128
- }
12129
- else if (target.classList.contains(EVENT_WINDOW_REPEAT_CLASS)) {
12130
- this.onRepeatChange(args.checked);
12133
+ if (args.event && args.event.target) {
12134
+ const targetSelector = `.${EVENT_WINDOW_ALL_DAY_CLASS},.${TIME_ZONE_CLASS},.${EVENT_WINDOW_REPEAT_CLASS}`;
12135
+ const target = closest(args.event.target, targetSelector);
12136
+ if (target.classList.contains(EVENT_WINDOW_ALL_DAY_CLASS)) {
12137
+ this.onAllDayChange(args.checked);
12138
+ }
12139
+ else if (target.classList.contains(TIME_ZONE_CLASS)) {
12140
+ this.timezoneChangeStyle(args.checked);
12141
+ }
12142
+ else if (target.classList.contains(EVENT_WINDOW_REPEAT_CLASS)) {
12143
+ this.onRepeatChange(args.checked);
12144
+ }
12131
12145
  }
12132
12146
  }
12133
12147
  renderRepeatDialog() {
@@ -12948,7 +12962,7 @@ class EventWindow {
12948
12962
  this.parent.quickPopup.openRecurrenceValidationAlert('sameDayAlert');
12949
12963
  return true;
12950
12964
  }
12951
- else if (!(previousEndTime.getTime() <= currentStartTime.getTime() && nextStartTime.getTime() >
12965
+ else if (!(previousEndTime.getTime() <= currentStartTime.getTime() && nextStartTime.getTime() >=
12952
12966
  currentEndTime.getTime()) || (resetTime(nextEndTime).getTime() <
12953
12967
  resetTime(currentStartTime).getTime()) ||
12954
12968
  (resetTime(previousStartTime).getTime() > resetTime(currentEndTime).getTime()) ||
@@ -16643,7 +16657,11 @@ let Schedule = class Schedule extends Component {
16643
16657
  };
16644
16658
  }
16645
16659
  this.currentTimezoneDate = this.getCurrentTime();
16646
- this.activeCellsData = { startTime: new Date(this.currentTimezoneDate), endTime: new Date(this.currentTimezoneDate), isAllDay: false };
16660
+ this.activeCellsData = {
16661
+ startTime: new Date(this.currentTimezoneDate),
16662
+ endTime: new Date(this.currentTimezoneDate),
16663
+ isAllDay: false
16664
+ };
16647
16665
  this.activeEventData = { event: undefined, element: undefined };
16648
16666
  this.getDefaultLocale();
16649
16667
  this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);
@@ -17127,18 +17145,23 @@ let Schedule = class Schedule extends Component {
17127
17145
  /**
17128
17146
  * Method to process the templates
17129
17147
  *
17130
- * @param {string} template Accepts the template in string
17148
+ * @param {string | Function} template Accepts the template in string
17131
17149
  * @returns {CallbackFunction} Returns the callback function
17132
17150
  * @private
17133
17151
  */
17134
17152
  templateParser(template) {
17135
17153
  if (template) {
17136
17154
  try {
17137
- if (document.querySelectorAll(template).length) {
17138
- return compile(document.querySelector(template).innerHTML.trim());
17155
+ if (typeof template === 'function') {
17156
+ return compile(template);
17139
17157
  }
17140
17158
  else {
17141
- return compile(template);
17159
+ if (document.querySelectorAll(template).length) {
17160
+ return compile(document.querySelector(template).innerHTML.trim());
17161
+ }
17162
+ else {
17163
+ return compile(template);
17164
+ }
17142
17165
  }
17143
17166
  }
17144
17167
  catch (error) {
@@ -25544,7 +25567,8 @@ class TimelineViews extends VerticalView {
25544
25567
  else {
25545
25568
  const endHour = this.getEndHour();
25546
25569
  const end = (endHour.getHours() === 0) ? 24 : endHour.getHours();
25547
- diffInMinutes = diffInMinutes + ((currentDateIndex[0]) * (((end - startHour.getHours()) * 60) + (endHour.getMinutes() - startHour.getMinutes())));
25570
+ diffInMinutes = diffInMinutes + ((currentDateIndex[0]) * (((end - startHour.getHours()) * 60) +
25571
+ (endHour.getMinutes() - startHour.getMinutes())));
25548
25572
  }
25549
25573
  }
25550
25574
  }