@progress/kendo-angular-scheduler 3.0.3-dev.202204061046 → 3.1.0-dev.202204121440

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/dist/cdn/js/kendo-angular-scheduler.js +2 -2
  2. package/dist/cdn/main.js +1 -1
  3. package/dist/es/package-metadata.js +1 -1
  4. package/dist/es/scheduler.component.js +9 -0
  5. package/dist/es/types/ongoing-events-settings.interface.js +4 -0
  6. package/dist/es/views/common/configuration-view-base.js +14 -0
  7. package/dist/es/views/constants.js +6 -0
  8. package/dist/es/views/day-time/day-time-view-base.js +15 -0
  9. package/dist/es/views/day-time/day-time-view.component.js +36 -2
  10. package/dist/es/views/month/month-view-renderer.component.js +47 -5
  11. package/dist/es/views/month/month-view.component.js +1 -1
  12. package/dist/es/views/multi-day/day-view.component.js +1 -1
  13. package/dist/es/views/multi-day/multi-day-view.component.js +1 -1
  14. package/dist/es/views/multi-day/week-view.component.js +1 -1
  15. package/dist/es/views/multi-day/work-week-view.component.js +1 -1
  16. package/dist/es/views/timeline/timeline-month-view.component.js +1 -1
  17. package/dist/es/views/timeline/timeline-view.component.js +1 -1
  18. package/dist/es/views/timeline/timeline-week-view.component.js +1 -1
  19. package/dist/es2015/index.metadata.json +1 -1
  20. package/dist/es2015/package-metadata.js +1 -1
  21. package/dist/es2015/scheduler.component.d.ts +5 -1
  22. package/dist/es2015/scheduler.component.js +9 -0
  23. package/dist/es2015/types/ongoing-events-settings.interface.d.ts +23 -0
  24. package/dist/es2015/types/ongoing-events-settings.interface.js +4 -0
  25. package/dist/es2015/types.d.ts +1 -0
  26. package/dist/es2015/views/common/configuration-view-base.d.ts +9 -1
  27. package/dist/es2015/views/common/configuration-view-base.js +10 -0
  28. package/dist/es2015/views/constants.d.ts +6 -0
  29. package/dist/es2015/views/constants.js +6 -0
  30. package/dist/es2015/views/day-time/day-time-view-base.d.ts +9 -1
  31. package/dist/es2015/views/day-time/day-time-view-base.js +11 -0
  32. package/dist/es2015/views/day-time/day-time-view.component.d.ts +6 -0
  33. package/dist/es2015/views/day-time/day-time-view.component.js +34 -2
  34. package/dist/es2015/views/month/month-view-renderer.component.d.ts +10 -1
  35. package/dist/es2015/views/month/month-view-renderer.component.js +45 -5
  36. package/dist/es2015/views/month/month-view.component.js +1 -0
  37. package/dist/es2015/views/multi-day/day-view.component.js +1 -0
  38. package/dist/es2015/views/multi-day/multi-day-view.component.js +1 -0
  39. package/dist/es2015/views/multi-day/week-view.component.js +1 -0
  40. package/dist/es2015/views/multi-day/work-week-view.component.js +1 -0
  41. package/dist/es2015/views/timeline/timeline-month-view.component.js +1 -0
  42. package/dist/es2015/views/timeline/timeline-view.component.js +1 -0
  43. package/dist/es2015/views/timeline/timeline-week-view.component.js +1 -0
  44. package/dist/fesm2015/index.js +190 -78
  45. package/dist/fesm5/index.js +171 -55
  46. package/dist/npm/package-metadata.js +1 -1
  47. package/dist/npm/scheduler.component.js +9 -0
  48. package/dist/npm/types/ongoing-events-settings.interface.js +6 -0
  49. package/dist/npm/views/common/configuration-view-base.js +14 -0
  50. package/dist/npm/views/constants.js +6 -0
  51. package/dist/npm/views/day-time/day-time-view-base.js +15 -0
  52. package/dist/npm/views/day-time/day-time-view.component.js +34 -0
  53. package/dist/npm/views/month/month-view-renderer.component.js +49 -7
  54. package/dist/npm/views/month/month-view.component.js +1 -1
  55. package/dist/npm/views/multi-day/day-view.component.js +1 -1
  56. package/dist/npm/views/multi-day/multi-day-view.component.js +1 -1
  57. package/dist/npm/views/multi-day/week-view.component.js +1 -1
  58. package/dist/npm/views/multi-day/work-week-view.component.js +1 -1
  59. package/dist/npm/views/timeline/timeline-month-view.component.js +1 -1
  60. package/dist/npm/views/timeline/timeline-view.component.js +1 -1
  61. package/dist/npm/views/timeline/timeline-week-view.component.js +1 -1
  62. package/dist/systemjs/kendo-angular-scheduler.js +1 -1
  63. package/package.json +1 -1
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { __decorate, __param, __metadata } from 'tslib';
6
- import { Directive, Optional, TemplateRef, Injectable, EventEmitter, NgZone, Input, Renderer2, ElementRef, ChangeDetectorRef, Inject, isDevMode, HostBinding, Component, Output, ContentChild, ContentChildren, QueryList, ViewChild, ViewContainerRef, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, NgModule, LOCALE_ID, Pipe, ViewChildren, HostListener } from '@angular/core';
6
+ import { Directive, Optional, TemplateRef, Injectable, EventEmitter, NgZone, Input, Renderer2, ElementRef, ChangeDetectorRef, Inject, isDevMode, HostBinding, Component, Output, ContentChild, ContentChildren, QueryList, ViewChild, ViewContainerRef, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, NgModule, LOCALE_ID, ViewChildren, Pipe, HostListener } from '@angular/core';
7
7
  import { LocalizationService, L10N_PREFIX, RTL, MessageService, ComponentMessages } from '@progress/kendo-angular-l10n';
8
8
  import { hasObservers, isDocumentAvailable, isChanged, anyChanged, ResizeSensorComponent, EventsModule, guid, Keys, ResizeSensorModule } from '@progress/kendo-angular-common';
9
9
  import { isEqualDate, getDate, Day, ZonedDate, toLocalDate, MS_PER_DAY, addDays, firstDayOfMonth, addMonths, firstDayInWeek, timezoneNames } from '@progress/kendo-date-math';
@@ -32,7 +32,7 @@ const packageMetadata = {
32
32
  name: '@progress/kendo-angular-scheduler',
33
33
  productName: 'Kendo UI for Angular',
34
34
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
35
- publishDate: 1649241774,
35
+ publishDate: 1649774242,
36
36
  version: '',
37
37
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
38
38
  };
@@ -2228,6 +2228,10 @@ let SchedulerComponent = class SchedulerComponent {
2228
2228
  * Specifies the Scheduler current time marker settings.
2229
2229
  */
2230
2230
  this.currentTimeMarker = true;
2231
+ /**
2232
+ * Specifies the settings for the ongoing events highlight of the Scheduler.
2233
+ */
2234
+ this.highlightOngoingEvents = true;
2231
2235
  /**
2232
2236
  * A callback that executes for each slot of the Scheduler view.
2233
2237
  * If it returns `true`, the `k-state-selected` CSS class will be added to the cell, making it visibly selected.
@@ -2799,6 +2803,7 @@ let SchedulerComponent = class SchedulerComponent {
2799
2803
  selectable: this.selectable,
2800
2804
  timezone: this.timezone,
2801
2805
  currentTimeMarker: this.currentTimeMarker,
2806
+ highlightOngoingEvents: this.highlightOngoingEvents,
2802
2807
  slotClass: this.slotClass,
2803
2808
  slotFill: this.slotFill,
2804
2809
  columnWidth: this.columnWidth,
@@ -3058,6 +3063,10 @@ __decorate([
3058
3063
  Input(),
3059
3064
  __metadata("design:type", Object)
3060
3065
  ], SchedulerComponent.prototype, "currentTimeMarker", void 0);
3066
+ __decorate([
3067
+ Input(),
3068
+ __metadata("design:type", Object)
3069
+ ], SchedulerComponent.prototype, "highlightOngoingEvents", void 0);
3061
3070
  __decorate([
3062
3071
  Input(),
3063
3072
  __metadata("design:type", Function)
@@ -4529,6 +4538,12 @@ class ConfigurationViewBase extends SchedulerView {
4529
4538
  get viewEventStyles() {
4530
4539
  return isPresent(this.eventStyles) ? this.eventStyles : this.schedulerOptions.eventStyles;
4531
4540
  }
4541
+ /**
4542
+ * @hidden
4543
+ */
4544
+ get viewHighlightOngoingEvents() {
4545
+ return isPresent(this.highlightOngoingEvents) ? this.highlightOngoingEvents : this.schedulerOptions.highlightOngoingEvents;
4546
+ }
4532
4547
  /**
4533
4548
  * @hidden
4534
4549
  */
@@ -4557,6 +4572,10 @@ __decorate([
4557
4572
  Input(),
4558
4573
  __metadata("design:type", Function)
4559
4574
  ], ConfigurationViewBase.prototype, "eventStyles", void 0);
4575
+ __decorate([
4576
+ Input(),
4577
+ __metadata("design:type", Object)
4578
+ ], ConfigurationViewBase.prototype, "highlightOngoingEvents", void 0);
4560
4579
  __decorate([
4561
4580
  ViewChild('content', { static: true }),
4562
4581
  __metadata("design:type", TemplateRef)
@@ -5734,6 +5753,12 @@ const MS_PER_MINUTE = 60 * MS_PER_SECOND;
5734
5753
  const BORDER_WIDTH = 1;
5735
5754
  /** @hidden */
5736
5755
  const DEFAULT_EVENT_HEIGHT = 25;
5756
+ /** @hidden */
5757
+ const ONGOING_EVENT_CSS_CLASS = 'k-event-ongoing';
5758
+ /** @hidden */
5759
+ const DAYS_IN_WEEK_COUNT = 7;
5760
+ /** @hidden */
5761
+ const WEEKS_COUNT = 6;
5737
5762
 
5738
5763
  //better try to measure this one
5739
5764
  const MORE_BUTTON_HEIGHT = 13;
@@ -6297,6 +6322,7 @@ MonthViewComponent = MonthViewComponent_1 = __decorate([
6297
6322
  [monthDaySlotTemplate]="monthDaySlotTemplate?.templateRef"
6298
6323
  [selectedDateFormat]="selectedDateFormat"
6299
6324
  [selectedShortDateFormat]="selectedShortDateFormat"
6325
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
6300
6326
  [weekStart]="viewWeekStart">
6301
6327
  </month-view>
6302
6328
  </ng-template>
@@ -7396,8 +7422,6 @@ __decorate([
7396
7422
  __metadata("design:type", HintContainerComponent)
7397
7423
  ], BaseView.prototype, "hintContainer", void 0);
7398
7424
 
7399
- const DAYS_IN_WEEK_COUNT = 7;
7400
- const WEEKS_COUNT = 6;
7401
7425
  /**
7402
7426
  * @hidden
7403
7427
  */
@@ -7406,6 +7430,7 @@ let MonthViewRendererComponent = class MonthViewRendererComponent extends BaseVi
7406
7430
  super(viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, changeDetector);
7407
7431
  this.resizeHintFormat = { skeleton: 'Md' };
7408
7432
  this.weeks = [];
7433
+ this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
7409
7434
  }
7410
7435
  get monthDaySlotTemplateRef() {
7411
7436
  return this.monthDaySlotTemplate || (this.schedulerMonthDaySlotTemplate || {}).templateRef;
@@ -7416,6 +7441,14 @@ let MonthViewRendererComponent = class MonthViewRendererComponent extends BaseVi
7416
7441
  }
7417
7442
  super.ngOnChanges(changes);
7418
7443
  }
7444
+ ngAfterViewInit() {
7445
+ this.updateOngoingEvents();
7446
+ super.ngAfterViewInit();
7447
+ }
7448
+ ngOnDestroy() {
7449
+ clearTimeout(this.ongoingEventsTimeout);
7450
+ super.ngOnDestroy();
7451
+ }
7419
7452
  horizontalColspan(resourceIndex) {
7420
7453
  const resources = this.horizontalResources;
7421
7454
  let result = DAYS_IN_WEEK_COUNT;
@@ -7543,6 +7576,28 @@ let MonthViewRendererComponent = class MonthViewRendererComponent extends BaseVi
7543
7576
  slotByPosition(x, y) {
7544
7577
  return this.slotService.slotByPosition(x, y);
7545
7578
  }
7579
+ updateOngoingEvents() {
7580
+ const disabled = !this.highlightOngoingEvents || this.highlightOngoingEvents.enabled === false;
7581
+ if (!isDocumentAvailable() || disabled) {
7582
+ return;
7583
+ }
7584
+ clearTimeout(this.ongoingEventsTimeout);
7585
+ this.zone.runOutsideAngular(() => {
7586
+ this.ongoingEventsTimeout = setTimeout(this.updateOngoingEvents, this.highlightOngoingEvents.updateInterval || MS_PER_MINUTE);
7587
+ });
7588
+ this.toggleOngoingClass();
7589
+ }
7590
+ currentTime() {
7591
+ return new Date();
7592
+ }
7593
+ toggleOngoingClass() {
7594
+ const now = this.currentTime();
7595
+ const cssClass = isPresent(this.highlightOngoingEvents.cssClass) ? this.highlightOngoingEvents.cssClass : ONGOING_EVENT_CSS_CLASS;
7596
+ this.eventElements.forEach((event) => {
7597
+ const isOngoing = dateInRange(now, event.item.start, event.item.end);
7598
+ this.renderer[isOngoing ? 'addClass' : 'removeClass'](event.nativeElement, cssClass);
7599
+ });
7600
+ }
7546
7601
  createDaySlots({ start }) {
7547
7602
  const weeks = [];
7548
7603
  let date = start;
@@ -7561,6 +7616,14 @@ __decorate([
7561
7616
  Input(),
7562
7617
  __metadata("design:type", TemplateRef)
7563
7618
  ], MonthViewRendererComponent.prototype, "monthDaySlotTemplate", void 0);
7619
+ __decorate([
7620
+ Input(),
7621
+ __metadata("design:type", Object)
7622
+ ], MonthViewRendererComponent.prototype, "highlightOngoingEvents", void 0);
7623
+ __decorate([
7624
+ ViewChildren(MonthViewItemComponent),
7625
+ __metadata("design:type", QueryList)
7626
+ ], MonthViewRendererComponent.prototype, "eventElements", void 0);
7564
7627
  MonthViewRendererComponent = __decorate([
7565
7628
  Component({
7566
7629
  // tslint:disable-next-line:component-selector
@@ -8129,6 +8192,7 @@ const WORK_WEEK_END = 'workWeekEnd';
8129
8192
  const SLOT_DURATION = 'slotDuration';
8130
8193
  const SLOT_DIVISIONS = 'slotDivisions';
8131
8194
  const CURRENT_TIME_MARKER = 'currentTimeMarker';
8195
+ const HIGHLIGHT_ONGOING_EVENTS = 'highlightOngoingEvents';
8132
8196
  /**
8133
8197
  * @hidden
8134
8198
  */
@@ -8202,6 +8266,12 @@ class DayTimeViewBase extends ConfigurationViewBase {
8202
8266
  get viewCurrentTimeMarker() {
8203
8267
  return this.optionValue(CURRENT_TIME_MARKER);
8204
8268
  }
8269
+ /**
8270
+ * @hidden
8271
+ */
8272
+ get viewHighlightOngoingEvents() {
8273
+ return this.optionValue(HIGHLIGHT_ONGOING_EVENTS);
8274
+ }
8205
8275
  /**
8206
8276
  * @hidden
8207
8277
  */
@@ -8268,6 +8338,10 @@ __decorate([
8268
8338
  Input(),
8269
8339
  __metadata("design:type", Object)
8270
8340
  ], DayTimeViewBase.prototype, "currentTimeMarker", void 0);
8341
+ __decorate([
8342
+ Input(),
8343
+ __metadata("design:type", Object)
8344
+ ], DayTimeViewBase.prototype, "highlightOngoingEvents", void 0);
8271
8345
 
8272
8346
  const SLOT_FILL = 'slotFill';
8273
8347
  /**
@@ -8361,6 +8435,7 @@ DayViewComponent = DayViewComponent_1 = __decorate([
8361
8435
  [name]="name"
8362
8436
  [eventHeight]="viewEventHeight"
8363
8437
  [currentTimeMarker]="viewCurrentTimeMarker"
8438
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
8364
8439
  [showWorkHours]="shouldShowWorkHours"
8365
8440
  [scrollTime]="viewScrollTime"
8366
8441
  [startTime]="viewStartTime"
@@ -8478,6 +8553,7 @@ MultiDayViewComponent = MultiDayViewComponent_1 = __decorate([
8478
8553
  [numberOfDays]="numberOfDays"
8479
8554
  [eventHeight]="viewEventHeight"
8480
8555
  [currentTimeMarker]="viewCurrentTimeMarker"
8556
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
8481
8557
  [showWorkHours]="shouldShowWorkHours"
8482
8558
  [scrollTime]="viewScrollTime"
8483
8559
  [startTime]="viewStartTime"
@@ -8594,6 +8670,7 @@ WeekViewComponent = WeekViewComponent_1 = __decorate([
8594
8670
  [getStartDate]="getStartDate"
8595
8671
  [eventHeight]="viewEventHeight"
8596
8672
  [currentTimeMarker]="viewCurrentTimeMarker"
8673
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
8597
8674
  [showWorkHours]="shouldShowWorkHours"
8598
8675
  [scrollTime]="viewScrollTime"
8599
8676
  [startTime]="viewStartTime"
@@ -8692,6 +8769,7 @@ WorkWeekViewComponent = WorkWeekViewComponent_1 = __decorate([
8692
8769
  [getNextDate]="getNextDate"
8693
8770
  [eventHeight]="viewEventHeight"
8694
8771
  [currentTimeMarker]="viewCurrentTimeMarker"
8772
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
8695
8773
  [showWorkHours]="shouldShowWorkHours"
8696
8774
  [scrollTime]="viewScrollTime"
8697
8775
  [startTime]="viewStartTime"
@@ -9404,6 +9482,80 @@ function createTimeSlots(intlService, { showWorkHours, startTime, endTime, workD
9404
9482
  return slots;
9405
9483
  }
9406
9484
 
9485
+ /**
9486
+ * @hidden
9487
+ */
9488
+ let DayTimeViewItemComponent = class DayTimeViewItemComponent extends BaseViewItem {
9489
+ constructor(intlService, slotService, localization, focusService, element, renderer, localeId) {
9490
+ super(slotService, localization, focusService, element, renderer, localeId);
9491
+ this.intlService = intlService;
9492
+ this.localeId = localeId;
9493
+ }
9494
+ get eventTime() {
9495
+ return this.intlService.format('{0:t}–{1:t}', toLocalDate(this.item.startTime), toLocalDate(this.item.endTime));
9496
+ }
9497
+ };
9498
+ __decorate([
9499
+ Input(),
9500
+ __metadata("design:type", Boolean)
9501
+ ], DayTimeViewItemComponent.prototype, "vertical", void 0);
9502
+ __decorate([
9503
+ Input(),
9504
+ __metadata("design:type", Boolean)
9505
+ ], DayTimeViewItemComponent.prototype, "isAllDay", void 0);
9506
+ DayTimeViewItemComponent = __decorate([
9507
+ Component({
9508
+ // tslint:disable-next-line:component-selector
9509
+ selector: '[dayTimeViewItem]',
9510
+ template: `
9511
+ <span class="k-event-actions">
9512
+ <span class="k-icon k-i-arrow-60-left" *ngIf="item.tail && !vertical"></span>
9513
+ <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
9514
+ <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
9515
+ </span>
9516
+ <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
9517
+ [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
9518
+ </ng-container>
9519
+ <div *ngIf="!eventTemplate" [attr.title]="eventTitle">
9520
+ <div class="k-event-template k-event-time" *ngIf="!isAllDay">{{ eventTime }}</div>
9521
+ <div class="k-event-template" aria-hidden="true">{{ item.event.title }}</div>
9522
+ </div>
9523
+
9524
+ <span class="k-event-actions">
9525
+ <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
9526
+ <span class="k-icon k-i-close"></span>
9527
+ </span>
9528
+ <span class="k-icon k-i-arrow-60-right" *ngIf="item.head && !vertical"></span>
9529
+ </span>
9530
+
9531
+ <span class="k-event-top-actions" *ngIf="item.tail && vertical">
9532
+ <span class="k-icon k-i-arrow-60-up"></span>
9533
+ </span>
9534
+
9535
+ <span class="k-event-bottom-actions" *ngIf="item.head && vertical">
9536
+ <span class="k-icon k-i-arrow-60-down"></span>
9537
+ </span>
9538
+
9539
+ <ng-container *ngIf="resizable && vertical">
9540
+ <span class="k-resize-handle k-resize-n" *ngIf="!item.tail"></span>
9541
+ <span class="k-resize-handle k-resize-s" *ngIf="!item.head"></span>
9542
+ </ng-container>
9543
+
9544
+ <ng-container *ngIf="resizable && !vertical">
9545
+ <span class="k-resize-handle k-resize-w"></span>
9546
+ <span class="k-resize-handle k-resize-e"></span>
9547
+ </ng-container>
9548
+ `
9549
+ }),
9550
+ __param(6, Inject(LOCALE_ID)),
9551
+ __metadata("design:paramtypes", [IntlService,
9552
+ DayTimeSlotService,
9553
+ LocalizationService,
9554
+ FocusService,
9555
+ ElementRef,
9556
+ Renderer2, String])
9557
+ ], DayTimeViewItemComponent);
9558
+
9407
9559
  const getStartDate = date => getDate(date);
9408
9560
  const getEndDate = (start, numberOfDays) => getDate(addDays(start, numberOfDays || 1));
9409
9561
  const getNextDate = (date, count, numberOfDays) => getDate(addDays(date, numberOfDays * count));
@@ -9434,6 +9586,8 @@ class DayTimeViewComponent extends BaseView {
9434
9586
  this.verticalTime = true;
9435
9587
  this.initialUpdate = true;
9436
9588
  this.updateCurrentTime = this.updateCurrentTime.bind(this);
9589
+ this.toggleOngoingClass = this.toggleOngoingClass.bind(this);
9590
+ this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
9437
9591
  }
9438
9592
  get classNames() {
9439
9593
  return `k-scheduler-${this.name}view`;
@@ -9462,6 +9616,7 @@ class DayTimeViewComponent extends BaseView {
9462
9616
  ngOnDestroy() {
9463
9617
  super.ngOnDestroy();
9464
9618
  clearTimeout(this.currentTimeTimeout);
9619
+ clearTimeout(this.ongoingEventsTimeout);
9465
9620
  }
9466
9621
  verticalItem(leafIndex, resourceIndex) {
9467
9622
  const data = this.verticalResources[resourceIndex].data || [];
@@ -9482,6 +9637,14 @@ class DayTimeViewComponent extends BaseView {
9482
9637
  });
9483
9638
  }
9484
9639
  }
9640
+ toggleOngoingClass() {
9641
+ const now = this.currentTime();
9642
+ const cssClass = isPresent(this.highlightOngoingEvents.cssClass) ? this.highlightOngoingEvents.cssClass : ONGOING_EVENT_CSS_CLASS;
9643
+ this.eventElements.forEach((event) => {
9644
+ const isOngoing = dateInRange(now, event.item.start, event.item.end);
9645
+ this.renderer[isOngoing ? 'addClass' : 'removeClass'](event.nativeElement, cssClass);
9646
+ });
9647
+ }
9485
9648
  scrollToTime(time = this.scrollTime) {
9486
9649
  let date;
9487
9650
  if (typeof time === 'string') {
@@ -9509,6 +9672,7 @@ class DayTimeViewComponent extends BaseView {
9509
9672
  updateView() {
9510
9673
  super.updateView();
9511
9674
  this.updateCurrentTime();
9675
+ this.updateOngoingEvents();
9512
9676
  if (this.initialUpdate) {
9513
9677
  this.scrollToTime();
9514
9678
  this.initialUpdate = false;
@@ -9547,6 +9711,17 @@ class DayTimeViewComponent extends BaseView {
9547
9711
  this.positionCurrentTime();
9548
9712
  }
9549
9713
  }
9714
+ updateOngoingEvents() {
9715
+ const disabled = !this.highlightOngoingEvents || this.highlightOngoingEvents.enabled === false;
9716
+ if (!isDocumentAvailable() || disabled) {
9717
+ return;
9718
+ }
9719
+ clearTimeout(this.ongoingEventsTimeout);
9720
+ this.zone.runOutsideAngular(() => {
9721
+ this.ongoingEventsTimeout = setTimeout(this.updateOngoingEvents, this.highlightOngoingEvents.updateInterval || MS_PER_MINUTE);
9722
+ });
9723
+ this.toggleOngoingClass();
9724
+ }
9550
9725
  positionCurrentTime() {
9551
9726
  if (this.currentTimeElements && this.currentTimeElements.length) {
9552
9727
  const date = this.currentDate.toUTCDate();
@@ -9760,10 +9935,18 @@ __decorate([
9760
9935
  Input(),
9761
9936
  __metadata("design:type", Object)
9762
9937
  ], DayTimeViewComponent.prototype, "currentTimeMarker", void 0);
9938
+ __decorate([
9939
+ Input(),
9940
+ __metadata("design:type", Object)
9941
+ ], DayTimeViewComponent.prototype, "highlightOngoingEvents", void 0);
9763
9942
  __decorate([
9764
9943
  ViewChildren('currentTimeMarker'),
9765
9944
  __metadata("design:type", QueryList)
9766
9945
  ], DayTimeViewComponent.prototype, "currentTimeElements", void 0);
9946
+ __decorate([
9947
+ ViewChildren(DayTimeViewItemComponent),
9948
+ __metadata("design:type", QueryList)
9949
+ ], DayTimeViewComponent.prototype, "eventElements", void 0);
9767
9950
  __decorate([
9768
9951
  ViewChildren('currentTimeArrow'),
9769
9952
  __metadata("design:type", QueryList)
@@ -10421,80 +10604,6 @@ DaySlotDirective = __decorate([
10421
10604
  LocalizationService])
10422
10605
  ], DaySlotDirective);
10423
10606
 
10424
- /**
10425
- * @hidden
10426
- */
10427
- let DayTimeViewItemComponent = class DayTimeViewItemComponent extends BaseViewItem {
10428
- constructor(intlService, slotService, localization, focusService, element, renderer, localeId) {
10429
- super(slotService, localization, focusService, element, renderer, localeId);
10430
- this.intlService = intlService;
10431
- this.localeId = localeId;
10432
- }
10433
- get eventTime() {
10434
- return this.intlService.format('{0:t}–{1:t}', toLocalDate(this.item.startTime), toLocalDate(this.item.endTime));
10435
- }
10436
- };
10437
- __decorate([
10438
- Input(),
10439
- __metadata("design:type", Boolean)
10440
- ], DayTimeViewItemComponent.prototype, "vertical", void 0);
10441
- __decorate([
10442
- Input(),
10443
- __metadata("design:type", Boolean)
10444
- ], DayTimeViewItemComponent.prototype, "isAllDay", void 0);
10445
- DayTimeViewItemComponent = __decorate([
10446
- Component({
10447
- // tslint:disable-next-line:component-selector
10448
- selector: '[dayTimeViewItem]',
10449
- template: `
10450
- <span class="k-event-actions">
10451
- <span class="k-icon k-i-arrow-60-left" *ngIf="item.tail && !vertical"></span>
10452
- <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
10453
- <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
10454
- </span>
10455
- <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
10456
- [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
10457
- </ng-container>
10458
- <div *ngIf="!eventTemplate" [attr.title]="eventTitle">
10459
- <div class="k-event-template k-event-time" *ngIf="!isAllDay">{{ eventTime }}</div>
10460
- <div class="k-event-template" aria-hidden="true">{{ item.event.title }}</div>
10461
- </div>
10462
-
10463
- <span class="k-event-actions">
10464
- <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
10465
- <span class="k-icon k-i-close"></span>
10466
- </span>
10467
- <span class="k-icon k-i-arrow-60-right" *ngIf="item.head && !vertical"></span>
10468
- </span>
10469
-
10470
- <span class="k-event-top-actions" *ngIf="item.tail && vertical">
10471
- <span class="k-icon k-i-arrow-60-up"></span>
10472
- </span>
10473
-
10474
- <span class="k-event-bottom-actions" *ngIf="item.head && vertical">
10475
- <span class="k-icon k-i-arrow-60-down"></span>
10476
- </span>
10477
-
10478
- <ng-container *ngIf="resizable && vertical">
10479
- <span class="k-resize-handle k-resize-n" *ngIf="!item.tail"></span>
10480
- <span class="k-resize-handle k-resize-s" *ngIf="!item.head"></span>
10481
- </ng-container>
10482
-
10483
- <ng-container *ngIf="resizable && !vertical">
10484
- <span class="k-resize-handle k-resize-w"></span>
10485
- <span class="k-resize-handle k-resize-e"></span>
10486
- </ng-container>
10487
- `
10488
- }),
10489
- __param(6, Inject(LOCALE_ID)),
10490
- __metadata("design:paramtypes", [IntlService,
10491
- DayTimeSlotService,
10492
- LocalizationService,
10493
- FocusService,
10494
- ElementRef,
10495
- Renderer2, String])
10496
- ], DayTimeViewItemComponent);
10497
-
10498
10607
  const DIRECTIVES = [TimeSlotDirective, DaySlotDirective, DayTimeViewItemComponent];
10499
10608
  /**
10500
10609
  * @hidden
@@ -10976,6 +11085,7 @@ TimelineViewComponent = TimelineViewComponent_1 = __decorate([
10976
11085
  [eventHeight]="viewEventHeight"
10977
11086
  [columnWidth]="viewColumnWidth"
10978
11087
  [currentTimeMarker]="viewCurrentTimeMarker"
11088
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
10979
11089
  [showWorkHours]="shouldShowWorkHours"
10980
11090
  [scrollTime]="viewScrollTime"
10981
11091
  [startTime]="viewStartTime"
@@ -11072,6 +11182,7 @@ TimelineWeekViewComponent = TimelineWeekViewComponent_1 = __decorate([
11072
11182
  [eventHeight]="viewEventHeight"
11073
11183
  [columnWidth]="viewColumnWidth"
11074
11184
  [currentTimeMarker]="viewCurrentTimeMarker"
11185
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
11075
11186
  [showWorkHours]="shouldShowWorkHours"
11076
11187
  [scrollTime]="viewScrollTime"
11077
11188
  [startTime]="viewStartTime"
@@ -11183,6 +11294,7 @@ TimelineMonthViewComponent = TimelineMonthViewComponent_1 = __decorate([
11183
11294
  [eventHeight]="viewEventHeight"
11184
11295
  [columnWidth]="viewColumnWidth"
11185
11296
  [currentTimeMarker]="viewCurrentTimeMarker"
11297
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
11186
11298
  [showWorkHours]="shouldShowWorkHours"
11187
11299
  [scrollTime]="viewScrollTime"
11188
11300
  [startTime]="viewStartTime"