@progress/kendo-angular-scheduler 4.0.0-next.202204011528 → 4.0.0

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 (39) hide show
  1. package/bundles/kendo-angular-scheduler.umd.js +1 -1
  2. package/editing-directives/base-edit.service.d.ts +18 -0
  3. package/esm2015/editing/edit-dialog.component.js +1 -1
  4. package/esm2015/editing/recurrence/recurrence-frequency-editor.component.js +1 -1
  5. package/esm2015/editing/recurrence/recurrence-weekday-rule-editor.component.js +1 -1
  6. package/esm2015/editing-directives/base-edit.service.js +18 -0
  7. package/esm2015/package-metadata.js +1 -1
  8. package/esm2015/scheduler.component.js +8 -1
  9. package/esm2015/toolbar/navigation.component.js +1 -1
  10. package/esm2015/toolbar/view-selector.component.js +1 -1
  11. package/esm2015/types/ongoing-events-settings.interface.js +5 -0
  12. package/esm2015/views/common/base-view.js +3 -0
  13. package/esm2015/views/common/configuration-view-base.js +9 -1
  14. package/esm2015/views/common/view-footer.component.js +1 -1
  15. package/esm2015/views/constants.js +6 -0
  16. package/esm2015/views/day-time/day-time-view-base.js +10 -1
  17. package/esm2015/views/day-time/day-time-view.component.js +32 -3
  18. package/esm2015/views/month/month-view-renderer.component.js +44 -7
  19. package/esm2015/views/month/month-view.component.js +3 -1
  20. package/esm2015/views/multi-day/day-view.component.js +2 -0
  21. package/esm2015/views/multi-day/multi-day-view.component.js +2 -0
  22. package/esm2015/views/multi-day/week-view.component.js +2 -0
  23. package/esm2015/views/multi-day/work-week-view.component.js +2 -0
  24. package/esm2015/views/timeline/timeline-month-view.component.js +2 -0
  25. package/esm2015/views/timeline/timeline-view.component.js +2 -0
  26. package/esm2015/views/timeline/timeline-week-view.component.js +2 -0
  27. package/esm2015/views/utils.js +5 -1
  28. package/fesm2015/kendo-angular-scheduler.js +257 -124
  29. package/package.json +16 -18
  30. package/scheduler.component.d.ts +6 -2
  31. package/schematics/ngAdd/index.js +1 -1
  32. package/types/ongoing-events-settings.interface.d.ts +23 -0
  33. package/types.d.ts +1 -0
  34. package/views/common/base-view.d.ts +6 -0
  35. package/views/common/configuration-view-base.d.ts +10 -2
  36. package/views/constants.d.ts +6 -0
  37. package/views/day-time/day-time-view-base.d.ts +10 -2
  38. package/views/day-time/day-time-view.component.d.ts +7 -1
  39. package/views/month/month-view-renderer.component.d.ts +11 -2
@@ -43,7 +43,7 @@ const packageMetadata = {
43
43
  name: '@progress/kendo-angular-scheduler',
44
44
  productName: 'Kendo UI for Angular',
45
45
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
46
- publishDate: 1648826436,
46
+ publishDate: 1650441034,
47
47
  version: '',
48
48
  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'
49
49
  };
@@ -2066,7 +2066,11 @@ function eventResources(event, { taskResources, hasGroups, spans, allResources =
2066
2066
  for (let valueIdx = 0; valueIdx < values.length; valueIdx++) {
2067
2067
  const dataIdx = getDataIdx(values[valueIdx], resource);
2068
2068
  if (dataIdx < 0) {
2069
- return [{ leafIdx: hasGroups ? -1 : 0, resources: [] }];
2069
+ if (hasGroups) {
2070
+ // No match for this resource, but the event might still match other resources.
2071
+ continue;
2072
+ }
2073
+ return [{ leafIdx: 0, resources: [] }];
2070
2074
  }
2071
2075
  const item = resource.data[dataIdx];
2072
2076
  // has groups - need all copies of the multiple resource
@@ -2440,7 +2444,7 @@ ToolbarNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
2440
2444
  </kendo-calendar-messages>
2441
2445
  </kendo-calendar>
2442
2446
  </ng-template>
2443
- `, isInline: true, components: [{ type: i4.CalendarComponent, selector: "kendo-calendar", inputs: ["id", "focusedDate", "min", "max", "rangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "valueChange"], exportAs: ["kendo-calendar"] }, { type: i4.CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }], directives: [{ type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "shape", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], pipes: { "async": i10.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2447
+ `, isInline: true, components: [{ type: i4.CalendarComponent, selector: "kendo-calendar", inputs: ["id", "focusedDate", "min", "max", "rangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "valueChange"], exportAs: ["kendo-calendar"] }, { type: i4.CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }], directives: [{ type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], pipes: { "async": i10.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2444
2448
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ToolbarNavigationComponent, decorators: [{
2445
2449
  type: Component,
2446
2450
  args: [{
@@ -2602,7 +2606,7 @@ ToolbarViewSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
2602
2606
  </span>
2603
2607
  </button>
2604
2608
  </span>
2605
- `, isInline: true, directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "shape", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
2609
+ `, isInline: true, directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
2606
2610
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ToolbarViewSelectorComponent, decorators: [{
2607
2611
  type: Component,
2608
2612
  args: [{
@@ -3484,7 +3488,7 @@ RecurrenceFrequencyEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersio
3484
3488
  >{{ freq.text }}</button>
3485
3489
  </kendo-buttongroup>
3486
3490
  </div>
3487
- `, isInline: true, components: [{ type: i3.ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }], directives: [{ type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "shape", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
3491
+ `, isInline: true, components: [{ type: i3.ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }], directives: [{ type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
3488
3492
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: RecurrenceFrequencyEditorComponent, decorators: [{
3489
3493
  type: Component,
3490
3494
  args: [{
@@ -3708,7 +3712,7 @@ RecurrenceWeekdayRuleEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVers
3708
3712
  >{{ capitalize(day.text) }}</button>
3709
3713
  </kendo-buttongroup>
3710
3714
  </div>
3711
- `, isInline: true, components: [{ type: i3.ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }], directives: [{ type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "shape", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
3715
+ `, isInline: true, components: [{ type: i3.ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }], directives: [{ type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
3712
3716
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: RecurrenceWeekdayRuleEditorComponent, decorators: [{
3713
3717
  type: Component,
3714
3718
  args: [{
@@ -5357,7 +5361,7 @@ EditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
5357
5361
  <button kendoButton themeColor="primary" (click)="onSave($event)" [disabled]="!formGroup.valid">{{ textFor('save') }}</button>
5358
5362
  </kendo-dialog-actions>
5359
5363
  </kendo-dialog>
5360
- `, isInline: true, components: [{ type: i1.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: SchedulerDateTimePickerComponent, selector: "kendo-scheduler-datetime-picker", inputs: ["isAllDay"], outputs: ["valueChange"] }, { type: TimeZoneEditorComponent, selector: "kendo-timezone-editor", inputs: ["width"], outputs: ["valueChange"] }, { type: RecurrenceEditorComponent, selector: "kendo-recurrence-editor", inputs: ["start", "timezone", "weekStart", "repeatEveryOptions", "endAfterOptions", "repeatOnOptions", "endOnOptions"], outputs: ["valueChange"], exportAs: ["kendoRecurrenceEditor"] }, { type: MultipleResourceEditorComponent, selector: "kendo-multiple-resource-editor" }, { type: SingleResourceEditorComponent, selector: "kendo-single-resource-editor" }, { type: i1.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i11.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i11.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i12.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i11.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i12.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { type: i11.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i12.TextAreaDirective, selector: "textarea[kendoTextArea]", inputs: ["autoSize", "value"], outputs: ["valueChange"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "shape", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
5364
+ `, isInline: true, components: [{ type: i1.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: SchedulerDateTimePickerComponent, selector: "kendo-scheduler-datetime-picker", inputs: ["isAllDay"], outputs: ["valueChange"] }, { type: TimeZoneEditorComponent, selector: "kendo-timezone-editor", inputs: ["width"], outputs: ["valueChange"] }, { type: RecurrenceEditorComponent, selector: "kendo-recurrence-editor", inputs: ["start", "timezone", "weekStart", "repeatEveryOptions", "endAfterOptions", "repeatOnOptions", "endOnOptions"], outputs: ["valueChange"], exportAs: ["kendoRecurrenceEditor"] }, { type: MultipleResourceEditorComponent, selector: "kendo-multiple-resource-editor" }, { type: SingleResourceEditorComponent, selector: "kendo-single-resource-editor" }, { type: i1.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i11.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i11.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i12.TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i11.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i12.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { type: i11.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i12.TextAreaDirective, selector: "textarea[kendoTextArea]", inputs: ["autoSize", "value"], outputs: ["valueChange"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
5361
5365
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditDialogComponent, decorators: [{
5362
5366
  type: Component,
5363
5367
  args: [{
@@ -5803,6 +5807,10 @@ class SchedulerComponent {
5803
5807
  * Specifies the Scheduler current time marker settings.
5804
5808
  */
5805
5809
  this.currentTimeMarker = true;
5810
+ /**
5811
+ * Specifies the settings for the ongoing events highlight of the Scheduler.
5812
+ */
5813
+ this.highlightOngoingEvents = true;
5806
5814
  /**
5807
5815
  * A callback that executes for each slot of the Scheduler view.
5808
5816
  * If it returns `true`, the `k-state-selected` CSS class will be added to the cell, making it visibly selected.
@@ -6374,6 +6382,7 @@ class SchedulerComponent {
6374
6382
  selectable: this.selectable,
6375
6383
  timezone: this.timezone,
6376
6384
  currentTimeMarker: this.currentTimeMarker,
6385
+ highlightOngoingEvents: this.highlightOngoingEvents,
6377
6386
  slotClass: this.slotClass,
6378
6387
  slotFill: this.slotFill,
6379
6388
  columnWidth: this.columnWidth,
@@ -6505,7 +6514,7 @@ class SchedulerComponent {
6505
6514
  }
6506
6515
  }
6507
6516
  SchedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SchedulerComponent, deps: [{ token: i0.ElementRef }, { token: ViewContextService }, { token: ViewStateService }, { token: EditService }, { token: DialogsService }, { token: i1$4.IntlService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: PDFService }, { token: i1$1.LocalizationService }, { token: DomEventsService }, { token: i0.Renderer2 }, { token: FocusService }], target: i0.ɵɵFactoryTarget.Component });
6508
- SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SchedulerComponent, selector: "kendo-scheduler", inputs: { selectedViewIndex: "selectedViewIndex", editable: "editable", selectable: "selectable", min: "min", max: "max", eventHeight: "eventHeight", columnWidth: "columnWidth", showWorkHours: "showWorkHours", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", weekStart: "weekStart", slotDuration: "slotDuration", slotDivisions: "slotDivisions", slotFill: "slotFill", scrollTime: "scrollTime", group: "group", resources: "resources", loading: "loading", timezone: "timezone", events: "events", selectedDate: "selectedDate", modelFields: "modelFields", currentTimeMarker: "currentTimeMarker", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", isSlotSelected: "isSlotSelected" }, outputs: { selectedViewIndexChange: "selectedViewIndexChange", navigate: "navigate", dateChange: "dateChange", slotClick: "slotClick", slotDblClick: "slotDblClick", create: "create", eventClick: "eventClick", eventDblClick: "eventDblClick", eventKeydown: "eventKeydown", cancel: "cancel", save: "save", remove: "remove", resizeStart: "resizeStart", resize: "resize", resizeEnd: "resizeEnd", dragStart: "dragStart", drag: "drag", dragEnd: "dragEnd", slotDragStart: "slotDragStart", slotDrag: "slotDrag", slotDragEnd: "slotDragEnd", pdfExport: "pdfExport" }, host: { properties: { "class.k-widget": "this.hostClasses", "class.k-scheduler": "this.hostClasses", "class.k-floatwrap": "this.hostClasses", "class.k-rtl": "this.rtl", "attr.dir": "this.dir" } }, providers: [
6517
+ SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SchedulerComponent, selector: "kendo-scheduler", inputs: { selectedViewIndex: "selectedViewIndex", editable: "editable", selectable: "selectable", min: "min", max: "max", eventHeight: "eventHeight", columnWidth: "columnWidth", showWorkHours: "showWorkHours", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", weekStart: "weekStart", slotDuration: "slotDuration", slotDivisions: "slotDivisions", slotFill: "slotFill", scrollTime: "scrollTime", group: "group", resources: "resources", loading: "loading", timezone: "timezone", events: "events", selectedDate: "selectedDate", modelFields: "modelFields", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", isSlotSelected: "isSlotSelected" }, outputs: { selectedViewIndexChange: "selectedViewIndexChange", navigate: "navigate", dateChange: "dateChange", slotClick: "slotClick", slotDblClick: "slotDblClick", create: "create", eventClick: "eventClick", eventDblClick: "eventDblClick", eventKeydown: "eventKeydown", cancel: "cancel", save: "save", remove: "remove", resizeStart: "resizeStart", resize: "resize", resizeEnd: "resizeEnd", dragStart: "dragStart", drag: "drag", dragEnd: "dragEnd", slotDragStart: "slotDragStart", slotDrag: "slotDrag", slotDragEnd: "slotDragEnd", pdfExport: "pdfExport" }, host: { properties: { "class.k-widget": "this.hostClasses", "class.k-scheduler": "this.hostClasses", "class.k-floatwrap": "this.hostClasses", "class.k-rtl": "this.rtl", "attr.dir": "this.dir" } }, providers: [
6509
6518
  EditService,
6510
6519
  DialogsService,
6511
6520
  DomEventsService,
@@ -7146,6 +7155,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
7146
7155
  type: Input
7147
7156
  }], currentTimeMarker: [{
7148
7157
  type: Input
7158
+ }], highlightOngoingEvents: [{
7159
+ type: Input
7149
7160
  }], slotClass: [{
7150
7161
  type: Input
7151
7162
  }], eventClass: [{
@@ -7506,6 +7517,12 @@ class ConfigurationViewBase extends SchedulerView {
7506
7517
  get viewEventStyles() {
7507
7518
  return isPresent(this.eventStyles) ? this.eventStyles : this.schedulerOptions.eventStyles;
7508
7519
  }
7520
+ /**
7521
+ * @hidden
7522
+ */
7523
+ get viewHighlightOngoingEvents() {
7524
+ return isPresent(this.highlightOngoingEvents) ? this.highlightOngoingEvents : this.schedulerOptions.highlightOngoingEvents;
7525
+ }
7509
7526
  /**
7510
7527
  * @hidden
7511
7528
  */
@@ -7523,7 +7540,7 @@ class ConfigurationViewBase extends SchedulerView {
7523
7540
  }
7524
7541
  }
7525
7542
  ConfigurationViewBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ConfigurationViewBase, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Directive });
7526
- ConfigurationViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: ConfigurationViewBase, inputs: { slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles" }, queries: [{ propertyName: "eventTemplate", first: true, predicate: EventTemplateDirective, descendants: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: GroupHeaderTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["content"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
7543
+ ConfigurationViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: ConfigurationViewBase, inputs: { slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", highlightOngoingEvents: "highlightOngoingEvents" }, queries: [{ propertyName: "eventTemplate", first: true, predicate: EventTemplateDirective, descendants: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: GroupHeaderTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["content"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
7527
7544
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ConfigurationViewBase, decorators: [{
7528
7545
  type: Directive
7529
7546
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }, { type: ViewStateService }]; }, propDecorators: { slotClass: [{
@@ -7532,6 +7549,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
7532
7549
  type: Input
7533
7550
  }], eventStyles: [{
7534
7551
  type: Input
7552
+ }], highlightOngoingEvents: [{
7553
+ type: Input
7535
7554
  }], template: [{
7536
7555
  type: ViewChild,
7537
7556
  args: ['content', { static: true }]
@@ -8932,6 +8951,12 @@ const MS_PER_HOUR = 60 * MS_PER_MINUTE;
8932
8951
  const BORDER_WIDTH = 1;
8933
8952
  /** @hidden */
8934
8953
  const DEFAULT_EVENT_HEIGHT = 25;
8954
+ /** @hidden */
8955
+ const ONGOING_EVENT_CSS_CLASS = 'k-event-ongoing';
8956
+ /** @hidden */
8957
+ const DAYS_IN_WEEK_COUNT = 7;
8958
+ /** @hidden */
8959
+ const WEEKS_COUNT = 6;
8935
8960
 
8936
8961
  //better try to measure this one
8937
8962
  const MORE_BUTTON_HEIGHT = 13;
@@ -9351,6 +9376,9 @@ class BaseView {
9351
9376
  this.pdfService = pdfService;
9352
9377
  this.localization = localization;
9353
9378
  this.cdr = cdr;
9379
+ /**
9380
+ * The non-all-day events.
9381
+ */
9354
9382
  this.items = new BehaviorSubject(null);
9355
9383
  this.horizontalResources = [];
9356
9384
  this.verticalResources = [];
@@ -10646,8 +10674,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
10646
10674
  }]
10647
10675
  }] });
10648
10676
 
10649
- const DAYS_IN_WEEK_COUNT = 7;
10650
- const WEEKS_COUNT = 6;
10651
10677
  /**
10652
10678
  * @hidden
10653
10679
  */
@@ -10656,6 +10682,7 @@ class MonthViewRendererComponent extends BaseView {
10656
10682
  super(viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, changeDetector);
10657
10683
  this.resizeHintFormat = { skeleton: 'Md' };
10658
10684
  this.weeks = [];
10685
+ this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
10659
10686
  }
10660
10687
  get monthDaySlotTemplateRef() {
10661
10688
  return this.monthDaySlotTemplate || (this.schedulerMonthDaySlotTemplate || {}).templateRef;
@@ -10666,6 +10693,14 @@ class MonthViewRendererComponent extends BaseView {
10666
10693
  }
10667
10694
  super.ngOnChanges(changes);
10668
10695
  }
10696
+ ngAfterViewInit() {
10697
+ this.updateOngoingEvents();
10698
+ super.ngAfterViewInit();
10699
+ }
10700
+ ngOnDestroy() {
10701
+ clearTimeout(this.ongoingEventsTimeout);
10702
+ super.ngOnDestroy();
10703
+ }
10669
10704
  horizontalColspan(resourceIndex) {
10670
10705
  const resources = this.horizontalResources;
10671
10706
  let result = DAYS_IN_WEEK_COUNT;
@@ -10793,6 +10828,28 @@ class MonthViewRendererComponent extends BaseView {
10793
10828
  slotByPosition(x, y) {
10794
10829
  return this.slotService.slotByPosition(x, y);
10795
10830
  }
10831
+ updateOngoingEvents() {
10832
+ const disabled = !this.highlightOngoingEvents || this.highlightOngoingEvents.enabled === false;
10833
+ if (!isDocumentAvailable() || disabled) {
10834
+ return;
10835
+ }
10836
+ clearTimeout(this.ongoingEventsTimeout);
10837
+ this.zone.runOutsideAngular(() => {
10838
+ this.ongoingEventsTimeout = setTimeout(this.updateOngoingEvents, this.highlightOngoingEvents.updateInterval || MS_PER_MINUTE);
10839
+ });
10840
+ this.toggleOngoingClass();
10841
+ }
10842
+ currentTime() {
10843
+ return new Date();
10844
+ }
10845
+ toggleOngoingClass() {
10846
+ const now = this.currentTime();
10847
+ const cssClass = isPresent(this.highlightOngoingEvents.cssClass) ? this.highlightOngoingEvents.cssClass : ONGOING_EVENT_CSS_CLASS;
10848
+ this.eventElements.forEach((event) => {
10849
+ const isOngoing = dateInRange(now, event.item.start, event.item.end);
10850
+ this.renderer[isOngoing ? 'addClass' : 'removeClass'](event.nativeElement, cssClass);
10851
+ });
10852
+ }
10796
10853
  createDaySlots({ start }) {
10797
10854
  const weeks = [];
10798
10855
  let date = start;
@@ -10808,9 +10865,9 @@ class MonthViewRendererComponent extends BaseView {
10808
10865
  }
10809
10866
  }
10810
10867
  MonthViewRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MonthViewRendererComponent, deps: [{ token: ViewContextService }, { token: ViewStateService }, { token: i1$4.IntlService }, { token: MonthSlotService }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: PDFService }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10811
- MonthViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MonthViewRendererComponent, selector: "month-view", inputs: { monthDaySlotTemplate: "monthDaySlotTemplate" }, providers: [
10868
+ MonthViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MonthViewRendererComponent, selector: "month-view", inputs: { monthDaySlotTemplate: "monthDaySlotTemplate", highlightOngoingEvents: "highlightOngoingEvents" }, providers: [
10812
10869
  MonthSlotService
10813
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
10870
+ ], viewQueries: [{ propertyName: "eventElements", predicate: MonthViewItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
10814
10871
  <div class="k-scheduler-layout k-scheduler-monthview k-scheduler-flex-layout">
10815
10872
  <div class="k-scheduler-pane">
10816
10873
  <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
@@ -11057,6 +11114,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
11057
11114
  }]
11058
11115
  }], ctorParameters: function () { return [{ type: ViewContextService }, { type: ViewStateService }, { type: i1$4.IntlService }, { type: MonthSlotService }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: PDFService }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { monthDaySlotTemplate: [{
11059
11116
  type: Input
11117
+ }], highlightOngoingEvents: [{
11118
+ type: Input
11119
+ }], eventElements: [{
11120
+ type: ViewChildren,
11121
+ args: [MonthViewItemComponent]
11060
11122
  }] } });
11061
11123
 
11062
11124
  /**
@@ -11110,10 +11172,11 @@ MonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
11110
11172
  [monthDaySlotTemplate]="monthDaySlotTemplate?.templateRef"
11111
11173
  [selectedDateFormat]="selectedDateFormat"
11112
11174
  [selectedShortDateFormat]="selectedShortDateFormat"
11175
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
11113
11176
  [weekStart]="viewWeekStart">
11114
11177
  </month-view>
11115
11178
  </ng-template>
11116
- `, isInline: true, components: [{ type: MonthViewRendererComponent, selector: "month-view", inputs: ["monthDaySlotTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11179
+ `, isInline: true, components: [{ type: MonthViewRendererComponent, selector: "month-view", inputs: ["monthDaySlotTemplate", "highlightOngoingEvents"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11117
11180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MonthViewComponent, decorators: [{
11118
11181
  type: Component,
11119
11182
  args: [{
@@ -11135,6 +11198,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
11135
11198
  [monthDaySlotTemplate]="monthDaySlotTemplate?.templateRef"
11136
11199
  [selectedDateFormat]="selectedDateFormat"
11137
11200
  [selectedShortDateFormat]="selectedShortDateFormat"
11201
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
11138
11202
  [weekStart]="viewWeekStart">
11139
11203
  </month-view>
11140
11204
  </ng-template>
@@ -11175,7 +11239,7 @@ ViewFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
11175
11239
  <span class="k-button-icon k-icon" [ngClass]="item.iconClass"></span>
11176
11240
  <span class="k-button-text">{{ item.text }}</span>
11177
11241
  </button>
11178
- `, isInline: true, directives: [{ type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "shape", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
11242
+ `, isInline: true, directives: [{ type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
11179
11243
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ViewFooterComponent, decorators: [{
11180
11244
  type: Component,
11181
11245
  args: [{
@@ -11323,6 +11387,7 @@ const WORK_WEEK_END = 'workWeekEnd';
11323
11387
  const SLOT_DURATION = 'slotDuration';
11324
11388
  const SLOT_DIVISIONS = 'slotDivisions';
11325
11389
  const CURRENT_TIME_MARKER = 'currentTimeMarker';
11390
+ const HIGHLIGHT_ONGOING_EVENTS = 'highlightOngoingEvents';
11326
11391
  /**
11327
11392
  * @hidden
11328
11393
  */
@@ -11396,6 +11461,12 @@ class DayTimeViewBase extends ConfigurationViewBase {
11396
11461
  get viewCurrentTimeMarker() {
11397
11462
  return this.optionValue(CURRENT_TIME_MARKER);
11398
11463
  }
11464
+ /**
11465
+ * @hidden
11466
+ */
11467
+ get viewHighlightOngoingEvents() {
11468
+ return this.optionValue(HIGHLIGHT_ONGOING_EVENTS);
11469
+ }
11399
11470
  /**
11400
11471
  * @hidden
11401
11472
  */
@@ -11407,7 +11478,7 @@ class DayTimeViewBase extends ConfigurationViewBase {
11407
11478
  }
11408
11479
  }
11409
11480
  DayTimeViewBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewBase, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Directive });
11410
- DayTimeViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: DayTimeViewBase, inputs: { showWorkHours: "showWorkHours", eventHeight: "eventHeight", startTime: "startTime", scrollTime: "scrollTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", slotDuration: "slotDuration", slotDivisions: "slotDivisions", currentTimeMarker: "currentTimeMarker" }, queries: [{ propertyName: "timeSlotTemplate", first: true, predicate: TimeSlotTemplateDirective, descendants: true }, { propertyName: "dateHeaderTemplate", first: true, predicate: DateHeaderTemplateDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
11481
+ DayTimeViewBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: DayTimeViewBase, inputs: { showWorkHours: "showWorkHours", eventHeight: "eventHeight", startTime: "startTime", scrollTime: "scrollTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", slotDuration: "slotDuration", slotDivisions: "slotDivisions", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents" }, queries: [{ propertyName: "timeSlotTemplate", first: true, predicate: TimeSlotTemplateDirective, descendants: true }, { propertyName: "dateHeaderTemplate", first: true, predicate: DateHeaderTemplateDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
11411
11482
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewBase, decorators: [{
11412
11483
  type: Directive
11413
11484
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }, { type: ViewStateService }]; }, propDecorators: { timeSlotTemplate: [{
@@ -11440,6 +11511,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
11440
11511
  type: Input
11441
11512
  }], currentTimeMarker: [{
11442
11513
  type: Input
11514
+ }], highlightOngoingEvents: [{
11515
+ type: Input
11443
11516
  }] } });
11444
11517
 
11445
11518
  const SLOT_FILL = 'slotFill';
@@ -12140,6 +12213,113 @@ function createTimeSlots(intlService, { showWorkHours, startTime, endTime, workD
12140
12213
  return slots;
12141
12214
  }
12142
12215
 
12216
+ /**
12217
+ * @hidden
12218
+ */
12219
+ class DayTimeViewItemComponent extends BaseViewItem {
12220
+ constructor(intlService, slotService, localization, focusService, element, renderer, localeId) {
12221
+ super(slotService, localization, focusService, element, renderer, localeId);
12222
+ this.intlService = intlService;
12223
+ this.localeId = localeId;
12224
+ }
12225
+ get eventTime() {
12226
+ return this.intlService.format('{0:t}–{1:t}', toLocalDate(this.item.startTime), toLocalDate(this.item.endTime));
12227
+ }
12228
+ }
12229
+ DayTimeViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewItemComponent, deps: [{ token: i1$4.IntlService }, { token: DayTimeSlotService }, { token: i1$1.LocalizationService }, { token: FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
12230
+ DayTimeViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DayTimeViewItemComponent, selector: "[dayTimeViewItem]", inputs: { vertical: "vertical", isAllDay: "isAllDay" }, usesInheritance: true, ngImport: i0, template: `
12231
+ <span class="k-event-actions">
12232
+ <span class="k-icon k-i-arrow-60-left" *ngIf="item.tail && !vertical"></span>
12233
+ <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
12234
+ <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
12235
+ </span>
12236
+ <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
12237
+ [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
12238
+ </ng-container>
12239
+ <div *ngIf="!eventTemplate" [attr.title]="eventTitle">
12240
+ <div class="k-event-template k-event-time" *ngIf="!isAllDay">{{ eventTime }}</div>
12241
+ <div class="k-event-template" aria-hidden="true">{{ item.event.title }}</div>
12242
+ </div>
12243
+
12244
+ <span class="k-event-actions">
12245
+ <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
12246
+ <span class="k-icon k-i-close"></span>
12247
+ </span>
12248
+ <span class="k-icon k-i-arrow-60-right" *ngIf="item.head && !vertical"></span>
12249
+ </span>
12250
+
12251
+ <span class="k-event-top-actions" *ngIf="item.tail && vertical">
12252
+ <span class="k-icon k-i-arrow-60-up"></span>
12253
+ </span>
12254
+
12255
+ <span class="k-event-bottom-actions" *ngIf="item.head && vertical">
12256
+ <span class="k-icon k-i-arrow-60-down"></span>
12257
+ </span>
12258
+
12259
+ <ng-container *ngIf="resizable && vertical">
12260
+ <span class="k-resize-handle k-resize-n" *ngIf="!item.tail"></span>
12261
+ <span class="k-resize-handle k-resize-s" *ngIf="!item.head"></span>
12262
+ </ng-container>
12263
+
12264
+ <ng-container *ngIf="resizable && !vertical">
12265
+ <span class="k-resize-handle k-resize-w"></span>
12266
+ <span class="k-resize-handle k-resize-e"></span>
12267
+ </ng-container>
12268
+ `, isInline: true, directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
12269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewItemComponent, decorators: [{
12270
+ type: Component,
12271
+ args: [{
12272
+ // eslint-disable-next-line @angular-eslint/component-selector
12273
+ selector: '[dayTimeViewItem]',
12274
+ template: `
12275
+ <span class="k-event-actions">
12276
+ <span class="k-icon k-i-arrow-60-left" *ngIf="item.tail && !vertical"></span>
12277
+ <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
12278
+ <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
12279
+ </span>
12280
+ <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
12281
+ [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
12282
+ </ng-container>
12283
+ <div *ngIf="!eventTemplate" [attr.title]="eventTitle">
12284
+ <div class="k-event-template k-event-time" *ngIf="!isAllDay">{{ eventTime }}</div>
12285
+ <div class="k-event-template" aria-hidden="true">{{ item.event.title }}</div>
12286
+ </div>
12287
+
12288
+ <span class="k-event-actions">
12289
+ <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
12290
+ <span class="k-icon k-i-close"></span>
12291
+ </span>
12292
+ <span class="k-icon k-i-arrow-60-right" *ngIf="item.head && !vertical"></span>
12293
+ </span>
12294
+
12295
+ <span class="k-event-top-actions" *ngIf="item.tail && vertical">
12296
+ <span class="k-icon k-i-arrow-60-up"></span>
12297
+ </span>
12298
+
12299
+ <span class="k-event-bottom-actions" *ngIf="item.head && vertical">
12300
+ <span class="k-icon k-i-arrow-60-down"></span>
12301
+ </span>
12302
+
12303
+ <ng-container *ngIf="resizable && vertical">
12304
+ <span class="k-resize-handle k-resize-n" *ngIf="!item.tail"></span>
12305
+ <span class="k-resize-handle k-resize-s" *ngIf="!item.head"></span>
12306
+ </ng-container>
12307
+
12308
+ <ng-container *ngIf="resizable && !vertical">
12309
+ <span class="k-resize-handle k-resize-w"></span>
12310
+ <span class="k-resize-handle k-resize-e"></span>
12311
+ </ng-container>
12312
+ `
12313
+ }]
12314
+ }], ctorParameters: function () { return [{ type: i1$4.IntlService }, { type: DayTimeSlotService }, { type: i1$1.LocalizationService }, { type: FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
12315
+ type: Inject,
12316
+ args: [LOCALE_ID]
12317
+ }] }]; }, propDecorators: { vertical: [{
12318
+ type: Input
12319
+ }], isAllDay: [{
12320
+ type: Input
12321
+ }] } });
12322
+
12143
12323
  const getStartDate = date => getDate(date);
12144
12324
  const getEndDate = (start, numberOfDays) => getDate(addDays(start, numberOfDays || 1));
12145
12325
  const getNextDate = (date, count, numberOfDays) => getDate(addDays(date, numberOfDays * count));
@@ -12170,6 +12350,8 @@ class DayTimeViewComponent extends BaseView {
12170
12350
  this.verticalTime = true;
12171
12351
  this.initialUpdate = true;
12172
12352
  this.updateCurrentTime = this.updateCurrentTime.bind(this);
12353
+ this.toggleOngoingClass = this.toggleOngoingClass.bind(this);
12354
+ this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
12173
12355
  }
12174
12356
  get classNames() {
12175
12357
  return `k-scheduler-${this.name}view`;
@@ -12198,6 +12380,7 @@ class DayTimeViewComponent extends BaseView {
12198
12380
  ngOnDestroy() {
12199
12381
  super.ngOnDestroy();
12200
12382
  clearTimeout(this.currentTimeTimeout);
12383
+ clearTimeout(this.ongoingEventsTimeout);
12201
12384
  }
12202
12385
  verticalItem(leafIndex, resourceIndex) {
12203
12386
  const data = this.verticalResources[resourceIndex].data || [];
@@ -12218,6 +12401,14 @@ class DayTimeViewComponent extends BaseView {
12218
12401
  });
12219
12402
  }
12220
12403
  }
12404
+ toggleOngoingClass() {
12405
+ const now = this.currentTime();
12406
+ const cssClass = isPresent(this.highlightOngoingEvents.cssClass) ? this.highlightOngoingEvents.cssClass : ONGOING_EVENT_CSS_CLASS;
12407
+ this.eventElements.forEach((event) => {
12408
+ const isOngoing = dateInRange(now, event.item.start, event.item.end);
12409
+ this.renderer[isOngoing ? 'addClass' : 'removeClass'](event.nativeElement, cssClass);
12410
+ });
12411
+ }
12221
12412
  scrollToTime(time = this.scrollTime) {
12222
12413
  let date;
12223
12414
  if (typeof time === 'string') {
@@ -12245,6 +12436,7 @@ class DayTimeViewComponent extends BaseView {
12245
12436
  updateView() {
12246
12437
  super.updateView();
12247
12438
  this.updateCurrentTime();
12439
+ this.updateOngoingEvents();
12248
12440
  if (this.initialUpdate) {
12249
12441
  this.scrollToTime();
12250
12442
  this.initialUpdate = false;
@@ -12283,6 +12475,17 @@ class DayTimeViewComponent extends BaseView {
12283
12475
  this.positionCurrentTime();
12284
12476
  }
12285
12477
  }
12478
+ updateOngoingEvents() {
12479
+ const disabled = !this.highlightOngoingEvents || this.highlightOngoingEvents.enabled === false;
12480
+ if (!isDocumentAvailable() || disabled) {
12481
+ return;
12482
+ }
12483
+ clearTimeout(this.ongoingEventsTimeout);
12484
+ this.zone.runOutsideAngular(() => {
12485
+ this.ongoingEventsTimeout = setTimeout(this.updateOngoingEvents, this.highlightOngoingEvents.updateInterval || MS_PER_MINUTE);
12486
+ });
12487
+ this.toggleOngoingClass();
12488
+ }
12286
12489
  positionCurrentTime() {
12287
12490
  if (this.currentTimeElements && this.currentTimeElements.length) {
12288
12491
  const date = this.currentDate.toUTCDate();
@@ -12429,7 +12632,7 @@ class DayTimeViewComponent extends BaseView {
12429
12632
  }
12430
12633
  }
12431
12634
  DayTimeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }, { token: i1$4.IntlService }, { token: DayTimeSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: PDFService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
12432
- DayTimeViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DayTimeViewComponent, selector: "kendo-day-time-view", inputs: { timeSlotTemplate: "timeSlotTemplate", dateHeaderTemplate: "dateHeaderTemplate", numberOfDays: "numberOfDays", scrollTime: "scrollTime", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", slotDuration: "slotDuration", slotDivisions: "slotDivisions", showWorkHours: "showWorkHours", getStartDate: "getStartDate", getEndDate: "getEndDate", getNextDate: "getNextDate", currentTimeMarker: "currentTimeMarker" }, viewQueries: [{ propertyName: "currentTimeElements", predicate: ["currentTimeMarker"], descendants: true }, { propertyName: "currentTimeArrows", predicate: ["currentTimeArrow"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
12635
+ DayTimeViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DayTimeViewComponent, selector: "kendo-day-time-view", inputs: { timeSlotTemplate: "timeSlotTemplate", dateHeaderTemplate: "dateHeaderTemplate", numberOfDays: "numberOfDays", scrollTime: "scrollTime", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", slotDuration: "slotDuration", slotDivisions: "slotDivisions", showWorkHours: "showWorkHours", getStartDate: "getStartDate", getEndDate: "getEndDate", getNextDate: "getNextDate", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents" }, viewQueries: [{ propertyName: "currentTimeElements", predicate: ["currentTimeMarker"], descendants: true }, { propertyName: "eventElements", predicate: DayTimeViewItemComponent, descendants: true }, { propertyName: "currentTimeArrows", predicate: ["currentTimeArrow"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
12433
12636
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewComponent, decorators: [{
12434
12637
  type: Component,
12435
12638
  args: [{ selector: 'kendo-day-time-view', template: '' }]
@@ -12467,121 +12670,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
12467
12670
  type: Input
12468
12671
  }], currentTimeMarker: [{
12469
12672
  type: Input
12673
+ }], highlightOngoingEvents: [{
12674
+ type: Input
12470
12675
  }], currentTimeElements: [{
12471
12676
  type: ViewChildren,
12472
12677
  args: ['currentTimeMarker']
12678
+ }], eventElements: [{
12679
+ type: ViewChildren,
12680
+ args: [DayTimeViewItemComponent]
12473
12681
  }], currentTimeArrows: [{
12474
12682
  type: ViewChildren,
12475
12683
  args: ['currentTimeArrow']
12476
12684
  }] } });
12477
12685
 
12478
- /**
12479
- * @hidden
12480
- */
12481
- class DayTimeViewItemComponent extends BaseViewItem {
12482
- constructor(intlService, slotService, localization, focusService, element, renderer, localeId) {
12483
- super(slotService, localization, focusService, element, renderer, localeId);
12484
- this.intlService = intlService;
12485
- this.localeId = localeId;
12486
- }
12487
- get eventTime() {
12488
- return this.intlService.format('{0:t}–{1:t}', toLocalDate(this.item.startTime), toLocalDate(this.item.endTime));
12489
- }
12490
- }
12491
- DayTimeViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewItemComponent, deps: [{ token: i1$4.IntlService }, { token: DayTimeSlotService }, { token: i1$1.LocalizationService }, { token: FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
12492
- DayTimeViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DayTimeViewItemComponent, selector: "[dayTimeViewItem]", inputs: { vertical: "vertical", isAllDay: "isAllDay" }, usesInheritance: true, ngImport: i0, template: `
12493
- <span class="k-event-actions">
12494
- <span class="k-icon k-i-arrow-60-left" *ngIf="item.tail && !vertical"></span>
12495
- <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
12496
- <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
12497
- </span>
12498
- <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
12499
- [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
12500
- </ng-container>
12501
- <div *ngIf="!eventTemplate" [attr.title]="eventTitle">
12502
- <div class="k-event-template k-event-time" *ngIf="!isAllDay">{{ eventTime }}</div>
12503
- <div class="k-event-template" aria-hidden="true">{{ item.event.title }}</div>
12504
- </div>
12505
-
12506
- <span class="k-event-actions">
12507
- <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
12508
- <span class="k-icon k-i-close"></span>
12509
- </span>
12510
- <span class="k-icon k-i-arrow-60-right" *ngIf="item.head && !vertical"></span>
12511
- </span>
12512
-
12513
- <span class="k-event-top-actions" *ngIf="item.tail && vertical">
12514
- <span class="k-icon k-i-arrow-60-up"></span>
12515
- </span>
12516
-
12517
- <span class="k-event-bottom-actions" *ngIf="item.head && vertical">
12518
- <span class="k-icon k-i-arrow-60-down"></span>
12519
- </span>
12520
-
12521
- <ng-container *ngIf="resizable && vertical">
12522
- <span class="k-resize-handle k-resize-n" *ngIf="!item.tail"></span>
12523
- <span class="k-resize-handle k-resize-s" *ngIf="!item.head"></span>
12524
- </ng-container>
12525
-
12526
- <ng-container *ngIf="resizable && !vertical">
12527
- <span class="k-resize-handle k-resize-w"></span>
12528
- <span class="k-resize-handle k-resize-e"></span>
12529
- </ng-container>
12530
- `, isInline: true, directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
12531
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewItemComponent, decorators: [{
12532
- type: Component,
12533
- args: [{
12534
- // eslint-disable-next-line @angular-eslint/component-selector
12535
- selector: '[dayTimeViewItem]',
12536
- template: `
12537
- <span class="k-event-actions">
12538
- <span class="k-icon k-i-arrow-60-left" *ngIf="item.tail && !vertical"></span>
12539
- <span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
12540
- <span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
12541
- </span>
12542
- <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
12543
- [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
12544
- </ng-container>
12545
- <div *ngIf="!eventTemplate" [attr.title]="eventTitle">
12546
- <div class="k-event-template k-event-time" *ngIf="!isAllDay">{{ eventTime }}</div>
12547
- <div class="k-event-template" aria-hidden="true">{{ item.event.title }}</div>
12548
- </div>
12549
-
12550
- <span class="k-event-actions">
12551
- <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
12552
- <span class="k-icon k-i-close"></span>
12553
- </span>
12554
- <span class="k-icon k-i-arrow-60-right" *ngIf="item.head && !vertical"></span>
12555
- </span>
12556
-
12557
- <span class="k-event-top-actions" *ngIf="item.tail && vertical">
12558
- <span class="k-icon k-i-arrow-60-up"></span>
12559
- </span>
12560
-
12561
- <span class="k-event-bottom-actions" *ngIf="item.head && vertical">
12562
- <span class="k-icon k-i-arrow-60-down"></span>
12563
- </span>
12564
-
12565
- <ng-container *ngIf="resizable && vertical">
12566
- <span class="k-resize-handle k-resize-n" *ngIf="!item.tail"></span>
12567
- <span class="k-resize-handle k-resize-s" *ngIf="!item.head"></span>
12568
- </ng-container>
12569
-
12570
- <ng-container *ngIf="resizable && !vertical">
12571
- <span class="k-resize-handle k-resize-w"></span>
12572
- <span class="k-resize-handle k-resize-e"></span>
12573
- </ng-container>
12574
- `
12575
- }]
12576
- }], ctorParameters: function () { return [{ type: i1$4.IntlService }, { type: DayTimeSlotService }, { type: i1$1.LocalizationService }, { type: FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
12577
- type: Inject,
12578
- args: [LOCALE_ID]
12579
- }] }]; }, propDecorators: { vertical: [{
12580
- type: Input
12581
- }], isAllDay: [{
12582
- type: Input
12583
- }] } });
12584
-
12585
12686
  /**
12586
12687
  * @hidden
12587
12688
  */
@@ -13491,6 +13592,7 @@ DayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
13491
13592
  [name]="name"
13492
13593
  [eventHeight]="viewEventHeight"
13493
13594
  [currentTimeMarker]="viewCurrentTimeMarker"
13595
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
13494
13596
  [showWorkHours]="shouldShowWorkHours"
13495
13597
  [scrollTime]="viewScrollTime"
13496
13598
  [startTime]="viewStartTime"
@@ -13534,6 +13636,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
13534
13636
  [name]="name"
13535
13637
  [eventHeight]="viewEventHeight"
13536
13638
  [currentTimeMarker]="viewCurrentTimeMarker"
13639
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
13537
13640
  [showWorkHours]="shouldShowWorkHours"
13538
13641
  [scrollTime]="viewScrollTime"
13539
13642
  [startTime]="viewStartTime"
@@ -13646,6 +13749,7 @@ MultiDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
13646
13749
  [numberOfDays]="numberOfDays"
13647
13750
  [eventHeight]="viewEventHeight"
13648
13751
  [currentTimeMarker]="viewCurrentTimeMarker"
13752
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
13649
13753
  [showWorkHours]="shouldShowWorkHours"
13650
13754
  [scrollTime]="viewScrollTime"
13651
13755
  [startTime]="viewStartTime"
@@ -13691,6 +13795,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
13691
13795
  [numberOfDays]="numberOfDays"
13692
13796
  [eventHeight]="viewEventHeight"
13693
13797
  [currentTimeMarker]="viewCurrentTimeMarker"
13798
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
13694
13799
  [showWorkHours]="shouldShowWorkHours"
13695
13800
  [scrollTime]="viewScrollTime"
13696
13801
  [startTime]="viewStartTime"
@@ -13782,6 +13887,7 @@ WeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
13782
13887
  [getStartDate]="getStartDate"
13783
13888
  [eventHeight]="viewEventHeight"
13784
13889
  [currentTimeMarker]="viewCurrentTimeMarker"
13890
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
13785
13891
  [showWorkHours]="shouldShowWorkHours"
13786
13892
  [scrollTime]="viewScrollTime"
13787
13893
  [startTime]="viewStartTime"
@@ -13828,6 +13934,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
13828
13934
  [getStartDate]="getStartDate"
13829
13935
  [eventHeight]="viewEventHeight"
13830
13936
  [currentTimeMarker]="viewCurrentTimeMarker"
13937
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
13831
13938
  [showWorkHours]="shouldShowWorkHours"
13832
13939
  [scrollTime]="viewScrollTime"
13833
13940
  [startTime]="viewStartTime"
@@ -13931,6 +14038,7 @@ WorkWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
13931
14038
  [getNextDate]="getNextDate"
13932
14039
  [eventHeight]="viewEventHeight"
13933
14040
  [currentTimeMarker]="viewCurrentTimeMarker"
14041
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
13934
14042
  [showWorkHours]="shouldShowWorkHours"
13935
14043
  [scrollTime]="viewScrollTime"
13936
14044
  [startTime]="viewStartTime"
@@ -13978,6 +14086,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
13978
14086
  [getNextDate]="getNextDate"
13979
14087
  [eventHeight]="viewEventHeight"
13980
14088
  [currentTimeMarker]="viewCurrentTimeMarker"
14089
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
13981
14090
  [showWorkHours]="shouldShowWorkHours"
13982
14091
  [scrollTime]="viewScrollTime"
13983
14092
  [startTime]="viewStartTime"
@@ -14642,6 +14751,7 @@ TimelineViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
14642
14751
  [eventHeight]="viewEventHeight"
14643
14752
  [columnWidth]="viewColumnWidth"
14644
14753
  [currentTimeMarker]="viewCurrentTimeMarker"
14754
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
14645
14755
  [showWorkHours]="shouldShowWorkHours"
14646
14756
  [scrollTime]="viewScrollTime"
14647
14757
  [startTime]="viewStartTime"
@@ -14681,6 +14791,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
14681
14791
  [eventHeight]="viewEventHeight"
14682
14792
  [columnWidth]="viewColumnWidth"
14683
14793
  [currentTimeMarker]="viewCurrentTimeMarker"
14794
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
14684
14795
  [showWorkHours]="shouldShowWorkHours"
14685
14796
  [scrollTime]="viewScrollTime"
14686
14797
  [startTime]="viewStartTime"
@@ -14765,6 +14876,7 @@ TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
14765
14876
  [eventHeight]="viewEventHeight"
14766
14877
  [columnWidth]="viewColumnWidth"
14767
14878
  [currentTimeMarker]="viewCurrentTimeMarker"
14879
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
14768
14880
  [showWorkHours]="shouldShowWorkHours"
14769
14881
  [scrollTime]="viewScrollTime"
14770
14882
  [startTime]="viewStartTime"
@@ -14808,6 +14920,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
14808
14920
  [eventHeight]="viewEventHeight"
14809
14921
  [columnWidth]="viewColumnWidth"
14810
14922
  [currentTimeMarker]="viewCurrentTimeMarker"
14923
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
14811
14924
  [showWorkHours]="shouldShowWorkHours"
14812
14925
  [scrollTime]="viewScrollTime"
14813
14926
  [startTime]="viewStartTime"
@@ -14904,6 +15017,7 @@ TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
14904
15017
  [eventHeight]="viewEventHeight"
14905
15018
  [columnWidth]="viewColumnWidth"
14906
15019
  [currentTimeMarker]="viewCurrentTimeMarker"
15020
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
14907
15021
  [showWorkHours]="shouldShowWorkHours"
14908
15022
  [scrollTime]="viewScrollTime"
14909
15023
  [startTime]="viewStartTime"
@@ -14947,6 +15061,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
14947
15061
  [eventHeight]="viewEventHeight"
14948
15062
  [columnWidth]="viewColumnWidth"
14949
15063
  [currentTimeMarker]="viewCurrentTimeMarker"
15064
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
14950
15065
  [showWorkHours]="shouldShowWorkHours"
14951
15066
  [scrollTime]="viewScrollTime"
14952
15067
  [startTime]="viewStartTime"
@@ -16064,6 +16179,12 @@ class BaseEditService {
16064
16179
  this.logRemoveOccurrence(event);
16065
16180
  this.saveChanges();
16066
16181
  }
16182
+ /**
16183
+ * Returns the master recurring event for a specified recurring event.
16184
+ *
16185
+ * @param event - An event from the recurrence series.
16186
+ * @returns the master recurring event for the series.
16187
+ */
16067
16188
  findRecurrenceMaster(event) {
16068
16189
  const id = this.getId(event);
16069
16190
  const recurrenceId = this.getRecurrenceId(event);
@@ -16071,9 +16192,21 @@ class BaseEditService {
16071
16192
  const index = this.itemIndex(headId, this.data);
16072
16193
  return this.data[index];
16073
16194
  }
16195
+ /**
16196
+ * Checks if the event is part of the recurrence series.
16197
+ *
16198
+ * @param event - The event that will be checked.
16199
+ * @returns `true` if the event is an occurrence, an exception, or a master event. Otherwise, returns `false`.
16200
+ */
16074
16201
  isRecurring(event) {
16075
16202
  return isRecurring(event, this.fields);
16076
16203
  }
16204
+ /**
16205
+ * Checks if the event is a recurrence exception.
16206
+ *
16207
+ * @param event - The event that will be checked.
16208
+ * @returns `true` if the event is a unique event which belongs to a recurrence series. Otherwise, returns `false`.
16209
+ */
16077
16210
  isException(event) {
16078
16211
  return isException(event, this.fields);
16079
16212
  }