@progress/kendo-angular-scheduler 21.1.1-develop.2 → 21.2.0-develop.10

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 (38) hide show
  1. package/esm2022/editing/date-time-picker.component.mjs +59 -56
  2. package/esm2022/editing/edit-dialog.component.mjs +373 -359
  3. package/esm2022/editing/recurrence/recurrence-editor.component.mjs +262 -253
  4. package/esm2022/editing/recurrence/recurrence-frequency-editor.component.mjs +44 -41
  5. package/esm2022/editing/recurrence/recurrence-monthly-yearly-editor.component.mjs +190 -193
  6. package/esm2022/editing/recurrence/recurrence-weekday-rule-editor.component.mjs +44 -43
  7. package/esm2022/editing/resource-multiple-editor.component.mjs +49 -41
  8. package/esm2022/editing/resource-single-editor.component.mjs +35 -31
  9. package/esm2022/editing/timezone-editor.component.mjs +20 -17
  10. package/esm2022/navigation/shortcuts.directive.mjs +12 -12
  11. package/esm2022/package-metadata.mjs +2 -2
  12. package/esm2022/pdf/pdf-command.directive.mjs +27 -17
  13. package/esm2022/scheduler.component.mjs +631 -625
  14. package/esm2022/toolbar/toolbar.component.mjs +37 -37
  15. package/esm2022/toolbar/view-selector.component.mjs +42 -33
  16. package/esm2022/views/agenda/agenda-header-item.component.mjs +23 -19
  17. package/esm2022/views/agenda/agenda-header.component.mjs +28 -26
  18. package/esm2022/views/agenda/agenda-task-item.component.mjs +49 -29
  19. package/esm2022/views/agenda/agenda-view-list.component.mjs +117 -95
  20. package/esm2022/views/common/resize-hint.component.mjs +16 -9
  21. package/esm2022/views/common/view-footer.component.mjs +27 -25
  22. package/esm2022/views/day-time/day-time-view-item.component.mjs +125 -85
  23. package/esm2022/views/month/month-slot.component.mjs +39 -29
  24. package/esm2022/views/month/month-view-item.component.mjs +81 -61
  25. package/esm2022/views/month/month-view-renderer.component.mjs +349 -281
  26. package/esm2022/views/multi-day/day-view.component.mjs +72 -69
  27. package/esm2022/views/multi-day/multi-day-view-renderer.component.mjs +665 -515
  28. package/esm2022/views/multi-day/multi-day-view.component.mjs +76 -73
  29. package/esm2022/views/multi-day/week-view.component.mjs +78 -75
  30. package/esm2022/views/multi-day/work-week-view.component.mjs +80 -77
  31. package/esm2022/views/timeline/timeline-month-view.component.mjs +74 -71
  32. package/esm2022/views/timeline/timeline-multi-day-view.component.mjs +449 -359
  33. package/esm2022/views/timeline/timeline-view.component.mjs +68 -65
  34. package/esm2022/views/timeline/timeline-week-view.component.mjs +74 -71
  35. package/esm2022/views/year/year-view-internal.component.mjs +151 -131
  36. package/fesm2022/progress-kendo-angular-scheduler.mjs +4460 -3901
  37. package/package.json +15 -15
  38. package/schematics/ngAdd/index.js +3 -3
@@ -19,7 +19,7 @@ import { HintContainerComponent } from '../common/hint-container.component';
19
19
  import { FocusableDirective } from '../../navigation/focusable.directive';
20
20
  import { DayTimeViewItemComponent } from '../day-time/day-time-view-item.component';
21
21
  import { TimeSlotDirective } from '../day-time/event-slot.directive';
22
- import { NgClass, NgFor, NgIf, NgTemplateOutlet, NgStyle, AsyncPipe } from '@angular/common';
22
+ import { NgClass, NgTemplateOutlet, NgStyle, AsyncPipe } from '@angular/common';
23
23
  import * as i0 from "@angular/core";
24
24
  import * as i1 from "@progress/kendo-angular-l10n";
25
25
  import * as i2 from "../view-context.service";
@@ -140,198 +140,243 @@ export class TimelineMultiDayViewComponent extends DayTimeViewComponent {
140
140
  return this.headerWrap.nativeElement.querySelector('tr:last-child').offsetTop;
141
141
  }
142
142
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimelineMultiDayViewComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.ViewContextService }, { token: i3.ViewStateService }, { token: i4.IntlService }, { token: i5.DayTimeSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i6.PDFService }, { token: i7.ScrollbarWidthService }], target: i0.ɵɵFactoryTarget.Component });
143
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TimelineMultiDayViewComponent, isStandalone: true, selector: "timeline-multi-day-view", inputs: { name: "name", columnWidth: "columnWidth", viewName: "viewName" }, providers: [
143
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TimelineMultiDayViewComponent, isStandalone: true, selector: "timeline-multi-day-view", inputs: { name: "name", columnWidth: "columnWidth", viewName: "viewName" }, providers: [
144
144
  DayTimeSlotService
145
145
  ], viewQueries: [{ propertyName: "headerTable", first: true, predicate: ["headerTable"], descendants: true }, { propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
146
146
  <table class="k-scheduler-layout" [ngClass]="classNames">
147
- <tbody>
148
- <tr class="k-scheduler-head">
149
- <td>
150
- <div class="k-scheduler-times" #timesHeader>
151
- <table class="k-scheduler-table" aria-hidden="true">
152
- <tbody>
153
- <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
154
- <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
155
- <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
156
- <th class="k-scheduler-cell k-heading-cell"></th>
157
- </tr>
158
- </tbody>
159
- </table>
160
- </div>
161
- </td>
162
- <td>
163
- <div class="k-scheduler-header" #header >
164
- <div class="k-scheduler-header-wrap" #headerWrap>
165
- <ng-container *ngIf="showCurrentTime">
166
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
167
- #currentTimeArrow class="k-current-time k-current-time-arrow-down">
168
- </div>
169
- </ng-container>
170
- <table class="k-scheduler-table" #headerTable aria-hidden="true" [style.width.%]="contentWidthPercentage">
171
- <tbody>
172
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
173
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
174
- class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
175
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
176
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
177
- [ngTemplateOutletContext]="{ resource: item }"></ng-container>
178
- </th>
179
- </tr>
180
- <tr class="k-scheduler-date-group">
181
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
182
- <ng-container *ngFor="let daySlot of daySlots; let index = index; trackBy: itemIndex;">
183
- <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
184
- <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
185
- <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
186
- </th>
187
- </ng-container>
188
- </ng-container>
189
- </tr>
190
- <tr>
191
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
192
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
193
- <ng-container *ngFor="let timeSlot of timeSlots; let index = index; trackBy: itemIndex;">
194
- <th *ngIf="timeSlot.isMajor" [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
195
- <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ timeSlot.start | kendoDate: 't' }}</ng-container>
196
- <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
197
- </th>
198
- <th
199
- *ngIf="!timeSlot.isMajor && minorTimeHeaderTemplateRef"
200
- [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
201
- class="k-scheduler-cell k-heading-cell"
202
- >
203
- <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
204
- </ng-container>
205
- </th>
206
- </ng-container>
207
- </ng-container>
208
- </ng-container>
209
- </tr>
210
- </tbody>
211
- </table>
147
+ <tbody>
148
+ <tr class="k-scheduler-head">
149
+ <td>
150
+ <div class="k-scheduler-times" #timesHeader>
151
+ <table class="k-scheduler-table" aria-hidden="true">
152
+ <tbody>
153
+ <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
154
+ <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
155
+ @for (resource of horizontalResources; track itemIndex($index, resource)) {
156
+ <tr>
157
+ <th class="k-scheduler-cell k-heading-cell"></th>
158
+ </tr>
159
+ }
160
+ </tbody>
161
+ </table>
162
+ </div>
163
+ </td>
164
+ <td>
165
+ <div class="k-scheduler-header" #header >
166
+ <div class="k-scheduler-header-wrap" #headerWrap>
167
+ @if (showCurrentTime) {
168
+ @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
169
+ <div
170
+ #currentTimeArrow class="k-current-time k-current-time-arrow-down">
212
171
  </div>
213
- </div>
214
- </td>
215
- </tr>
216
- <tr class="k-scheduler-body">
217
- <td>
218
- <div class="k-scheduler-times" #times>
219
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
220
- <tbody>
221
- <tr *ngIf="!verticalResources.length">
222
- <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
223
- {{ allEventsMessage }}
224
- </th>
225
- </tr>
226
- <ng-container *ngIf="verticalResources.length">
227
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
228
- <tr #verticalResourceRows>
229
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
230
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
231
- <div>
232
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
233
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
234
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
235
- </div>
236
- </th>
237
- </ng-container>
238
- </tr>
239
- </ng-container>
172
+ }
173
+ }
174
+ <table class="k-scheduler-table" #headerTable aria-hidden="true" [style.width.%]="contentWidthPercentage">
175
+ <tbody>
176
+ @for (resource of horizontalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
177
+ <tr>
178
+ @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
179
+ <th
180
+ class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
181
+ @if (!groupHeaderTemplateRef) {
182
+ {{ getField(item, resource.textField) }}
183
+ }
184
+ @if (groupHeaderTemplateRef) {
185
+ <ng-container [ngTemplateOutlet]="groupHeaderTemplateRef"
186
+ [ngTemplateOutletContext]="{ resource: item }"></ng-container>
187
+ }
188
+ </th>
189
+ }
190
+ </tr>
191
+ }
192
+ <tr class="k-scheduler-date-group">
193
+ @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
194
+ @for (daySlot of daySlots; track itemIndex(index, daySlot); let index = $index) {
195
+ <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
196
+ @if (!dateHeaderTemplateRef) {
197
+ <span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
198
+ }
199
+ @if (dateHeaderTemplateRef) {
200
+ <ng-container [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
201
+ }
202
+ </th>
203
+ }
204
+ }
205
+ </tr>
206
+ <tr>
207
+ @for (resource of horizontalResources | resourceIterator; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
208
+ @for (daySlot of daySlots; track itemIndex(rangeIndex, daySlot); let rangeIndex = $index) {
209
+ @for (timeSlot of timeSlots; track itemIndex(index, timeSlot); let index = $index) {
210
+ @if (timeSlot.isMajor) {
211
+ <th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
212
+ @if (!majorTimeHeaderTemplateRef) {
213
+ {{ timeSlot.start | kendoDate: 't' }}
214
+ }
215
+ @if (majorTimeHeaderTemplateRef) {
216
+ <ng-container [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
217
+ }
218
+ </th>
219
+ }
220
+ @if (!timeSlot.isMajor && minorTimeHeaderTemplateRef) {
221
+ <th
222
+ [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
223
+ class="k-scheduler-cell k-heading-cell"
224
+ >
225
+ <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
240
226
  </ng-container>
241
- </tbody>
242
- </table>
243
- </div>
244
- </td>
245
- <td>
246
- <div
247
- class="k-scheduler-content"
248
- #content
249
- role="group"
250
- tabindex="0"
251
- (scroll)="handleScroll()"
252
- [attr.aria-owns]="matchOwned(items | async | sort)">
253
- <ng-container *ngIf="showCurrentTime">
254
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
255
- class="k-current-time" #currentTimeMarker>
256
- </div>
257
- </ng-container>
258
- <table class="k-scheduler-table" #contentTable role="presentation" [style.width.%]="contentWidthPercentage">
259
- <tbody>
260
- <tr *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
261
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
262
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
263
- <td *ngFor="let slot of timeSlots; let index = index; trackBy: itemIndex;"
264
- [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
265
- timeSlot #timeSlot="timeSlot"
266
- [date]="daySlot.start"
267
- [invariantStart]="slot.start"
268
- [invariantEnd]="slot.end"
269
- [workDayStart]="workDayStartTime"
270
- [workDayEnd]="workDayEndTime"
271
- [workWeekStart]="workWeekStart"
272
- [workWeekEnd]="workWeekEnd"
273
- selectableSlot
274
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
227
+ </th>
228
+ }
229
+ }
230
+ }
231
+ }
232
+ </tr>
233
+ </tbody>
234
+ </table>
235
+ </div>
236
+ </div>
237
+ </td>
238
+ </tr>
239
+ <tr class="k-scheduler-body">
240
+ <td>
241
+ <div class="k-scheduler-times" #times>
242
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
243
+ <tbody>
244
+ @if (!verticalResources.length) {
245
+ <tr>
246
+ <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
247
+ {{ allEventsMessage }}
248
+ </th>
249
+ </tr>
250
+ }
251
+ @if (verticalResources.length) {
252
+ @for (resourceItem of verticalResources | resourceIterator; track itemIndex(leafIndex, resourceItem); let leafIndex = $index) {
253
+ <tr #verticalResourceRows>
254
+ @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
255
+ @if (verticalItem(leafIndex, resourceIndex)) {
256
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
257
+ <div>
258
+ @if (!groupHeaderTemplateRef) {
259
+ {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
260
+ }
261
+ @if (groupHeaderTemplateRef) {
262
+ <ng-container [ngTemplateOutlet]="groupHeaderTemplateRef"
263
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
264
+ }
265
+ </div>
266
+ </th>
267
+ }
268
+ }
269
+ </tr>
270
+ }
271
+ }
272
+ </tbody>
273
+ </table>
274
+ </div>
275
+ </td>
276
+ <td>
277
+ <div
278
+ class="k-scheduler-content"
279
+ #content
280
+ role="group"
281
+ tabindex="0"
282
+ (scroll)="handleScroll()"
283
+ [attr.aria-owns]="matchOwned(items | async | sort)">
284
+ @if (showCurrentTime) {
285
+ @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
286
+ <div
287
+ class="k-current-time" #currentTimeMarker>
288
+ </div>
289
+ }
290
+ }
291
+ <table class="k-scheduler-table" #contentTable role="presentation" [style.width.%]="contentWidthPercentage">
292
+ <tbody>
293
+ @for (resourceItem of verticalResources | resourceIterator; track itemIndex(verticalIndex, resourceItem); let verticalIndex = $index) {
294
+ <tr>
295
+ @for (resource of horizontalResources | resourceIterator; track itemIndex(horizontalIndex, resource); let horizontalIndex = $index) {
296
+ @for (daySlot of daySlots; track itemIndex(rangeIndex, daySlot); let rangeIndex = $index) {
297
+ @for (slot of timeSlots; track itemIndex(index, slot); let index = $index) {
298
+ <td
299
+ [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
300
+ timeSlot #timeSlot="timeSlot"
301
+ [date]="daySlot.start"
302
+ [invariantStart]="slot.start"
303
+ [invariantEnd]="slot.end"
304
+ [workDayStart]="workDayStartTime"
305
+ [workDayEnd]="workDayEndTime"
306
+ [workWeekStart]="workWeekStart"
307
+ [workWeekEnd]="workWeekEnd"
308
+ selectableSlot
309
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
275
310
  [class.k-selected]="isSlotSelected({
276
311
  start: toPlainDateTime(daySlot.start, slot.start),
277
312
  end: toPlainDateTime(daySlot.start, slot.end),
278
313
  isAllDay: false,
279
314
  resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
280
315
  })"
281
- class="k-scheduler-cell"
282
- >
283
- <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
284
- [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
285
- </ng-container>
286
- </td>
287
- </ng-container>
288
- </ng-container>
289
- </tr>
290
- </tbody>
291
- </table>
292
- <ng-container *ngFor="let item of items | async | sort; trackBy: itemIndex;">
293
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
294
- [ngClass]="getEventClasses(item, itemResource.resources)"
295
- [ngStyle]="getEventStyles(item, itemResource)"
296
- role="button"
297
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
298
- [id]="item.elementId + '_' + itemResource.leafIdx"
299
- dayTimeViewItem
300
- [editable]="editable"
301
- [item]="item"
302
- [index]="item.index"
303
- [rangeIndex]="item.rangeIndex"
304
- [eventTemplate]="eventTemplateRef"
305
- [resources]="itemResource.resources"
306
- [resourceIndex]="itemResource.leafIdx">
307
- </div>
308
- </ng-container>
309
- <kendo-hint-container #hintContainer>
310
- <ng-template>
311
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
312
- class="k-event-drag-hint"
313
- dayTimeViewItem
314
- [ngStyle]="hint.style"
315
- [ngClass]="hint.class"
316
- [dragHint]="true"
317
- [eventTemplate]="eventTemplateRef"
318
- [item]="hint.item"
319
- [resources]="hint.resources">
320
- </div>
321
- <div *ngIf="resizeHints && resizeHints.length"
322
- kendoResizeHint
323
- [hint]="resizeHints[0]"
324
- [ngClass]="resizeHints[0].class"
325
- [format]="resizeHintFormat">
326
- </div>
327
- </ng-template>
328
- </kendo-hint-container>
316
+ class="k-scheduler-cell"
317
+ >
318
+ @if (timeSlotTemplateRef) {
319
+ <ng-container [ngTemplateOutlet]="timeSlotTemplateRef"
320
+ [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
321
+ </ng-container>
322
+ }
323
+ </td>
324
+ }
325
+ }
326
+ }
327
+ </tr>
328
+ }
329
+ </tbody>
330
+ </table>
331
+ @for (item of items | async | sort; track itemIndex($index, item)) {
332
+ @for (itemResource of item.resources; track itemIndex($index, itemResource)) {
333
+ <div
334
+ [ngClass]="getEventClasses(item, itemResource.resources)"
335
+ [ngStyle]="getEventStyles(item, itemResource)"
336
+ role="button"
337
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
338
+ [id]="item.elementId + '_' + itemResource.leafIdx"
339
+ dayTimeViewItem
340
+ [editable]="editable"
341
+ [item]="item"
342
+ [index]="item.index"
343
+ [rangeIndex]="item.rangeIndex"
344
+ [eventTemplate]="eventTemplateRef"
345
+ [resources]="itemResource.resources"
346
+ [resourceIndex]="itemResource.leafIdx">
347
+ </div>
348
+ }
349
+ }
350
+ <kendo-hint-container #hintContainer>
351
+ <ng-template>
352
+ @for (hint of dragHints; track itemIndex($index, hint)) {
353
+ <div
354
+ class="k-event-drag-hint"
355
+ dayTimeViewItem
356
+ [ngStyle]="hint.style"
357
+ [ngClass]="hint.class"
358
+ [dragHint]="true"
359
+ [eventTemplate]="eventTemplateRef"
360
+ [item]="hint.item"
361
+ [resources]="hint.resources">
362
+ </div>
363
+ }
364
+ @if (resizeHints && resizeHints.length) {
365
+ <div
366
+ kendoResizeHint
367
+ [hint]="resizeHints[0]"
368
+ [ngClass]="resizeHints[0].class"
369
+ [format]="resizeHintFormat">
329
370
  </div>
330
- </td>
331
- </tr>
332
- </tbody>
371
+ }
372
+ </ng-template>
373
+ </kendo-hint-container>
374
+ </div>
375
+ </td>
376
+ </tr>
377
+ </tbody>
333
378
  </table>
334
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TimeSlotDirective, selector: "[timeSlot]", inputs: ["invariantStart", "invariantEnd", "workDayStart", "workDayEnd", "workWeekStart", "workWeekEnd", "date"], exportAs: ["timeSlot"] }, { kind: "component", type: DayTimeViewItemComponent, selector: "[dayTimeViewItem]", inputs: ["vertical", "isAllDay", "name"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SortPipe, name: "sort" }] });
379
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TimeSlotDirective, selector: "[timeSlot]", inputs: ["invariantStart", "invariantEnd", "workDayStart", "workDayEnd", "workWeekStart", "workWeekEnd", "date"], exportAs: ["timeSlot"] }, { kind: "component", type: DayTimeViewItemComponent, selector: "[dayTimeViewItem]", inputs: ["vertical", "isAllDay", "name"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SortPipe, name: "sort" }] });
335
380
  }
336
381
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimelineMultiDayViewComponent, decorators: [{
337
382
  type: Component,
@@ -343,196 +388,241 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
343
388
  ],
344
389
  template: `
345
390
  <table class="k-scheduler-layout" [ngClass]="classNames">
346
- <tbody>
347
- <tr class="k-scheduler-head">
348
- <td>
349
- <div class="k-scheduler-times" #timesHeader>
350
- <table class="k-scheduler-table" aria-hidden="true">
351
- <tbody>
352
- <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
353
- <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
354
- <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
355
- <th class="k-scheduler-cell k-heading-cell"></th>
356
- </tr>
357
- </tbody>
358
- </table>
359
- </div>
360
- </td>
361
- <td>
362
- <div class="k-scheduler-header" #header >
363
- <div class="k-scheduler-header-wrap" #headerWrap>
364
- <ng-container *ngIf="showCurrentTime">
365
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
366
- #currentTimeArrow class="k-current-time k-current-time-arrow-down">
367
- </div>
368
- </ng-container>
369
- <table class="k-scheduler-table" #headerTable aria-hidden="true" [style.width.%]="contentWidthPercentage">
370
- <tbody>
371
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
372
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
373
- class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
374
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
375
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
376
- [ngTemplateOutletContext]="{ resource: item }"></ng-container>
377
- </th>
378
- </tr>
379
- <tr class="k-scheduler-date-group">
380
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
381
- <ng-container *ngFor="let daySlot of daySlots; let index = index; trackBy: itemIndex;">
382
- <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
383
- <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
384
- <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
385
- </th>
386
- </ng-container>
387
- </ng-container>
388
- </tr>
389
- <tr>
390
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
391
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
392
- <ng-container *ngFor="let timeSlot of timeSlots; let index = index; trackBy: itemIndex;">
393
- <th *ngIf="timeSlot.isMajor" [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
394
- <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ timeSlot.start | kendoDate: 't' }}</ng-container>
395
- <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
396
- </th>
397
- <th
398
- *ngIf="!timeSlot.isMajor && minorTimeHeaderTemplateRef"
399
- [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
400
- class="k-scheduler-cell k-heading-cell"
401
- >
402
- <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
403
- </ng-container>
404
- </th>
405
- </ng-container>
406
- </ng-container>
407
- </ng-container>
408
- </tr>
409
- </tbody>
410
- </table>
391
+ <tbody>
392
+ <tr class="k-scheduler-head">
393
+ <td>
394
+ <div class="k-scheduler-times" #timesHeader>
395
+ <table class="k-scheduler-table" aria-hidden="true">
396
+ <tbody>
397
+ <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
398
+ <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
399
+ @for (resource of horizontalResources; track itemIndex($index, resource)) {
400
+ <tr>
401
+ <th class="k-scheduler-cell k-heading-cell"></th>
402
+ </tr>
403
+ }
404
+ </tbody>
405
+ </table>
406
+ </div>
407
+ </td>
408
+ <td>
409
+ <div class="k-scheduler-header" #header >
410
+ <div class="k-scheduler-header-wrap" #headerWrap>
411
+ @if (showCurrentTime) {
412
+ @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
413
+ <div
414
+ #currentTimeArrow class="k-current-time k-current-time-arrow-down">
411
415
  </div>
412
- </div>
413
- </td>
414
- </tr>
415
- <tr class="k-scheduler-body">
416
- <td>
417
- <div class="k-scheduler-times" #times>
418
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
419
- <tbody>
420
- <tr *ngIf="!verticalResources.length">
421
- <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
422
- {{ allEventsMessage }}
423
- </th>
424
- </tr>
425
- <ng-container *ngIf="verticalResources.length">
426
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
427
- <tr #verticalResourceRows>
428
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
429
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
430
- <div>
431
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
432
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
433
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
434
- </div>
435
- </th>
436
- </ng-container>
437
- </tr>
438
- </ng-container>
416
+ }
417
+ }
418
+ <table class="k-scheduler-table" #headerTable aria-hidden="true" [style.width.%]="contentWidthPercentage">
419
+ <tbody>
420
+ @for (resource of horizontalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
421
+ <tr>
422
+ @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
423
+ <th
424
+ class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
425
+ @if (!groupHeaderTemplateRef) {
426
+ {{ getField(item, resource.textField) }}
427
+ }
428
+ @if (groupHeaderTemplateRef) {
429
+ <ng-container [ngTemplateOutlet]="groupHeaderTemplateRef"
430
+ [ngTemplateOutletContext]="{ resource: item }"></ng-container>
431
+ }
432
+ </th>
433
+ }
434
+ </tr>
435
+ }
436
+ <tr class="k-scheduler-date-group">
437
+ @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
438
+ @for (daySlot of daySlots; track itemIndex(index, daySlot); let index = $index) {
439
+ <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
440
+ @if (!dateHeaderTemplateRef) {
441
+ <span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
442
+ }
443
+ @if (dateHeaderTemplateRef) {
444
+ <ng-container [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
445
+ }
446
+ </th>
447
+ }
448
+ }
449
+ </tr>
450
+ <tr>
451
+ @for (resource of horizontalResources | resourceIterator; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
452
+ @for (daySlot of daySlots; track itemIndex(rangeIndex, daySlot); let rangeIndex = $index) {
453
+ @for (timeSlot of timeSlots; track itemIndex(index, timeSlot); let index = $index) {
454
+ @if (timeSlot.isMajor) {
455
+ <th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
456
+ @if (!majorTimeHeaderTemplateRef) {
457
+ {{ timeSlot.start | kendoDate: 't' }}
458
+ }
459
+ @if (majorTimeHeaderTemplateRef) {
460
+ <ng-container [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
461
+ }
462
+ </th>
463
+ }
464
+ @if (!timeSlot.isMajor && minorTimeHeaderTemplateRef) {
465
+ <th
466
+ [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
467
+ class="k-scheduler-cell k-heading-cell"
468
+ >
469
+ <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
439
470
  </ng-container>
440
- </tbody>
441
- </table>
442
- </div>
443
- </td>
444
- <td>
445
- <div
446
- class="k-scheduler-content"
447
- #content
448
- role="group"
449
- tabindex="0"
450
- (scroll)="handleScroll()"
451
- [attr.aria-owns]="matchOwned(items | async | sort)">
452
- <ng-container *ngIf="showCurrentTime">
453
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
454
- class="k-current-time" #currentTimeMarker>
455
- </div>
456
- </ng-container>
457
- <table class="k-scheduler-table" #contentTable role="presentation" [style.width.%]="contentWidthPercentage">
458
- <tbody>
459
- <tr *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
460
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
461
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
462
- <td *ngFor="let slot of timeSlots; let index = index; trackBy: itemIndex;"
463
- [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
464
- timeSlot #timeSlot="timeSlot"
465
- [date]="daySlot.start"
466
- [invariantStart]="slot.start"
467
- [invariantEnd]="slot.end"
468
- [workDayStart]="workDayStartTime"
469
- [workDayEnd]="workDayEndTime"
470
- [workWeekStart]="workWeekStart"
471
- [workWeekEnd]="workWeekEnd"
472
- selectableSlot
473
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
471
+ </th>
472
+ }
473
+ }
474
+ }
475
+ }
476
+ </tr>
477
+ </tbody>
478
+ </table>
479
+ </div>
480
+ </div>
481
+ </td>
482
+ </tr>
483
+ <tr class="k-scheduler-body">
484
+ <td>
485
+ <div class="k-scheduler-times" #times>
486
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
487
+ <tbody>
488
+ @if (!verticalResources.length) {
489
+ <tr>
490
+ <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
491
+ {{ allEventsMessage }}
492
+ </th>
493
+ </tr>
494
+ }
495
+ @if (verticalResources.length) {
496
+ @for (resourceItem of verticalResources | resourceIterator; track itemIndex(leafIndex, resourceItem); let leafIndex = $index) {
497
+ <tr #verticalResourceRows>
498
+ @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
499
+ @if (verticalItem(leafIndex, resourceIndex)) {
500
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
501
+ <div>
502
+ @if (!groupHeaderTemplateRef) {
503
+ {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
504
+ }
505
+ @if (groupHeaderTemplateRef) {
506
+ <ng-container [ngTemplateOutlet]="groupHeaderTemplateRef"
507
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
508
+ }
509
+ </div>
510
+ </th>
511
+ }
512
+ }
513
+ </tr>
514
+ }
515
+ }
516
+ </tbody>
517
+ </table>
518
+ </div>
519
+ </td>
520
+ <td>
521
+ <div
522
+ class="k-scheduler-content"
523
+ #content
524
+ role="group"
525
+ tabindex="0"
526
+ (scroll)="handleScroll()"
527
+ [attr.aria-owns]="matchOwned(items | async | sort)">
528
+ @if (showCurrentTime) {
529
+ @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
530
+ <div
531
+ class="k-current-time" #currentTimeMarker>
532
+ </div>
533
+ }
534
+ }
535
+ <table class="k-scheduler-table" #contentTable role="presentation" [style.width.%]="contentWidthPercentage">
536
+ <tbody>
537
+ @for (resourceItem of verticalResources | resourceIterator; track itemIndex(verticalIndex, resourceItem); let verticalIndex = $index) {
538
+ <tr>
539
+ @for (resource of horizontalResources | resourceIterator; track itemIndex(horizontalIndex, resource); let horizontalIndex = $index) {
540
+ @for (daySlot of daySlots; track itemIndex(rangeIndex, daySlot); let rangeIndex = $index) {
541
+ @for (slot of timeSlots; track itemIndex(index, slot); let index = $index) {
542
+ <td
543
+ [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
544
+ timeSlot #timeSlot="timeSlot"
545
+ [date]="daySlot.start"
546
+ [invariantStart]="slot.start"
547
+ [invariantEnd]="slot.end"
548
+ [workDayStart]="workDayStartTime"
549
+ [workDayEnd]="workDayEndTime"
550
+ [workWeekStart]="workWeekStart"
551
+ [workWeekEnd]="workWeekEnd"
552
+ selectableSlot
553
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
474
554
  [class.k-selected]="isSlotSelected({
475
555
  start: toPlainDateTime(daySlot.start, slot.start),
476
556
  end: toPlainDateTime(daySlot.start, slot.end),
477
557
  isAllDay: false,
478
558
  resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
479
559
  })"
480
- class="k-scheduler-cell"
481
- >
482
- <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
483
- [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
484
- </ng-container>
485
- </td>
486
- </ng-container>
487
- </ng-container>
488
- </tr>
489
- </tbody>
490
- </table>
491
- <ng-container *ngFor="let item of items | async | sort; trackBy: itemIndex;">
492
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
493
- [ngClass]="getEventClasses(item, itemResource.resources)"
494
- [ngStyle]="getEventStyles(item, itemResource)"
495
- role="button"
496
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
497
- [id]="item.elementId + '_' + itemResource.leafIdx"
498
- dayTimeViewItem
499
- [editable]="editable"
500
- [item]="item"
501
- [index]="item.index"
502
- [rangeIndex]="item.rangeIndex"
503
- [eventTemplate]="eventTemplateRef"
504
- [resources]="itemResource.resources"
505
- [resourceIndex]="itemResource.leafIdx">
506
- </div>
507
- </ng-container>
508
- <kendo-hint-container #hintContainer>
509
- <ng-template>
510
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
511
- class="k-event-drag-hint"
512
- dayTimeViewItem
513
- [ngStyle]="hint.style"
514
- [ngClass]="hint.class"
515
- [dragHint]="true"
516
- [eventTemplate]="eventTemplateRef"
517
- [item]="hint.item"
518
- [resources]="hint.resources">
519
- </div>
520
- <div *ngIf="resizeHints && resizeHints.length"
521
- kendoResizeHint
522
- [hint]="resizeHints[0]"
523
- [ngClass]="resizeHints[0].class"
524
- [format]="resizeHintFormat">
525
- </div>
526
- </ng-template>
527
- </kendo-hint-container>
560
+ class="k-scheduler-cell"
561
+ >
562
+ @if (timeSlotTemplateRef) {
563
+ <ng-container [ngTemplateOutlet]="timeSlotTemplateRef"
564
+ [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
565
+ </ng-container>
566
+ }
567
+ </td>
568
+ }
569
+ }
570
+ }
571
+ </tr>
572
+ }
573
+ </tbody>
574
+ </table>
575
+ @for (item of items | async | sort; track itemIndex($index, item)) {
576
+ @for (itemResource of item.resources; track itemIndex($index, itemResource)) {
577
+ <div
578
+ [ngClass]="getEventClasses(item, itemResource.resources)"
579
+ [ngStyle]="getEventStyles(item, itemResource)"
580
+ role="button"
581
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
582
+ [id]="item.elementId + '_' + itemResource.leafIdx"
583
+ dayTimeViewItem
584
+ [editable]="editable"
585
+ [item]="item"
586
+ [index]="item.index"
587
+ [rangeIndex]="item.rangeIndex"
588
+ [eventTemplate]="eventTemplateRef"
589
+ [resources]="itemResource.resources"
590
+ [resourceIndex]="itemResource.leafIdx">
591
+ </div>
592
+ }
593
+ }
594
+ <kendo-hint-container #hintContainer>
595
+ <ng-template>
596
+ @for (hint of dragHints; track itemIndex($index, hint)) {
597
+ <div
598
+ class="k-event-drag-hint"
599
+ dayTimeViewItem
600
+ [ngStyle]="hint.style"
601
+ [ngClass]="hint.class"
602
+ [dragHint]="true"
603
+ [eventTemplate]="eventTemplateRef"
604
+ [item]="hint.item"
605
+ [resources]="hint.resources">
606
+ </div>
607
+ }
608
+ @if (resizeHints && resizeHints.length) {
609
+ <div
610
+ kendoResizeHint
611
+ [hint]="resizeHints[0]"
612
+ [ngClass]="resizeHints[0].class"
613
+ [format]="resizeHintFormat">
528
614
  </div>
529
- </td>
530
- </tr>
531
- </tbody>
615
+ }
616
+ </ng-template>
617
+ </kendo-hint-container>
618
+ </div>
619
+ </td>
620
+ </tr>
621
+ </tbody>
532
622
  </table>
533
- `,
623
+ `,
534
624
  standalone: true,
535
- imports: [NgClass, NgFor, NgIf, NgTemplateOutlet, NgStyle, TimeSlotDirective, DayTimeViewItemComponent, FocusableDirective, HintContainerComponent, ResizeHintComponent, ResourceIteratorPipe, DatePipe, AsyncPipe, SortPipe]
625
+ imports: [NgClass, NgTemplateOutlet, NgStyle, TimeSlotDirective, DayTimeViewItemComponent, FocusableDirective, HintContainerComponent, ResizeHintComponent, ResourceIteratorPipe, DatePipe, AsyncPipe, SortPipe]
536
626
  }]
537
627
  }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i2.ViewContextService }, { type: i3.ViewStateService }, { type: i4.IntlService }, { type: i5.DayTimeSlotService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i6.PDFService }, { type: i7.ScrollbarWidthService }], propDecorators: { name: [{
538
628
  type: Input