@progress/kendo-angular-scheduler 4.0.0-next.202204060921 → 4.1.0-dev.202205110813

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 (43) 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 +176 -162
  4. package/esm2015/editing/recurrence/recurrence-editor.component.js +36 -40
  5. package/esm2015/editing/recurrence/recurrence-end-rule-editor.component.js +14 -16
  6. package/esm2015/editing/recurrence/recurrence-frequency-editor.component.js +27 -25
  7. package/esm2015/editing/recurrence/recurrence-interval-editor.component.js +44 -44
  8. package/esm2015/editing/recurrence/recurrence-monthly-yearly-editor.component.js +12 -14
  9. package/esm2015/editing/recurrence/recurrence-weekday-rule-editor.component.js +27 -25
  10. package/esm2015/editing-directives/base-edit.service.js +18 -0
  11. package/esm2015/package-metadata.js +1 -1
  12. package/esm2015/scheduler.component.js +8 -1
  13. package/esm2015/toolbar/navigation.component.js +1 -1
  14. package/esm2015/toolbar/view-selector.component.js +1 -1
  15. package/esm2015/types/ongoing-events-settings.interface.js +5 -0
  16. package/esm2015/views/common/base-view.js +3 -0
  17. package/esm2015/views/common/configuration-view-base.js +9 -1
  18. package/esm2015/views/common/view-footer.component.js +1 -1
  19. package/esm2015/views/constants.js +6 -0
  20. package/esm2015/views/day-time/day-time-view-base.js +10 -1
  21. package/esm2015/views/day-time/day-time-view.component.js +32 -3
  22. package/esm2015/views/month/month-view-renderer.component.js +44 -7
  23. package/esm2015/views/month/month-view.component.js +3 -1
  24. package/esm2015/views/multi-day/day-view.component.js +2 -0
  25. package/esm2015/views/multi-day/multi-day-view.component.js +2 -0
  26. package/esm2015/views/multi-day/week-view.component.js +2 -0
  27. package/esm2015/views/multi-day/work-week-view.component.js +2 -0
  28. package/esm2015/views/timeline/timeline-month-view.component.js +2 -0
  29. package/esm2015/views/timeline/timeline-view.component.js +2 -0
  30. package/esm2015/views/timeline/timeline-week-view.component.js +2 -0
  31. package/esm2015/views/utils.js +5 -1
  32. package/fesm2015/kendo-angular-scheduler.js +596 -453
  33. package/package.json +16 -18
  34. package/scheduler.component.d.ts +6 -2
  35. package/schematics/ngAdd/index.js +1 -1
  36. package/types/ongoing-events-settings.interface.d.ts +23 -0
  37. package/types.d.ts +1 -0
  38. package/views/common/base-view.d.ts +6 -0
  39. package/views/common/configuration-view-base.d.ts +10 -2
  40. package/views/constants.d.ts +6 -0
  41. package/views/day-time/day-time-view-base.d.ts +10 -2
  42. package/views/day-time/day-time-view.component.d.ts +7 -1
  43. package/views/month/month-view-renderer.component.d.ts +11 -2
@@ -9,9 +9,10 @@ import { fromEvent } from 'rxjs';
9
9
  import { toInvariantTime, dateInRange, setCoordinates, dateWithTime, toUTCTime, toUTCDateTime } from '../utils';
10
10
  import { createTimeSlots } from './utils';
11
11
  import { BaseView } from '../common/base-view';
12
- import { MIDNIGHT_INVARIANT, MS_PER_MINUTE } from '../constants';
13
- import { fromClick, fromDoubleClick, isNumber } from '../../common/util';
12
+ import { MIDNIGHT_INVARIANT, MS_PER_MINUTE, ONGOING_EVENT_CSS_CLASS } from '../constants';
13
+ import { fromClick, fromDoubleClick, isNumber, isPresent } from '../../common/util';
14
14
  import { rtlScrollPosition, hasClasses } from '../../common/dom-queries';
15
+ import { DayTimeViewItemComponent } from './day-time-view-item.component';
15
16
  import * as i0 from "@angular/core";
16
17
  import * as i1 from "../view-context.service";
17
18
  import * as i2 from "../view-state.service";
@@ -49,6 +50,8 @@ export class DayTimeViewComponent extends BaseView {
49
50
  this.verticalTime = true;
50
51
  this.initialUpdate = true;
51
52
  this.updateCurrentTime = this.updateCurrentTime.bind(this);
53
+ this.toggleOngoingClass = this.toggleOngoingClass.bind(this);
54
+ this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
52
55
  }
53
56
  get classNames() {
54
57
  return `k-scheduler-${this.name}view`;
@@ -77,6 +80,7 @@ export class DayTimeViewComponent extends BaseView {
77
80
  ngOnDestroy() {
78
81
  super.ngOnDestroy();
79
82
  clearTimeout(this.currentTimeTimeout);
83
+ clearTimeout(this.ongoingEventsTimeout);
80
84
  }
81
85
  verticalItem(leafIndex, resourceIndex) {
82
86
  const data = this.verticalResources[resourceIndex].data || [];
@@ -97,6 +101,14 @@ export class DayTimeViewComponent extends BaseView {
97
101
  });
98
102
  }
99
103
  }
104
+ toggleOngoingClass() {
105
+ const now = this.currentTime();
106
+ const cssClass = isPresent(this.highlightOngoingEvents.cssClass) ? this.highlightOngoingEvents.cssClass : ONGOING_EVENT_CSS_CLASS;
107
+ this.eventElements.forEach((event) => {
108
+ const isOngoing = dateInRange(now, event.item.start, event.item.end);
109
+ this.renderer[isOngoing ? 'addClass' : 'removeClass'](event.nativeElement, cssClass);
110
+ });
111
+ }
100
112
  scrollToTime(time = this.scrollTime) {
101
113
  let date;
102
114
  if (typeof time === 'string') {
@@ -124,6 +136,7 @@ export class DayTimeViewComponent extends BaseView {
124
136
  updateView() {
125
137
  super.updateView();
126
138
  this.updateCurrentTime();
139
+ this.updateOngoingEvents();
127
140
  if (this.initialUpdate) {
128
141
  this.scrollToTime();
129
142
  this.initialUpdate = false;
@@ -162,6 +175,17 @@ export class DayTimeViewComponent extends BaseView {
162
175
  this.positionCurrentTime();
163
176
  }
164
177
  }
178
+ updateOngoingEvents() {
179
+ const disabled = !this.highlightOngoingEvents || this.highlightOngoingEvents.enabled === false;
180
+ if (!isDocumentAvailable() || disabled) {
181
+ return;
182
+ }
183
+ clearTimeout(this.ongoingEventsTimeout);
184
+ this.zone.runOutsideAngular(() => {
185
+ this.ongoingEventsTimeout = setTimeout(this.updateOngoingEvents, this.highlightOngoingEvents.updateInterval || MS_PER_MINUTE);
186
+ });
187
+ this.toggleOngoingClass();
188
+ }
165
189
  positionCurrentTime() {
166
190
  if (this.currentTimeElements && this.currentTimeElements.length) {
167
191
  const date = this.currentDate.toUTCDate();
@@ -308,7 +332,7 @@ export class DayTimeViewComponent extends BaseView {
308
332
  }
309
333
  }
310
334
  DayTimeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ViewContextService }, { token: i2.ViewStateService }, { token: i3.IntlService }, { token: i4.DayTimeSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i5.PDFService }, { token: i6.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
311
- 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 });
335
+ 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 });
312
336
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DayTimeViewComponent, decorators: [{
313
337
  type: Component,
314
338
  args: [{ selector: 'kendo-day-time-view', template: '' }]
@@ -346,9 +370,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
346
370
  type: Input
347
371
  }], currentTimeMarker: [{
348
372
  type: Input
373
+ }], highlightOngoingEvents: [{
374
+ type: Input
349
375
  }], currentTimeElements: [{
350
376
  type: ViewChildren,
351
377
  args: ['currentTimeMarker']
378
+ }], eventElements: [{
379
+ type: ViewChildren,
380
+ args: [DayTimeViewItemComponent]
352
381
  }], currentTimeArrows: [{
353
382
  type: ViewChildren,
354
383
  args: ['currentTimeArrow']
@@ -2,14 +2,17 @@
2
2
  * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { Component, Input } from '@angular/core';
6
- import { isChanged } from '@progress/kendo-angular-common';
5
+ import { Component, Input, ViewChildren } from '@angular/core';
6
+ import { isChanged, isDocumentAvailable } from '@progress/kendo-angular-common';
7
7
  import { addDays, addMonths, firstDayInWeek, firstDayOfMonth, getDate, toLocalDate } from '@progress/kendo-date-math';
8
8
  import { closestInScope, hasClasses } from '../../common/dom-queries';
9
9
  import { MonthSlotService } from './month-slot.service';
10
10
  import { updateTaskData, createTasks } from './utils';
11
- import { toPx } from '../utils';
11
+ import { toPx, dateInRange } from '../utils';
12
12
  import { BaseView } from '../common/base-view';
13
+ import { MonthViewItemComponent } from './month-view-item.component';
14
+ import { isPresent } from '../../common/util';
15
+ import { DAYS_IN_WEEK_COUNT, WEEKS_COUNT, MS_PER_MINUTE, ONGOING_EVENT_CSS_CLASS } from '../constants';
13
16
  import * as i0 from "@angular/core";
14
17
  import * as i1 from "../view-context.service";
15
18
  import * as i2 from "../view-state.service";
@@ -25,8 +28,6 @@ import * as i11 from "./month-slot.directive";
25
28
  import * as i12 from "../../navigation/focusable.directive";
26
29
  import * as i13 from "../common/resource-iterator.pipe";
27
30
  import * as i14 from "../common/repeat.pipe";
28
- const DAYS_IN_WEEK_COUNT = 7;
29
- const WEEKS_COUNT = 6;
30
31
  /**
31
32
  * @hidden
32
33
  */
@@ -35,6 +36,7 @@ export class MonthViewRendererComponent extends BaseView {
35
36
  super(viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, changeDetector);
36
37
  this.resizeHintFormat = { skeleton: 'Md' };
37
38
  this.weeks = [];
39
+ this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
38
40
  }
39
41
  get monthDaySlotTemplateRef() {
40
42
  return this.monthDaySlotTemplate || (this.schedulerMonthDaySlotTemplate || {}).templateRef;
@@ -45,6 +47,14 @@ export class MonthViewRendererComponent extends BaseView {
45
47
  }
46
48
  super.ngOnChanges(changes);
47
49
  }
50
+ ngAfterViewInit() {
51
+ this.updateOngoingEvents();
52
+ super.ngAfterViewInit();
53
+ }
54
+ ngOnDestroy() {
55
+ clearTimeout(this.ongoingEventsTimeout);
56
+ super.ngOnDestroy();
57
+ }
48
58
  horizontalColspan(resourceIndex) {
49
59
  const resources = this.horizontalResources;
50
60
  let result = DAYS_IN_WEEK_COUNT;
@@ -172,6 +182,28 @@ export class MonthViewRendererComponent extends BaseView {
172
182
  slotByPosition(x, y) {
173
183
  return this.slotService.slotByPosition(x, y);
174
184
  }
185
+ updateOngoingEvents() {
186
+ const disabled = !this.highlightOngoingEvents || this.highlightOngoingEvents.enabled === false;
187
+ if (!isDocumentAvailable() || disabled) {
188
+ return;
189
+ }
190
+ clearTimeout(this.ongoingEventsTimeout);
191
+ this.zone.runOutsideAngular(() => {
192
+ this.ongoingEventsTimeout = setTimeout(this.updateOngoingEvents, this.highlightOngoingEvents.updateInterval || MS_PER_MINUTE);
193
+ });
194
+ this.toggleOngoingClass();
195
+ }
196
+ currentTime() {
197
+ return new Date();
198
+ }
199
+ toggleOngoingClass() {
200
+ const now = this.currentTime();
201
+ const cssClass = isPresent(this.highlightOngoingEvents.cssClass) ? this.highlightOngoingEvents.cssClass : ONGOING_EVENT_CSS_CLASS;
202
+ this.eventElements.forEach((event) => {
203
+ const isOngoing = dateInRange(now, event.item.start, event.item.end);
204
+ this.renderer[isOngoing ? 'addClass' : 'removeClass'](event.nativeElement, cssClass);
205
+ });
206
+ }
175
207
  createDaySlots({ start }) {
176
208
  const weeks = [];
177
209
  let date = start;
@@ -187,9 +219,9 @@ export class MonthViewRendererComponent extends BaseView {
187
219
  }
188
220
  }
189
221
  MonthViewRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MonthViewRendererComponent, deps: [{ token: i1.ViewContextService }, { token: i2.ViewStateService }, { token: i3.IntlService }, { token: i4.MonthSlotService }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i5.PDFService }, { token: i6.LocalizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
190
- MonthViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MonthViewRendererComponent, selector: "month-view", inputs: { monthDaySlotTemplate: "monthDaySlotTemplate" }, providers: [
222
+ MonthViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MonthViewRendererComponent, selector: "month-view", inputs: { monthDaySlotTemplate: "monthDaySlotTemplate", highlightOngoingEvents: "highlightOngoingEvents" }, providers: [
191
223
  MonthSlotService
192
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
224
+ ], viewQueries: [{ propertyName: "eventElements", predicate: MonthViewItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
193
225
  <div class="k-scheduler-layout k-scheduler-monthview k-scheduler-flex-layout">
194
226
  <div class="k-scheduler-pane">
195
227
  <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
@@ -436,4 +468,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
436
468
  }]
437
469
  }], ctorParameters: function () { return [{ type: i1.ViewContextService }, { type: i2.ViewStateService }, { type: i3.IntlService }, { type: i4.MonthSlotService }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i5.PDFService }, { type: i6.LocalizationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { monthDaySlotTemplate: [{
438
470
  type: Input
471
+ }], highlightOngoingEvents: [{
472
+ type: Input
473
+ }], eventElements: [{
474
+ type: ViewChildren,
475
+ args: [MonthViewItemComponent]
439
476
  }] } });
@@ -64,10 +64,11 @@ MonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
64
64
  [monthDaySlotTemplate]="monthDaySlotTemplate?.templateRef"
65
65
  [selectedDateFormat]="selectedDateFormat"
66
66
  [selectedShortDateFormat]="selectedShortDateFormat"
67
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
67
68
  [weekStart]="viewWeekStart">
68
69
  </month-view>
69
70
  </ng-template>
70
- `, isInline: true, components: [{ type: i4.MonthViewRendererComponent, selector: "month-view", inputs: ["monthDaySlotTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
71
+ `, isInline: true, components: [{ type: i4.MonthViewRendererComponent, selector: "month-view", inputs: ["monthDaySlotTemplate", "highlightOngoingEvents"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
71
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MonthViewComponent, decorators: [{
72
73
  type: Component,
73
74
  args: [{
@@ -89,6 +90,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
89
90
  [monthDaySlotTemplate]="monthDaySlotTemplate?.templateRef"
90
91
  [selectedDateFormat]="selectedDateFormat"
91
92
  [selectedShortDateFormat]="selectedShortDateFormat"
93
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
92
94
  [weekStart]="viewWeekStart">
93
95
  </month-view>
94
96
  </ng-template>
@@ -69,6 +69,7 @@ DayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
69
69
  [name]="name"
70
70
  [eventHeight]="viewEventHeight"
71
71
  [currentTimeMarker]="viewCurrentTimeMarker"
72
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
72
73
  [showWorkHours]="shouldShowWorkHours"
73
74
  [scrollTime]="viewScrollTime"
74
75
  [startTime]="viewStartTime"
@@ -112,6 +113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
112
113
  [name]="name"
113
114
  [eventHeight]="viewEventHeight"
114
115
  [currentTimeMarker]="viewCurrentTimeMarker"
116
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
115
117
  [showWorkHours]="shouldShowWorkHours"
116
118
  [scrollTime]="viewScrollTime"
117
119
  [startTime]="viewStartTime"
@@ -77,6 +77,7 @@ MultiDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
77
77
  [numberOfDays]="numberOfDays"
78
78
  [eventHeight]="viewEventHeight"
79
79
  [currentTimeMarker]="viewCurrentTimeMarker"
80
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
80
81
  [showWorkHours]="shouldShowWorkHours"
81
82
  [scrollTime]="viewScrollTime"
82
83
  [startTime]="viewStartTime"
@@ -122,6 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
122
123
  [numberOfDays]="numberOfDays"
123
124
  [eventHeight]="viewEventHeight"
124
125
  [currentTimeMarker]="viewCurrentTimeMarker"
126
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
125
127
  [showWorkHours]="shouldShowWorkHours"
126
128
  [scrollTime]="viewScrollTime"
127
129
  [startTime]="viewStartTime"
@@ -69,6 +69,7 @@ WeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
69
69
  [getStartDate]="getStartDate"
70
70
  [eventHeight]="viewEventHeight"
71
71
  [currentTimeMarker]="viewCurrentTimeMarker"
72
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
72
73
  [showWorkHours]="shouldShowWorkHours"
73
74
  [scrollTime]="viewScrollTime"
74
75
  [startTime]="viewStartTime"
@@ -115,6 +116,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
115
116
  [getStartDate]="getStartDate"
116
117
  [eventHeight]="viewEventHeight"
117
118
  [currentTimeMarker]="viewCurrentTimeMarker"
119
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
118
120
  [showWorkHours]="shouldShowWorkHours"
119
121
  [scrollTime]="viewScrollTime"
120
122
  [startTime]="viewStartTime"
@@ -69,6 +69,7 @@ WorkWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
69
69
  [getNextDate]="getNextDate"
70
70
  [eventHeight]="viewEventHeight"
71
71
  [currentTimeMarker]="viewCurrentTimeMarker"
72
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
72
73
  [showWorkHours]="shouldShowWorkHours"
73
74
  [scrollTime]="viewScrollTime"
74
75
  [startTime]="viewStartTime"
@@ -116,6 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
116
117
  [getNextDate]="getNextDate"
117
118
  [eventHeight]="viewEventHeight"
118
119
  [currentTimeMarker]="viewCurrentTimeMarker"
120
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
119
121
  [showWorkHours]="shouldShowWorkHours"
120
122
  [scrollTime]="viewScrollTime"
121
123
  [startTime]="viewStartTime"
@@ -78,6 +78,7 @@ TimelineMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
78
78
  [eventHeight]="viewEventHeight"
79
79
  [columnWidth]="viewColumnWidth"
80
80
  [currentTimeMarker]="viewCurrentTimeMarker"
81
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
81
82
  [showWorkHours]="shouldShowWorkHours"
82
83
  [scrollTime]="viewScrollTime"
83
84
  [startTime]="viewStartTime"
@@ -121,6 +122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
121
122
  [eventHeight]="viewEventHeight"
122
123
  [columnWidth]="viewColumnWidth"
123
124
  [currentTimeMarker]="viewCurrentTimeMarker"
125
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
124
126
  [showWorkHours]="shouldShowWorkHours"
125
127
  [scrollTime]="viewScrollTime"
126
128
  [startTime]="viewStartTime"
@@ -55,6 +55,7 @@ TimelineViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
55
55
  [eventHeight]="viewEventHeight"
56
56
  [columnWidth]="viewColumnWidth"
57
57
  [currentTimeMarker]="viewCurrentTimeMarker"
58
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
58
59
  [showWorkHours]="shouldShowWorkHours"
59
60
  [scrollTime]="viewScrollTime"
60
61
  [startTime]="viewStartTime"
@@ -94,6 +95,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
94
95
  [eventHeight]="viewEventHeight"
95
96
  [columnWidth]="viewColumnWidth"
96
97
  [currentTimeMarker]="viewCurrentTimeMarker"
98
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
97
99
  [showWorkHours]="shouldShowWorkHours"
98
100
  [scrollTime]="viewScrollTime"
99
101
  [startTime]="viewStartTime"
@@ -68,6 +68,7 @@ TimelineWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
68
68
  [eventHeight]="viewEventHeight"
69
69
  [columnWidth]="viewColumnWidth"
70
70
  [currentTimeMarker]="viewCurrentTimeMarker"
71
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
71
72
  [showWorkHours]="shouldShowWorkHours"
72
73
  [scrollTime]="viewScrollTime"
73
74
  [startTime]="viewStartTime"
@@ -111,6 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
111
112
  [eventHeight]="viewEventHeight"
112
113
  [columnWidth]="viewColumnWidth"
113
114
  [currentTimeMarker]="viewCurrentTimeMarker"
115
+ [highlightOngoingEvents]="viewHighlightOngoingEvents"
114
116
  [showWorkHours]="shouldShowWorkHours"
115
117
  [scrollTime]="viewScrollTime"
116
118
  [startTime]="viewStartTime"
@@ -145,7 +145,11 @@ export function eventResources(event, { taskResources, hasGroups, spans, allReso
145
145
  for (let valueIdx = 0; valueIdx < values.length; valueIdx++) {
146
146
  const dataIdx = getDataIdx(values[valueIdx], resource);
147
147
  if (dataIdx < 0) {
148
- return [{ leafIdx: hasGroups ? -1 : 0, resources: [] }];
148
+ if (hasGroups) {
149
+ // No match for this resource, but the event might still match other resources.
150
+ continue;
151
+ }
152
+ return [{ leafIdx: 0, resources: [] }];
149
153
  }
150
154
  const item = resource.data[dataIdx];
151
155
  // has groups - need all copies of the multiple resource