@syncfusion/ej2-schedule 19.3.55 → 19.4.42

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 (121) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE/Bug.md +63 -0
  2. package/.github/PULL_REQUEST_TEMPLATE/Feature.md +39 -0
  3. package/CHANGELOG.md +50 -1
  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 +489 -145
  7. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  8. package/dist/es6/ej2-schedule.es5.js +493 -152
  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.js +2 -2
  15. package/src/schedule/actions/drag.js +12 -4
  16. package/src/schedule/actions/keyboard.d.ts +7 -0
  17. package/src/schedule/actions/keyboard.js +197 -28
  18. package/src/schedule/actions/resize.js +44 -37
  19. package/src/schedule/base/css-constant.d.ts +6 -0
  20. package/src/schedule/base/css-constant.js +6 -0
  21. package/src/schedule/base/interface.d.ts +12 -0
  22. package/src/schedule/base/resource.js +1 -0
  23. package/src/schedule/base/schedule-model.d.ts +89 -20
  24. package/src/schedule/base/schedule.d.ts +88 -19
  25. package/src/schedule/base/schedule.js +15 -4
  26. package/src/schedule/base/util.d.ts +1 -0
  27. package/src/schedule/base/util.js +1 -0
  28. package/src/schedule/event-renderer/event-base.d.ts +2 -1
  29. package/src/schedule/event-renderer/event-base.js +19 -4
  30. package/src/schedule/event-renderer/inline-edit.js +8 -5
  31. package/src/schedule/event-renderer/month.js +3 -2
  32. package/src/schedule/event-renderer/timeline-view.js +4 -0
  33. package/src/schedule/event-renderer/vertical-view.js +9 -6
  34. package/src/schedule/event-renderer/year.js +1 -1
  35. package/src/schedule/exports/excel-export.d.ts +2 -1
  36. package/src/schedule/exports/excel-export.js +21 -18
  37. package/src/schedule/models/event-settings-model.d.ts +17 -9
  38. package/src/schedule/models/event-settings.d.ts +15 -8
  39. package/src/schedule/models/event-settings.js +6 -3
  40. package/src/schedule/models/views-model.d.ts +19 -0
  41. package/src/schedule/models/views.d.ts +17 -0
  42. package/src/schedule/models/views.js +6 -0
  43. package/src/schedule/popups/quick-popups.js +3 -0
  44. package/src/schedule/renderer/agenda.js +2 -1
  45. package/src/schedule/renderer/header-renderer.d.ts +1 -0
  46. package/src/schedule/renderer/header-renderer.js +23 -8
  47. package/src/schedule/renderer/month.d.ts +4 -0
  48. package/src/schedule/renderer/month.js +69 -19
  49. package/src/schedule/renderer/renderer.js +6 -1
  50. package/src/schedule/renderer/timeline-year.js +4 -1
  51. package/src/schedule/renderer/view-base.js +12 -1
  52. package/src/schedule/renderer/year.d.ts +2 -2
  53. package/src/schedule/renderer/year.js +24 -6
  54. package/styles/bootstrap-dark.css +108 -27
  55. package/styles/bootstrap.css +105 -27
  56. package/styles/bootstrap4.css +117 -62
  57. package/styles/bootstrap5-dark.css +118 -67
  58. package/styles/bootstrap5.css +118 -67
  59. package/styles/fabric-dark.css +108 -26
  60. package/styles/fabric.css +109 -26
  61. package/styles/highcontrast-light.css +104 -26
  62. package/styles/highcontrast.css +109 -28
  63. package/styles/material-dark.css +110 -32
  64. package/styles/material.css +103 -25
  65. package/styles/recurrence-editor/_bootstrap-dark-definition.scss +7 -0
  66. package/styles/recurrence-editor/_bootstrap-definition.scss +7 -0
  67. package/styles/recurrence-editor/_bootstrap4-definition.scss +7 -0
  68. package/styles/recurrence-editor/_bootstrap5-definition.scss +7 -0
  69. package/styles/recurrence-editor/_fabric-dark-definition.scss +8 -0
  70. package/styles/recurrence-editor/_fabric-definition.scss +7 -0
  71. package/styles/recurrence-editor/_fluent-definition.scss +15 -0
  72. package/styles/recurrence-editor/_highcontrast-definition.scss +7 -0
  73. package/styles/recurrence-editor/_highcontrast-light-definition.scss +7 -0
  74. package/styles/recurrence-editor/_layout.scss +20 -4
  75. package/styles/recurrence-editor/_material-dark-definition.scss +7 -0
  76. package/styles/recurrence-editor/_material-definition.scss +7 -0
  77. package/styles/recurrence-editor/_tailwind-definition.scss +15 -8
  78. package/styles/recurrence-editor/bootstrap-dark.css +20 -4
  79. package/styles/recurrence-editor/bootstrap.css +20 -4
  80. package/styles/recurrence-editor/bootstrap4.css +20 -4
  81. package/styles/recurrence-editor/bootstrap5-dark.css +20 -4
  82. package/styles/recurrence-editor/bootstrap5.css +20 -4
  83. package/styles/recurrence-editor/fabric-dark.css +20 -4
  84. package/styles/recurrence-editor/fabric.css +20 -4
  85. package/styles/recurrence-editor/highcontrast-light.css +20 -4
  86. package/styles/recurrence-editor/highcontrast.css +20 -4
  87. package/styles/recurrence-editor/material-dark.css +20 -4
  88. package/styles/recurrence-editor/material.css +20 -4
  89. package/styles/recurrence-editor/tailwind-dark.css +20 -4
  90. package/styles/recurrence-editor/tailwind.css +20 -4
  91. package/styles/schedule/_bootstrap-dark-definition.scss +22 -1
  92. package/styles/schedule/_bootstrap-definition.scss +22 -1
  93. package/styles/schedule/_bootstrap4-definition.scss +23 -1
  94. package/styles/schedule/_bootstrap5-definition.scss +145 -119
  95. package/styles/schedule/_fabric-dark-definition.scss +22 -1
  96. package/styles/schedule/_fabric-definition.scss +22 -1
  97. package/styles/schedule/_fluent-definition.scss +218 -0
  98. package/styles/schedule/_highcontrast-definition.scss +22 -1
  99. package/styles/schedule/_highcontrast-light-definition.scss +22 -1
  100. package/styles/schedule/_layout.scss +95 -158
  101. package/styles/schedule/_material-dark-definition.scss +22 -1
  102. package/styles/schedule/_material-definition.scss +21 -0
  103. package/styles/schedule/_tailwind-definition.scss +216 -195
  104. package/styles/schedule/_theme.scss +1 -1
  105. package/styles/schedule/bootstrap-dark.css +88 -23
  106. package/styles/schedule/bootstrap.css +85 -23
  107. package/styles/schedule/bootstrap4.css +97 -58
  108. package/styles/schedule/bootstrap5-dark.css +98 -63
  109. package/styles/schedule/bootstrap5.css +98 -63
  110. package/styles/schedule/fabric-dark.css +88 -22
  111. package/styles/schedule/fabric.css +89 -22
  112. package/styles/schedule/highcontrast-light.css +84 -22
  113. package/styles/schedule/highcontrast.css +89 -24
  114. package/styles/schedule/icons/_fluent.scss +231 -0
  115. package/styles/schedule/icons/_tailwind.scss +231 -231
  116. package/styles/schedule/material-dark.css +90 -28
  117. package/styles/schedule/material.css +83 -21
  118. package/styles/schedule/tailwind-dark.css +94 -52
  119. package/styles/schedule/tailwind.css +94 -52
  120. package/styles/tailwind-dark.css +114 -56
  121. package/styles/tailwind.css +114 -56
@@ -81,9 +81,9 @@ var Resize = /** @class */ (function (_super) {
81
81
  bottom: resizeTarget.classList.contains(cls.BOTTOM_RESIZE_HANDLER)
82
82
  };
83
83
  _this.actionObj.groupIndex = _this.parent.uiStateValues.isGroupAdaptive ? _this.parent.uiStateValues.groupIndex : 0;
84
- var workCell = _this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);
85
- _this.actionObj.cellWidth = workCell.offsetWidth;
86
- _this.actionObj.cellHeight = workCell.offsetHeight;
84
+ var workCell = _this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS).getBoundingClientRect();
85
+ _this.actionObj.cellWidth = workCell.width;
86
+ _this.actionObj.cellHeight = workCell.height;
87
87
  var hRows = _this.parent.activeViewOptions.headerRows.map(function (row) { return row.option; });
88
88
  if (_this.parent.activeView.isTimelineView() && hRows.length > 0 && ['Date', 'Hour'].indexOf(hRows.slice(-1)[0]) < 0) {
89
89
  var tr = _this.parent.getContentTable().querySelector('tr');
@@ -93,8 +93,9 @@ var Resize = /** @class */ (function (_super) {
93
93
  var td = tdCollections_1[_i];
94
94
  noOfDays += parseInt(td.getAttribute('colspan'), 10);
95
95
  }
96
- _this.actionObj.cellWidth = tr.offsetWidth / noOfDays;
97
- _this.actionObj.cellHeight = tr.offsetHeight;
96
+ var trRect = tr.getBoundingClientRect();
97
+ _this.actionObj.cellWidth = trRect.width / noOfDays;
98
+ _this.actionObj.cellHeight = trRect.height;
98
99
  }
99
100
  var pages = _this.getPageCoordinates(e);
100
101
  _this.actionObj.X = pages.pageX;
@@ -345,12 +346,12 @@ var Resize = /** @class */ (function (_super) {
345
346
  var eventEnd = new Date(this.actionObj.event[this.parent.eventFields.endTime].getTime());
346
347
  var resizeTime;
347
348
  var isDateHeader = false;
349
+ var headerName = this.parent.currentView;
348
350
  var isTimeViews = ['TimelineDay', 'TimelineWeek', 'TimelineWorkWeek'].indexOf(this.parent.currentView) > -1;
349
351
  var isTimelineMonth = this.parent.currentView === 'TimelineMonth';
350
352
  var isWithoutScale = isTimelineMonth || isTimeViews && !this.parent.activeViewOptions.timeScale.enable;
351
353
  if (this.parent.activeView.isTimelineView()) {
352
354
  var tr = this.parent.getContentTable().querySelector('tr');
353
- var headerName = this.parent.currentView;
354
355
  if (this.parent.activeViewOptions.headerRows.length > 0) {
355
356
  var rows = this.parent.activeViewOptions.headerRows.map(function (row) { return row.option; });
356
357
  headerName = rows.slice(-1)[0];
@@ -362,6 +363,11 @@ var Resize = /** @class */ (function (_super) {
362
363
  var cellIndex = 0;
363
364
  var tdCollections = [].slice.call(tr.children);
364
365
  var isLastCell = false;
366
+ var pixelsPerMinute = this.actionObj.cellWidth / (this.parent.activeViewOptions.timeScale.interval /
367
+ this.parent.activeViewOptions.timeScale.slotCount);
368
+ var offset = parseFloat(this.parent.enableRtl ? this.actionObj.clone.style.right :
369
+ this.actionObj.clone.style.left);
370
+ offset = Math.round(offset / pixelsPerMinute) * pixelsPerMinute;
365
371
  if (['Year', 'Month', 'Week', 'Date'].indexOf(headerName) !== -1) {
366
372
  var noOfDays = 0;
367
373
  for (var _i = 0, tdCollections_2 = tdCollections; _i < tdCollections_2.length; _i++) {
@@ -370,28 +376,28 @@ var Resize = /** @class */ (function (_super) {
370
376
  }
371
377
  var offsetValue = this.parent.enableRtl ? parseInt(this.actionObj.clone.style.right, 10) :
372
378
  parseInt(this.actionObj.clone.style.left, 10);
379
+ offsetValue = Math.round(offsetValue / this.actionObj.cellWidth) * this.actionObj.cellWidth;
373
380
  if (!isLeft) {
374
- offsetValue += (this.actionObj.clone.offsetWidth - this.actionObj.cellWidth);
381
+ offsetValue += (this.actionObj.clone.getBoundingClientRect().width - this.actionObj.cellWidth);
375
382
  }
376
- cellIndex = Math.floor(offsetValue / Math.floor(tr.offsetWidth / noOfDays));
383
+ cellIndex = Math.floor(offsetValue / Math.floor(tr.getBoundingClientRect().width / noOfDays));
377
384
  isDateHeader = isTimeViews && headerName === 'Date';
378
- cellIndex = isLeft ? cellIndex : (isTimelineMonth || isDateHeader) ? cellIndex + 1 : cellIndex;
385
+ cellIndex = isLeft ? cellIndex : isTimelineMonth ? cellIndex + 1 : cellIndex;
379
386
  isLastCell = cellIndex === tdCollections.length;
380
387
  cellIndex = (cellIndex < 0) ? 0 : (cellIndex >= noOfDays) ? noOfDays - 1 : cellIndex;
381
388
  }
382
389
  else {
383
390
  var cellWidth = this.actionObj.cellWidth;
384
- cellIndex = isLeft ? Math.floor(this.actionObj.clone.offsetLeft / this.actionObj.cellWidth) :
385
- Math.ceil((this.actionObj.clone.offsetLeft + (this.actionObj.clone.offsetWidth - cellWidth)) /
386
- this.actionObj.cellWidth);
391
+ cellIndex = isLeft ? Math.floor(offset / this.actionObj.cellWidth) :
392
+ Math.ceil((offset + (this.actionObj.clone.getBoundingClientRect().width - cellWidth)) / this.actionObj.cellWidth);
387
393
  if (this.parent.enableRtl) {
388
394
  var cellOffsetWidth = 0;
389
395
  if (headerName === 'TimelineMonth' || (!this.parent.activeViewOptions.timeScale.enable &&
390
396
  !isTimelineMonth)) {
391
397
  cellOffsetWidth = this.actionObj.cellWidth;
392
398
  }
393
- var offsetWidth = (Math.floor(parseInt(this.actionObj.clone.style.right, 10) / this.actionObj.cellWidth) *
394
- this.actionObj.cellWidth) + (isLeft ? 0 : this.actionObj.clone.offsetWidth - cellOffsetWidth);
399
+ var offsetWidth = (Math.floor(offset / this.actionObj.cellWidth) *
400
+ this.actionObj.cellWidth) + (isLeft ? 0 : this.actionObj.clone.getBoundingClientRect().width - cellOffsetWidth);
395
401
  cellIndex = Math.floor(offsetWidth / this.actionObj.cellWidth);
396
402
  }
397
403
  isLastCell = cellIndex === tdCollections.length;
@@ -409,13 +415,11 @@ var Resize = /** @class */ (function (_super) {
409
415
  resizeTime = new Date(resizeDate.setHours(resizeTime.getHours(), resizeTime.getMinutes(), resizeTime.getSeconds()));
410
416
  }
411
417
  else {
412
- var offsetValue = this.parent.enableRtl ? parseFloat(this.actionObj.clone.style.right) :
413
- parseFloat(this.actionObj.clone.style.left);
414
418
  if (!isLeft) {
415
- offsetValue += this.actionObj.clone.offsetWidth;
419
+ offset += this.actionObj.clone.getBoundingClientRect().width;
416
420
  }
417
421
  var spanMinutes = Math.ceil((this.actionObj.slotInterval / this.actionObj.cellWidth) *
418
- (offsetValue - Math.floor(offsetValue / this.actionObj.cellWidth) * this.actionObj.cellWidth));
422
+ (offset - Math.floor(offset / this.actionObj.cellWidth) * this.actionObj.cellWidth));
419
423
  spanMinutes = (isLastCell || (!isLeft && spanMinutes === 0)) ? this.actionObj.slotInterval : spanMinutes;
420
424
  resizeTime = new Date(resizeDate.getTime());
421
425
  resizeTime.setMinutes(resizeTime.getMinutes() + spanMinutes);
@@ -424,9 +428,10 @@ var Resize = /** @class */ (function (_super) {
424
428
  }
425
429
  else {
426
430
  var cloneIndex = closest(this.actionObj.clone, 'td').cellIndex;
427
- var originalWidth = Math.ceil((isLeft ? this.actionObj.element.offsetWidth : 0) / this.actionObj.cellWidth) *
428
- this.actionObj.cellWidth;
429
- var noOfDays = Math.ceil((this.actionObj.clone.offsetWidth - originalWidth) / this.actionObj.cellWidth);
431
+ var originalWidth = Math.ceil((isLeft ? this.actionObj.element.getBoundingClientRect().width : 0) /
432
+ this.actionObj.cellWidth) * this.actionObj.cellWidth;
433
+ var noOfDays = Math.ceil((this.actionObj.clone.getBoundingClientRect().width - originalWidth) /
434
+ this.actionObj.cellWidth);
430
435
  var tr = closest(this.actionObj.clone, 'tr');
431
436
  var dayIndex = isLeft ? cloneIndex - noOfDays : cloneIndex + noOfDays - 1;
432
437
  dayIndex = this.getIndex(dayIndex);
@@ -446,8 +451,8 @@ var Resize = /** @class */ (function (_super) {
446
451
  }
447
452
  else {
448
453
  var isTimeScaleViews = isTimeViews && this.parent.activeViewOptions.timeScale.enable;
449
- var resizeEnd = ((!isTimeScaleViews || isDateHeader) && resizeTime.getHours() === 0 && resizeTime.getMinutes() === 0) ?
450
- util.addDays(resizeTime, 1) : resizeTime;
454
+ var resizeEnd = ((!isTimeScaleViews || isDateHeader || isTimeViews && ['Week', 'Month', 'Year'].indexOf(headerName) > -1)
455
+ && resizeTime.getHours() === 0 && resizeTime.getMinutes() === 0) ? util.addDays(resizeTime, 1) : resizeTime;
451
456
  if (isWithoutScale && (resizeEnd.getTime() - eventStart.getTime()) <= 0) {
452
457
  resizeEnd = util.addDays(util.resetTime(eventStart), 1);
453
458
  }
@@ -484,29 +489,30 @@ var Resize = /** @class */ (function (_super) {
484
489
  var slotInterval = (this.actionObj.cellWidth / this.actionObj.slotInterval) * this.actionObj.interval;
485
490
  var pageWidth = isLeft ? (this.actionObj.X - this.actionObj.pageX) : (this.actionObj.pageX - this.actionObj.X);
486
491
  var targetWidth = isTimelineView ?
487
- (this.actionObj.element.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth :
488
- this.parent.currentView === 'Month' ? this.actionObj.element.offsetWidth :
489
- Math.ceil(this.actionObj.element.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth;
492
+ (this.actionObj.element.getBoundingClientRect().width / this.actionObj.cellWidth) * this.actionObj.cellWidth :
493
+ this.parent.currentView === 'Month' ? this.actionObj.element.getBoundingClientRect().width :
494
+ Math.ceil(this.actionObj.element.getBoundingClientRect().width / this.actionObj.cellWidth) * this.actionObj.cellWidth;
490
495
  var offsetWidth = targetWidth + (Math.ceil(pageWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth);
496
+ var left = (this.parent.enableRtl) ? parseInt(this.actionObj.element.style.right, 10) : this.actionObj.clone.offsetLeft;
491
497
  if (isTimeViews) {
492
- offsetWidth = targetWidth + (isLeft ? (Math.ceil(pageWidth / slotInterval) * slotInterval) :
493
- (Math.floor(pageWidth / slotInterval) * slotInterval));
498
+ offsetWidth = targetWidth + (Math.ceil(pageWidth / slotInterval) * slotInterval);
499
+ offsetWidth = (Math.round((left + offsetWidth) / slotInterval) * slotInterval) - left;
494
500
  this.actionObj.event[this.parent.eventFields.isAllDay] = false;
495
501
  }
496
502
  var width = !isLeft && ((offsetWidth + this.actionObj.clone.offsetLeft > this.scrollArgs.width)) ?
497
- this.actionObj.clone.offsetWidth : (offsetWidth < this.actionObj.cellWidth) ? offsetWidth : offsetWidth;
503
+ this.actionObj.clone.getBoundingClientRect().width : (offsetWidth < this.actionObj.cellWidth) ? offsetWidth : offsetWidth;
498
504
  if (this.parent.enableRtl) {
499
505
  var rightValue = isTimelineView ? parseInt(this.actionObj.element.style.right, 10) :
500
506
  -(offsetWidth - this.actionObj.cellWidth);
501
507
  rightValue = isTimelineView ? rightValue : isLeft ? 0 : rightValue > 0 ? 0 : rightValue;
502
508
  if (isTimelineView && !isLeft) {
503
- rightValue = Math.ceil((this.actionObj.element.offsetLeft + (this.actionObj.element.offsetWidth +
509
+ rightValue = Math.ceil((this.actionObj.element.offsetLeft + (this.actionObj.element.getBoundingClientRect().width +
504
510
  (this.actionObj.pageX - this.actionObj.X))) / slotInterval) * slotInterval;
505
511
  rightValue = rightValue < 0 ? Math.abs(rightValue) : -rightValue;
506
512
  }
507
513
  rightValue = rightValue >= this.scrollArgs.width ? this.scrollArgs.width - this.actionObj.cellWidth : rightValue;
508
514
  styles.right = formatUnit(rightValue);
509
- width = width + rightValue > this.scrollArgs.width ? this.actionObj.clone.offsetWidth : width;
515
+ width = width + rightValue > this.scrollArgs.width ? this.actionObj.clone.getBoundingClientRect().width : width;
510
516
  }
511
517
  else {
512
518
  var offsetLeft = isLeft ? this.actionObj.element.offsetLeft - (this.actionObj.X - this.actionObj.pageX) :
@@ -514,12 +520,12 @@ var Resize = /** @class */ (function (_super) {
514
520
  if (isTimelineView) {
515
521
  offsetLeft = isLeft ? offsetLeft : parseInt(this.actionObj.clone.style.left, 10);
516
522
  if (this.parent.enableRtl) {
517
- offsetLeft = !isLeft ? (this.actionObj.pageX < this.actionObj.X - this.actionObj.clone.offsetWidth) ?
518
- parseInt(this.actionObj.clone.style.right, 10) : offsetLeft : offsetLeft;
523
+ offsetLeft = !isLeft ? (this.actionObj.pageX < this.actionObj.X - this.actionObj.clone.getBoundingClientRect().width)
524
+ ? parseInt(this.actionObj.clone.style.right, 10) : offsetLeft : offsetLeft;
519
525
  }
520
526
  else {
521
- offsetLeft = isLeft ? (this.actionObj.pageX > this.actionObj.X + this.actionObj.clone.offsetWidth &&
522
- this.actionObj.clone.offsetWidth === this.actionObj.cellWidth) ?
527
+ offsetLeft = isLeft ? (this.actionObj.pageX > this.actionObj.X + this.actionObj.clone.getBoundingClientRect().width &&
528
+ this.actionObj.clone.getBoundingClientRect().width === this.actionObj.cellWidth) ?
523
529
  parseInt(this.actionObj.clone.style.left, 10) : offsetLeft : offsetLeft;
524
530
  }
525
531
  }
@@ -529,9 +535,10 @@ var Resize = /** @class */ (function (_super) {
529
535
  Math.ceil(Math.abs(offsetLeft) / this.actionObj.cellWidth) * this.actionObj.cellWidth;
530
536
  if (offsetLeft < 0) {
531
537
  offsetLeft = 0;
532
- width = this.actionObj.clone.offsetWidth;
538
+ width = this.actionObj.clone.getBoundingClientRect().width;
533
539
  }
534
- var cloneWidth = Math.ceil(this.actionObj.clone.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth;
540
+ var cloneWidth = Math.ceil(this.actionObj.clone.getBoundingClientRect().width / this.actionObj.cellWidth) *
541
+ this.actionObj.cellWidth;
535
542
  if (isLeft) {
536
543
  styles.left = formatUnit(isTimelineView ? offsetLeft : isLeft ? leftValue < 0 ? -offsetLeft :
537
544
  (Math.ceil((targetWidth - cloneWidth) / this.actionObj.cellWidth) * this.actionObj.cellWidth) : offsetLeft);
@@ -44,6 +44,12 @@ export declare const DATE_HEADER_CONTAINER_CLASS: string;
44
44
  /** @private */
45
45
  export declare const HEADER_CELLS_CLASS: string;
46
46
  /** @private */
47
+ export declare const HEADER_WEEK_CELLS_CLASS: string;
48
+ /** @private */
49
+ export declare const HEADER_MONTH_CELLS_CLASS: string;
50
+ /** @private */
51
+ export declare const HEADER_YEAR_CELLS_CLASS: string;
52
+ /** @private */
47
53
  export declare const WORKDAY_CLASS: string;
48
54
  /** @private */
49
55
  export declare const OTHERMONTH_CLASS: string;
@@ -44,6 +44,12 @@ export var DATE_HEADER_CONTAINER_CLASS = 'e-date-header-container';
44
44
  /** @private */
45
45
  export var HEADER_CELLS_CLASS = 'e-header-cells';
46
46
  /** @private */
47
+ export var HEADER_WEEK_CELLS_CLASS = 'e-header-week-cell';
48
+ /** @private */
49
+ export var HEADER_MONTH_CELLS_CLASS = 'e-header-month-cell';
50
+ /** @private */
51
+ export var HEADER_YEAR_CELLS_CLASS = 'e-header-year-cell';
52
+ /** @private */
47
53
  export var WORKDAY_CLASS = 'e-work-days';
48
54
  /** @private */
49
55
  export var OTHERMONTH_CLASS = 'e-other-month';
@@ -272,6 +272,8 @@ export interface ExportOptions {
272
272
  exportType?: ExcelFormat;
273
273
  /** The custom or specific field collection of event dataSource to be exported can be provided through fields option. */
274
274
  fields?: string[];
275
+ /** Specifies the collection of field name and its header text to export to excel. If this list is empty, the scheduler exports based on fields. If both fieldsInfo and fields are empty then the scheduler exported all the fields. */
276
+ fieldsInfo?: ExportFieldInfo[];
275
277
  /** The custom data collection can be exported by passing them through the customData option. */
276
278
  customData?: Record<string, any>[];
277
279
  /** There also exists option to export each individual instances of the recurring events to an Excel file,
@@ -280,6 +282,13 @@ export interface ExportOptions {
280
282
  */
281
283
  includeOccurrences?: boolean;
282
284
  }
285
+ /** An interface that holds the field name and its header text to export to excel. */
286
+ export interface ExportFieldInfo {
287
+ /** Defines the header display text. */
288
+ text: string;
289
+ /** Defines the field name to export. */
290
+ name: string;
291
+ }
283
292
  /** An interface that holds the details of a resource. */
284
293
  export interface ResourceDetails {
285
294
  /** Returns the resource model data such as the field mapping options used within it. */
@@ -374,6 +383,8 @@ export interface IRenderer {
374
383
  isCurrentDate(date: Date): boolean;
375
384
  startDate(): Date;
376
385
  endDate(): Date;
386
+ getStartDate?(): Date;
387
+ getEndDate?(): Date;
377
388
  scrollToHour?(hour: string, scrollDate?: Date): void;
378
389
  scrollToDate?(scrollDate?: Date): void;
379
390
  highlightCurrentTime?(): void;
@@ -474,6 +485,7 @@ export interface UIStateArgs {
474
485
  groupIndex?: number;
475
486
  action?: boolean;
476
487
  isBlock?: boolean;
488
+ isCustomMonth?: boolean;
477
489
  }
478
490
  /**
479
491
  * @private
@@ -340,6 +340,7 @@ var ResourceBase = /** @class */ (function () {
340
340
  targetType: 'relative',
341
341
  actionOnScroll: 'none',
342
342
  content: this.treeViewObj.element,
343
+ relateTo: this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS),
343
344
  enableRtl: this.parent.enableRtl,
344
345
  hideAnimation: { name: 'SlideLeftOut', duration: 500 },
345
346
  showAnimation: { name: 'SlideLeftIn', duration: 500 },