@syncfusion/ej2-schedule 24.2.8 → 25.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 (63) hide show
  1. package/CHANGELOG.md +8 -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 +54 -8
  6. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  7. package/dist/es6/ej2-schedule.es5.js +55 -8
  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/schedule/actions/crud.js +6 -0
  14. package/src/schedule/actions/keyboard.d.ts +1 -0
  15. package/src/schedule/actions/keyboard.js +11 -4
  16. package/src/schedule/base/interface.d.ts +1 -0
  17. package/src/schedule/base/schedule.d.ts +4 -1
  18. package/src/schedule/base/schedule.js +16 -1
  19. package/src/schedule/popups/quick-popups.js +11 -0
  20. package/src/schedule/renderer/renderer.js +11 -3
  21. package/styles/bootstrap-dark.css +9 -2
  22. package/styles/bootstrap.css +9 -2
  23. package/styles/bootstrap4.css +6 -3
  24. package/styles/bootstrap5-dark.css +6 -3
  25. package/styles/bootstrap5.css +6 -3
  26. package/styles/fabric-dark.css +5 -2
  27. package/styles/fabric.css +5 -2
  28. package/styles/fluent-dark.css +10 -2
  29. package/styles/fluent.css +10 -2
  30. package/styles/highcontrast-light.css +5 -2
  31. package/styles/highcontrast.css +5 -2
  32. package/styles/material-dark.css +5 -2
  33. package/styles/material.css +5 -2
  34. package/styles/material3-dark.css +6 -3
  35. package/styles/material3.css +6 -3
  36. package/styles/recurrence-editor/_bds-definition.scss +15 -0
  37. package/styles/schedule/_bds-definition.scss +287 -0
  38. package/styles/schedule/_bootstrap4-definition.scss +1 -1
  39. package/styles/schedule/_bootstrap5-definition.scss +1 -1
  40. package/styles/schedule/_fusionnew-definition.scss +1 -1
  41. package/styles/schedule/_layout.scss +2 -1
  42. package/styles/schedule/_material3-definition.scss +1 -1
  43. package/styles/schedule/_tailwind-definition.scss +1 -1
  44. package/styles/schedule/bootstrap-dark.css +9 -2
  45. package/styles/schedule/bootstrap.css +9 -2
  46. package/styles/schedule/bootstrap4.css +6 -3
  47. package/styles/schedule/bootstrap5-dark.css +6 -3
  48. package/styles/schedule/bootstrap5.css +6 -3
  49. package/styles/schedule/fabric-dark.css +5 -2
  50. package/styles/schedule/fabric.css +5 -2
  51. package/styles/schedule/fluent-dark.css +10 -2
  52. package/styles/schedule/fluent.css +10 -2
  53. package/styles/schedule/highcontrast-light.css +5 -2
  54. package/styles/schedule/highcontrast.css +5 -2
  55. package/styles/schedule/icons/_bds.scss +235 -0
  56. package/styles/schedule/material-dark.css +5 -2
  57. package/styles/schedule/material.css +5 -2
  58. package/styles/schedule/material3-dark.css +6 -3
  59. package/styles/schedule/material3.css +6 -3
  60. package/styles/schedule/tailwind-dark.css +6 -3
  61. package/styles/schedule/tailwind.css +6 -3
  62. package/styles/tailwind-dark.css +6 -3
  63. package/styles/tailwind.css +6 -3
@@ -2566,6 +2566,13 @@ class KeyboardInteraction {
2566
2566
  }
2567
2567
  }
2568
2568
  }
2569
+ isCalendarTarget(e) {
2570
+ const keyTarget = e.currentTarget || e.target;
2571
+ if (keyTarget && !isNullOrUndefined(keyTarget.querySelector('.e-header-popup.e-popup-open'))) {
2572
+ return true;
2573
+ }
2574
+ return false;
2575
+ }
2569
2576
  cancelUpDownAction(isTimelineYear) {
2570
2577
  const isVerticalYear = isTimelineYear && this.parent.activeViewOptions.orientation === 'Vertical';
2571
2578
  const isGroup = this.parent.activeViewOptions.group.resources.length > 0;
@@ -2579,7 +2586,7 @@ class KeyboardInteraction {
2579
2586
  }
2580
2587
  processUp(e, isMultiple) {
2581
2588
  const isTimelineYear = this.parent.currentView === 'TimelineYear';
2582
- if (isMultiple && this.cancelUpDownAction(isTimelineYear)) {
2589
+ if (isMultiple && this.cancelUpDownAction(isTimelineYear) || (this.isCalendarTarget(e))) {
2583
2590
  return;
2584
2591
  }
2585
2592
  let target = (e.target);
@@ -2627,7 +2634,7 @@ class KeyboardInteraction {
2627
2634
  }
2628
2635
  processDown(e, isMultiple) {
2629
2636
  const isTimelineYear = this.parent.currentView === 'TimelineYear';
2630
- if (isMultiple && this.cancelUpDownAction(isTimelineYear)) {
2637
+ if (isMultiple && this.cancelUpDownAction(isTimelineYear) || (this.isCalendarTarget(e))) {
2631
2638
  return;
2632
2639
  }
2633
2640
  let target = (e.target);
@@ -2737,7 +2744,7 @@ class KeyboardInteraction {
2737
2744
  }
2738
2745
  processRight(e, isMultiple) {
2739
2746
  const isTimelineYear = this.parent.currentView === 'TimelineYear';
2740
- if (this.isCancelLeftRightAction(e, isMultiple, isTimelineYear)) {
2747
+ if (this.isCancelLeftRightAction(e, isMultiple, isTimelineYear) || (this.isCalendarTarget(e))) {
2741
2748
  return;
2742
2749
  }
2743
2750
  const selectedCells = this.parent.getSelectedCells();
@@ -2808,7 +2815,7 @@ class KeyboardInteraction {
2808
2815
  }
2809
2816
  processLeft(e, isMultiple) {
2810
2817
  const isTimelineYear = this.parent.currentView === 'TimelineYear';
2811
- if (this.isCancelLeftRightAction(e, isMultiple, isTimelineYear)) {
2818
+ if (this.isCancelLeftRightAction(e, isMultiple, isTimelineYear) || (this.isCalendarTarget(e))) {
2812
2819
  return;
2813
2820
  }
2814
2821
  let target = (e.target);
@@ -10426,6 +10433,17 @@ class QuickPopups {
10426
10433
  instance.destroy();
10427
10434
  }
10428
10435
  }
10436
+ if (popupName === 'quickPopup') {
10437
+ const input = popup.element.querySelector('input.' + SUBJECT_CLASS);
10438
+ if (input) {
10439
+ input.remove();
10440
+ }
10441
+ const form = this.quickPopup.element.querySelector('form.' + FORM_CLASS);
10442
+ if (form) {
10443
+ removeChildren(form);
10444
+ form.remove();
10445
+ }
10446
+ }
10429
10447
  }
10430
10448
  refreshQuickDialog() {
10431
10449
  this.destroyQuickDialog();
@@ -14163,15 +14181,21 @@ class Render {
14163
14181
  break;
14164
14182
  case 'TimelineDay':
14165
14183
  this.parent.activeView = this.parent.timelineViewsModule;
14166
- this.parent.activeView.viewClass = 'e-timeline-day-view';
14184
+ if (!isNullOrUndefined(this.parent.activeView)) {
14185
+ this.parent.activeView.viewClass = 'e-timeline-day-view';
14186
+ }
14167
14187
  break;
14168
14188
  case 'TimelineWorkWeek':
14169
14189
  this.parent.activeView = this.parent.timelineViewsModule;
14170
- this.parent.activeView.viewClass = 'e-timeline-work-week-view';
14190
+ if (!isNullOrUndefined(this.parent.activeView)) {
14191
+ this.parent.activeView.viewClass = 'e-timeline-work-week-view';
14192
+ }
14171
14193
  break;
14172
14194
  case 'TimelineWeek':
14173
14195
  this.parent.activeView = this.parent.timelineViewsModule;
14174
- this.parent.activeView.viewClass = 'e-timeline-week-view';
14196
+ if (!isNullOrUndefined(this.parent.activeView)) {
14197
+ this.parent.activeView.viewClass = 'e-timeline-week-view';
14198
+ }
14175
14199
  break;
14176
14200
  case 'TimelineMonth':
14177
14201
  this.parent.activeView = this.parent.timelineMonthModule;
@@ -14188,6 +14212,8 @@ class Render {
14188
14212
  this.parent.headerModule.updateActiveView();
14189
14213
  this.parent.headerModule.setCalendarView();
14190
14214
  }
14215
+ console.warn('[WARNING] :: Module "' + viewName + '" is not available in Schedule component!' +
14216
+ ' You either misspelled the module name or forgot to load it.');
14191
14217
  return this.initializeLayout(firstView);
14192
14218
  }
14193
14219
  throw Error('Inject required modules');
@@ -14365,6 +14391,12 @@ class Crud {
14365
14391
  if (!this.parent.activeView) {
14366
14392
  return;
14367
14393
  }
14394
+ if (this.parent.uiStateValues && this.parent.uiStateValues.isPreventEventRefresh) {
14395
+ this.parent.uiStateValues.isPreventEventRefresh = false;
14396
+ this.parent.refreshEvents(false);
14397
+ this.parent.hideSpinner();
14398
+ return;
14399
+ }
14368
14400
  const start = this.parent.activeView.startDate();
14369
14401
  const end = this.parent.activeView.endDate();
14370
14402
  const dataManager = this.parent.dataModule.getData(this.parent.dataModule.generateQuery(start, end));
@@ -18428,9 +18460,13 @@ let Schedule = class Schedule extends Component {
18428
18460
  *
18429
18461
  * @function setResourceCollections
18430
18462
  * @param {ResourcesModel[]} resourceCol Accepts the resource collections in ResourcesModel type
18463
+ * @param {boolean} isEventDataRefresh Accepts the boolean to refresh the appointment data source from remote or local
18431
18464
  * @returns {void}
18432
18465
  */
18433
- setResourceCollections(resourceCol) {
18466
+ setResourceCollections(resourceCol, isEventDataRefresh = true) {
18467
+ if (!isEventDataRefresh && this.uiStateValues) {
18468
+ this.uiStateValues.isPreventEventRefresh = true;
18469
+ }
18434
18470
  this.setProperties({ resources: resourceCol }, false);
18435
18471
  }
18436
18472
  /**
@@ -18550,6 +18586,8 @@ let Schedule = class Schedule extends Component {
18550
18586
  this.iCalendarExportModule.initializeCalendarExport(fileName, customData);
18551
18587
  }
18552
18588
  else {
18589
+ console.warn('[WARNING] :: Module "ICalendarExport" is not available in Schedule component!' +
18590
+ ' You either misspelled the module name or forgot to load it.');
18553
18591
  throw Error('Inject ICalendarExport module');
18554
18592
  }
18555
18593
  }
@@ -18566,6 +18604,8 @@ let Schedule = class Schedule extends Component {
18566
18604
  this.iCalendarImportModule.initializeCalendarImport(fileContent);
18567
18605
  }
18568
18606
  else {
18607
+ console.warn('[WARNING] :: Module "ICalendarImport" is not available in Schedule component!' +
18608
+ ' You either misspelled the module name or forgot to load it.');
18569
18609
  throw Error('Inject ICalendarImport module');
18570
18610
  }
18571
18611
  }
@@ -18611,6 +18651,8 @@ let Schedule = class Schedule extends Component {
18611
18651
  this.excelExportModule.initializeExcelExport(excelExportOptions);
18612
18652
  }
18613
18653
  else {
18654
+ console.warn('[WARNING] :: Module "ExcelExport" is not available in Schedule component!' +
18655
+ ' You either misspelled the module name or forgot to load it.');
18614
18656
  throw Error('Inject ExcelExport module');
18615
18657
  }
18616
18658
  }
@@ -18627,6 +18669,8 @@ let Schedule = class Schedule extends Component {
18627
18669
  this.printModule.print(printOptions);
18628
18670
  }
18629
18671
  else {
18672
+ console.warn('[WARNING] :: Module "Print" is not available in Schedule component!' +
18673
+ ' You either misspelled the module name or forgot to load it.');
18630
18674
  throw Error('Inject Print module');
18631
18675
  }
18632
18676
  }
@@ -18909,6 +18953,8 @@ let Schedule = class Schedule extends Component {
18909
18953
  }
18910
18954
  /**
18911
18955
  * To check whether the given time range slots are available for event creation or already occupied by other events.
18956
+ * This method currently focuses on validating appointments within the current view date range.
18957
+ * However, it does not extend this availability check to recurrence occurrences outside of the current date range.
18912
18958
  *
18913
18959
  * @function isSlotAvailable
18914
18960
  * @param {Date | Object} startTime Denotes the start time of the slot.