@progress/kendo-angular-scheduler 16.0.0-develop.8 → 16.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 (120) hide show
  1. package/esm2020/data-binding.directive.mjs +3 -3
  2. package/esm2020/editing/date-time-picker.component.mjs +8 -4
  3. package/esm2020/editing/dialogs.service.mjs +3 -3
  4. package/esm2020/editing/edit-dialog-template.directive.mjs +3 -3
  5. package/esm2020/editing/edit-dialog.component.mjs +3 -3
  6. package/esm2020/editing/edit.service.mjs +3 -3
  7. package/esm2020/editing/local-data-changes.service.mjs +3 -3
  8. package/esm2020/editing/recurrence/end-rule-radio-button.directive.mjs +3 -3
  9. package/esm2020/editing/recurrence/localization/custom-messages.component.mjs +3 -3
  10. package/esm2020/editing/recurrence/localization/localized-messages.directive.mjs +3 -3
  11. package/esm2020/editing/recurrence/localization/messages.mjs +3 -3
  12. package/esm2020/editing/recurrence/localization/recurrence-localization.service.mjs +3 -3
  13. package/esm2020/editing/recurrence/recurrence-editor.component.mjs +3 -3
  14. package/esm2020/editing/recurrence/recurrence-end-rule-editor.component.mjs +6 -4
  15. package/esm2020/editing/recurrence/recurrence-frequency-editor.component.mjs +3 -3
  16. package/esm2020/editing/recurrence/recurrence-interval-editor.component.mjs +3 -3
  17. package/esm2020/editing/recurrence/recurrence-monthly-yearly-editor.component.mjs +3 -3
  18. package/esm2020/editing/recurrence/recurrence-weekday-rule-editor.component.mjs +3 -3
  19. package/esm2020/editing/recurrence/recurrence.service.mjs +3 -3
  20. package/esm2020/editing/recurrence/repeat-on-radio-button.directive.mjs +3 -3
  21. package/esm2020/editing/resource-editor-base.mjs +3 -3
  22. package/esm2020/editing/resource-multiple-editor.component.mjs +3 -3
  23. package/esm2020/editing/resource-single-editor.component.mjs +3 -3
  24. package/esm2020/editing/timezone-editor.component.mjs +3 -3
  25. package/esm2020/editing-directives/editing-directive-base.mjs +5 -4
  26. package/esm2020/editing-directives/reactive-editing.directive.mjs +7 -7
  27. package/esm2020/loading.component.mjs +3 -3
  28. package/esm2020/localization/custom-messages.component.mjs +3 -3
  29. package/esm2020/localization/localized-messages.directive.mjs +3 -3
  30. package/esm2020/localization/messages.mjs +3 -3
  31. package/esm2020/localization/scheduler-localization.service.mjs +3 -3
  32. package/esm2020/navigation/focus.service.mjs +3 -3
  33. package/esm2020/navigation/focusable.directive.mjs +3 -3
  34. package/esm2020/navigation/shortcuts.directive.mjs +3 -3
  35. package/esm2020/package-metadata.mjs +2 -2
  36. package/esm2020/pdf/pdf-command.directive.mjs +3 -3
  37. package/esm2020/pdf/pdf.component.mjs +4 -4
  38. package/esm2020/pdf/pdf.module.mjs +4 -4
  39. package/esm2020/pdf/pdf.service.mjs +3 -3
  40. package/esm2020/scheduler.component.mjs +3 -12
  41. package/esm2020/scheduler.module.mjs +4 -4
  42. package/esm2020/shared.module.mjs +4 -4
  43. package/esm2020/toolbar/navigation.component.mjs +4 -4
  44. package/esm2020/toolbar/toolbar-template.directive.mjs +3 -3
  45. package/esm2020/toolbar/toolbar.component.mjs +3 -3
  46. package/esm2020/toolbar/toolbar.module.mjs +4 -4
  47. package/esm2020/toolbar/toolbar.service.mjs +3 -3
  48. package/esm2020/toolbar/view-selector.component.mjs +3 -3
  49. package/esm2020/views/agenda/agenda-header-item.component.mjs +15 -3
  50. package/esm2020/views/agenda/agenda-header.component.mjs +13 -16
  51. package/esm2020/views/agenda/agenda-task-item.component.mjs +7 -3
  52. package/esm2020/views/agenda/agenda-view-internal.component.mjs +9 -9
  53. package/esm2020/views/agenda/agenda-view-list.component.mjs +10 -8
  54. package/esm2020/views/agenda/agenda-view.component.mjs +3 -3
  55. package/esm2020/views/agenda/agenda-view.module.mjs +4 -4
  56. package/esm2020/views/common/base-view.mjs +3 -3
  57. package/esm2020/views/common/configuration-view-base.mjs +3 -3
  58. package/esm2020/views/common/dom-events.service.mjs +3 -3
  59. package/esm2020/views/common/hint-container.component.mjs +3 -3
  60. package/esm2020/views/common/repeat.pipe.mjs +3 -3
  61. package/esm2020/views/common/resize-hint.component.mjs +3 -3
  62. package/esm2020/views/common/resource-iterator.pipe.mjs +3 -3
  63. package/esm2020/views/common/slot-selectable.directive.mjs +3 -3
  64. package/esm2020/views/common/view-footer.component.mjs +3 -3
  65. package/esm2020/views/common/views-shared.module.mjs +4 -4
  66. package/esm2020/views/common/work-hours-footer.directive.mjs +3 -3
  67. package/esm2020/views/day-time/day-time-view-base.mjs +3 -3
  68. package/esm2020/views/day-time/day-time-view-item.component.mjs +3 -3
  69. package/esm2020/views/day-time/day-time-view.component.mjs +3 -3
  70. package/esm2020/views/day-time/day-time.module.mjs +4 -4
  71. package/esm2020/views/day-time/event-slot.directive.mjs +6 -6
  72. package/esm2020/views/month/month-slot.component.mjs +3 -3
  73. package/esm2020/views/month/month-view-item.component.mjs +3 -3
  74. package/esm2020/views/month/month-view-renderer.component.mjs +297 -247
  75. package/esm2020/views/month/month-view.component.mjs +3 -3
  76. package/esm2020/views/month/month-view.module.mjs +4 -4
  77. package/esm2020/views/month/multi-week-view.component.mjs +3 -3
  78. package/esm2020/views/multi-day/day-view.component.mjs +3 -3
  79. package/esm2020/views/multi-day/multi-day-view-base.mjs +3 -3
  80. package/esm2020/views/multi-day/multi-day-view-renderer.component.mjs +505 -461
  81. package/esm2020/views/multi-day/multi-day-view.component.mjs +3 -3
  82. package/esm2020/views/multi-day/multi-day-view.module.mjs +4 -4
  83. package/esm2020/views/multi-day/week-view.component.mjs +3 -3
  84. package/esm2020/views/multi-day/work-week-view.component.mjs +3 -3
  85. package/esm2020/views/scheduler-view.directive.mjs +3 -3
  86. package/esm2020/views/templates/agenda-date-template.directive.mjs +3 -3
  87. package/esm2020/views/templates/agenda-time-template.directive.mjs +3 -3
  88. package/esm2020/views/templates/all-day-event-template.directive.mjs +3 -3
  89. package/esm2020/views/templates/all-day-slot-template.directive.mjs +3 -3
  90. package/esm2020/views/templates/date-header-template.directive.mjs +3 -3
  91. package/esm2020/views/templates/event-template.directive.mjs +3 -3
  92. package/esm2020/views/templates/group-header-template.directive.mjs +3 -3
  93. package/esm2020/views/templates/major-time-header-template.directive.mjs +3 -3
  94. package/esm2020/views/templates/minor-time-header-template.directive.mjs +3 -3
  95. package/esm2020/views/templates/month-day-slot-template.directive.mjs +3 -3
  96. package/esm2020/views/templates/multi-week-day-slot-template.directive.mjs +3 -3
  97. package/esm2020/views/templates/time-slot-template.directive.mjs +3 -3
  98. package/esm2020/views/timeline/timeline-base.mjs +3 -3
  99. package/esm2020/views/timeline/timeline-month-view.component.mjs +3 -3
  100. package/esm2020/views/timeline/timeline-multi-day-view.component.mjs +381 -330
  101. package/esm2020/views/timeline/timeline-view.component.mjs +3 -3
  102. package/esm2020/views/timeline/timeline-view.module.mjs +4 -4
  103. package/esm2020/views/timeline/timeline-week-view.component.mjs +3 -3
  104. package/esm2020/views/timeline/utils.mjs +3 -3
  105. package/esm2020/views/view-context.service.mjs +3 -3
  106. package/esm2020/views/view-items/base-slot.directive.mjs +3 -3
  107. package/esm2020/views/view-items/base-view-item.mjs +3 -3
  108. package/esm2020/views/view-state.service.mjs +3 -3
  109. package/esm2020/views/year/year-view-internal.component.mjs +4 -4
  110. package/esm2020/views/year/year-view.component.mjs +3 -3
  111. package/esm2020/views/year/year-view.module.mjs +4 -4
  112. package/events/edit-event-base.d.ts +4 -0
  113. package/fesm2015/progress-kendo-angular-scheduler.mjs +1572 -1413
  114. package/fesm2020/progress-kendo-angular-scheduler.mjs +1572 -1413
  115. package/package.json +13 -13
  116. package/schematics/ngAdd/index.js +3 -3
  117. package/views/agenda/agenda-header-item.component.d.ts +3 -1
  118. package/views/agenda/agenda-task-item.component.d.ts +1 -0
  119. package/views/month/month-view-renderer.component.d.ts +2 -0
  120. package/views/timeline/timeline-multi-day-view.component.d.ts +4 -0
@@ -5,7 +5,7 @@
5
5
  import { Component, Input, NgZone, ElementRef, Renderer2, TemplateRef, ChangeDetectorRef, QueryList, ViewChildren } from '@angular/core';
6
6
  import { IntlService } from '@progress/kendo-angular-intl';
7
7
  import { isChanged, isDocumentAvailable, ScrollbarWidthService } from '@progress/kendo-angular-common';
8
- import { addDays, getDate, toLocalDate } from '@progress/kendo-date-math';
8
+ import { addDays, firstDayOfMonth, getDate, lastDayOfMonth, toLocalDate } from '@progress/kendo-date-math';
9
9
  import { ViewContextService } from '../view-context.service';
10
10
  import { ViewStateService } from '../view-state.service';
11
11
  import { closestInScope, hasClasses } from '../../common/dom-queries';
@@ -106,6 +106,14 @@ export class MonthViewRendererComponent extends BaseView {
106
106
  addDay(dayStart) {
107
107
  return addDays(dayStart, 1);
108
108
  }
109
+ isDayInPreviousMonth(day) {
110
+ const beginningOfMonth = new Date(firstDayOfMonth(this.selectedDate).setHours(0, 0, 0, 0));
111
+ return day < beginningOfMonth;
112
+ }
113
+ isDayInNextMonth(day) {
114
+ const endOfMonth = new Date(lastDayOfMonth(this.selectedDate).setHours(23, 59, 59, 59));
115
+ return day > endOfMonth;
116
+ }
109
117
  optionsChange(changes) {
110
118
  this.schedulerMonthDaySlotTemplate = changes[`${this.type}DaySlotTemplate`];
111
119
  super.optionsChange(changes);
@@ -129,7 +137,7 @@ export class MonthViewRendererComponent extends BaseView {
129
137
  }
130
138
  this.slotService.layout(this.eventHeight);
131
139
  if (this.contentHeight === 'auto') {
132
- content.style.overflow = '';
140
+ content.style.overflow = 'auto';
133
141
  }
134
142
  this.syncTables();
135
143
  }
@@ -223,135 +231,156 @@ export class MonthViewRendererComponent extends BaseView {
223
231
  return weeks;
224
232
  }
225
233
  }
226
- MonthViewRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", 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 }, { token: i7.ScrollbarWidthService }], target: i0.ɵɵFactoryTarget.Component });
227
- MonthViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MonthViewRendererComponent, selector: "month-view", inputs: { monthDaySlotTemplate: "monthDaySlotTemplate", highlightOngoingEvents: "highlightOngoingEvents", type: "type", numberOfWeeks: "numberOfWeeks", newRange: "newRange", dateRangeFn: "dateRangeFn" }, providers: [
234
+ MonthViewRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", 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 }, { token: i7.ScrollbarWidthService }], target: i0.ɵɵFactoryTarget.Component });
235
+ MonthViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MonthViewRendererComponent, selector: "month-view", inputs: { monthDaySlotTemplate: "monthDaySlotTemplate", highlightOngoingEvents: "highlightOngoingEvents", type: "type", numberOfWeeks: "numberOfWeeks", newRange: "newRange", dateRangeFn: "dateRangeFn" }, providers: [
228
236
  MonthSlotService
229
237
  ], viewQueries: [{ propertyName: "eventElements", predicate: MonthViewItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
230
- <div class="k-scheduler-layout k-scheduler-monthview k-scheduler-flex-layout">
231
- <div class="k-scheduler-pane">
232
- <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
233
- <table class="k-scheduler-table" aria-hidden="true">
234
- <tr>
235
- <th></th>
236
- </tr>
237
- </table>
238
- </div>
239
- <div class="k-scheduler-header k-state-default" #header>
240
- <div class="k-scheduler-header-wrap" #headerWrap>
241
- <!-- Days of the weeks titles -->
242
- <table class="k-scheduler-table" aria-hidden="true">
243
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
244
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
245
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
246
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
247
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
248
- </th>
249
- </tr>
250
- <tr>
251
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
252
- <th *ngFor="let day of weeks[0]; trackBy: itemIndex">
253
- {{ day | kendoDate: 'EEEE' }}
254
- </th>
255
- </ng-container>
256
- </tr>
257
- </table>
258
- </div>
259
- </div>
260
- </div>
261
- <div class="k-scheduler-pane">
262
- <div class="k-scheduler-times k-scheduler-resources" #times *ngIf="verticalResources.length">
263
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
264
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
265
- <tr>
266
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
267
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
268
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
269
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
270
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
271
- </th>
272
- </ng-container>
273
- <th class="k-slot-cell k-empty-slot">
274
- </th>
275
- </tr>
276
- <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
277
- <th class="k-slot-cell k-empty-slot"></th>
278
- </tr>
279
- </ng-container>
280
- </table>
281
- </div>
282
- <div
283
- class="k-scheduler-content"
284
- tabindex="0"
285
- #content
286
- role="group"
287
- [attr.aria-owns]="matchOwned(items | async)">
288
- <!-- Main content -->
289
- <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
290
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
291
- <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
292
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
293
- <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
294
- [monthSlot]="day"
295
- [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
296
- [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
297
- [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
298
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
299
- [title]="cellTitle(day)"
300
- [class.k-selected]="isSlotSelected({
301
- start: toPlainDate(day),
302
- end: addDay(toPlainDate(day)),
303
- isAllDay: true,
304
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
305
- })"
306
- >
307
- </td>
308
- </ng-container>
309
- </tr>
310
- </ng-container>
311
- </table>
312
- <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
313
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
314
- [ngClass]="getEventClasses(item, itemResource.resources)"
315
- [ngStyle]="getEventStyles(item, itemResource)"
316
- role="button"
317
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
318
- [id]="item.elementId + '_' + itemResource.leafIdx"
319
- monthViewItem
320
- [editable]="editable"
321
- [item]="item"
322
- [index]="item.index"
323
- [rangeIndex]="item.rangeIndex"
324
- [eventTemplate]="eventTemplateRef"
325
- [resources]="itemResource.resources"
326
- [resourceIndex]="itemResource.leafIdx">
327
- </div>
328
- </ng-container>
329
- <kendo-hint-container #hintContainer>
330
- <ng-template>
331
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
332
- class="k-event-drag-hint"
333
- monthViewItem
334
- [ngStyle]="hint.style"
335
- [ngClass]="hint.class"
336
- [dragHint]="true"
337
- [eventTemplate]="eventTemplateRef"
338
- [item]="hint.item"
339
- [resources]="hint.resources">
238
+ <table class="k-scheduler-layout k-scheduler-monthview">
239
+ <tbody>
240
+ <tr class="k-scheduler-head">
241
+ <td *ngIf="verticalResources.length">
242
+ <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
243
+ <table class="k-scheduler-table" aria-hidden="true">
244
+ <tbody>
245
+ <tr>
246
+ <th class="k-scheduler-cell k-heading-cell"></th>
247
+ </tr>
248
+ </tbody>
249
+ </table>
250
+ </div>
251
+ </td>
252
+ <td>
253
+ <div class="k-scheduler-header" #header>
254
+ <div class="k-scheduler-header-wrap" #headerWrap>
255
+ <!-- Days of the weeks titles -->
256
+ <table class="k-scheduler-table" aria-hidden="true">
257
+ <tbody>
258
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
259
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
260
+ class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
261
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
262
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
263
+ </th>
264
+ </tr>
265
+ <tr>
266
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
267
+ <th *ngFor="let day of weeks[0]; trackBy: itemIndex" class="k-scheduler-cell k-heading-cell">
268
+ {{ day | kendoDate: 'EEEE' }}
269
+ </th>
270
+ </ng-container>
271
+ </tr>
272
+ </tbody>
273
+ </table>
340
274
  </div>
275
+ </div>
276
+ </td>
277
+ </tr>
278
+ <tr class="k-scheduler-body">
279
+ <td *ngIf="verticalResources.length">
280
+ <div class="k-scheduler-times k-scheduler-resources" #times>
281
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
282
+ <tbody>
283
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
284
+ <tr>
285
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
286
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-heading-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
287
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
288
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
289
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
290
+ </th>
291
+ </ng-container>
292
+ <th class="k-slot-cell k-heading-cell k-empty-slot">
293
+ </th>
294
+ </tr>
295
+ <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
296
+ <th class="k-slot-cell k-heading-cell k-empty-slot"></th>
297
+ </tr>
298
+ </ng-container>
299
+ </tbody>
300
+ </table>
301
+ </div>
302
+ </td>
303
+ <td>
304
+ <div
305
+ class="k-scheduler-content"
306
+ tabindex="0"
307
+ #content
308
+ role="group"
309
+ [attr.aria-owns]="matchOwned(items | async)"
310
+ [style.overflowY]="'auto'">
311
+ <!-- Main content -->
312
+ <table class="k-scheduler-table" #contentTable role="presentation">
313
+ <tbody>
314
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
315
+ <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
316
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
317
+ <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
318
+ [monthSlot]="day"
319
+ [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
320
+ [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
321
+ [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
322
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
323
+ [title]="cellTitle(day)"
324
+ [class.k-selected]="isSlotSelected({
325
+ start: toPlainDate(day),
326
+ end: addDay(toPlainDate(day)),
327
+ isAllDay: true,
328
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
329
+ })"
330
+ class="k-scheduler-cell"
331
+ [ngClass]="{'k-other-month': isDayInPreviousMonth(day) || isDayInNextMonth(day)}"
332
+ >
333
+ </td>
334
+ </ng-container>
335
+ </tr>
336
+ </ng-container>
337
+ </tbody>
338
+ </table>
339
+ <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
340
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
341
+ [ngClass]="getEventClasses(item, itemResource.resources)"
342
+ [ngStyle]="getEventStyles(item, itemResource)"
343
+ role="button"
344
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
345
+ [id]="item.elementId + '_' + itemResource.leafIdx"
346
+ monthViewItem
347
+ [editable]="editable"
348
+ [item]="item"
349
+ [index]="item.index"
350
+ [rangeIndex]="item.rangeIndex"
351
+ [eventTemplate]="eventTemplateRef"
352
+ [resources]="itemResource.resources"
353
+ [resourceIndex]="itemResource.leafIdx">
354
+ </div>
355
+ </ng-container>
356
+ <kendo-hint-container #hintContainer>
357
+ <ng-template>
358
+ <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
359
+ class="k-event-drag-hint"
360
+ monthViewItem
361
+ [ngStyle]="hint.style"
362
+ [ngClass]="hint.class"
363
+ [dragHint]="true"
364
+ [eventTemplate]="eventTemplateRef"
365
+ [item]="hint.item"
366
+ [resources]="hint.resources">
367
+ </div>
341
368
 
342
- <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
343
- kendoResizeHint
344
- [hint]="hint"
345
- [ngClass]="hint.class"
346
- [format]="resizeHintFormat">
347
- </div>
348
- </ng-template>
349
- </kendo-hint-container>
350
- </div>
351
- </div>
352
- </div>
369
+ <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
370
+ kendoResizeHint
371
+ [hint]="hint"
372
+ [ngClass]="hint.class"
373
+ [format]="resizeHintFormat">
374
+ </div>
375
+ </ng-template>
376
+ </kendo-hint-container>
377
+ </div>
378
+ </td>
379
+ </tr>
380
+ </tbody>
381
+ </table>
353
382
  `, isInline: true, dependencies: [{ kind: "component", type: i8.HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: i9.ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "directive", type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i10.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i11.FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: i12.MonthViewItemComponent, selector: "[monthViewItem]" }, { kind: "component", type: i13.MonthSlotComponent, selector: "[monthSlot]", inputs: ["resourcesByIndex", "monthDaySlotTemplateRef", "monthSlot"] }, { kind: "pipe", type: i14.RepeatPipe, name: "repeat" }, { kind: "pipe", type: i15.ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: i3.DatePipe, name: "kendoDate" }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }] });
354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MonthViewRendererComponent, decorators: [{
383
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MonthViewRendererComponent, decorators: [{
355
384
  type: Component,
356
385
  args: [{
357
386
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -360,129 +389,150 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
360
389
  MonthSlotService
361
390
  ],
362
391
  template: `
363
- <div class="k-scheduler-layout k-scheduler-monthview k-scheduler-flex-layout">
364
- <div class="k-scheduler-pane">
365
- <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
366
- <table class="k-scheduler-table" aria-hidden="true">
367
- <tr>
368
- <th></th>
369
- </tr>
370
- </table>
371
- </div>
372
- <div class="k-scheduler-header k-state-default" #header>
373
- <div class="k-scheduler-header-wrap" #headerWrap>
374
- <!-- Days of the weeks titles -->
375
- <table class="k-scheduler-table" aria-hidden="true">
376
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
377
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
378
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
379
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
380
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
381
- </th>
382
- </tr>
383
- <tr>
384
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
385
- <th *ngFor="let day of weeks[0]; trackBy: itemIndex">
386
- {{ day | kendoDate: 'EEEE' }}
387
- </th>
388
- </ng-container>
389
- </tr>
390
- </table>
391
- </div>
392
- </div>
393
- </div>
394
- <div class="k-scheduler-pane">
395
- <div class="k-scheduler-times k-scheduler-resources" #times *ngIf="verticalResources.length">
396
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
397
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
398
- <tr>
399
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
400
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
401
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
402
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
403
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
404
- </th>
405
- </ng-container>
406
- <th class="k-slot-cell k-empty-slot">
407
- </th>
408
- </tr>
409
- <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
410
- <th class="k-slot-cell k-empty-slot"></th>
411
- </tr>
412
- </ng-container>
413
- </table>
414
- </div>
415
- <div
416
- class="k-scheduler-content"
417
- tabindex="0"
418
- #content
419
- role="group"
420
- [attr.aria-owns]="matchOwned(items | async)">
421
- <!-- Main content -->
422
- <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
423
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
424
- <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
425
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
426
- <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
427
- [monthSlot]="day"
428
- [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
429
- [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
430
- [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
431
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
432
- [title]="cellTitle(day)"
433
- [class.k-selected]="isSlotSelected({
434
- start: toPlainDate(day),
435
- end: addDay(toPlainDate(day)),
436
- isAllDay: true,
437
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
438
- })"
439
- >
440
- </td>
441
- </ng-container>
442
- </tr>
443
- </ng-container>
444
- </table>
445
- <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
446
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
447
- [ngClass]="getEventClasses(item, itemResource.resources)"
448
- [ngStyle]="getEventStyles(item, itemResource)"
449
- role="button"
450
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
451
- [id]="item.elementId + '_' + itemResource.leafIdx"
452
- monthViewItem
453
- [editable]="editable"
454
- [item]="item"
455
- [index]="item.index"
456
- [rangeIndex]="item.rangeIndex"
457
- [eventTemplate]="eventTemplateRef"
458
- [resources]="itemResource.resources"
459
- [resourceIndex]="itemResource.leafIdx">
460
- </div>
461
- </ng-container>
462
- <kendo-hint-container #hintContainer>
463
- <ng-template>
464
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
465
- class="k-event-drag-hint"
466
- monthViewItem
467
- [ngStyle]="hint.style"
468
- [ngClass]="hint.class"
469
- [dragHint]="true"
470
- [eventTemplate]="eventTemplateRef"
471
- [item]="hint.item"
472
- [resources]="hint.resources">
392
+ <table class="k-scheduler-layout k-scheduler-monthview">
393
+ <tbody>
394
+ <tr class="k-scheduler-head">
395
+ <td *ngIf="verticalResources.length">
396
+ <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
397
+ <table class="k-scheduler-table" aria-hidden="true">
398
+ <tbody>
399
+ <tr>
400
+ <th class="k-scheduler-cell k-heading-cell"></th>
401
+ </tr>
402
+ </tbody>
403
+ </table>
404
+ </div>
405
+ </td>
406
+ <td>
407
+ <div class="k-scheduler-header" #header>
408
+ <div class="k-scheduler-header-wrap" #headerWrap>
409
+ <!-- Days of the weeks titles -->
410
+ <table class="k-scheduler-table" aria-hidden="true">
411
+ <tbody>
412
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
413
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
414
+ class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
415
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
416
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
417
+ </th>
418
+ </tr>
419
+ <tr>
420
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
421
+ <th *ngFor="let day of weeks[0]; trackBy: itemIndex" class="k-scheduler-cell k-heading-cell">
422
+ {{ day | kendoDate: 'EEEE' }}
423
+ </th>
424
+ </ng-container>
425
+ </tr>
426
+ </tbody>
427
+ </table>
473
428
  </div>
429
+ </div>
430
+ </td>
431
+ </tr>
432
+ <tr class="k-scheduler-body">
433
+ <td *ngIf="verticalResources.length">
434
+ <div class="k-scheduler-times k-scheduler-resources" #times>
435
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
436
+ <tbody>
437
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
438
+ <tr>
439
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
440
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-heading-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
441
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
442
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
443
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
444
+ </th>
445
+ </ng-container>
446
+ <th class="k-slot-cell k-heading-cell k-empty-slot">
447
+ </th>
448
+ </tr>
449
+ <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
450
+ <th class="k-slot-cell k-heading-cell k-empty-slot"></th>
451
+ </tr>
452
+ </ng-container>
453
+ </tbody>
454
+ </table>
455
+ </div>
456
+ </td>
457
+ <td>
458
+ <div
459
+ class="k-scheduler-content"
460
+ tabindex="0"
461
+ #content
462
+ role="group"
463
+ [attr.aria-owns]="matchOwned(items | async)"
464
+ [style.overflowY]="'auto'">
465
+ <!-- Main content -->
466
+ <table class="k-scheduler-table" #contentTable role="presentation">
467
+ <tbody>
468
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
469
+ <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
470
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
471
+ <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
472
+ [monthSlot]="day"
473
+ [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
474
+ [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
475
+ [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
476
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
477
+ [title]="cellTitle(day)"
478
+ [class.k-selected]="isSlotSelected({
479
+ start: toPlainDate(day),
480
+ end: addDay(toPlainDate(day)),
481
+ isAllDay: true,
482
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
483
+ })"
484
+ class="k-scheduler-cell"
485
+ [ngClass]="{'k-other-month': isDayInPreviousMonth(day) || isDayInNextMonth(day)}"
486
+ >
487
+ </td>
488
+ </ng-container>
489
+ </tr>
490
+ </ng-container>
491
+ </tbody>
492
+ </table>
493
+ <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
494
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
495
+ [ngClass]="getEventClasses(item, itemResource.resources)"
496
+ [ngStyle]="getEventStyles(item, itemResource)"
497
+ role="button"
498
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
499
+ [id]="item.elementId + '_' + itemResource.leafIdx"
500
+ monthViewItem
501
+ [editable]="editable"
502
+ [item]="item"
503
+ [index]="item.index"
504
+ [rangeIndex]="item.rangeIndex"
505
+ [eventTemplate]="eventTemplateRef"
506
+ [resources]="itemResource.resources"
507
+ [resourceIndex]="itemResource.leafIdx">
508
+ </div>
509
+ </ng-container>
510
+ <kendo-hint-container #hintContainer>
511
+ <ng-template>
512
+ <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
513
+ class="k-event-drag-hint"
514
+ monthViewItem
515
+ [ngStyle]="hint.style"
516
+ [ngClass]="hint.class"
517
+ [dragHint]="true"
518
+ [eventTemplate]="eventTemplateRef"
519
+ [item]="hint.item"
520
+ [resources]="hint.resources">
521
+ </div>
474
522
 
475
- <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
476
- kendoResizeHint
477
- [hint]="hint"
478
- [ngClass]="hint.class"
479
- [format]="resizeHintFormat">
480
- </div>
481
- </ng-template>
482
- </kendo-hint-container>
483
- </div>
484
- </div>
485
- </div>
523
+ <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
524
+ kendoResizeHint
525
+ [hint]="hint"
526
+ [ngClass]="hint.class"
527
+ [format]="resizeHintFormat">
528
+ </div>
529
+ </ng-template>
530
+ </kendo-hint-container>
531
+ </div>
532
+ </td>
533
+ </tr>
534
+ </tbody>
535
+ </table>
486
536
  `
487
537
  }]
488
538
  }], 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 }, { type: i7.ScrollbarWidthService }]; }, propDecorators: { monthDaySlotTemplate: [{
@@ -73,8 +73,8 @@ export class MonthViewComponent extends ConfigurationViewBase {
73
73
  return firstDayOfMonth(addMonths(date, direction));
74
74
  }
75
75
  }
76
- MonthViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MonthViewComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.ViewContextService }, { token: i3.ViewStateService }, { token: i4.IntlService }], target: i0.ɵɵFactoryTarget.Component });
77
- MonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MonthViewComponent, selector: "kendo-scheduler-month-view", inputs: { eventHeight: "eventHeight", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
76
+ MonthViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MonthViewComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.ViewContextService }, { token: i3.ViewStateService }, { token: i4.IntlService }], target: i0.ɵɵFactoryTarget.Component });
77
+ MonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MonthViewComponent, selector: "kendo-scheduler-month-view", inputs: { eventHeight: "eventHeight", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
78
78
  provide: SchedulerView,
79
79
  useExisting: forwardRef(() => MonthViewComponent)
80
80
  }], queries: [{ propertyName: "monthDaySlotTemplate", first: true, predicate: MonthDaySlotTemplateDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
@@ -97,7 +97,7 @@ MonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
97
97
  </month-view>
98
98
  </ng-template>
99
99
  `, isInline: true, dependencies: [{ kind: "component", type: i5.MonthViewRendererComponent, selector: "month-view", inputs: ["monthDaySlotTemplate", "highlightOngoingEvents", "type", "numberOfWeeks", "newRange", "dateRangeFn"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MonthViewComponent, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MonthViewComponent, decorators: [{
101
101
  type: Component,
102
102
  args: [{
103
103
  changeDetection: ChangeDetectionStrategy.OnPush,