@progress/kendo-angular-scheduler 16.0.0-develop.13 → 16.0.0-develop.15

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.
@@ -8,7 +8,7 @@ import * as i1$1 from '@progress/kendo-angular-l10n';
8
8
  import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
9
9
  import * as i7 from '@progress/kendo-angular-common';
10
10
  import { hasObservers, isDocumentAvailable, isVisible as isVisible$1, scrollbarWidth, isChanged, Keys, shouldShowValidationUI, anyChanged, ResizeSensorComponent, EventsModule, ResizeSensorModule, guid, WatermarkModule } from '@progress/kendo-angular-common';
11
- import { isEqualDate, ZonedDate, toLocalDate, getDate, timezoneNames, Day, MS_PER_DAY as MS_PER_DAY$1, addDays, firstDayOfMonth, firstDayInWeek, addMonths, addWeeks, addYears } from '@progress/kendo-date-math';
11
+ import { isEqualDate, ZonedDate, toLocalDate, getDate, timezoneNames, Day, MS_PER_DAY as MS_PER_DAY$1, addDays, firstDayOfMonth, lastDayOfMonth, firstDayInWeek, addMonths, addWeeks, addYears } from '@progress/kendo-date-math';
12
12
  import { auditTime, buffer, filter, map, debounceTime, take, switchMap, tap, distinctUntilChanged } from 'rxjs/operators';
13
13
  import { validatePackage } from '@progress/kendo-licensing';
14
14
  import * as i3 from '@progress/kendo-angular-dateinputs';
@@ -50,8 +50,8 @@ const packageMetadata = {
50
50
  name: '@progress/kendo-angular-scheduler',
51
51
  productName: 'Kendo UI for Angular',
52
52
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
53
- publishDate: 1715098055,
54
- version: '16.0.0-develop.13',
53
+ publishDate: 1715176029,
54
+ version: '16.0.0-develop.15',
55
55
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
56
56
  };
57
57
 
@@ -7118,7 +7118,7 @@ class SchedulerComponent {
7118
7118
  }
7119
7119
  }
7120
7120
  SchedulerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SchedulerComponent, deps: [{ token: i0.ElementRef }, { token: ViewContextService }, { token: ViewStateService }, { token: EditService }, { token: DialogsService }, { token: i1$3.IntlService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: PDFService }, { token: i1$1.LocalizationService }, { token: DomEventsService }, { token: i0.Renderer2 }, { token: FocusService }], target: i0.ɵɵFactoryTarget.Component });
7121
- SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SchedulerComponent, selector: "kendo-scheduler", inputs: { selectedViewIndex: "selectedViewIndex", editable: "editable", selectable: "selectable", min: "min", max: "max", eventHeight: "eventHeight", columnWidth: "columnWidth", showWorkHours: "showWorkHours", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", weekStart: "weekStart", slotDuration: "slotDuration", slotDivisions: "slotDivisions", slotFill: "slotFill", allDaySlot: "allDaySlot", scrollTime: "scrollTime", group: "group", resources: "resources", loading: "loading", timezone: "timezone", events: "events", selectedDate: "selectedDate", modelFields: "modelFields", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", isSlotSelected: "isSlotSelected" }, outputs: { selectedViewIndexChange: "selectedViewIndexChange", navigate: "navigate", dateChange: "dateChange", slotClick: "slotClick", slotDblClick: "slotDblClick", create: "create", eventClick: "eventClick", eventDblClick: "eventDblClick", eventKeydown: "eventKeydown", cancel: "cancel", save: "save", remove: "remove", resizeStart: "resizeStart", resize: "resize", resizeEnd: "resizeEnd", dragStart: "dragStart", drag: "drag", dragEnd: "dragEnd", slotDragStart: "slotDragStart", slotDrag: "slotDrag", slotDragEnd: "slotDragEnd", pdfExport: "pdfExport", schedulerResize: "schedulerResize" }, host: { properties: { "class.k-widget": "this.hostClasses", "class.k-scheduler": "this.hostClasses", "class.k-floatwrap": "this.hostClasses", "class.k-pos-relative": "this.hostClasses", "attr.role": "this.ariaRole", "class.k-rtl": "this.rtl", "attr.dir": "this.dir" } }, providers: [
7121
+ SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SchedulerComponent, selector: "kendo-scheduler", inputs: { selectedViewIndex: "selectedViewIndex", editable: "editable", selectable: "selectable", min: "min", max: "max", eventHeight: "eventHeight", columnWidth: "columnWidth", showWorkHours: "showWorkHours", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", weekStart: "weekStart", slotDuration: "slotDuration", slotDivisions: "slotDivisions", slotFill: "slotFill", allDaySlot: "allDaySlot", scrollTime: "scrollTime", group: "group", resources: "resources", loading: "loading", timezone: "timezone", events: "events", selectedDate: "selectedDate", modelFields: "modelFields", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", isSlotSelected: "isSlotSelected" }, outputs: { selectedViewIndexChange: "selectedViewIndexChange", navigate: "navigate", dateChange: "dateChange", slotClick: "slotClick", slotDblClick: "slotDblClick", create: "create", eventClick: "eventClick", eventDblClick: "eventDblClick", eventKeydown: "eventKeydown", cancel: "cancel", save: "save", remove: "remove", resizeStart: "resizeStart", resize: "resize", resizeEnd: "resizeEnd", dragStart: "dragStart", drag: "drag", dragEnd: "dragEnd", slotDragStart: "slotDragStart", slotDrag: "slotDrag", slotDragEnd: "slotDragEnd", pdfExport: "pdfExport", schedulerResize: "schedulerResize" }, host: { properties: { "class.k-scheduler": "this.hostClasses", "attr.role": "this.ariaRole", "class.k-rtl": "this.rtl", "attr.dir": "this.dir" } }, providers: [
7122
7122
  EditService,
7123
7123
  DialogsService,
7124
7124
  DomEventsService,
@@ -7826,17 +7826,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
7826
7826
  `
7827
7827
  }]
7828
7828
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ViewContextService }, { type: ViewStateService }, { type: EditService }, { type: DialogsService }, { type: i1$3.IntlService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: PDFService }, { type: i1$1.LocalizationService }, { type: DomEventsService }, { type: i0.Renderer2 }, { type: FocusService }]; }, propDecorators: { hostClasses: [{
7829
- type: HostBinding,
7830
- args: ['class.k-widget']
7831
- }, {
7832
7829
  type: HostBinding,
7833
7830
  args: ['class.k-scheduler']
7834
- }, {
7835
- type: HostBinding,
7836
- args: ['class.k-floatwrap']
7837
- }, {
7838
- type: HostBinding,
7839
- args: ['class.k-pos-relative']
7840
7831
  }], ariaRole: [{
7841
7832
  type: HostBinding,
7842
7833
  args: ['attr.role']
@@ -8656,16 +8647,16 @@ class AgendaHeaderComponent {
8656
8647
  }
8657
8648
  }
8658
8649
  AgendaHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AgendaHeaderComponent, deps: [{ token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
8659
- AgendaHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AgendaHeaderComponent, selector: "[kendoSchedulerAgendaHeader]", inputs: { resources: "resources" }, host: { properties: { "class.k-scheduler-header": "this.classes", "class.k-state-default": "this.classes" } }, ngImport: i0, template: `
8650
+ AgendaHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AgendaHeaderComponent, selector: "[kendoSchedulerAgendaHeader]", inputs: { resources: "resources" }, host: { properties: { "class.k-scheduler-header": "this.classes" } }, ngImport: i0, template: `
8660
8651
  <div class="k-scheduler-header-wrap">
8661
8652
  <table class="k-scheduler-table" role="none">
8662
8653
  <tbody role="rowgroup">
8663
8654
  <tr role="row">
8664
- <th *ngFor="let resource of resources" class="k-scheduler-groupcolumn" role="columnheader"></th>
8665
- <th class="k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
8666
- <th class="k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
8667
- <th role="columnheader">{{ eventMessage }}</th>
8668
- </tr>
8655
+ <th *ngFor="let resource of resources" class="k-scheduler-groupcolumn k-first" role="columnheader"></th>
8656
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
8657
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
8658
+ <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
8659
+ </tr>
8669
8660
  </tbody>
8670
8661
  </table>
8671
8662
  </div>
@@ -8681,11 +8672,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8681
8672
  <table class="k-scheduler-table" role="none">
8682
8673
  <tbody role="rowgroup">
8683
8674
  <tr role="row">
8684
- <th *ngFor="let resource of resources" class="k-scheduler-groupcolumn" role="columnheader"></th>
8685
- <th class="k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
8686
- <th class="k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
8687
- <th role="columnheader">{{ eventMessage }}</th>
8688
- </tr>
8675
+ <th *ngFor="let resource of resources" class="k-scheduler-groupcolumn k-first" role="columnheader"></th>
8676
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
8677
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
8678
+ <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
8679
+ </tr>
8689
8680
  </tbody>
8690
8681
  </table>
8691
8682
  </div>
@@ -8694,9 +8685,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8694
8685
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { classes: [{
8695
8686
  type: HostBinding,
8696
8687
  args: ["class.k-scheduler-header"]
8697
- }, {
8698
- type: HostBinding,
8699
- args: ["class.k-state-default"]
8700
8688
  }], resources: [{
8701
8689
  type: Input
8702
8690
  }] } });
@@ -8708,6 +8696,10 @@ class AgendaHeaderItemComponent {
8708
8696
  constructor() {
8709
8697
  this.classes = true;
8710
8698
  this.roleAttribute = "rowheader";
8699
+ this.hasFirstClass = true;
8700
+ }
8701
+ get firstClass() {
8702
+ return this.hasFirstClass;
8711
8703
  }
8712
8704
  get rowSpan() {
8713
8705
  return this.item.rowSpan;
@@ -8717,7 +8709,7 @@ class AgendaHeaderItemComponent {
8717
8709
  }
8718
8710
  }
8719
8711
  AgendaHeaderItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AgendaHeaderItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8720
- AgendaHeaderItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AgendaHeaderItemComponent, selector: "[kendoSchedulerAgendaHeaderItem]", inputs: { item: ["kendoSchedulerAgendaHeaderItem", "item"], agendaDateTemplate: "agendaDateTemplate" }, host: { properties: { "class.k-scheduler-datecolumn": "this.classes", "attr.role": "this.roleAttribute", "attr.rowspan": "this.rowSpan" } }, ngImport: i0, template: `
8712
+ AgendaHeaderItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AgendaHeaderItemComponent, selector: "[kendoSchedulerAgendaHeaderItem]", inputs: { item: ["kendoSchedulerAgendaHeaderItem", "item"], agendaDateTemplate: "agendaDateTemplate", hasFirstClass: "hasFirstClass" }, host: { properties: { "class.k-scheduler-datecolumn": "this.classes", "class.k-scheduler-cell": "this.classes", "class.k-first": "this.firstClass", "attr.role": "this.roleAttribute", "attr.rowspan": "this.rowSpan" } }, ngImport: i0, template: `
8721
8713
  <ng-container *ngIf="!agendaDateTemplate">
8722
8714
  <strong class="k-scheduler-agendaday">{{itemDate | kendoDate: 'dd'}}</strong>
8723
8715
  <em class="k-scheduler-agendaweek">{{itemDate | kendoDate: 'EEEE'}}</em>
@@ -8747,6 +8739,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8747
8739
  }], propDecorators: { classes: [{
8748
8740
  type: HostBinding,
8749
8741
  args: ["class.k-scheduler-datecolumn"]
8742
+ }, {
8743
+ type: HostBinding,
8744
+ args: ["class.k-scheduler-cell"]
8745
+ }], firstClass: [{
8746
+ type: HostBinding,
8747
+ args: ["class.k-first"]
8750
8748
  }], roleAttribute: [{
8751
8749
  type: HostBinding,
8752
8750
  args: ["attr.role"]
@@ -8758,6 +8756,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8758
8756
  args: ["kendoSchedulerAgendaHeaderItem"]
8759
8757
  }], agendaDateTemplate: [{
8760
8758
  type: Input
8759
+ }], hasFirstClass: [{
8760
+ type: Input
8761
8761
  }] } });
8762
8762
 
8763
8763
  /**
@@ -8770,6 +8770,7 @@ class AgendaTaskItemComponent {
8770
8770
  this.arrowRotateCWIcon = arrowRotateCwIcon;
8771
8771
  this.arrowsNoRepeatIcon = arrowsNoRepeatIcon;
8772
8772
  this.xIcon = xIcon;
8773
+ this.cellClass = true;
8773
8774
  }
8774
8775
  get eventTitle() {
8775
8776
  const start = toLocalDate(this.item.start);
@@ -8794,7 +8795,7 @@ class AgendaTaskItemComponent {
8794
8795
  }
8795
8796
  }
8796
8797
  AgendaTaskItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AgendaTaskItemComponent, deps: [{ token: i1$1.LocalizationService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
8797
- AgendaTaskItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AgendaTaskItemComponent, selector: "[kendoSchedulerAgendaTaskItem]", inputs: { item: ["kendoSchedulerAgendaTaskItem", "item"], color: "color", eventTemplate: "eventTemplate", editable: "editable" }, host: { properties: { "attr.aria-label": "this.eventTitle" } }, ngImport: i0, template: `
8798
+ AgendaTaskItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AgendaTaskItemComponent, selector: "[kendoSchedulerAgendaTaskItem]", inputs: { item: ["kendoSchedulerAgendaTaskItem", "item"], color: "color", eventTemplate: "eventTemplate", editable: "editable" }, host: { properties: { "class.k-scheduler-cell": "this.cellClass", "attr.aria-label": "this.eventTitle" } }, ngImport: i0, template: `
8798
8799
  <div class="k-task" [title]="item.title">
8799
8800
  <span class="k-scheduler-mark" *ngIf="eventColor" [style.background-color]="eventColor"></span>
8800
8801
  <kendo-icon-wrapper *ngIf="isRecurrence" name="arrow-rotate-cw" [svgIcon]="arrowRotateCWIcon"></kendo-icon-wrapper>
@@ -8849,6 +8850,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8849
8850
  type: Input
8850
8851
  }], editable: [{
8851
8852
  type: Input
8853
+ }], cellClass: [{
8854
+ type: HostBinding,
8855
+ args: ["class.k-scheduler-cell"]
8852
8856
  }], eventTitle: [{
8853
8857
  type: HostBinding,
8854
8858
  args: ['attr.aria-label']
@@ -8940,15 +8944,16 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
8940
8944
  <ng-container *ngFor="let group of tasks; let groupIndex = index;">
8941
8945
  <tr *ngFor="let item of group.tasks; let index = index; trackBy: trackByFn" role="row">
8942
8946
  <ng-container *ngFor="let resource of group.resources; let resourceIndex = index">
8943
- <td *ngIf="group.spans[resourceIndex] && index === 0" class="k-scheduler-groupcolumn" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
8947
+ <td *ngIf="group.spans[resourceIndex] && index === 0" class="k-scheduler-groupcolumn k-first" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
8944
8948
  {{ resource }}
8945
8949
  </td>
8946
8950
  </ng-container>
8947
8951
  <td *ngIf="item.type === 'group'"
8948
8952
  [kendoSchedulerAgendaHeaderItem]="item"
8953
+ [hasFirstClass]="!group.resources || group.resources.length === 0"
8949
8954
  [agendaDateTemplate]="agendaDateTemplate">
8950
8955
  </td>
8951
- <td class="k-scheduler-timecolumn" role="gridcell">
8956
+ <td class="k-scheduler-timecolumn k-scheduler-cell" role="gridcell">
8952
8957
  <div *ngIf="!agendaTimeTemplate">
8953
8958
  <kendo-icon-wrapper
8954
8959
  *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
@@ -8981,7 +8986,7 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
8981
8986
  </ng-container>
8982
8987
  </tbody>
8983
8988
  </table>
8984
- `, isInline: true, dependencies: [{ kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: i5$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: AgendaHeaderItemComponent, selector: "[kendoSchedulerAgendaHeaderItem]", inputs: ["kendoSchedulerAgendaHeaderItem", "agendaDateTemplate"] }, { kind: "component", type: AgendaTaskItemComponent, selector: "[kendoSchedulerAgendaTaskItem]", inputs: ["kendoSchedulerAgendaTaskItem", "color", "eventTemplate", "editable"] }] });
8989
+ `, isInline: true, dependencies: [{ kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: i5$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: AgendaHeaderItemComponent, selector: "[kendoSchedulerAgendaHeaderItem]", inputs: ["kendoSchedulerAgendaHeaderItem", "agendaDateTemplate", "hasFirstClass"] }, { kind: "component", type: AgendaTaskItemComponent, selector: "[kendoSchedulerAgendaTaskItem]", inputs: ["kendoSchedulerAgendaTaskItem", "color", "eventTemplate", "editable"] }] });
8985
8990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AgendaListComponent, decorators: [{
8986
8991
  type: Component,
8987
8992
  args: [{
@@ -8993,15 +8998,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8993
8998
  <ng-container *ngFor="let group of tasks; let groupIndex = index;">
8994
8999
  <tr *ngFor="let item of group.tasks; let index = index; trackBy: trackByFn" role="row">
8995
9000
  <ng-container *ngFor="let resource of group.resources; let resourceIndex = index">
8996
- <td *ngIf="group.spans[resourceIndex] && index === 0" class="k-scheduler-groupcolumn" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
9001
+ <td *ngIf="group.spans[resourceIndex] && index === 0" class="k-scheduler-groupcolumn k-first" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
8997
9002
  {{ resource }}
8998
9003
  </td>
8999
9004
  </ng-container>
9000
9005
  <td *ngIf="item.type === 'group'"
9001
9006
  [kendoSchedulerAgendaHeaderItem]="item"
9007
+ [hasFirstClass]="!group.resources || group.resources.length === 0"
9002
9008
  [agendaDateTemplate]="agendaDateTemplate">
9003
9009
  </td>
9004
- <td class="k-scheduler-timecolumn" role="gridcell">
9010
+ <td class="k-scheduler-timecolumn k-scheduler-cell" role="gridcell">
9005
9011
  <div *ngIf="!agendaTimeTemplate">
9006
9012
  <kendo-icon-wrapper
9007
9013
  *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
@@ -9338,14 +9344,14 @@ class AgendaViewInternalComponent {
9338
9344
  }
9339
9345
  AgendaViewInternalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AgendaViewInternalComponent, deps: [{ token: ViewContextService }, { token: ViewStateService }, { token: i1$3.IntlService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: PDFService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
9340
9346
  AgendaViewInternalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AgendaViewInternalComponent, selector: "agenda-view-internal", inputs: { eventTemplate: "eventTemplate", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", agendaTimeTemplate: "agendaTimeTemplate", agendaDateTemplate: "agendaDateTemplate", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfDays: "numberOfDays" }, viewQueries: [{ propertyName: "headerWrap", first: true, predicate: ["headerWrap"], descendants: true, read: ElementRef, static: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
9341
- <table class="k-scheduler-layout k-scheduler-agendaview k-scheduler-agenda" role="grid">
9347
+ <table class="k-scheduler-layout k-scheduler-agendaview" role="grid">
9342
9348
  <tbody role="none">
9343
- <tr>
9349
+ <tr class="k-scheduler-head">
9344
9350
  <td>
9345
9351
  <div kendoSchedulerAgendaHeader [resources]="groupedResources" #headerWrap></div>
9346
9352
  </td>
9347
9353
  </tr>
9348
- <tr>
9354
+ <tr class="k-scheduler-body">
9349
9355
  <td>
9350
9356
  <div kendoSchedulerAgendaList #content
9351
9357
  [editable]="editable"
@@ -9368,14 +9374,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
9368
9374
  // eslint-disable-next-line @angular-eslint/component-selector
9369
9375
  selector: 'agenda-view-internal',
9370
9376
  template: `
9371
- <table class="k-scheduler-layout k-scheduler-agendaview k-scheduler-agenda" role="grid">
9377
+ <table class="k-scheduler-layout k-scheduler-agendaview" role="grid">
9372
9378
  <tbody role="none">
9373
- <tr>
9379
+ <tr class="k-scheduler-head">
9374
9380
  <td>
9375
9381
  <div kendoSchedulerAgendaHeader [resources]="groupedResources" #headerWrap></div>
9376
9382
  </td>
9377
9383
  </tr>
9378
- <tr>
9384
+ <tr class="k-scheduler-body">
9379
9385
  <td>
9380
9386
  <div kendoSchedulerAgendaList #content
9381
9387
  [editable]="editable"
@@ -11752,6 +11758,14 @@ class MonthViewRendererComponent extends BaseView {
11752
11758
  addDay(dayStart) {
11753
11759
  return addDays(dayStart, 1);
11754
11760
  }
11761
+ isDayInPreviousMonth(day) {
11762
+ const beginningOfMonth = new Date(firstDayOfMonth(this.selectedDate).setHours(0, 0, 0, 0));
11763
+ return day < beginningOfMonth;
11764
+ }
11765
+ isDayInNextMonth(day) {
11766
+ const endOfMonth = new Date(lastDayOfMonth(this.selectedDate).setHours(23, 59, 59, 59));
11767
+ return day > endOfMonth;
11768
+ }
11755
11769
  optionsChange(changes) {
11756
11770
  this.schedulerMonthDaySlotTemplate = changes[`${this.type}DaySlotTemplate`];
11757
11771
  super.optionsChange(changes);
@@ -11775,7 +11789,7 @@ class MonthViewRendererComponent extends BaseView {
11775
11789
  }
11776
11790
  this.slotService.layout(this.eventHeight);
11777
11791
  if (this.contentHeight === 'auto') {
11778
- content.style.overflow = '';
11792
+ content.style.overflow = 'auto';
11779
11793
  }
11780
11794
  this.syncTables();
11781
11795
  }
@@ -11873,129 +11887,150 @@ MonthViewRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0
11873
11887
  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: [
11874
11888
  MonthSlotService
11875
11889
  ], viewQueries: [{ propertyName: "eventElements", predicate: MonthViewItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
11876
- <div class="k-scheduler-layout k-scheduler-monthview k-scheduler-flex-layout">
11877
- <div class="k-scheduler-pane">
11878
- <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
11879
- <table class="k-scheduler-table" aria-hidden="true">
11880
- <tr>
11881
- <th></th>
11882
- </tr>
11883
- </table>
11884
- </div>
11885
- <div class="k-scheduler-header k-state-default" #header>
11886
- <div class="k-scheduler-header-wrap" #headerWrap>
11887
- <!-- Days of the weeks titles -->
11888
- <table class="k-scheduler-table" aria-hidden="true">
11889
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
11890
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
11891
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
11892
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
11893
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
11894
- </th>
11895
- </tr>
11896
- <tr>
11897
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
11898
- <th *ngFor="let day of weeks[0]; trackBy: itemIndex">
11899
- {{ day | kendoDate: 'EEEE' }}
11900
- </th>
11901
- </ng-container>
11902
- </tr>
11903
- </table>
11904
- </div>
11905
- </div>
11906
- </div>
11907
- <div class="k-scheduler-pane">
11908
- <div class="k-scheduler-times k-scheduler-resources" #times *ngIf="verticalResources.length">
11909
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
11910
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
11911
- <tr>
11912
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
11913
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
11914
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
11915
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
11916
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
11917
- </th>
11918
- </ng-container>
11919
- <th class="k-slot-cell k-empty-slot">
11920
- </th>
11921
- </tr>
11922
- <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
11923
- <th class="k-slot-cell k-empty-slot"></th>
11924
- </tr>
11925
- </ng-container>
11926
- </table>
11927
- </div>
11928
- <div
11929
- class="k-scheduler-content"
11930
- tabindex="0"
11931
- #content
11932
- role="group"
11933
- [attr.aria-owns]="matchOwned(items | async)">
11934
- <!-- Main content -->
11935
- <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
11936
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
11937
- <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
11938
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
11939
- <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
11940
- [monthSlot]="day"
11941
- [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
11942
- [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
11943
- [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
11944
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
11945
- [title]="cellTitle(day)"
11946
- [class.k-selected]="isSlotSelected({
11947
- start: toPlainDate(day),
11948
- end: addDay(toPlainDate(day)),
11949
- isAllDay: true,
11950
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
11951
- })"
11952
- >
11953
- </td>
11954
- </ng-container>
11955
- </tr>
11956
- </ng-container>
11957
- </table>
11958
- <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
11959
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
11960
- [ngClass]="getEventClasses(item, itemResource.resources)"
11961
- [ngStyle]="getEventStyles(item, itemResource)"
11962
- role="button"
11963
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
11964
- [id]="item.elementId + '_' + itemResource.leafIdx"
11965
- monthViewItem
11966
- [editable]="editable"
11967
- [item]="item"
11968
- [index]="item.index"
11969
- [rangeIndex]="item.rangeIndex"
11970
- [eventTemplate]="eventTemplateRef"
11971
- [resources]="itemResource.resources"
11972
- [resourceIndex]="itemResource.leafIdx">
11973
- </div>
11974
- </ng-container>
11975
- <kendo-hint-container #hintContainer>
11976
- <ng-template>
11977
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
11978
- class="k-event-drag-hint"
11979
- monthViewItem
11980
- [ngStyle]="hint.style"
11981
- [ngClass]="hint.class"
11982
- [dragHint]="true"
11983
- [eventTemplate]="eventTemplateRef"
11984
- [item]="hint.item"
11985
- [resources]="hint.resources">
11890
+ <table class="k-scheduler-layout k-scheduler-monthview">
11891
+ <tbody>
11892
+ <tr class="k-scheduler-head">
11893
+ <td *ngIf="verticalResources.length">
11894
+ <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
11895
+ <table class="k-scheduler-table" aria-hidden="true">
11896
+ <tbody>
11897
+ <tr>
11898
+ <th class="k-scheduler-cell k-heading-cell"></th>
11899
+ </tr>
11900
+ </tbody>
11901
+ </table>
11902
+ </div>
11903
+ </td>
11904
+ <td>
11905
+ <div class="k-scheduler-header" #header>
11906
+ <div class="k-scheduler-header-wrap" #headerWrap>
11907
+ <!-- Days of the weeks titles -->
11908
+ <table class="k-scheduler-table" aria-hidden="true">
11909
+ <tbody>
11910
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
11911
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
11912
+ class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
11913
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
11914
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
11915
+ </th>
11916
+ </tr>
11917
+ <tr>
11918
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
11919
+ <th *ngFor="let day of weeks[0]; trackBy: itemIndex" class="k-scheduler-cell k-heading-cell">
11920
+ {{ day | kendoDate: 'EEEE' }}
11921
+ </th>
11922
+ </ng-container>
11923
+ </tr>
11924
+ </tbody>
11925
+ </table>
11986
11926
  </div>
11927
+ </div>
11928
+ </td>
11929
+ </tr>
11930
+ <tr class="k-scheduler-body">
11931
+ <td *ngIf="verticalResources.length">
11932
+ <div class="k-scheduler-times k-scheduler-resources" #times>
11933
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
11934
+ <tbody>
11935
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
11936
+ <tr>
11937
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
11938
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-heading-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
11939
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
11940
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
11941
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
11942
+ </th>
11943
+ </ng-container>
11944
+ <th class="k-slot-cell k-heading-cell k-empty-slot">
11945
+ </th>
11946
+ </tr>
11947
+ <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
11948
+ <th class="k-slot-cell k-heading-cell k-empty-slot"></th>
11949
+ </tr>
11950
+ </ng-container>
11951
+ </tbody>
11952
+ </table>
11953
+ </div>
11954
+ </td>
11955
+ <td>
11956
+ <div
11957
+ class="k-scheduler-content"
11958
+ tabindex="0"
11959
+ #content
11960
+ role="group"
11961
+ [attr.aria-owns]="matchOwned(items | async)"
11962
+ [style.overflowY]="'auto'">
11963
+ <!-- Main content -->
11964
+ <table class="k-scheduler-table" #contentTable role="presentation">
11965
+ <tbody>
11966
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
11967
+ <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
11968
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
11969
+ <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
11970
+ [monthSlot]="day"
11971
+ [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
11972
+ [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
11973
+ [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
11974
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
11975
+ [title]="cellTitle(day)"
11976
+ [class.k-selected]="isSlotSelected({
11977
+ start: toPlainDate(day),
11978
+ end: addDay(toPlainDate(day)),
11979
+ isAllDay: true,
11980
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
11981
+ })"
11982
+ class="k-scheduler-cell"
11983
+ [ngClass]="{'k-other-month': isDayInPreviousMonth(day) || isDayInNextMonth(day)}"
11984
+ >
11985
+ </td>
11986
+ </ng-container>
11987
+ </tr>
11988
+ </ng-container>
11989
+ </tbody>
11990
+ </table>
11991
+ <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
11992
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
11993
+ [ngClass]="getEventClasses(item, itemResource.resources)"
11994
+ [ngStyle]="getEventStyles(item, itemResource)"
11995
+ role="button"
11996
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
11997
+ [id]="item.elementId + '_' + itemResource.leafIdx"
11998
+ monthViewItem
11999
+ [editable]="editable"
12000
+ [item]="item"
12001
+ [index]="item.index"
12002
+ [rangeIndex]="item.rangeIndex"
12003
+ [eventTemplate]="eventTemplateRef"
12004
+ [resources]="itemResource.resources"
12005
+ [resourceIndex]="itemResource.leafIdx">
12006
+ </div>
12007
+ </ng-container>
12008
+ <kendo-hint-container #hintContainer>
12009
+ <ng-template>
12010
+ <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
12011
+ class="k-event-drag-hint"
12012
+ monthViewItem
12013
+ [ngStyle]="hint.style"
12014
+ [ngClass]="hint.class"
12015
+ [dragHint]="true"
12016
+ [eventTemplate]="eventTemplateRef"
12017
+ [item]="hint.item"
12018
+ [resources]="hint.resources">
12019
+ </div>
11987
12020
 
11988
- <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
11989
- kendoResizeHint
11990
- [hint]="hint"
11991
- [ngClass]="hint.class"
11992
- [format]="resizeHintFormat">
11993
- </div>
11994
- </ng-template>
11995
- </kendo-hint-container>
11996
- </div>
11997
- </div>
11998
- </div>
12021
+ <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
12022
+ kendoResizeHint
12023
+ [hint]="hint"
12024
+ [ngClass]="hint.class"
12025
+ [format]="resizeHintFormat">
12026
+ </div>
12027
+ </ng-template>
12028
+ </kendo-hint-container>
12029
+ </div>
12030
+ </td>
12031
+ </tr>
12032
+ </tbody>
12033
+ </table>
11999
12034
  `, isInline: true, dependencies: [{ kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: MonthViewItemComponent, selector: "[monthViewItem]" }, { kind: "component", type: MonthSlotComponent, selector: "[monthSlot]", inputs: ["resourcesByIndex", "monthDaySlotTemplateRef", "monthSlot"] }, { kind: "pipe", type: RepeatPipe, name: "repeat" }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: i1$3.DatePipe, name: "kendoDate" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }] });
12000
12035
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MonthViewRendererComponent, decorators: [{
12001
12036
  type: Component,
@@ -12006,129 +12041,150 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
12006
12041
  MonthSlotService
12007
12042
  ],
12008
12043
  template: `
12009
- <div class="k-scheduler-layout k-scheduler-monthview k-scheduler-flex-layout">
12010
- <div class="k-scheduler-pane">
12011
- <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
12012
- <table class="k-scheduler-table" aria-hidden="true">
12013
- <tr>
12014
- <th></th>
12015
- </tr>
12016
- </table>
12017
- </div>
12018
- <div class="k-scheduler-header k-state-default" #header>
12019
- <div class="k-scheduler-header-wrap" #headerWrap>
12020
- <!-- Days of the weeks titles -->
12021
- <table class="k-scheduler-table" aria-hidden="true">
12022
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
12023
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
12024
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
12025
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
12026
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
12027
- </th>
12028
- </tr>
12029
- <tr>
12030
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
12031
- <th *ngFor="let day of weeks[0]; trackBy: itemIndex">
12032
- {{ day | kendoDate: 'EEEE' }}
12033
- </th>
12034
- </ng-container>
12035
- </tr>
12036
- </table>
12037
- </div>
12038
- </div>
12039
- </div>
12040
- <div class="k-scheduler-pane">
12041
- <div class="k-scheduler-times k-scheduler-resources" #times *ngIf="verticalResources.length">
12042
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
12043
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
12044
- <tr>
12045
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
12046
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
12047
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
12048
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
12049
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
12050
- </th>
12051
- </ng-container>
12052
- <th class="k-slot-cell k-empty-slot">
12053
- </th>
12054
- </tr>
12055
- <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
12056
- <th class="k-slot-cell k-empty-slot"></th>
12057
- </tr>
12058
- </ng-container>
12059
- </table>
12060
- </div>
12061
- <div
12062
- class="k-scheduler-content"
12063
- tabindex="0"
12064
- #content
12065
- role="group"
12066
- [attr.aria-owns]="matchOwned(items | async)">
12067
- <!-- Main content -->
12068
- <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
12069
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
12070
- <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
12071
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
12072
- <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
12073
- [monthSlot]="day"
12074
- [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
12075
- [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
12076
- [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
12077
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
12078
- [title]="cellTitle(day)"
12079
- [class.k-selected]="isSlotSelected({
12080
- start: toPlainDate(day),
12081
- end: addDay(toPlainDate(day)),
12082
- isAllDay: true,
12083
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
12084
- })"
12085
- >
12086
- </td>
12087
- </ng-container>
12088
- </tr>
12089
- </ng-container>
12090
- </table>
12091
- <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
12092
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
12093
- [ngClass]="getEventClasses(item, itemResource.resources)"
12094
- [ngStyle]="getEventStyles(item, itemResource)"
12095
- role="button"
12096
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
12097
- [id]="item.elementId + '_' + itemResource.leafIdx"
12098
- monthViewItem
12099
- [editable]="editable"
12100
- [item]="item"
12101
- [index]="item.index"
12102
- [rangeIndex]="item.rangeIndex"
12103
- [eventTemplate]="eventTemplateRef"
12104
- [resources]="itemResource.resources"
12105
- [resourceIndex]="itemResource.leafIdx">
12106
- </div>
12107
- </ng-container>
12108
- <kendo-hint-container #hintContainer>
12109
- <ng-template>
12110
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
12111
- class="k-event-drag-hint"
12112
- monthViewItem
12113
- [ngStyle]="hint.style"
12114
- [ngClass]="hint.class"
12115
- [dragHint]="true"
12116
- [eventTemplate]="eventTemplateRef"
12117
- [item]="hint.item"
12118
- [resources]="hint.resources">
12044
+ <table class="k-scheduler-layout k-scheduler-monthview">
12045
+ <tbody>
12046
+ <tr class="k-scheduler-head">
12047
+ <td *ngIf="verticalResources.length">
12048
+ <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
12049
+ <table class="k-scheduler-table" aria-hidden="true">
12050
+ <tbody>
12051
+ <tr>
12052
+ <th class="k-scheduler-cell k-heading-cell"></th>
12053
+ </tr>
12054
+ </tbody>
12055
+ </table>
12056
+ </div>
12057
+ </td>
12058
+ <td>
12059
+ <div class="k-scheduler-header" #header>
12060
+ <div class="k-scheduler-header-wrap" #headerWrap>
12061
+ <!-- Days of the weeks titles -->
12062
+ <table class="k-scheduler-table" aria-hidden="true">
12063
+ <tbody>
12064
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
12065
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
12066
+ class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
12067
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
12068
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
12069
+ </th>
12070
+ </tr>
12071
+ <tr>
12072
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
12073
+ <th *ngFor="let day of weeks[0]; trackBy: itemIndex" class="k-scheduler-cell k-heading-cell">
12074
+ {{ day | kendoDate: 'EEEE' }}
12075
+ </th>
12076
+ </ng-container>
12077
+ </tr>
12078
+ </tbody>
12079
+ </table>
12119
12080
  </div>
12081
+ </div>
12082
+ </td>
12083
+ </tr>
12084
+ <tr class="k-scheduler-body">
12085
+ <td *ngIf="verticalResources.length">
12086
+ <div class="k-scheduler-times k-scheduler-resources" #times>
12087
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
12088
+ <tbody>
12089
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
12090
+ <tr>
12091
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
12092
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-heading-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
12093
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
12094
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
12095
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
12096
+ </th>
12097
+ </ng-container>
12098
+ <th class="k-slot-cell k-heading-cell k-empty-slot">
12099
+ </th>
12100
+ </tr>
12101
+ <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
12102
+ <th class="k-slot-cell k-heading-cell k-empty-slot"></th>
12103
+ </tr>
12104
+ </ng-container>
12105
+ </tbody>
12106
+ </table>
12107
+ </div>
12108
+ </td>
12109
+ <td>
12110
+ <div
12111
+ class="k-scheduler-content"
12112
+ tabindex="0"
12113
+ #content
12114
+ role="group"
12115
+ [attr.aria-owns]="matchOwned(items | async)"
12116
+ [style.overflowY]="'auto'">
12117
+ <!-- Main content -->
12118
+ <table class="k-scheduler-table" #contentTable role="presentation">
12119
+ <tbody>
12120
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
12121
+ <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
12122
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
12123
+ <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
12124
+ [monthSlot]="day"
12125
+ [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
12126
+ [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
12127
+ [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
12128
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
12129
+ [title]="cellTitle(day)"
12130
+ [class.k-selected]="isSlotSelected({
12131
+ start: toPlainDate(day),
12132
+ end: addDay(toPlainDate(day)),
12133
+ isAllDay: true,
12134
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
12135
+ })"
12136
+ class="k-scheduler-cell"
12137
+ [ngClass]="{'k-other-month': isDayInPreviousMonth(day) || isDayInNextMonth(day)}"
12138
+ >
12139
+ </td>
12140
+ </ng-container>
12141
+ </tr>
12142
+ </ng-container>
12143
+ </tbody>
12144
+ </table>
12145
+ <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
12146
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
12147
+ [ngClass]="getEventClasses(item, itemResource.resources)"
12148
+ [ngStyle]="getEventStyles(item, itemResource)"
12149
+ role="button"
12150
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
12151
+ [id]="item.elementId + '_' + itemResource.leafIdx"
12152
+ monthViewItem
12153
+ [editable]="editable"
12154
+ [item]="item"
12155
+ [index]="item.index"
12156
+ [rangeIndex]="item.rangeIndex"
12157
+ [eventTemplate]="eventTemplateRef"
12158
+ [resources]="itemResource.resources"
12159
+ [resourceIndex]="itemResource.leafIdx">
12160
+ </div>
12161
+ </ng-container>
12162
+ <kendo-hint-container #hintContainer>
12163
+ <ng-template>
12164
+ <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
12165
+ class="k-event-drag-hint"
12166
+ monthViewItem
12167
+ [ngStyle]="hint.style"
12168
+ [ngClass]="hint.class"
12169
+ [dragHint]="true"
12170
+ [eventTemplate]="eventTemplateRef"
12171
+ [item]="hint.item"
12172
+ [resources]="hint.resources">
12173
+ </div>
12120
12174
 
12121
- <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
12122
- kendoResizeHint
12123
- [hint]="hint"
12124
- [ngClass]="hint.class"
12125
- [format]="resizeHintFormat">
12126
- </div>
12127
- </ng-template>
12128
- </kendo-hint-container>
12129
- </div>
12130
- </div>
12131
- </div>
12175
+ <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
12176
+ kendoResizeHint
12177
+ [hint]="hint"
12178
+ [ngClass]="hint.class"
12179
+ [format]="resizeHintFormat">
12180
+ </div>
12181
+ </ng-template>
12182
+ </kendo-hint-container>
12183
+ </div>
12184
+ </td>
12185
+ </tr>
12186
+ </tbody>
12187
+ </table>
12132
12188
  `
12133
12189
  }]
12134
12190
  }], ctorParameters: function () { return [{ type: ViewContextService }, { type: ViewStateService }, { type: i1$3.IntlService }, { type: MonthSlotService }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: PDFService }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i7.ScrollbarWidthService }]; }, propDecorators: { monthDaySlotTemplate: [{
@@ -14309,73 +14365,226 @@ MultiDayViewRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.
14309
14365
  MultiDayViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MultiDayViewRendererComponent, selector: "multi-day-view", inputs: { allDaySlot: "allDaySlot", name: "name", slotFill: "slotFill", allDaySlotTemplate: "allDaySlotTemplate", allDayEventTemplate: "allDayEventTemplate" }, providers: [
14310
14366
  DayTimeSlotService
14311
14367
  ], viewQueries: [{ propertyName: "headerHintContainer", first: true, predicate: ["headerHintContainer"], descendants: true }, { propertyName: "dayCells", predicate: ["allDayCell"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
14312
- <div class="k-scheduler-layout k-scheduler-flex-layout" role="presentation" [ngClass]="classNames">
14313
- <div class="k-scheduler-pane">
14314
- <div class="k-scheduler-times" #timesHeader>
14315
- <table class="k-scheduler-table" aria-hidden="true">
14316
- <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
14317
- <th></th>
14318
- </tr>
14319
- <tr>
14320
- <th [style.height]="'auto'"></th>
14321
- </tr>
14322
- <tr *ngIf="allDaySlot && !verticalResources.length">
14323
- <th class="k-scheduler-times-all-day" #allDayCell>{{ allDayMessage }}</th>
14324
- </tr>
14325
- </table>
14326
- </div>
14327
- <div class="k-scheduler-header k-state-default" #header>
14328
- <div class="k-scheduler-header-wrap" #headerWrap>
14329
- <table class="k-scheduler-table" aria-hidden="true">
14330
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
14331
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
14332
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14333
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
14334
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
14335
- </th>
14336
- </tr>
14337
- <tr>
14338
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
14339
- <th *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex">
14340
- <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
14341
- <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14342
- </th>
14343
- </ng-container>
14344
- </tr>
14345
- </table>
14346
- <div [style.position]="'relative'" *ngIf="allDaySlot && !verticalResources.length">
14347
- <table class="k-scheduler-table k-scheduler-header-all-day k-user-select-none" aria-hidden="true">
14348
- <tr>
14349
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
14350
- <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14351
- daySlot
14352
- [start]="slot.start"
14353
- [end]="slot.end"
14354
- [id]="{ resourceIndex: resourceIndex, rangeIndex: 0, index: index }"
14355
- [class.k-selected]="isSlotSelected({
14356
- start: toPlainDate(slot.start),
14357
- end: toPlainDate(slot.end),
14358
- isAllDay: true,
14359
- resources: resourcesByIndex(resourceIndex)
14360
- })"
14361
- [ngClass]="allDaySlotClass(slot, resourceIndex)">
14362
- <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14363
- [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(resourceIndex) }"></ng-container>
14364
- </td>
14368
+ <table class="k-scheduler-layout" role="presentation" [ngClass]="classNames">
14369
+ <tbody>
14370
+ <tr class="k-scheduler-head">
14371
+ <td>
14372
+ <div class="k-scheduler-times" #timesHeader>
14373
+ <table class="k-scheduler-table" aria-hidden="true">
14374
+ <tbody>
14375
+ <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
14376
+ <th class="k-scheduler-cell k-heading-cell"></th>
14377
+ </tr>
14378
+ <tr [style.height]="'auto'">
14379
+ <th class="k-scheduler-cell k-heading-cell"></th>
14380
+ </tr>
14381
+ <tr *ngIf="allDaySlot && !verticalResources.length">
14382
+ <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
14383
+ </tr>
14384
+ </tbody>
14385
+ </table>
14386
+ </div>
14387
+ </td>
14388
+ <td>
14389
+ <div class="k-scheduler-header" #header>
14390
+ <div class="k-scheduler-header-wrap" #headerWrap>
14391
+ <table class="k-scheduler-table" aria-hidden="true">
14392
+ <tbody>
14393
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
14394
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
14395
+ class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14396
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
14397
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
14398
+ </th>
14399
+ </tr>
14400
+ <tr class="k-scheduler-date-group">
14401
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
14402
+ <th *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex" class="k-scheduler-cell k-heading-cell">
14403
+ <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
14404
+ <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14405
+ </th>
14406
+ </ng-container>
14407
+ </tr>
14408
+ </tbody>
14409
+ </table>
14410
+ <div [style.position]="'relative'" *ngIf="allDaySlot && !verticalResources.length">
14411
+ <table class="k-scheduler-table k-scheduler-header-all-day" aria-hidden="true">
14412
+ <tbody>
14413
+ <tr>
14414
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
14415
+ <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14416
+ daySlot
14417
+ [start]="slot.start"
14418
+ [end]="slot.end"
14419
+ [id]="{ resourceIndex: resourceIndex, rangeIndex: 0, index: index }"
14420
+ [class.k-selected]="isSlotSelected({
14421
+ start: toPlainDate(slot.start),
14422
+ end: toPlainDate(slot.end),
14423
+ isAllDay: true,
14424
+ resources: resourcesByIndex(resourceIndex)
14425
+ })"
14426
+ [ngClass]="allDaySlotClass(slot, resourceIndex)"
14427
+ class="k-scheduler-cell">
14428
+ <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14429
+ [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(resourceIndex) }"></ng-container>
14430
+ </td>
14431
+ </ng-container>
14432
+ </tr>
14433
+ </tbody>
14434
+ </table>
14435
+ <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14436
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14437
+ [ngClass]="getEventClasses(item, itemResource.resources, true)"
14438
+ [ngStyle]="getEventStyles(item, itemResource, true)"
14439
+ role="button"
14440
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14441
+ [id]="item.elementId + '_' + itemResource.leafIdx"
14442
+ dayTimeViewItem
14443
+ [isAllDay]="true"
14444
+ [editable]="editable"
14445
+ [eventTemplate]="allDayEventTemplateRef"
14446
+ [item]="item"
14447
+ [index]="item.index"
14448
+ [rangeIndex]="item.rangeIndex"
14449
+ [resources]="itemResource.resources"
14450
+ [resourceIndex]="itemResource.leafIdx">
14451
+ </div>
14452
+ </ng-container>
14453
+ <kendo-hint-container #headerHintContainer>
14454
+ <ng-template>
14455
+ <div *ngIf="dragHints.length && allDayDragHint"
14456
+ class="k-event-drag-hint"
14457
+ dayTimeViewItem
14458
+ [isAllDay]="true"
14459
+ [ngStyle]="dragHints[0].style"
14460
+ [ngClass]="dragHints[0].class"
14461
+ [dragHint]="true"
14462
+ [eventTemplate]="eventTemplateRef"
14463
+ [item]="dragHints[0].item"
14464
+ [resources]="dragHints[0].resources">
14465
+ </div>
14466
+
14467
+ <div *ngIf="resizeHints.length && allDayResizeHint"
14468
+ kendoResizeHint
14469
+ [hint]="resizeHints[0]"
14470
+ [ngClass]="resizeHints[0].class"
14471
+ [format]="allDayResizeHintFormat">
14472
+ </div>
14473
+ </ng-template>
14474
+ </kendo-hint-container>
14475
+ </div>
14476
+ </div>
14477
+ </div>
14478
+ </td>
14479
+ </tr>
14480
+ <tr class="k-scheduler-body">
14481
+ <td>
14482
+ <div class="k-scheduler-times" #times>
14483
+ <ng-container *ngIf="showCurrentTime">
14484
+ <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14485
+ #currentTimeArrow class="k-current-time k-current-time-arrow-right">
14486
+ </div>
14487
+ </ng-container>
14488
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
14489
+ <tbody>
14490
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
14491
+ <tr *ngIf="verticalResources.length">
14492
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
14493
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell k-heading-cell">
14494
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
14495
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
14496
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
14497
+ </th>
14498
+ </ng-container>
14499
+ <th *ngIf="allDaySlot" class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
14500
+ </tr>
14501
+ <tr *ngFor="let slot of timeSlots; let timeSlotIndex = index;trackBy: itemIndex">
14502
+ <th *ngIf="slot.isMajor" [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell k-heading-cell">
14503
+ <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ slot.start | kendoDate: 't' }}</ng-container>
14504
+ <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14505
+ </th>
14506
+ <th *ngIf="!slot.isMajor" [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell k-heading-cell">
14507
+ <ng-container *ngIf="minorTimeHeaderTemplateRef" [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
14508
+ </ng-container>
14509
+ </th>
14510
+ </tr>
14511
+ </ng-container>
14512
+ </tbody>
14513
+ </table>
14514
+ </div>
14515
+ </td>
14516
+ <td>
14517
+ <div
14518
+ class="k-scheduler-content"
14519
+ #content
14520
+ role="group"
14521
+ tabindex="0"
14522
+ [attr.aria-owns]="matchOwned(items | async)">
14523
+ <ng-container *ngIf="showCurrentTime">
14524
+ <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14525
+ #currentTimeMarker class="k-current-time">
14526
+ </div>
14527
+ </ng-container>
14528
+ <table class="k-scheduler-table" #contentTable role="presentation">
14529
+ <tbody>
14530
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
14531
+ <tr class="k-scheduler-header-all-day" *ngIf="allDaySlot && verticalResources.length">
14532
+ <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14533
+ daySlot
14534
+ [start]="slot.start"
14535
+ [end]="slot.end"
14536
+ [class.k-selected]="isSlotSelected({
14537
+ start: toPlainDate(slot.start),
14538
+ end: toPlainDate(slot.end),
14539
+ isAllDay: true,
14540
+ resources: resourcesByIndex(verticalIndex)
14541
+ })"
14542
+ [id]="{ resourceIndex: verticalIndex, rangeIndex: 0, index: index }">
14543
+ <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14544
+ [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(verticalIndex) }"></ng-container>
14545
+ </td>
14546
+ </tr>
14547
+ <tr *ngFor="let slot of timeSlots; index as index; trackBy: itemIndex" [class.k-middle-row]="isMiddleSlot(index)">
14548
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
14549
+ <td *ngFor="let daySlot of daySlots; index as rangeIndex; trackBy: itemIndex"
14550
+ [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
14551
+ timeSlot #timeSlot="timeSlot"
14552
+ [date]="daySlot.start"
14553
+ [invariantStart]="slot.start"
14554
+ [invariantEnd]="slot.end"
14555
+ [workDayStart]="workDayStartTime"
14556
+ [workDayEnd]="workDayEndTime"
14557
+ [workWeekStart]="workWeekStart"
14558
+ [workWeekEnd]="workWeekEnd"
14559
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
14560
+ [class.k-selected]="isSlotSelected({
14561
+ start: toPlainDateTime(daySlot.start, slot.start),
14562
+ end: toPlainDateTime(daySlot.start, slot.end),
14563
+ isAllDay: false,
14564
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
14565
+ })"
14566
+ class="k-scheduler-cell"
14567
+ >
14568
+ <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
14569
+ [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex) }">
14570
+ </ng-container>
14571
+ </td>
14572
+ </ng-container>
14573
+ </tr>
14365
14574
  </ng-container>
14366
- </tr>
14575
+ </tbody>
14367
14576
  </table>
14368
- <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14577
+ <ng-container *ngFor="let item of items | async; trackBy: itemIndex;">
14369
14578
  <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14370
- [ngClass]="getEventClasses(item, itemResource.resources, true)"
14371
- [ngStyle]="getEventStyles(item, itemResource, true)"
14579
+ [ngClass]="getEventClasses(item, itemResource.resources)"
14580
+ [ngStyle]="getEventStyles(item, itemResource)"
14372
14581
  role="button"
14373
14582
  [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14374
14583
  [id]="item.elementId + '_' + itemResource.leafIdx"
14375
- dayTimeViewItem
14376
- [isAllDay]="true"
14584
+ dayTimeViewItem
14377
14585
  [editable]="editable"
14378
- [eventTemplate]="allDayEventTemplateRef"
14586
+ [vertical]="true"
14587
+ [eventTemplate]="eventTemplateRef"
14379
14588
  [item]="item"
14380
14589
  [index]="item.index"
14381
14590
  [rangeIndex]="item.rangeIndex"
@@ -14383,187 +14592,56 @@ MultiDayViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
14383
14592
  [resourceIndex]="itemResource.leafIdx">
14384
14593
  </div>
14385
14594
  </ng-container>
14386
- <kendo-hint-container #headerHintContainer>
14595
+ <ng-container *ngIf="verticalResources.length">
14596
+ <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14597
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14598
+ [ngClass]="getEventClasses(item, itemResource.resources, true)"
14599
+ [ngStyle]="getEventStyles(item, itemResource, true)"
14600
+ role="button"
14601
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14602
+ [id]="item.elementId + '_' + itemResource.leafIdx"
14603
+ dayTimeViewItem
14604
+ [isAllDay]="true"
14605
+ [editable]="editable"
14606
+ [eventTemplate]="allDayEventTemplateRef"
14607
+ [item]="item"
14608
+ [index]="item.index"
14609
+ [rangeIndex]="item.rangeIndex"
14610
+ [resources]="itemResource.resources"
14611
+ [resourceIndex]="itemResource.leafIdx">
14612
+ </div>
14613
+ </ng-container>
14614
+ </ng-container>
14615
+ <kendo-hint-container #hintContainer>
14387
14616
  <ng-template>
14388
- <div *ngIf="dragHints.length && allDayDragHint"
14617
+ <div *ngIf="dragHints.length && (!allDayDragHint || verticalResources.length)"
14389
14618
  class="k-event-drag-hint"
14619
+ role="button"
14390
14620
  dayTimeViewItem
14391
- [isAllDay]="true"
14621
+ [isAllDay]="allDayDragHint"
14392
14622
  [ngStyle]="dragHints[0].style"
14393
14623
  [ngClass]="dragHints[0].class"
14394
14624
  [dragHint]="true"
14395
14625
  [eventTemplate]="eventTemplateRef"
14396
- [item]="dragHints[0].item"
14397
- [resources]="dragHints[0].resources">
14626
+ [resources]="dragHints[0].resources"
14627
+ [item]="dragHints[0].item">
14398
14628
  </div>
14399
14629
 
14400
- <div *ngIf="resizeHints.length && allDayResizeHint"
14401
- kendoResizeHint
14402
- [hint]="resizeHints[0]"
14403
- [ngClass]="resizeHints[0].class"
14404
- [format]="allDayResizeHintFormat">
14405
- </div>
14630
+ <ng-container *ngIf="resizeHints.length && (!allDayResizeHint || verticalResources.length)">
14631
+ <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
14632
+ kendoResizeHint
14633
+ [hint]="hint"
14634
+ [ngClass]="hint.class"
14635
+ [format]="allDayResizeHint ? allDayResizeHintFormat : resizeHintFormat">
14636
+ </div>
14637
+ </ng-container>
14406
14638
  </ng-template>
14407
14639
  </kendo-hint-container>
14408
14640
  </div>
14409
- </div>
14410
- </div>
14411
- </div>
14412
- <div class="k-scheduler-pane">
14413
- <div class="k-scheduler-times" #times>
14414
- <ng-container *ngIf="showCurrentTime">
14415
- <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14416
- #currentTimeArrow class="k-current-time k-current-time-arrow-right">
14417
- </div>
14418
- </ng-container>
14419
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
14420
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
14421
- <tr *ngIf="verticalResources.length">
14422
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
14423
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell">
14424
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
14425
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
14426
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
14427
- </th>
14428
- </ng-container>
14429
- <th *ngIf="allDaySlot" class="k-scheduler-times-all-day" #allDayCell>{{ allDayMessage }}</th>
14430
- </tr>
14431
- <tr *ngFor="let slot of timeSlots; let timeSlotIndex = index;trackBy: itemIndex">
14432
- <th *ngIf="slot.isMajor" [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }">
14433
- <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ slot.start | kendoDate: 't' }}</ng-container>
14434
- <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14435
- </th>
14436
- <th *ngIf="!slot.isMajor" [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }">
14437
- <ng-container *ngIf="minorTimeHeaderTemplateRef" [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
14438
- </ng-container>
14439
- </th>
14440
- </tr>
14441
- </ng-container>
14442
- </table>
14443
- </div>
14444
- <div
14445
- class="k-scheduler-content k-user-select-none"
14446
- #content
14447
- role="group"
14448
- tabindex="0"
14449
- [attr.aria-owns]="matchOwned(items | async)">
14450
- <ng-container *ngIf="showCurrentTime">
14451
- <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14452
- #currentTimeMarker class="k-current-time">
14453
- </div>
14454
- </ng-container>
14455
- <table class="k-scheduler-table" #contentTable role="presentation">
14456
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
14457
- <tr class="k-scheduler-header-all-day" *ngIf="allDaySlot && verticalResources.length">
14458
- <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14459
- daySlot
14460
- [start]="slot.start"
14461
- [end]="slot.end"
14462
- [class.k-selected]="isSlotSelected({
14463
- start: toPlainDate(slot.start),
14464
- end: toPlainDate(slot.end),
14465
- isAllDay: true,
14466
- resources: resourcesByIndex(verticalIndex)
14467
- })"
14468
- [id]="{ resourceIndex: verticalIndex, rangeIndex: 0, index: index }">
14469
- <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14470
- [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(verticalIndex) }"></ng-container>
14471
- </td>
14472
- </tr>
14473
- <tr *ngFor="let slot of timeSlots; index as index; trackBy: itemIndex" [class.k-middle-row]="isMiddleSlot(index)">
14474
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
14475
- <td *ngFor="let daySlot of daySlots; index as rangeIndex; trackBy: itemIndex"
14476
- [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
14477
- timeSlot #timeSlot="timeSlot"
14478
- [date]="daySlot.start"
14479
- [invariantStart]="slot.start"
14480
- [invariantEnd]="slot.end"
14481
- [workDayStart]="workDayStartTime"
14482
- [workDayEnd]="workDayEndTime"
14483
- [workWeekStart]="workWeekStart"
14484
- [workWeekEnd]="workWeekEnd"
14485
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
14486
- [class.k-selected]="isSlotSelected({
14487
- start: toPlainDateTime(daySlot.start, slot.start),
14488
- end: toPlainDateTime(daySlot.start, slot.end),
14489
- isAllDay: false,
14490
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
14491
- })"
14492
- >
14493
- <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
14494
- [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex) }">
14495
- </ng-container>
14496
- </td>
14497
- </ng-container>
14498
- </tr>
14499
- </ng-container>
14500
- </table>
14501
- <ng-container *ngFor="let item of items | async; trackBy: itemIndex;">
14502
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14503
- [ngClass]="getEventClasses(item, itemResource.resources)"
14504
- [ngStyle]="getEventStyles(item, itemResource)"
14505
- role="button"
14506
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14507
- [id]="item.elementId + '_' + itemResource.leafIdx"
14508
- dayTimeViewItem
14509
- [editable]="editable"
14510
- [vertical]="true"
14511
- [eventTemplate]="eventTemplateRef"
14512
- [item]="item"
14513
- [index]="item.index"
14514
- [rangeIndex]="item.rangeIndex"
14515
- [resources]="itemResource.resources"
14516
- [resourceIndex]="itemResource.leafIdx">
14517
- </div>
14518
- </ng-container>
14519
- <ng-container *ngIf="verticalResources.length">
14520
- <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14521
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14522
- [ngClass]="getEventClasses(item, itemResource.resources, true)"
14523
- [ngStyle]="getEventStyles(item, itemResource, true)"
14524
- role="button"
14525
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14526
- [id]="item.elementId + '_' + itemResource.leafIdx"
14527
- dayTimeViewItem
14528
- [isAllDay]="true"
14529
- [editable]="editable"
14530
- [eventTemplate]="allDayEventTemplateRef"
14531
- [item]="item"
14532
- [index]="item.index"
14533
- [rangeIndex]="item.rangeIndex"
14534
- [resources]="itemResource.resources"
14535
- [resourceIndex]="itemResource.leafIdx">
14536
- </div>
14537
- </ng-container>
14538
- </ng-container>
14539
- <kendo-hint-container #hintContainer>
14540
- <ng-template>
14541
- <div *ngIf="dragHints.length && (!allDayDragHint || verticalResources.length)"
14542
- class="k-event-drag-hint"
14543
- role="button"
14544
- dayTimeViewItem
14545
- [isAllDay]="allDayDragHint"
14546
- [ngStyle]="dragHints[0].style"
14547
- [ngClass]="dragHints[0].class"
14548
- [dragHint]="true"
14549
- [eventTemplate]="eventTemplateRef"
14550
- [resources]="dragHints[0].resources"
14551
- [item]="dragHints[0].item">
14552
- </div>
14553
-
14554
- <ng-container *ngIf="resizeHints.length && (!allDayResizeHint || verticalResources.length)">
14555
- <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
14556
- kendoResizeHint
14557
- [hint]="hint"
14558
- [ngClass]="hint.class"
14559
- [format]="allDayResizeHint ? allDayResizeHintFormat : resizeHintFormat">
14560
- </div>
14561
- </ng-container>
14562
- </ng-template>
14563
- </kendo-hint-container>
14564
- </div>
14565
- </div>
14566
- </div>
14641
+ </td>
14642
+ </tr>
14643
+ </tbody>
14644
+ </table>
14567
14645
  `, isInline: true, dependencies: [{ kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "directive", type: TimeSlotDirective, selector: "[timeSlot]", inputs: ["invariantStart", "invariantEnd", "workDayStart", "workDayEnd", "workWeekStart", "workWeekEnd", "date"], exportAs: ["timeSlot"] }, { kind: "directive", type: DaySlotDirective, selector: "[daySlot]", inputs: ["start", "end"] }, { kind: "component", type: DayTimeViewItemComponent, selector: "[dayTimeViewItem]", inputs: ["vertical", "isAllDay"] }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: i1$3.DatePipe, name: "kendoDate" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }] });
14568
14646
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MultiDayViewRendererComponent, decorators: [{
14569
14647
  type: Component,
@@ -14574,73 +14652,226 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
14574
14652
  DayTimeSlotService
14575
14653
  ],
14576
14654
  template: `
14577
- <div class="k-scheduler-layout k-scheduler-flex-layout" role="presentation" [ngClass]="classNames">
14578
- <div class="k-scheduler-pane">
14579
- <div class="k-scheduler-times" #timesHeader>
14580
- <table class="k-scheduler-table" aria-hidden="true">
14581
- <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
14582
- <th></th>
14583
- </tr>
14584
- <tr>
14585
- <th [style.height]="'auto'"></th>
14586
- </tr>
14587
- <tr *ngIf="allDaySlot && !verticalResources.length">
14588
- <th class="k-scheduler-times-all-day" #allDayCell>{{ allDayMessage }}</th>
14589
- </tr>
14590
- </table>
14591
- </div>
14592
- <div class="k-scheduler-header k-state-default" #header>
14593
- <div class="k-scheduler-header-wrap" #headerWrap>
14594
- <table class="k-scheduler-table" aria-hidden="true">
14595
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
14596
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
14597
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14598
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
14599
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
14600
- </th>
14601
- </tr>
14602
- <tr>
14603
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
14604
- <th *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex">
14605
- <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
14606
- <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14607
- </th>
14608
- </ng-container>
14609
- </tr>
14610
- </table>
14611
- <div [style.position]="'relative'" *ngIf="allDaySlot && !verticalResources.length">
14612
- <table class="k-scheduler-table k-scheduler-header-all-day k-user-select-none" aria-hidden="true">
14613
- <tr>
14614
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
14615
- <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14616
- daySlot
14617
- [start]="slot.start"
14618
- [end]="slot.end"
14619
- [id]="{ resourceIndex: resourceIndex, rangeIndex: 0, index: index }"
14620
- [class.k-selected]="isSlotSelected({
14621
- start: toPlainDate(slot.start),
14622
- end: toPlainDate(slot.end),
14623
- isAllDay: true,
14624
- resources: resourcesByIndex(resourceIndex)
14625
- })"
14626
- [ngClass]="allDaySlotClass(slot, resourceIndex)">
14627
- <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14628
- [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(resourceIndex) }"></ng-container>
14629
- </td>
14655
+ <table class="k-scheduler-layout" role="presentation" [ngClass]="classNames">
14656
+ <tbody>
14657
+ <tr class="k-scheduler-head">
14658
+ <td>
14659
+ <div class="k-scheduler-times" #timesHeader>
14660
+ <table class="k-scheduler-table" aria-hidden="true">
14661
+ <tbody>
14662
+ <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
14663
+ <th class="k-scheduler-cell k-heading-cell"></th>
14664
+ </tr>
14665
+ <tr [style.height]="'auto'">
14666
+ <th class="k-scheduler-cell k-heading-cell"></th>
14667
+ </tr>
14668
+ <tr *ngIf="allDaySlot && !verticalResources.length">
14669
+ <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
14670
+ </tr>
14671
+ </tbody>
14672
+ </table>
14673
+ </div>
14674
+ </td>
14675
+ <td>
14676
+ <div class="k-scheduler-header" #header>
14677
+ <div class="k-scheduler-header-wrap" #headerWrap>
14678
+ <table class="k-scheduler-table" aria-hidden="true">
14679
+ <tbody>
14680
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
14681
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
14682
+ class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14683
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
14684
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
14685
+ </th>
14686
+ </tr>
14687
+ <tr class="k-scheduler-date-group">
14688
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
14689
+ <th *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex" class="k-scheduler-cell k-heading-cell">
14690
+ <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
14691
+ <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14692
+ </th>
14693
+ </ng-container>
14694
+ </tr>
14695
+ </tbody>
14696
+ </table>
14697
+ <div [style.position]="'relative'" *ngIf="allDaySlot && !verticalResources.length">
14698
+ <table class="k-scheduler-table k-scheduler-header-all-day" aria-hidden="true">
14699
+ <tbody>
14700
+ <tr>
14701
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
14702
+ <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14703
+ daySlot
14704
+ [start]="slot.start"
14705
+ [end]="slot.end"
14706
+ [id]="{ resourceIndex: resourceIndex, rangeIndex: 0, index: index }"
14707
+ [class.k-selected]="isSlotSelected({
14708
+ start: toPlainDate(slot.start),
14709
+ end: toPlainDate(slot.end),
14710
+ isAllDay: true,
14711
+ resources: resourcesByIndex(resourceIndex)
14712
+ })"
14713
+ [ngClass]="allDaySlotClass(slot, resourceIndex)"
14714
+ class="k-scheduler-cell">
14715
+ <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14716
+ [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(resourceIndex) }"></ng-container>
14717
+ </td>
14718
+ </ng-container>
14719
+ </tr>
14720
+ </tbody>
14721
+ </table>
14722
+ <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14723
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14724
+ [ngClass]="getEventClasses(item, itemResource.resources, true)"
14725
+ [ngStyle]="getEventStyles(item, itemResource, true)"
14726
+ role="button"
14727
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14728
+ [id]="item.elementId + '_' + itemResource.leafIdx"
14729
+ dayTimeViewItem
14730
+ [isAllDay]="true"
14731
+ [editable]="editable"
14732
+ [eventTemplate]="allDayEventTemplateRef"
14733
+ [item]="item"
14734
+ [index]="item.index"
14735
+ [rangeIndex]="item.rangeIndex"
14736
+ [resources]="itemResource.resources"
14737
+ [resourceIndex]="itemResource.leafIdx">
14738
+ </div>
14630
14739
  </ng-container>
14631
- </tr>
14740
+ <kendo-hint-container #headerHintContainer>
14741
+ <ng-template>
14742
+ <div *ngIf="dragHints.length && allDayDragHint"
14743
+ class="k-event-drag-hint"
14744
+ dayTimeViewItem
14745
+ [isAllDay]="true"
14746
+ [ngStyle]="dragHints[0].style"
14747
+ [ngClass]="dragHints[0].class"
14748
+ [dragHint]="true"
14749
+ [eventTemplate]="eventTemplateRef"
14750
+ [item]="dragHints[0].item"
14751
+ [resources]="dragHints[0].resources">
14752
+ </div>
14753
+
14754
+ <div *ngIf="resizeHints.length && allDayResizeHint"
14755
+ kendoResizeHint
14756
+ [hint]="resizeHints[0]"
14757
+ [ngClass]="resizeHints[0].class"
14758
+ [format]="allDayResizeHintFormat">
14759
+ </div>
14760
+ </ng-template>
14761
+ </kendo-hint-container>
14762
+ </div>
14763
+ </div>
14764
+ </div>
14765
+ </td>
14766
+ </tr>
14767
+ <tr class="k-scheduler-body">
14768
+ <td>
14769
+ <div class="k-scheduler-times" #times>
14770
+ <ng-container *ngIf="showCurrentTime">
14771
+ <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14772
+ #currentTimeArrow class="k-current-time k-current-time-arrow-right">
14773
+ </div>
14774
+ </ng-container>
14775
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
14776
+ <tbody>
14777
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
14778
+ <tr *ngIf="verticalResources.length">
14779
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
14780
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell k-heading-cell">
14781
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
14782
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
14783
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
14784
+ </th>
14785
+ </ng-container>
14786
+ <th *ngIf="allDaySlot" class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
14787
+ </tr>
14788
+ <tr *ngFor="let slot of timeSlots; let timeSlotIndex = index;trackBy: itemIndex">
14789
+ <th *ngIf="slot.isMajor" [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell k-heading-cell">
14790
+ <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ slot.start | kendoDate: 't' }}</ng-container>
14791
+ <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14792
+ </th>
14793
+ <th *ngIf="!slot.isMajor" [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell k-heading-cell">
14794
+ <ng-container *ngIf="minorTimeHeaderTemplateRef" [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
14795
+ </ng-container>
14796
+ </th>
14797
+ </tr>
14798
+ </ng-container>
14799
+ </tbody>
14632
14800
  </table>
14633
- <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14801
+ </div>
14802
+ </td>
14803
+ <td>
14804
+ <div
14805
+ class="k-scheduler-content"
14806
+ #content
14807
+ role="group"
14808
+ tabindex="0"
14809
+ [attr.aria-owns]="matchOwned(items | async)">
14810
+ <ng-container *ngIf="showCurrentTime">
14811
+ <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14812
+ #currentTimeMarker class="k-current-time">
14813
+ </div>
14814
+ </ng-container>
14815
+ <table class="k-scheduler-table" #contentTable role="presentation">
14816
+ <tbody>
14817
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
14818
+ <tr class="k-scheduler-header-all-day" *ngIf="allDaySlot && verticalResources.length">
14819
+ <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14820
+ daySlot
14821
+ [start]="slot.start"
14822
+ [end]="slot.end"
14823
+ [class.k-selected]="isSlotSelected({
14824
+ start: toPlainDate(slot.start),
14825
+ end: toPlainDate(slot.end),
14826
+ isAllDay: true,
14827
+ resources: resourcesByIndex(verticalIndex)
14828
+ })"
14829
+ [id]="{ resourceIndex: verticalIndex, rangeIndex: 0, index: index }">
14830
+ <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14831
+ [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(verticalIndex) }"></ng-container>
14832
+ </td>
14833
+ </tr>
14834
+ <tr *ngFor="let slot of timeSlots; index as index; trackBy: itemIndex" [class.k-middle-row]="isMiddleSlot(index)">
14835
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
14836
+ <td *ngFor="let daySlot of daySlots; index as rangeIndex; trackBy: itemIndex"
14837
+ [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
14838
+ timeSlot #timeSlot="timeSlot"
14839
+ [date]="daySlot.start"
14840
+ [invariantStart]="slot.start"
14841
+ [invariantEnd]="slot.end"
14842
+ [workDayStart]="workDayStartTime"
14843
+ [workDayEnd]="workDayEndTime"
14844
+ [workWeekStart]="workWeekStart"
14845
+ [workWeekEnd]="workWeekEnd"
14846
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
14847
+ [class.k-selected]="isSlotSelected({
14848
+ start: toPlainDateTime(daySlot.start, slot.start),
14849
+ end: toPlainDateTime(daySlot.start, slot.end),
14850
+ isAllDay: false,
14851
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
14852
+ })"
14853
+ class="k-scheduler-cell"
14854
+ >
14855
+ <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
14856
+ [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex) }">
14857
+ </ng-container>
14858
+ </td>
14859
+ </ng-container>
14860
+ </tr>
14861
+ </ng-container>
14862
+ </tbody>
14863
+ </table>
14864
+ <ng-container *ngFor="let item of items | async; trackBy: itemIndex;">
14634
14865
  <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14635
- [ngClass]="getEventClasses(item, itemResource.resources, true)"
14636
- [ngStyle]="getEventStyles(item, itemResource, true)"
14866
+ [ngClass]="getEventClasses(item, itemResource.resources)"
14867
+ [ngStyle]="getEventStyles(item, itemResource)"
14637
14868
  role="button"
14638
14869
  [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14639
14870
  [id]="item.elementId + '_' + itemResource.leafIdx"
14640
- dayTimeViewItem
14641
- [isAllDay]="true"
14871
+ dayTimeViewItem
14642
14872
  [editable]="editable"
14643
- [eventTemplate]="allDayEventTemplateRef"
14873
+ [vertical]="true"
14874
+ [eventTemplate]="eventTemplateRef"
14644
14875
  [item]="item"
14645
14876
  [index]="item.index"
14646
14877
  [rangeIndex]="item.rangeIndex"
@@ -14648,187 +14879,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
14648
14879
  [resourceIndex]="itemResource.leafIdx">
14649
14880
  </div>
14650
14881
  </ng-container>
14651
- <kendo-hint-container #headerHintContainer>
14882
+ <ng-container *ngIf="verticalResources.length">
14883
+ <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14884
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14885
+ [ngClass]="getEventClasses(item, itemResource.resources, true)"
14886
+ [ngStyle]="getEventStyles(item, itemResource, true)"
14887
+ role="button"
14888
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14889
+ [id]="item.elementId + '_' + itemResource.leafIdx"
14890
+ dayTimeViewItem
14891
+ [isAllDay]="true"
14892
+ [editable]="editable"
14893
+ [eventTemplate]="allDayEventTemplateRef"
14894
+ [item]="item"
14895
+ [index]="item.index"
14896
+ [rangeIndex]="item.rangeIndex"
14897
+ [resources]="itemResource.resources"
14898
+ [resourceIndex]="itemResource.leafIdx">
14899
+ </div>
14900
+ </ng-container>
14901
+ </ng-container>
14902
+ <kendo-hint-container #hintContainer>
14652
14903
  <ng-template>
14653
- <div *ngIf="dragHints.length && allDayDragHint"
14904
+ <div *ngIf="dragHints.length && (!allDayDragHint || verticalResources.length)"
14654
14905
  class="k-event-drag-hint"
14906
+ role="button"
14655
14907
  dayTimeViewItem
14656
- [isAllDay]="true"
14908
+ [isAllDay]="allDayDragHint"
14657
14909
  [ngStyle]="dragHints[0].style"
14658
14910
  [ngClass]="dragHints[0].class"
14659
14911
  [dragHint]="true"
14660
14912
  [eventTemplate]="eventTemplateRef"
14661
- [item]="dragHints[0].item"
14662
- [resources]="dragHints[0].resources">
14913
+ [resources]="dragHints[0].resources"
14914
+ [item]="dragHints[0].item">
14663
14915
  </div>
14664
14916
 
14665
- <div *ngIf="resizeHints.length && allDayResizeHint"
14666
- kendoResizeHint
14667
- [hint]="resizeHints[0]"
14668
- [ngClass]="resizeHints[0].class"
14669
- [format]="allDayResizeHintFormat">
14670
- </div>
14917
+ <ng-container *ngIf="resizeHints.length && (!allDayResizeHint || verticalResources.length)">
14918
+ <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
14919
+ kendoResizeHint
14920
+ [hint]="hint"
14921
+ [ngClass]="hint.class"
14922
+ [format]="allDayResizeHint ? allDayResizeHintFormat : resizeHintFormat">
14923
+ </div>
14924
+ </ng-container>
14671
14925
  </ng-template>
14672
14926
  </kendo-hint-container>
14673
14927
  </div>
14674
- </div>
14675
- </div>
14676
- </div>
14677
- <div class="k-scheduler-pane">
14678
- <div class="k-scheduler-times" #times>
14679
- <ng-container *ngIf="showCurrentTime">
14680
- <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14681
- #currentTimeArrow class="k-current-time k-current-time-arrow-right">
14682
- </div>
14683
- </ng-container>
14684
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
14685
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
14686
- <tr *ngIf="verticalResources.length">
14687
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
14688
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell">
14689
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
14690
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
14691
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
14692
- </th>
14693
- </ng-container>
14694
- <th *ngIf="allDaySlot" class="k-scheduler-times-all-day" #allDayCell>{{ allDayMessage }}</th>
14695
- </tr>
14696
- <tr *ngFor="let slot of timeSlots; let timeSlotIndex = index;trackBy: itemIndex">
14697
- <th *ngIf="slot.isMajor" [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }">
14698
- <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ slot.start | kendoDate: 't' }}</ng-container>
14699
- <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14700
- </th>
14701
- <th *ngIf="!slot.isMajor" [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }">
14702
- <ng-container *ngIf="minorTimeHeaderTemplateRef" [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
14703
- </ng-container>
14704
- </th>
14705
- </tr>
14706
- </ng-container>
14707
- </table>
14708
- </div>
14709
- <div
14710
- class="k-scheduler-content k-user-select-none"
14711
- #content
14712
- role="group"
14713
- tabindex="0"
14714
- [attr.aria-owns]="matchOwned(items | async)">
14715
- <ng-container *ngIf="showCurrentTime">
14716
- <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14717
- #currentTimeMarker class="k-current-time">
14718
- </div>
14719
- </ng-container>
14720
- <table class="k-scheduler-table" #contentTable role="presentation">
14721
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
14722
- <tr class="k-scheduler-header-all-day" *ngIf="allDaySlot && verticalResources.length">
14723
- <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14724
- daySlot
14725
- [start]="slot.start"
14726
- [end]="slot.end"
14727
- [class.k-selected]="isSlotSelected({
14728
- start: toPlainDate(slot.start),
14729
- end: toPlainDate(slot.end),
14730
- isAllDay: true,
14731
- resources: resourcesByIndex(verticalIndex)
14732
- })"
14733
- [id]="{ resourceIndex: verticalIndex, rangeIndex: 0, index: index }">
14734
- <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14735
- [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(verticalIndex) }"></ng-container>
14736
- </td>
14737
- </tr>
14738
- <tr *ngFor="let slot of timeSlots; index as index; trackBy: itemIndex" [class.k-middle-row]="isMiddleSlot(index)">
14739
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
14740
- <td *ngFor="let daySlot of daySlots; index as rangeIndex; trackBy: itemIndex"
14741
- [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
14742
- timeSlot #timeSlot="timeSlot"
14743
- [date]="daySlot.start"
14744
- [invariantStart]="slot.start"
14745
- [invariantEnd]="slot.end"
14746
- [workDayStart]="workDayStartTime"
14747
- [workDayEnd]="workDayEndTime"
14748
- [workWeekStart]="workWeekStart"
14749
- [workWeekEnd]="workWeekEnd"
14750
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
14751
- [class.k-selected]="isSlotSelected({
14752
- start: toPlainDateTime(daySlot.start, slot.start),
14753
- end: toPlainDateTime(daySlot.start, slot.end),
14754
- isAllDay: false,
14755
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
14756
- })"
14757
- >
14758
- <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
14759
- [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex) }">
14760
- </ng-container>
14761
- </td>
14762
- </ng-container>
14763
- </tr>
14764
- </ng-container>
14765
- </table>
14766
- <ng-container *ngFor="let item of items | async; trackBy: itemIndex;">
14767
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14768
- [ngClass]="getEventClasses(item, itemResource.resources)"
14769
- [ngStyle]="getEventStyles(item, itemResource)"
14770
- role="button"
14771
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14772
- [id]="item.elementId + '_' + itemResource.leafIdx"
14773
- dayTimeViewItem
14774
- [editable]="editable"
14775
- [vertical]="true"
14776
- [eventTemplate]="eventTemplateRef"
14777
- [item]="item"
14778
- [index]="item.index"
14779
- [rangeIndex]="item.rangeIndex"
14780
- [resources]="itemResource.resources"
14781
- [resourceIndex]="itemResource.leafIdx">
14782
- </div>
14783
- </ng-container>
14784
- <ng-container *ngIf="verticalResources.length">
14785
- <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14786
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14787
- [ngClass]="getEventClasses(item, itemResource.resources, true)"
14788
- [ngStyle]="getEventStyles(item, itemResource, true)"
14789
- role="button"
14790
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14791
- [id]="item.elementId + '_' + itemResource.leafIdx"
14792
- dayTimeViewItem
14793
- [isAllDay]="true"
14794
- [editable]="editable"
14795
- [eventTemplate]="allDayEventTemplateRef"
14796
- [item]="item"
14797
- [index]="item.index"
14798
- [rangeIndex]="item.rangeIndex"
14799
- [resources]="itemResource.resources"
14800
- [resourceIndex]="itemResource.leafIdx">
14801
- </div>
14802
- </ng-container>
14803
- </ng-container>
14804
- <kendo-hint-container #hintContainer>
14805
- <ng-template>
14806
- <div *ngIf="dragHints.length && (!allDayDragHint || verticalResources.length)"
14807
- class="k-event-drag-hint"
14808
- role="button"
14809
- dayTimeViewItem
14810
- [isAllDay]="allDayDragHint"
14811
- [ngStyle]="dragHints[0].style"
14812
- [ngClass]="dragHints[0].class"
14813
- [dragHint]="true"
14814
- [eventTemplate]="eventTemplateRef"
14815
- [resources]="dragHints[0].resources"
14816
- [item]="dragHints[0].item">
14817
- </div>
14818
-
14819
- <ng-container *ngIf="resizeHints.length && (!allDayResizeHint || verticalResources.length)">
14820
- <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
14821
- kendoResizeHint
14822
- [hint]="hint"
14823
- [ngClass]="hint.class"
14824
- [format]="allDayResizeHint ? allDayResizeHintFormat : resizeHintFormat">
14825
- </div>
14826
- </ng-container>
14827
- </ng-template>
14828
- </kendo-hint-container>
14829
- </div>
14830
- </div>
14831
- </div>
14928
+ </td>
14929
+ </tr>
14930
+ </tbody>
14931
+ </table>
14832
14932
  `
14833
14933
  }]
14834
14934
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: ViewContextService }, { type: ViewStateService }, { type: i1$3.IntlService }, { type: DayTimeSlotService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: PDFService }, { type: i7.ScrollbarWidthService }]; }, propDecorators: { allDaySlot: [{
@@ -15550,6 +15650,11 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
15550
15650
  get classNames() {
15551
15651
  return `k-scheduler-${this.viewName}-view`;
15552
15652
  }
15653
+ get contentWidthPercentage() {
15654
+ const expectedWidth = this.columnWidth * this.slotsCount;
15655
+ const percentage = (expectedWidth / this.contentWidth) * 100;
15656
+ return Math.max(percentage, 100);
15657
+ }
15553
15658
  ngOnChanges(changes) {
15554
15659
  if (changes.columnWidth) {
15555
15660
  this.changes.next(null);
@@ -15560,6 +15665,8 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
15560
15665
  const slotService = this.slotService;
15561
15666
  this.updateContentHeight();
15562
15667
  slotService.containerSize = this.content.nativeElement.scrollWidth;
15668
+ this.contentWidth = this.content.nativeElement.getBoundingClientRect().width;
15669
+ this.cdr.detectChanges();
15563
15670
  const verticalResourceRows = this.verticalResources.length ? this.verticalResourceRows.toArray() : [];
15564
15671
  slotService.layoutTimeline(this.eventHeight, verticalResourceRows);
15565
15672
  if (verticalResourceRows.length) {
@@ -15604,6 +15711,9 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
15604
15711
  }
15605
15712
  return result;
15606
15713
  }
15714
+ handleScroll() {
15715
+ this.headerWrap.nativeElement.scrollLeft = this.content.nativeElement.scrollLeft;
15716
+ }
15607
15717
  createTasks(items, dateRange) {
15608
15718
  return createTasks$3(dateRange.start, dateRange.end, items);
15609
15719
  }
@@ -15635,178 +15745,196 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
15635
15745
  TimelineMultiDayViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMultiDayViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }, { token: i1$3.IntlService }, { token: DayTimeSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: PDFService }, { token: i7.ScrollbarWidthService }], target: i0.ɵɵFactoryTarget.Component });
15636
15746
  TimelineMultiDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimelineMultiDayViewComponent, selector: "timeline-multi-day-view", inputs: { name: "name", columnWidth: "columnWidth", viewName: "viewName" }, providers: [
15637
15747
  DayTimeSlotService
15638
- ], viewQueries: [{ propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
15639
- <div class="k-scheduler-layout k-scheduler-flex-layout" [ngClass]="classNames">
15640
- <div class="k-scheduler-pane">
15641
- <div class="k-scheduler-times" #timesHeader>
15642
- <table class="k-scheduler-table" aria-hidden="true">
15643
- <tr><th [style.height]="'auto'"></th></tr>
15644
- <tr><th class="k-slot-cell"></th></tr>
15645
- <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
15646
- <th></th>
15647
- </tr>
15648
- </table>
15649
- </div>
15650
- <div class="k-scheduler-header k-state-default" #header >
15651
- <div class="k-scheduler-header-wrap" #headerWrap>
15652
- <ng-container *ngIf="showCurrentTime">
15653
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15654
- #currentTimeArrow class="k-current-time k-current-time-arrow-down">
15655
- </div>
15656
- </ng-container>
15657
- <table class="k-scheduler-table" aria-hidden="true">
15658
- <colgroup>
15659
- <col *ngFor="let slotIndex of slotsCount | repeat; trackBy: itemIndex;" [ngStyle]="{ 'width.px': columnWidth }" />
15660
- </colgroup>
15661
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
15662
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
15663
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
15664
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
15665
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15666
- [ngTemplateOutletContext]="{ resource: item }"></ng-container>
15667
- </th>
15668
- </tr>
15669
- <tr>
15670
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
15671
- <ng-container *ngFor="let daySlot of daySlots; let index = index; trackBy: itemIndex;">
15672
- <th [attr.colspan]="timeSlots.length" class="k-slot-cell">
15673
- <span *ngIf="!dateHeaderTemplateRef" class="k-link" [ngClass]="{ 'k-nav-day': numberOfDays > 1 }" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
15674
- <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
15748
+ ], viewQueries: [{ propertyName: "headerTable", first: true, predicate: ["headerTable"], descendants: true }, { propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
15749
+ <table class="k-scheduler-layout" [ngClass]="classNames">
15750
+ <tbody>
15751
+ <tr class="k-scheduler-head">
15752
+ <td>
15753
+ <div class="k-scheduler-times" #timesHeader>
15754
+ <table class="k-scheduler-table" aria-hidden="true">
15755
+ <tbody>
15756
+ <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
15757
+ <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
15758
+ <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
15759
+ <th class="k-scheduler-cell k-heading-cell"></th>
15760
+ </tr>
15761
+ </tbody>
15762
+ </table>
15763
+ </div>
15764
+ </td>
15765
+ <td>
15766
+ <div class="k-scheduler-header" #header >
15767
+ <div class="k-scheduler-header-wrap" #headerWrap>
15768
+ <ng-container *ngIf="showCurrentTime">
15769
+ <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15770
+ #currentTimeArrow class="k-current-time k-current-time-arrow-down">
15771
+ </div>
15772
+ </ng-container>
15773
+ <table class="k-scheduler-table" #headerTable aria-hidden="true" [style.width.%]="contentWidthPercentage">
15774
+ <tbody>
15775
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
15776
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
15777
+ class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
15778
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
15779
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15780
+ [ngTemplateOutletContext]="{ resource: item }"></ng-container>
15675
15781
  </th>
15676
- </ng-container>
15677
- </ng-container>
15678
- </tr>
15679
- <tr>
15680
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
15681
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15682
- <ng-container *ngFor="let timeSlot of timeSlots; let index = index; trackBy: itemIndex;">
15683
- <th *ngIf="timeSlot.isMajor" [attr.colspan]="timeColspan(index)">
15684
- <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ timeSlot.start | kendoDate: 't' }}</ng-container>
15685
- <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
15686
- </th>
15687
- <th *ngIf="!timeSlot.isMajor && minorTimeHeaderTemplateRef" [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}">
15688
- <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
15782
+ </tr>
15783
+ <tr class="k-scheduler-date-group">
15784
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
15785
+ <ng-container *ngFor="let daySlot of daySlots; let index = index; trackBy: itemIndex;">
15786
+ <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
15787
+ <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
15788
+ <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
15789
+ </th>
15790
+ </ng-container>
15791
+ </ng-container>
15792
+ </tr>
15793
+ <tr>
15794
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
15795
+ <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15796
+ <ng-container *ngFor="let timeSlot of timeSlots; let index = index; trackBy: itemIndex;">
15797
+ <th *ngIf="timeSlot.isMajor" [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
15798
+ <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ timeSlot.start | kendoDate: 't' }}</ng-container>
15799
+ <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
15800
+ </th>
15801
+ <th
15802
+ *ngIf="!timeSlot.isMajor && minorTimeHeaderTemplateRef"
15803
+ [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
15804
+ class="k-scheduler-cell k-heading-cell"
15805
+ >
15806
+ <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
15807
+ </ng-container>
15808
+ </th>
15689
15809
  </ng-container>
15690
- </th>
15810
+ </ng-container>
15691
15811
  </ng-container>
15692
- </ng-container>
15693
- </ng-container>
15694
- </tr>
15695
- </table>
15812
+ </tr>
15813
+ </tbody>
15814
+ </table>
15815
+ </div>
15696
15816
  </div>
15697
- </div>
15698
- </div>
15699
- <div class="k-scheduler-pane">
15700
- <div class="k-scheduler-times" #times>
15701
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
15702
- <tr *ngIf="!verticalResources.length">
15703
- <th rowspan="1" #titleCell>
15704
- {{ allEventsMessage }}
15705
- </th>
15706
- </tr>
15707
- <ng-container *ngIf="verticalResources.length">
15708
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
15709
- <tr #verticalResourceRows>
15710
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
15711
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell">
15712
- <div>
15713
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
15714
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15715
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
15716
- </div>
15817
+ </td>
15818
+ </tr>
15819
+ <tr class="k-scheduler-body">
15820
+ <td>
15821
+ <div class="k-scheduler-times" #times>
15822
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
15823
+ <tbody>
15824
+ <tr *ngIf="!verticalResources.length">
15825
+ <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
15826
+ {{ allEventsMessage }}
15717
15827
  </th>
15828
+ </tr>
15829
+ <ng-container *ngIf="verticalResources.length">
15830
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
15831
+ <tr #verticalResourceRows>
15832
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
15833
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
15834
+ <div>
15835
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
15836
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15837
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
15838
+ </div>
15839
+ </th>
15840
+ </ng-container>
15841
+ </tr>
15842
+ </ng-container>
15718
15843
  </ng-container>
15719
- </tr>
15720
- </ng-container>
15721
- </ng-container>
15722
- </table>
15723
- </div>
15724
- <div
15725
- class="k-scheduler-content"
15726
- #content
15727
- role="group"
15728
- tabindex="0"
15729
- [attr.aria-owns]="matchOwned(items | async | sort)">
15730
- <ng-container *ngIf="showCurrentTime">
15731
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15732
- class="k-current-time" #currentTimeMarker>
15844
+ </tbody>
15845
+ </table>
15733
15846
  </div>
15734
- </ng-container>
15735
- <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
15736
- <colgroup>
15737
- <col *ngFor="let slotIndex of slotsCount | repeat; trackBy: itemIndex;" [ngStyle]="{ 'width.px': columnWidth }" />
15738
- </colgroup>
15739
- <tr *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
15740
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
15741
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15742
- <td *ngFor="let slot of timeSlots; let index = index; trackBy: itemIndex;"
15743
- [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
15744
- timeSlot #timeSlot="timeSlot"
15745
- [date]="daySlot.start"
15746
- [invariantStart]="slot.start"
15747
- [invariantEnd]="slot.end"
15748
- [workDayStart]="workDayStartTime"
15749
- [workDayEnd]="workDayEndTime"
15750
- [workWeekStart]="workWeekStart"
15751
- [workWeekEnd]="workWeekEnd"
15752
- selectableSlot
15753
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
15754
- [class.k-selected]="isSlotSelected({
15755
- start: toPlainDateTime(daySlot.start, slot.start),
15756
- end: toPlainDateTime(daySlot.start, slot.end),
15757
- isAllDay: false,
15758
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
15759
- })"
15760
- >
15761
- <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
15762
- [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
15847
+ </td>
15848
+ <td>
15849
+ <div
15850
+ class="k-scheduler-content"
15851
+ #content
15852
+ role="group"
15853
+ tabindex="0"
15854
+ (scroll)="handleScroll()"
15855
+ [attr.aria-owns]="matchOwned(items | async | sort)">
15856
+ <ng-container *ngIf="showCurrentTime">
15857
+ <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15858
+ class="k-current-time" #currentTimeMarker>
15859
+ </div>
15860
+ </ng-container>
15861
+ <table class="k-scheduler-table" #contentTable role="presentation" [style.width.%]="contentWidthPercentage">
15862
+ <tbody>
15863
+ <tr *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
15864
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
15865
+ <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15866
+ <td *ngFor="let slot of timeSlots; let index = index; trackBy: itemIndex;"
15867
+ [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
15868
+ timeSlot #timeSlot="timeSlot"
15869
+ [date]="daySlot.start"
15870
+ [invariantStart]="slot.start"
15871
+ [invariantEnd]="slot.end"
15872
+ [workDayStart]="workDayStartTime"
15873
+ [workDayEnd]="workDayEndTime"
15874
+ [workWeekStart]="workWeekStart"
15875
+ [workWeekEnd]="workWeekEnd"
15876
+ selectableSlot
15877
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
15878
+ [class.k-selected]="isSlotSelected({
15879
+ start: toPlainDateTime(daySlot.start, slot.start),
15880
+ end: toPlainDateTime(daySlot.start, slot.end),
15881
+ isAllDay: false,
15882
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
15883
+ })"
15884
+ class="k-scheduler-cell"
15885
+ >
15886
+ <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
15887
+ [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
15888
+ </ng-container>
15889
+ </td>
15890
+ </ng-container>
15763
15891
  </ng-container>
15764
- </td>
15765
- </ng-container>
15892
+ </tr>
15893
+ </tbody>
15894
+ </table>
15895
+ <ng-container *ngFor="let item of items | async | sort; trackBy: itemIndex;">
15896
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
15897
+ [ngClass]="getEventClasses(item, itemResource.resources)"
15898
+ [ngStyle]="getEventStyles(item, itemResource)"
15899
+ role="button"
15900
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
15901
+ [id]="item.elementId + '_' + itemResource.leafIdx"
15902
+ dayTimeViewItem
15903
+ [editable]="editable"
15904
+ [item]="item"
15905
+ [index]="item.index"
15906
+ [rangeIndex]="item.rangeIndex"
15907
+ [eventTemplate]="eventTemplateRef"
15908
+ [resources]="itemResource.resources"
15909
+ [resourceIndex]="itemResource.leafIdx">
15910
+ </div>
15766
15911
  </ng-container>
15767
- </tr>
15768
- </table>
15769
- <ng-container *ngFor="let item of items | async | sort; trackBy: itemIndex;">
15770
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
15771
- [ngClass]="getEventClasses(item, itemResource.resources)"
15772
- [ngStyle]="getEventStyles(item, itemResource)"
15773
- role="button"
15774
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
15775
- [id]="item.elementId + '_' + itemResource.leafIdx"
15776
- dayTimeViewItem
15777
- [editable]="editable"
15778
- [item]="item"
15779
- [index]="item.index"
15780
- [rangeIndex]="item.rangeIndex"
15781
- [eventTemplate]="eventTemplateRef"
15782
- [resources]="itemResource.resources"
15783
- [resourceIndex]="itemResource.leafIdx">
15912
+ <kendo-hint-container #hintContainer>
15913
+ <ng-template>
15914
+ <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
15915
+ class="k-event-drag-hint"
15916
+ dayTimeViewItem
15917
+ [ngStyle]="hint.style"
15918
+ [ngClass]="hint.class"
15919
+ [dragHint]="true"
15920
+ [eventTemplate]="eventTemplateRef"
15921
+ [item]="hint.item"
15922
+ [resources]="hint.resources">
15923
+ </div>
15924
+ <div *ngIf="resizeHints && resizeHints.length"
15925
+ kendoResizeHint
15926
+ [hint]="resizeHints[0]"
15927
+ [ngClass]="resizeHints[0].class"
15928
+ [format]="resizeHintFormat">
15929
+ </div>
15930
+ </ng-template>
15931
+ </kendo-hint-container>
15784
15932
  </div>
15785
- </ng-container>
15786
- <kendo-hint-container #hintContainer>
15787
- <ng-template>
15788
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
15789
- class="k-event-drag-hint"
15790
- dayTimeViewItem
15791
- [ngStyle]="hint.style"
15792
- [ngClass]="hint.class"
15793
- [dragHint]="true"
15794
- [eventTemplate]="eventTemplateRef"
15795
- [item]="hint.item"
15796
- [resources]="hint.resources">
15797
- </div>
15798
- <div *ngIf="resizeHints && resizeHints.length"
15799
- kendoResizeHint
15800
- [hint]="resizeHints[0]"
15801
- [ngClass]="resizeHints[0].class"
15802
- [format]="resizeHintFormat">
15803
- </div>
15804
- </ng-template>
15805
- </kendo-hint-container>
15806
- </div>
15807
- </div>
15808
- </div>
15809
- `, isInline: true, dependencies: [{ 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"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "pipe", type: RepeatPipe, name: "repeat" }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: i1$3.DatePipe, name: "kendoDate" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: SortPipe, name: "sort" }] });
15933
+ </td>
15934
+ </tr>
15935
+ </tbody>
15936
+ </table>
15937
+ `, isInline: true, dependencies: [{ 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"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: i1$3.DatePipe, name: "kendoDate" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: SortPipe, name: "sort" }] });
15810
15938
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMultiDayViewComponent, decorators: [{
15811
15939
  type: Component,
15812
15940
  args: [{
@@ -15816,176 +15944,194 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
15816
15944
  DayTimeSlotService
15817
15945
  ],
15818
15946
  template: `
15819
- <div class="k-scheduler-layout k-scheduler-flex-layout" [ngClass]="classNames">
15820
- <div class="k-scheduler-pane">
15821
- <div class="k-scheduler-times" #timesHeader>
15822
- <table class="k-scheduler-table" aria-hidden="true">
15823
- <tr><th [style.height]="'auto'"></th></tr>
15824
- <tr><th class="k-slot-cell"></th></tr>
15825
- <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
15826
- <th></th>
15827
- </tr>
15828
- </table>
15829
- </div>
15830
- <div class="k-scheduler-header k-state-default" #header >
15831
- <div class="k-scheduler-header-wrap" #headerWrap>
15832
- <ng-container *ngIf="showCurrentTime">
15833
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15834
- #currentTimeArrow class="k-current-time k-current-time-arrow-down">
15835
- </div>
15836
- </ng-container>
15837
- <table class="k-scheduler-table" aria-hidden="true">
15838
- <colgroup>
15839
- <col *ngFor="let slotIndex of slotsCount | repeat; trackBy: itemIndex;" [ngStyle]="{ 'width.px': columnWidth }" />
15840
- </colgroup>
15841
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
15842
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
15843
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
15844
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
15845
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15846
- [ngTemplateOutletContext]="{ resource: item }"></ng-container>
15847
- </th>
15848
- </tr>
15849
- <tr>
15850
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
15851
- <ng-container *ngFor="let daySlot of daySlots; let index = index; trackBy: itemIndex;">
15852
- <th [attr.colspan]="timeSlots.length" class="k-slot-cell">
15853
- <span *ngIf="!dateHeaderTemplateRef" class="k-link" [ngClass]="{ 'k-nav-day': numberOfDays > 1 }" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
15854
- <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
15947
+ <table class="k-scheduler-layout" [ngClass]="classNames">
15948
+ <tbody>
15949
+ <tr class="k-scheduler-head">
15950
+ <td>
15951
+ <div class="k-scheduler-times" #timesHeader>
15952
+ <table class="k-scheduler-table" aria-hidden="true">
15953
+ <tbody>
15954
+ <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
15955
+ <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
15956
+ <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
15957
+ <th class="k-scheduler-cell k-heading-cell"></th>
15958
+ </tr>
15959
+ </tbody>
15960
+ </table>
15961
+ </div>
15962
+ </td>
15963
+ <td>
15964
+ <div class="k-scheduler-header" #header >
15965
+ <div class="k-scheduler-header-wrap" #headerWrap>
15966
+ <ng-container *ngIf="showCurrentTime">
15967
+ <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15968
+ #currentTimeArrow class="k-current-time k-current-time-arrow-down">
15969
+ </div>
15970
+ </ng-container>
15971
+ <table class="k-scheduler-table" #headerTable aria-hidden="true" [style.width.%]="contentWidthPercentage">
15972
+ <tbody>
15973
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
15974
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
15975
+ class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
15976
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
15977
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15978
+ [ngTemplateOutletContext]="{ resource: item }"></ng-container>
15855
15979
  </th>
15856
- </ng-container>
15857
- </ng-container>
15858
- </tr>
15859
- <tr>
15860
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
15861
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15862
- <ng-container *ngFor="let timeSlot of timeSlots; let index = index; trackBy: itemIndex;">
15863
- <th *ngIf="timeSlot.isMajor" [attr.colspan]="timeColspan(index)">
15864
- <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ timeSlot.start | kendoDate: 't' }}</ng-container>
15865
- <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
15866
- </th>
15867
- <th *ngIf="!timeSlot.isMajor && minorTimeHeaderTemplateRef" [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}">
15868
- <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
15980
+ </tr>
15981
+ <tr class="k-scheduler-date-group">
15982
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
15983
+ <ng-container *ngFor="let daySlot of daySlots; let index = index; trackBy: itemIndex;">
15984
+ <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
15985
+ <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
15986
+ <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
15987
+ </th>
15988
+ </ng-container>
15989
+ </ng-container>
15990
+ </tr>
15991
+ <tr>
15992
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
15993
+ <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15994
+ <ng-container *ngFor="let timeSlot of timeSlots; let index = index; trackBy: itemIndex;">
15995
+ <th *ngIf="timeSlot.isMajor" [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
15996
+ <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ timeSlot.start | kendoDate: 't' }}</ng-container>
15997
+ <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
15998
+ </th>
15999
+ <th
16000
+ *ngIf="!timeSlot.isMajor && minorTimeHeaderTemplateRef"
16001
+ [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
16002
+ class="k-scheduler-cell k-heading-cell"
16003
+ >
16004
+ <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
16005
+ </ng-container>
16006
+ </th>
15869
16007
  </ng-container>
15870
- </th>
16008
+ </ng-container>
15871
16009
  </ng-container>
15872
- </ng-container>
15873
- </ng-container>
15874
- </tr>
15875
- </table>
16010
+ </tr>
16011
+ </tbody>
16012
+ </table>
16013
+ </div>
15876
16014
  </div>
15877
- </div>
15878
- </div>
15879
- <div class="k-scheduler-pane">
15880
- <div class="k-scheduler-times" #times>
15881
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
15882
- <tr *ngIf="!verticalResources.length">
15883
- <th rowspan="1" #titleCell>
15884
- {{ allEventsMessage }}
15885
- </th>
15886
- </tr>
15887
- <ng-container *ngIf="verticalResources.length">
15888
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
15889
- <tr #verticalResourceRows>
15890
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
15891
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell">
15892
- <div>
15893
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
15894
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15895
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
15896
- </div>
16015
+ </td>
16016
+ </tr>
16017
+ <tr class="k-scheduler-body">
16018
+ <td>
16019
+ <div class="k-scheduler-times" #times>
16020
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
16021
+ <tbody>
16022
+ <tr *ngIf="!verticalResources.length">
16023
+ <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
16024
+ {{ allEventsMessage }}
15897
16025
  </th>
16026
+ </tr>
16027
+ <ng-container *ngIf="verticalResources.length">
16028
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
16029
+ <tr #verticalResourceRows>
16030
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
16031
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
16032
+ <div>
16033
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
16034
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
16035
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
16036
+ </div>
16037
+ </th>
16038
+ </ng-container>
16039
+ </tr>
16040
+ </ng-container>
15898
16041
  </ng-container>
15899
- </tr>
15900
- </ng-container>
15901
- </ng-container>
15902
- </table>
15903
- </div>
15904
- <div
15905
- class="k-scheduler-content"
15906
- #content
15907
- role="group"
15908
- tabindex="0"
15909
- [attr.aria-owns]="matchOwned(items | async | sort)">
15910
- <ng-container *ngIf="showCurrentTime">
15911
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15912
- class="k-current-time" #currentTimeMarker>
16042
+ </tbody>
16043
+ </table>
15913
16044
  </div>
15914
- </ng-container>
15915
- <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
15916
- <colgroup>
15917
- <col *ngFor="let slotIndex of slotsCount | repeat; trackBy: itemIndex;" [ngStyle]="{ 'width.px': columnWidth }" />
15918
- </colgroup>
15919
- <tr *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
15920
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
15921
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15922
- <td *ngFor="let slot of timeSlots; let index = index; trackBy: itemIndex;"
15923
- [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
15924
- timeSlot #timeSlot="timeSlot"
15925
- [date]="daySlot.start"
15926
- [invariantStart]="slot.start"
15927
- [invariantEnd]="slot.end"
15928
- [workDayStart]="workDayStartTime"
15929
- [workDayEnd]="workDayEndTime"
15930
- [workWeekStart]="workWeekStart"
15931
- [workWeekEnd]="workWeekEnd"
15932
- selectableSlot
15933
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
15934
- [class.k-selected]="isSlotSelected({
15935
- start: toPlainDateTime(daySlot.start, slot.start),
15936
- end: toPlainDateTime(daySlot.start, slot.end),
15937
- isAllDay: false,
15938
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
15939
- })"
15940
- >
15941
- <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
15942
- [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
16045
+ </td>
16046
+ <td>
16047
+ <div
16048
+ class="k-scheduler-content"
16049
+ #content
16050
+ role="group"
16051
+ tabindex="0"
16052
+ (scroll)="handleScroll()"
16053
+ [attr.aria-owns]="matchOwned(items | async | sort)">
16054
+ <ng-container *ngIf="showCurrentTime">
16055
+ <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
16056
+ class="k-current-time" #currentTimeMarker>
16057
+ </div>
16058
+ </ng-container>
16059
+ <table class="k-scheduler-table" #contentTable role="presentation" [style.width.%]="contentWidthPercentage">
16060
+ <tbody>
16061
+ <tr *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
16062
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
16063
+ <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
16064
+ <td *ngFor="let slot of timeSlots; let index = index; trackBy: itemIndex;"
16065
+ [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
16066
+ timeSlot #timeSlot="timeSlot"
16067
+ [date]="daySlot.start"
16068
+ [invariantStart]="slot.start"
16069
+ [invariantEnd]="slot.end"
16070
+ [workDayStart]="workDayStartTime"
16071
+ [workDayEnd]="workDayEndTime"
16072
+ [workWeekStart]="workWeekStart"
16073
+ [workWeekEnd]="workWeekEnd"
16074
+ selectableSlot
16075
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
16076
+ [class.k-selected]="isSlotSelected({
16077
+ start: toPlainDateTime(daySlot.start, slot.start),
16078
+ end: toPlainDateTime(daySlot.start, slot.end),
16079
+ isAllDay: false,
16080
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
16081
+ })"
16082
+ class="k-scheduler-cell"
16083
+ >
16084
+ <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
16085
+ [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
16086
+ </ng-container>
16087
+ </td>
16088
+ </ng-container>
15943
16089
  </ng-container>
15944
- </td>
15945
- </ng-container>
16090
+ </tr>
16091
+ </tbody>
16092
+ </table>
16093
+ <ng-container *ngFor="let item of items | async | sort; trackBy: itemIndex;">
16094
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
16095
+ [ngClass]="getEventClasses(item, itemResource.resources)"
16096
+ [ngStyle]="getEventStyles(item, itemResource)"
16097
+ role="button"
16098
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
16099
+ [id]="item.elementId + '_' + itemResource.leafIdx"
16100
+ dayTimeViewItem
16101
+ [editable]="editable"
16102
+ [item]="item"
16103
+ [index]="item.index"
16104
+ [rangeIndex]="item.rangeIndex"
16105
+ [eventTemplate]="eventTemplateRef"
16106
+ [resources]="itemResource.resources"
16107
+ [resourceIndex]="itemResource.leafIdx">
16108
+ </div>
15946
16109
  </ng-container>
15947
- </tr>
15948
- </table>
15949
- <ng-container *ngFor="let item of items | async | sort; trackBy: itemIndex;">
15950
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
15951
- [ngClass]="getEventClasses(item, itemResource.resources)"
15952
- [ngStyle]="getEventStyles(item, itemResource)"
15953
- role="button"
15954
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
15955
- [id]="item.elementId + '_' + itemResource.leafIdx"
15956
- dayTimeViewItem
15957
- [editable]="editable"
15958
- [item]="item"
15959
- [index]="item.index"
15960
- [rangeIndex]="item.rangeIndex"
15961
- [eventTemplate]="eventTemplateRef"
15962
- [resources]="itemResource.resources"
15963
- [resourceIndex]="itemResource.leafIdx">
16110
+ <kendo-hint-container #hintContainer>
16111
+ <ng-template>
16112
+ <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
16113
+ class="k-event-drag-hint"
16114
+ dayTimeViewItem
16115
+ [ngStyle]="hint.style"
16116
+ [ngClass]="hint.class"
16117
+ [dragHint]="true"
16118
+ [eventTemplate]="eventTemplateRef"
16119
+ [item]="hint.item"
16120
+ [resources]="hint.resources">
16121
+ </div>
16122
+ <div *ngIf="resizeHints && resizeHints.length"
16123
+ kendoResizeHint
16124
+ [hint]="resizeHints[0]"
16125
+ [ngClass]="resizeHints[0].class"
16126
+ [format]="resizeHintFormat">
16127
+ </div>
16128
+ </ng-template>
16129
+ </kendo-hint-container>
15964
16130
  </div>
15965
- </ng-container>
15966
- <kendo-hint-container #hintContainer>
15967
- <ng-template>
15968
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
15969
- class="k-event-drag-hint"
15970
- dayTimeViewItem
15971
- [ngStyle]="hint.style"
15972
- [ngClass]="hint.class"
15973
- [dragHint]="true"
15974
- [eventTemplate]="eventTemplateRef"
15975
- [item]="hint.item"
15976
- [resources]="hint.resources">
15977
- </div>
15978
- <div *ngIf="resizeHints && resizeHints.length"
15979
- kendoResizeHint
15980
- [hint]="resizeHints[0]"
15981
- [ngClass]="resizeHints[0].class"
15982
- [format]="resizeHintFormat">
15983
- </div>
15984
- </ng-template>
15985
- </kendo-hint-container>
15986
- </div>
15987
- </div>
15988
- </div>
16131
+ </td>
16132
+ </tr>
16133
+ </tbody>
16134
+ </table>
15989
16135
  `
15990
16136
  }]
15991
16137
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }, { type: ViewStateService }, { type: i1$3.IntlService }, { type: DayTimeSlotService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: PDFService }, { type: i7.ScrollbarWidthService }]; }, propDecorators: { name: [{
@@ -15997,6 +16143,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
15997
16143
  }], verticalResourceRows: [{
15998
16144
  type: ViewChildren,
15999
16145
  args: ['verticalResourceRows']
16146
+ }], headerTable: [{
16147
+ type: ViewChild,
16148
+ args: ['headerTable']
16000
16149
  }] } });
16001
16150
 
16002
16151
  const COLUMN_WIDTH = 'columnWidth';
@@ -17667,7 +17816,7 @@ YearViewInternalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
17667
17816
  {{ localization.get('yearViewNoEvents') }}
17668
17817
  </div>
17669
17818
  </ng-template>
17670
- `, isInline: true, dependencies: [{ kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i5$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: i3.MonthCellTemplateDirective, selector: "[kendoCalendarMonthCellTemplate]" }, { kind: "component", type: i3.MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "directive", type: i12.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "tooltipContentClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }] });
17819
+ `, isInline: true, dependencies: [{ kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i5$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: i3.MonthCellTemplateDirective, selector: "[kendoCalendarMonthCellTemplate]" }, { kind: "component", type: i3.MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "size", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "directive", type: i12.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "tooltipContentClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }] });
17671
17820
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: YearViewInternalComponent, decorators: [{
17672
17821
  type: Component,
17673
17822
  args: [{
@@ -18469,7 +18618,7 @@ class PDFComponent {
18469
18618
  const container = this.container = createDiv();
18470
18619
  container.style.top = container.style.left = '-10000px';
18471
18620
  container.style.position = 'absolute';
18472
- const wrapper = createDiv('k-widget k-scheduler k-floatwrap');
18621
+ const wrapper = createDiv('k-scheduler');
18473
18622
  wrapper.style.position = 'relative';
18474
18623
  wrapper.appendChild(args.element);
18475
18624
  container.appendChild(wrapper);