@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
 
@@ -7159,7 +7159,7 @@ class SchedulerComponent {
7159
7159
  }
7160
7160
  }
7161
7161
  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 });
7162
- 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: [
7162
+ 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: [
7163
7163
  EditService,
7164
7164
  DialogsService,
7165
7165
  DomEventsService,
@@ -7867,17 +7867,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
7867
7867
  `
7868
7868
  }]
7869
7869
  }], 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: [{
7870
- type: HostBinding,
7871
- args: ['class.k-widget']
7872
- }, {
7873
7870
  type: HostBinding,
7874
7871
  args: ['class.k-scheduler']
7875
- }, {
7876
- type: HostBinding,
7877
- args: ['class.k-floatwrap']
7878
- }, {
7879
- type: HostBinding,
7880
- args: ['class.k-pos-relative']
7881
7872
  }], ariaRole: [{
7882
7873
  type: HostBinding,
7883
7874
  args: ['attr.role']
@@ -8692,16 +8683,16 @@ class AgendaHeaderComponent {
8692
8683
  }
8693
8684
  }
8694
8685
  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 });
8695
- 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: `
8686
+ 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: `
8696
8687
  <div class="k-scheduler-header-wrap">
8697
8688
  <table class="k-scheduler-table" role="none">
8698
8689
  <tbody role="rowgroup">
8699
8690
  <tr role="row">
8700
- <th *ngFor="let resource of resources" class="k-scheduler-groupcolumn" role="columnheader"></th>
8701
- <th class="k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
8702
- <th class="k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
8703
- <th role="columnheader">{{ eventMessage }}</th>
8704
- </tr>
8691
+ <th *ngFor="let resource of resources" class="k-scheduler-groupcolumn k-first" role="columnheader"></th>
8692
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
8693
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
8694
+ <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
8695
+ </tr>
8705
8696
  </tbody>
8706
8697
  </table>
8707
8698
  </div>
@@ -8717,11 +8708,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8717
8708
  <table class="k-scheduler-table" role="none">
8718
8709
  <tbody role="rowgroup">
8719
8710
  <tr role="row">
8720
- <th *ngFor="let resource of resources" class="k-scheduler-groupcolumn" role="columnheader"></th>
8721
- <th class="k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
8722
- <th class="k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
8723
- <th role="columnheader">{{ eventMessage }}</th>
8724
- </tr>
8711
+ <th *ngFor="let resource of resources" class="k-scheduler-groupcolumn k-first" role="columnheader"></th>
8712
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
8713
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
8714
+ <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
8715
+ </tr>
8725
8716
  </tbody>
8726
8717
  </table>
8727
8718
  </div>
@@ -8730,9 +8721,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8730
8721
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; }, propDecorators: { classes: [{
8731
8722
  type: HostBinding,
8732
8723
  args: ["class.k-scheduler-header"]
8733
- }, {
8734
- type: HostBinding,
8735
- args: ["class.k-state-default"]
8736
8724
  }], resources: [{
8737
8725
  type: Input
8738
8726
  }] } });
@@ -8744,6 +8732,10 @@ class AgendaHeaderItemComponent {
8744
8732
  constructor() {
8745
8733
  this.classes = true;
8746
8734
  this.roleAttribute = "rowheader";
8735
+ this.hasFirstClass = true;
8736
+ }
8737
+ get firstClass() {
8738
+ return this.hasFirstClass;
8747
8739
  }
8748
8740
  get rowSpan() {
8749
8741
  return this.item.rowSpan;
@@ -8753,7 +8745,7 @@ class AgendaHeaderItemComponent {
8753
8745
  }
8754
8746
  }
8755
8747
  AgendaHeaderItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AgendaHeaderItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8756
- 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: `
8748
+ 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: `
8757
8749
  <ng-container *ngIf="!agendaDateTemplate">
8758
8750
  <strong class="k-scheduler-agendaday">{{itemDate | kendoDate: 'dd'}}</strong>
8759
8751
  <em class="k-scheduler-agendaweek">{{itemDate | kendoDate: 'EEEE'}}</em>
@@ -8783,6 +8775,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8783
8775
  }], propDecorators: { classes: [{
8784
8776
  type: HostBinding,
8785
8777
  args: ["class.k-scheduler-datecolumn"]
8778
+ }, {
8779
+ type: HostBinding,
8780
+ args: ["class.k-scheduler-cell"]
8781
+ }], firstClass: [{
8782
+ type: HostBinding,
8783
+ args: ["class.k-first"]
8786
8784
  }], roleAttribute: [{
8787
8785
  type: HostBinding,
8788
8786
  args: ["attr.role"]
@@ -8794,6 +8792,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8794
8792
  args: ["kendoSchedulerAgendaHeaderItem"]
8795
8793
  }], agendaDateTemplate: [{
8796
8794
  type: Input
8795
+ }], hasFirstClass: [{
8796
+ type: Input
8797
8797
  }] } });
8798
8798
 
8799
8799
  /**
@@ -8806,6 +8806,7 @@ class AgendaTaskItemComponent {
8806
8806
  this.arrowRotateCWIcon = arrowRotateCwIcon;
8807
8807
  this.arrowsNoRepeatIcon = arrowsNoRepeatIcon;
8808
8808
  this.xIcon = xIcon;
8809
+ this.cellClass = true;
8809
8810
  }
8810
8811
  get eventTitle() {
8811
8812
  const start = toLocalDate(this.item.start);
@@ -8830,7 +8831,7 @@ class AgendaTaskItemComponent {
8830
8831
  }
8831
8832
  }
8832
8833
  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 });
8833
- 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: `
8834
+ 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: `
8834
8835
  <div class="k-task" [title]="item.title">
8835
8836
  <span class="k-scheduler-mark" *ngIf="eventColor" [style.background-color]="eventColor"></span>
8836
8837
  <kendo-icon-wrapper *ngIf="isRecurrence" name="arrow-rotate-cw" [svgIcon]="arrowRotateCWIcon"></kendo-icon-wrapper>
@@ -8887,6 +8888,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
8887
8888
  type: Input
8888
8889
  }], editable: [{
8889
8890
  type: Input
8891
+ }], cellClass: [{
8892
+ type: HostBinding,
8893
+ args: ["class.k-scheduler-cell"]
8890
8894
  }], eventTitle: [{
8891
8895
  type: HostBinding,
8892
8896
  args: ['attr.aria-label']
@@ -8978,15 +8982,16 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
8978
8982
  <ng-container *ngFor="let group of tasks; let groupIndex = index;">
8979
8983
  <tr *ngFor="let item of group.tasks; let index = index; trackBy: trackByFn" role="row">
8980
8984
  <ng-container *ngFor="let resource of group.resources; let resourceIndex = index">
8981
- <td *ngIf="group.spans[resourceIndex] && index === 0" class="k-scheduler-groupcolumn" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
8985
+ <td *ngIf="group.spans[resourceIndex] && index === 0" class="k-scheduler-groupcolumn k-first" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
8982
8986
  {{ resource }}
8983
8987
  </td>
8984
8988
  </ng-container>
8985
8989
  <td *ngIf="item.type === 'group'"
8986
8990
  [kendoSchedulerAgendaHeaderItem]="item"
8991
+ [hasFirstClass]="!group.resources || group.resources.length === 0"
8987
8992
  [agendaDateTemplate]="agendaDateTemplate">
8988
8993
  </td>
8989
- <td class="k-scheduler-timecolumn" role="gridcell">
8994
+ <td class="k-scheduler-timecolumn k-scheduler-cell" role="gridcell">
8990
8995
  <div *ngIf="!agendaTimeTemplate">
8991
8996
  <kendo-icon-wrapper
8992
8997
  *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
@@ -9019,7 +9024,7 @@ AgendaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
9019
9024
  </ng-container>
9020
9025
  </tbody>
9021
9026
  </table>
9022
- `, 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"] }] });
9027
+ `, 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"] }] });
9023
9028
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AgendaListComponent, decorators: [{
9024
9029
  type: Component,
9025
9030
  args: [{
@@ -9031,15 +9036,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
9031
9036
  <ng-container *ngFor="let group of tasks; let groupIndex = index;">
9032
9037
  <tr *ngFor="let item of group.tasks; let index = index; trackBy: trackByFn" role="row">
9033
9038
  <ng-container *ngFor="let resource of group.resources; let resourceIndex = index">
9034
- <td *ngIf="group.spans[resourceIndex] && index === 0" class="k-scheduler-groupcolumn" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
9039
+ <td *ngIf="group.spans[resourceIndex] && index === 0" class="k-scheduler-groupcolumn k-first" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
9035
9040
  {{ resource }}
9036
9041
  </td>
9037
9042
  </ng-container>
9038
9043
  <td *ngIf="item.type === 'group'"
9039
9044
  [kendoSchedulerAgendaHeaderItem]="item"
9045
+ [hasFirstClass]="!group.resources || group.resources.length === 0"
9040
9046
  [agendaDateTemplate]="agendaDateTemplate">
9041
9047
  </td>
9042
- <td class="k-scheduler-timecolumn" role="gridcell">
9048
+ <td class="k-scheduler-timecolumn k-scheduler-cell" role="gridcell">
9043
9049
  <div *ngIf="!agendaTimeTemplate">
9044
9050
  <kendo-icon-wrapper
9045
9051
  *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
@@ -9376,14 +9382,14 @@ class AgendaViewInternalComponent {
9376
9382
  }
9377
9383
  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 });
9378
9384
  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: `
9379
- <table class="k-scheduler-layout k-scheduler-agendaview k-scheduler-agenda" role="grid">
9385
+ <table class="k-scheduler-layout k-scheduler-agendaview" role="grid">
9380
9386
  <tbody role="none">
9381
- <tr>
9387
+ <tr class="k-scheduler-head">
9382
9388
  <td>
9383
9389
  <div kendoSchedulerAgendaHeader [resources]="groupedResources" #headerWrap></div>
9384
9390
  </td>
9385
9391
  </tr>
9386
- <tr>
9392
+ <tr class="k-scheduler-body">
9387
9393
  <td>
9388
9394
  <div kendoSchedulerAgendaList #content
9389
9395
  [editable]="editable"
@@ -9406,14 +9412,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
9406
9412
  // eslint-disable-next-line @angular-eslint/component-selector
9407
9413
  selector: 'agenda-view-internal',
9408
9414
  template: `
9409
- <table class="k-scheduler-layout k-scheduler-agendaview k-scheduler-agenda" role="grid">
9415
+ <table class="k-scheduler-layout k-scheduler-agendaview" role="grid">
9410
9416
  <tbody role="none">
9411
- <tr>
9417
+ <tr class="k-scheduler-head">
9412
9418
  <td>
9413
9419
  <div kendoSchedulerAgendaHeader [resources]="groupedResources" #headerWrap></div>
9414
9420
  </td>
9415
9421
  </tr>
9416
- <tr>
9422
+ <tr class="k-scheduler-body">
9417
9423
  <td>
9418
9424
  <div kendoSchedulerAgendaList #content
9419
9425
  [editable]="editable"
@@ -11792,6 +11798,14 @@ class MonthViewRendererComponent extends BaseView {
11792
11798
  addDay(dayStart) {
11793
11799
  return addDays(dayStart, 1);
11794
11800
  }
11801
+ isDayInPreviousMonth(day) {
11802
+ const beginningOfMonth = new Date(firstDayOfMonth(this.selectedDate).setHours(0, 0, 0, 0));
11803
+ return day < beginningOfMonth;
11804
+ }
11805
+ isDayInNextMonth(day) {
11806
+ const endOfMonth = new Date(lastDayOfMonth(this.selectedDate).setHours(23, 59, 59, 59));
11807
+ return day > endOfMonth;
11808
+ }
11795
11809
  optionsChange(changes) {
11796
11810
  this.schedulerMonthDaySlotTemplate = changes[`${this.type}DaySlotTemplate`];
11797
11811
  super.optionsChange(changes);
@@ -11815,7 +11829,7 @@ class MonthViewRendererComponent extends BaseView {
11815
11829
  }
11816
11830
  this.slotService.layout(this.eventHeight);
11817
11831
  if (this.contentHeight === 'auto') {
11818
- content.style.overflow = '';
11832
+ content.style.overflow = 'auto';
11819
11833
  }
11820
11834
  this.syncTables();
11821
11835
  }
@@ -11913,129 +11927,150 @@ MonthViewRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0
11913
11927
  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: [
11914
11928
  MonthSlotService
11915
11929
  ], viewQueries: [{ propertyName: "eventElements", predicate: MonthViewItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
11916
- <div class="k-scheduler-layout k-scheduler-monthview k-scheduler-flex-layout">
11917
- <div class="k-scheduler-pane">
11918
- <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
11919
- <table class="k-scheduler-table" aria-hidden="true">
11920
- <tr>
11921
- <th></th>
11922
- </tr>
11923
- </table>
11924
- </div>
11925
- <div class="k-scheduler-header k-state-default" #header>
11926
- <div class="k-scheduler-header-wrap" #headerWrap>
11927
- <!-- Days of the weeks titles -->
11928
- <table class="k-scheduler-table" aria-hidden="true">
11929
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
11930
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
11931
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
11932
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
11933
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
11934
- </th>
11935
- </tr>
11936
- <tr>
11937
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
11938
- <th *ngFor="let day of weeks[0]; trackBy: itemIndex">
11939
- {{ day | kendoDate: 'EEEE' }}
11940
- </th>
11941
- </ng-container>
11942
- </tr>
11943
- </table>
11944
- </div>
11945
- </div>
11946
- </div>
11947
- <div class="k-scheduler-pane">
11948
- <div class="k-scheduler-times k-scheduler-resources" #times *ngIf="verticalResources.length">
11949
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
11950
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
11951
- <tr>
11952
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
11953
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
11954
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
11955
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
11956
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
11957
- </th>
11958
- </ng-container>
11959
- <th class="k-slot-cell k-empty-slot">
11960
- </th>
11961
- </tr>
11962
- <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
11963
- <th class="k-slot-cell k-empty-slot"></th>
11964
- </tr>
11965
- </ng-container>
11966
- </table>
11967
- </div>
11968
- <div
11969
- class="k-scheduler-content"
11970
- tabindex="0"
11971
- #content
11972
- role="group"
11973
- [attr.aria-owns]="matchOwned(items | async)">
11974
- <!-- Main content -->
11975
- <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
11976
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
11977
- <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
11978
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
11979
- <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
11980
- [monthSlot]="day"
11981
- [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
11982
- [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
11983
- [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
11984
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
11985
- [title]="cellTitle(day)"
11986
- [class.k-selected]="isSlotSelected({
11987
- start: toPlainDate(day),
11988
- end: addDay(toPlainDate(day)),
11989
- isAllDay: true,
11990
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
11991
- })"
11992
- >
11993
- </td>
11994
- </ng-container>
11995
- </tr>
11996
- </ng-container>
11997
- </table>
11998
- <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
11999
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
12000
- [ngClass]="getEventClasses(item, itemResource.resources)"
12001
- [ngStyle]="getEventStyles(item, itemResource)"
12002
- role="button"
12003
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
12004
- [id]="item.elementId + '_' + itemResource.leafIdx"
12005
- monthViewItem
12006
- [editable]="editable"
12007
- [item]="item"
12008
- [index]="item.index"
12009
- [rangeIndex]="item.rangeIndex"
12010
- [eventTemplate]="eventTemplateRef"
12011
- [resources]="itemResource.resources"
12012
- [resourceIndex]="itemResource.leafIdx">
12013
- </div>
12014
- </ng-container>
12015
- <kendo-hint-container #hintContainer>
12016
- <ng-template>
12017
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
12018
- class="k-event-drag-hint"
12019
- monthViewItem
12020
- [ngStyle]="hint.style"
12021
- [ngClass]="hint.class"
12022
- [dragHint]="true"
12023
- [eventTemplate]="eventTemplateRef"
12024
- [item]="hint.item"
12025
- [resources]="hint.resources">
11930
+ <table class="k-scheduler-layout k-scheduler-monthview">
11931
+ <tbody>
11932
+ <tr class="k-scheduler-head">
11933
+ <td *ngIf="verticalResources.length">
11934
+ <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
11935
+ <table class="k-scheduler-table" aria-hidden="true">
11936
+ <tbody>
11937
+ <tr>
11938
+ <th class="k-scheduler-cell k-heading-cell"></th>
11939
+ </tr>
11940
+ </tbody>
11941
+ </table>
11942
+ </div>
11943
+ </td>
11944
+ <td>
11945
+ <div class="k-scheduler-header" #header>
11946
+ <div class="k-scheduler-header-wrap" #headerWrap>
11947
+ <!-- Days of the weeks titles -->
11948
+ <table class="k-scheduler-table" aria-hidden="true">
11949
+ <tbody>
11950
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
11951
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
11952
+ class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
11953
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
11954
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
11955
+ </th>
11956
+ </tr>
11957
+ <tr>
11958
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
11959
+ <th *ngFor="let day of weeks[0]; trackBy: itemIndex" class="k-scheduler-cell k-heading-cell">
11960
+ {{ day | kendoDate: 'EEEE' }}
11961
+ </th>
11962
+ </ng-container>
11963
+ </tr>
11964
+ </tbody>
11965
+ </table>
12026
11966
  </div>
11967
+ </div>
11968
+ </td>
11969
+ </tr>
11970
+ <tr class="k-scheduler-body">
11971
+ <td *ngIf="verticalResources.length">
11972
+ <div class="k-scheduler-times k-scheduler-resources" #times>
11973
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
11974
+ <tbody>
11975
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
11976
+ <tr>
11977
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
11978
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-heading-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
11979
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
11980
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
11981
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
11982
+ </th>
11983
+ </ng-container>
11984
+ <th class="k-slot-cell k-heading-cell k-empty-slot">
11985
+ </th>
11986
+ </tr>
11987
+ <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
11988
+ <th class="k-slot-cell k-heading-cell k-empty-slot"></th>
11989
+ </tr>
11990
+ </ng-container>
11991
+ </tbody>
11992
+ </table>
11993
+ </div>
11994
+ </td>
11995
+ <td>
11996
+ <div
11997
+ class="k-scheduler-content"
11998
+ tabindex="0"
11999
+ #content
12000
+ role="group"
12001
+ [attr.aria-owns]="matchOwned(items | async)"
12002
+ [style.overflowY]="'auto'">
12003
+ <!-- Main content -->
12004
+ <table class="k-scheduler-table" #contentTable role="presentation">
12005
+ <tbody>
12006
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
12007
+ <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
12008
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
12009
+ <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
12010
+ [monthSlot]="day"
12011
+ [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
12012
+ [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
12013
+ [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
12014
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
12015
+ [title]="cellTitle(day)"
12016
+ [class.k-selected]="isSlotSelected({
12017
+ start: toPlainDate(day),
12018
+ end: addDay(toPlainDate(day)),
12019
+ isAllDay: true,
12020
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
12021
+ })"
12022
+ class="k-scheduler-cell"
12023
+ [ngClass]="{'k-other-month': isDayInPreviousMonth(day) || isDayInNextMonth(day)}"
12024
+ >
12025
+ </td>
12026
+ </ng-container>
12027
+ </tr>
12028
+ </ng-container>
12029
+ </tbody>
12030
+ </table>
12031
+ <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
12032
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
12033
+ [ngClass]="getEventClasses(item, itemResource.resources)"
12034
+ [ngStyle]="getEventStyles(item, itemResource)"
12035
+ role="button"
12036
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
12037
+ [id]="item.elementId + '_' + itemResource.leafIdx"
12038
+ monthViewItem
12039
+ [editable]="editable"
12040
+ [item]="item"
12041
+ [index]="item.index"
12042
+ [rangeIndex]="item.rangeIndex"
12043
+ [eventTemplate]="eventTemplateRef"
12044
+ [resources]="itemResource.resources"
12045
+ [resourceIndex]="itemResource.leafIdx">
12046
+ </div>
12047
+ </ng-container>
12048
+ <kendo-hint-container #hintContainer>
12049
+ <ng-template>
12050
+ <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
12051
+ class="k-event-drag-hint"
12052
+ monthViewItem
12053
+ [ngStyle]="hint.style"
12054
+ [ngClass]="hint.class"
12055
+ [dragHint]="true"
12056
+ [eventTemplate]="eventTemplateRef"
12057
+ [item]="hint.item"
12058
+ [resources]="hint.resources">
12059
+ </div>
12027
12060
 
12028
- <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
12029
- kendoResizeHint
12030
- [hint]="hint"
12031
- [ngClass]="hint.class"
12032
- [format]="resizeHintFormat">
12033
- </div>
12034
- </ng-template>
12035
- </kendo-hint-container>
12036
- </div>
12037
- </div>
12038
- </div>
12061
+ <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
12062
+ kendoResizeHint
12063
+ [hint]="hint"
12064
+ [ngClass]="hint.class"
12065
+ [format]="resizeHintFormat">
12066
+ </div>
12067
+ </ng-template>
12068
+ </kendo-hint-container>
12069
+ </div>
12070
+ </td>
12071
+ </tr>
12072
+ </tbody>
12073
+ </table>
12039
12074
  `, 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" }] });
12040
12075
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MonthViewRendererComponent, decorators: [{
12041
12076
  type: Component,
@@ -12046,129 +12081,150 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
12046
12081
  MonthSlotService
12047
12082
  ],
12048
12083
  template: `
12049
- <div class="k-scheduler-layout k-scheduler-monthview k-scheduler-flex-layout">
12050
- <div class="k-scheduler-pane">
12051
- <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
12052
- <table class="k-scheduler-table" aria-hidden="true">
12053
- <tr>
12054
- <th></th>
12055
- </tr>
12056
- </table>
12057
- </div>
12058
- <div class="k-scheduler-header k-state-default" #header>
12059
- <div class="k-scheduler-header-wrap" #headerWrap>
12060
- <!-- Days of the weeks titles -->
12061
- <table class="k-scheduler-table" aria-hidden="true">
12062
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
12063
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
12064
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
12065
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
12066
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
12067
- </th>
12068
- </tr>
12069
- <tr>
12070
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
12071
- <th *ngFor="let day of weeks[0]; trackBy: itemIndex">
12072
- {{ day | kendoDate: 'EEEE' }}
12073
- </th>
12074
- </ng-container>
12075
- </tr>
12076
- </table>
12077
- </div>
12078
- </div>
12079
- </div>
12080
- <div class="k-scheduler-pane">
12081
- <div class="k-scheduler-times k-scheduler-resources" #times *ngIf="verticalResources.length">
12082
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
12083
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
12084
- <tr>
12085
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
12086
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
12087
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
12088
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
12089
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
12090
- </th>
12091
- </ng-container>
12092
- <th class="k-slot-cell k-empty-slot">
12093
- </th>
12094
- </tr>
12095
- <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
12096
- <th class="k-slot-cell k-empty-slot"></th>
12097
- </tr>
12098
- </ng-container>
12099
- </table>
12100
- </div>
12101
- <div
12102
- class="k-scheduler-content"
12103
- tabindex="0"
12104
- #content
12105
- role="group"
12106
- [attr.aria-owns]="matchOwned(items | async)">
12107
- <!-- Main content -->
12108
- <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
12109
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
12110
- <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
12111
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
12112
- <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
12113
- [monthSlot]="day"
12114
- [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
12115
- [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
12116
- [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
12117
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
12118
- [title]="cellTitle(day)"
12119
- [class.k-selected]="isSlotSelected({
12120
- start: toPlainDate(day),
12121
- end: addDay(toPlainDate(day)),
12122
- isAllDay: true,
12123
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
12124
- })"
12125
- >
12126
- </td>
12127
- </ng-container>
12128
- </tr>
12129
- </ng-container>
12130
- </table>
12131
- <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
12132
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
12133
- [ngClass]="getEventClasses(item, itemResource.resources)"
12134
- [ngStyle]="getEventStyles(item, itemResource)"
12135
- role="button"
12136
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
12137
- [id]="item.elementId + '_' + itemResource.leafIdx"
12138
- monthViewItem
12139
- [editable]="editable"
12140
- [item]="item"
12141
- [index]="item.index"
12142
- [rangeIndex]="item.rangeIndex"
12143
- [eventTemplate]="eventTemplateRef"
12144
- [resources]="itemResource.resources"
12145
- [resourceIndex]="itemResource.leafIdx">
12146
- </div>
12147
- </ng-container>
12148
- <kendo-hint-container #hintContainer>
12149
- <ng-template>
12150
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
12151
- class="k-event-drag-hint"
12152
- monthViewItem
12153
- [ngStyle]="hint.style"
12154
- [ngClass]="hint.class"
12155
- [dragHint]="true"
12156
- [eventTemplate]="eventTemplateRef"
12157
- [item]="hint.item"
12158
- [resources]="hint.resources">
12084
+ <table class="k-scheduler-layout k-scheduler-monthview">
12085
+ <tbody>
12086
+ <tr class="k-scheduler-head">
12087
+ <td *ngIf="verticalResources.length">
12088
+ <div class="k-scheduler-times" #timesHeader *ngIf="verticalResources.length">
12089
+ <table class="k-scheduler-table" aria-hidden="true">
12090
+ <tbody>
12091
+ <tr>
12092
+ <th class="k-scheduler-cell k-heading-cell"></th>
12093
+ </tr>
12094
+ </tbody>
12095
+ </table>
12096
+ </div>
12097
+ </td>
12098
+ <td>
12099
+ <div class="k-scheduler-header" #header>
12100
+ <div class="k-scheduler-header-wrap" #headerWrap>
12101
+ <!-- Days of the weeks titles -->
12102
+ <table class="k-scheduler-table" aria-hidden="true">
12103
+ <tbody>
12104
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex">
12105
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex"
12106
+ class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
12107
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
12108
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
12109
+ </th>
12110
+ </tr>
12111
+ <tr>
12112
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex">
12113
+ <th *ngFor="let day of weeks[0]; trackBy: itemIndex" class="k-scheduler-cell k-heading-cell">
12114
+ {{ day | kendoDate: 'EEEE' }}
12115
+ </th>
12116
+ </ng-container>
12117
+ </tr>
12118
+ </tbody>
12119
+ </table>
12159
12120
  </div>
12121
+ </div>
12122
+ </td>
12123
+ </tr>
12124
+ <tr class="k-scheduler-body">
12125
+ <td *ngIf="verticalResources.length">
12126
+ <div class="k-scheduler-times k-scheduler-resources" #times>
12127
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
12128
+ <tbody>
12129
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex">
12130
+ <tr>
12131
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex">
12132
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-heading-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
12133
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
12134
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
12135
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
12136
+ </th>
12137
+ </ng-container>
12138
+ <th class="k-slot-cell k-heading-cell k-empty-slot">
12139
+ </th>
12140
+ </tr>
12141
+ <tr *ngFor="let index of (numberOfWeeks - 1) | repeat; trackBy: itemIndex">
12142
+ <th class="k-slot-cell k-heading-cell k-empty-slot"></th>
12143
+ </tr>
12144
+ </ng-container>
12145
+ </tbody>
12146
+ </table>
12147
+ </div>
12148
+ </td>
12149
+ <td>
12150
+ <div
12151
+ class="k-scheduler-content"
12152
+ tabindex="0"
12153
+ #content
12154
+ role="group"
12155
+ [attr.aria-owns]="matchOwned(items | async)"
12156
+ [style.overflowY]="'auto'">
12157
+ <!-- Main content -->
12158
+ <table class="k-scheduler-table" #contentTable role="presentation">
12159
+ <tbody>
12160
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex">
12161
+ <tr *ngFor="let week of weeks; let rangeIndex = index; trackBy: itemIndex">
12162
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex">
12163
+ <td *ngFor="let day of week; let index = index; trackBy: itemIndex"
12164
+ [monthSlot]="day"
12165
+ [monthDaySlotTemplateRef]="monthDaySlotTemplateRef"
12166
+ [resourcesByIndex]="resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)"
12167
+ [ngClass]="daySlotClass(day, verticalResources.length ? verticalIndex : horizontalIndex)"
12168
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
12169
+ [title]="cellTitle(day)"
12170
+ [class.k-selected]="isSlotSelected({
12171
+ start: toPlainDate(day),
12172
+ end: addDay(toPlainDate(day)),
12173
+ isAllDay: true,
12174
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
12175
+ })"
12176
+ class="k-scheduler-cell"
12177
+ [ngClass]="{'k-other-month': isDayInPreviousMonth(day) || isDayInNextMonth(day)}"
12178
+ >
12179
+ </td>
12180
+ </ng-container>
12181
+ </tr>
12182
+ </ng-container>
12183
+ </tbody>
12184
+ </table>
12185
+ <ng-container *ngFor="let item of items | async; trackBy: itemIndex">
12186
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex"
12187
+ [ngClass]="getEventClasses(item, itemResource.resources)"
12188
+ [ngStyle]="getEventStyles(item, itemResource)"
12189
+ role="button"
12190
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
12191
+ [id]="item.elementId + '_' + itemResource.leafIdx"
12192
+ monthViewItem
12193
+ [editable]="editable"
12194
+ [item]="item"
12195
+ [index]="item.index"
12196
+ [rangeIndex]="item.rangeIndex"
12197
+ [eventTemplate]="eventTemplateRef"
12198
+ [resources]="itemResource.resources"
12199
+ [resourceIndex]="itemResource.leafIdx">
12200
+ </div>
12201
+ </ng-container>
12202
+ <kendo-hint-container #hintContainer>
12203
+ <ng-template>
12204
+ <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
12205
+ class="k-event-drag-hint"
12206
+ monthViewItem
12207
+ [ngStyle]="hint.style"
12208
+ [ngClass]="hint.class"
12209
+ [dragHint]="true"
12210
+ [eventTemplate]="eventTemplateRef"
12211
+ [item]="hint.item"
12212
+ [resources]="hint.resources">
12213
+ </div>
12160
12214
 
12161
- <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
12162
- kendoResizeHint
12163
- [hint]="hint"
12164
- [ngClass]="hint.class"
12165
- [format]="resizeHintFormat">
12166
- </div>
12167
- </ng-template>
12168
- </kendo-hint-container>
12169
- </div>
12170
- </div>
12171
- </div>
12215
+ <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
12216
+ kendoResizeHint
12217
+ [hint]="hint"
12218
+ [ngClass]="hint.class"
12219
+ [format]="resizeHintFormat">
12220
+ </div>
12221
+ </ng-template>
12222
+ </kendo-hint-container>
12223
+ </div>
12224
+ </td>
12225
+ </tr>
12226
+ </tbody>
12227
+ </table>
12172
12228
  `
12173
12229
  }]
12174
12230
  }], 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: [{
@@ -14358,73 +14414,226 @@ MultiDayViewRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.
14358
14414
  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: [
14359
14415
  DayTimeSlotService
14360
14416
  ], viewQueries: [{ propertyName: "headerHintContainer", first: true, predicate: ["headerHintContainer"], descendants: true }, { propertyName: "dayCells", predicate: ["allDayCell"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
14361
- <div class="k-scheduler-layout k-scheduler-flex-layout" role="presentation" [ngClass]="classNames">
14362
- <div class="k-scheduler-pane">
14363
- <div class="k-scheduler-times" #timesHeader>
14364
- <table class="k-scheduler-table" aria-hidden="true">
14365
- <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
14366
- <th></th>
14367
- </tr>
14368
- <tr>
14369
- <th [style.height]="'auto'"></th>
14370
- </tr>
14371
- <tr *ngIf="allDaySlot && !verticalResources.length">
14372
- <th class="k-scheduler-times-all-day" #allDayCell>{{ allDayMessage }}</th>
14373
- </tr>
14374
- </table>
14375
- </div>
14376
- <div class="k-scheduler-header k-state-default" #header>
14377
- <div class="k-scheduler-header-wrap" #headerWrap>
14378
- <table class="k-scheduler-table" aria-hidden="true">
14379
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
14380
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
14381
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14382
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
14383
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
14384
- </th>
14385
- </tr>
14386
- <tr>
14387
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
14388
- <th *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex">
14389
- <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
14390
- <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14391
- </th>
14392
- </ng-container>
14393
- </tr>
14394
- </table>
14395
- <div [style.position]="'relative'" *ngIf="allDaySlot && !verticalResources.length">
14396
- <table class="k-scheduler-table k-scheduler-header-all-day k-user-select-none" aria-hidden="true">
14397
- <tr>
14398
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
14399
- <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14400
- daySlot
14401
- [start]="slot.start"
14402
- [end]="slot.end"
14403
- [id]="{ resourceIndex: resourceIndex, rangeIndex: 0, index: index }"
14404
- [class.k-selected]="isSlotSelected({
14405
- start: toPlainDate(slot.start),
14406
- end: toPlainDate(slot.end),
14407
- isAllDay: true,
14408
- resources: resourcesByIndex(resourceIndex)
14409
- })"
14410
- [ngClass]="allDaySlotClass(slot, resourceIndex)">
14411
- <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14412
- [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(resourceIndex) }"></ng-container>
14413
- </td>
14417
+ <table class="k-scheduler-layout" role="presentation" [ngClass]="classNames">
14418
+ <tbody>
14419
+ <tr class="k-scheduler-head">
14420
+ <td>
14421
+ <div class="k-scheduler-times" #timesHeader>
14422
+ <table class="k-scheduler-table" aria-hidden="true">
14423
+ <tbody>
14424
+ <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
14425
+ <th class="k-scheduler-cell k-heading-cell"></th>
14426
+ </tr>
14427
+ <tr [style.height]="'auto'">
14428
+ <th class="k-scheduler-cell k-heading-cell"></th>
14429
+ </tr>
14430
+ <tr *ngIf="allDaySlot && !verticalResources.length">
14431
+ <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
14432
+ </tr>
14433
+ </tbody>
14434
+ </table>
14435
+ </div>
14436
+ </td>
14437
+ <td>
14438
+ <div class="k-scheduler-header" #header>
14439
+ <div class="k-scheduler-header-wrap" #headerWrap>
14440
+ <table class="k-scheduler-table" aria-hidden="true">
14441
+ <tbody>
14442
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
14443
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
14444
+ class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14445
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
14446
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
14447
+ </th>
14448
+ </tr>
14449
+ <tr class="k-scheduler-date-group">
14450
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
14451
+ <th *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex" class="k-scheduler-cell k-heading-cell">
14452
+ <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
14453
+ <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14454
+ </th>
14455
+ </ng-container>
14456
+ </tr>
14457
+ </tbody>
14458
+ </table>
14459
+ <div [style.position]="'relative'" *ngIf="allDaySlot && !verticalResources.length">
14460
+ <table class="k-scheduler-table k-scheduler-header-all-day" aria-hidden="true">
14461
+ <tbody>
14462
+ <tr>
14463
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
14464
+ <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14465
+ daySlot
14466
+ [start]="slot.start"
14467
+ [end]="slot.end"
14468
+ [id]="{ resourceIndex: resourceIndex, rangeIndex: 0, index: index }"
14469
+ [class.k-selected]="isSlotSelected({
14470
+ start: toPlainDate(slot.start),
14471
+ end: toPlainDate(slot.end),
14472
+ isAllDay: true,
14473
+ resources: resourcesByIndex(resourceIndex)
14474
+ })"
14475
+ [ngClass]="allDaySlotClass(slot, resourceIndex)"
14476
+ class="k-scheduler-cell">
14477
+ <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14478
+ [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(resourceIndex) }"></ng-container>
14479
+ </td>
14480
+ </ng-container>
14481
+ </tr>
14482
+ </tbody>
14483
+ </table>
14484
+ <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14485
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14486
+ [ngClass]="getEventClasses(item, itemResource.resources, true)"
14487
+ [ngStyle]="getEventStyles(item, itemResource, true)"
14488
+ role="button"
14489
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14490
+ [id]="item.elementId + '_' + itemResource.leafIdx"
14491
+ dayTimeViewItem
14492
+ [isAllDay]="true"
14493
+ [editable]="editable"
14494
+ [eventTemplate]="allDayEventTemplateRef"
14495
+ [item]="item"
14496
+ [index]="item.index"
14497
+ [rangeIndex]="item.rangeIndex"
14498
+ [resources]="itemResource.resources"
14499
+ [resourceIndex]="itemResource.leafIdx">
14500
+ </div>
14501
+ </ng-container>
14502
+ <kendo-hint-container #headerHintContainer>
14503
+ <ng-template>
14504
+ <div *ngIf="dragHints.length && allDayDragHint"
14505
+ class="k-event-drag-hint"
14506
+ dayTimeViewItem
14507
+ [isAllDay]="true"
14508
+ [ngStyle]="dragHints[0].style"
14509
+ [ngClass]="dragHints[0].class"
14510
+ [dragHint]="true"
14511
+ [eventTemplate]="eventTemplateRef"
14512
+ [item]="dragHints[0].item"
14513
+ [resources]="dragHints[0].resources">
14514
+ </div>
14515
+
14516
+ <div *ngIf="resizeHints.length && allDayResizeHint"
14517
+ kendoResizeHint
14518
+ [hint]="resizeHints[0]"
14519
+ [ngClass]="resizeHints[0].class"
14520
+ [format]="allDayResizeHintFormat">
14521
+ </div>
14522
+ </ng-template>
14523
+ </kendo-hint-container>
14524
+ </div>
14525
+ </div>
14526
+ </div>
14527
+ </td>
14528
+ </tr>
14529
+ <tr class="k-scheduler-body">
14530
+ <td>
14531
+ <div class="k-scheduler-times" #times>
14532
+ <ng-container *ngIf="showCurrentTime">
14533
+ <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14534
+ #currentTimeArrow class="k-current-time k-current-time-arrow-right">
14535
+ </div>
14536
+ </ng-container>
14537
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
14538
+ <tbody>
14539
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
14540
+ <tr *ngIf="verticalResources.length">
14541
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
14542
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell k-heading-cell">
14543
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
14544
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
14545
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
14546
+ </th>
14547
+ </ng-container>
14548
+ <th *ngIf="allDaySlot" class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
14549
+ </tr>
14550
+ <tr *ngFor="let slot of timeSlots; let timeSlotIndex = index;trackBy: itemIndex">
14551
+ <th *ngIf="slot.isMajor" [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell k-heading-cell">
14552
+ <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ slot.start | kendoDate: 't' }}</ng-container>
14553
+ <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14554
+ </th>
14555
+ <th *ngIf="!slot.isMajor" [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell k-heading-cell">
14556
+ <ng-container *ngIf="minorTimeHeaderTemplateRef" [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
14557
+ </ng-container>
14558
+ </th>
14559
+ </tr>
14560
+ </ng-container>
14561
+ </tbody>
14562
+ </table>
14563
+ </div>
14564
+ </td>
14565
+ <td>
14566
+ <div
14567
+ class="k-scheduler-content"
14568
+ #content
14569
+ role="group"
14570
+ tabindex="0"
14571
+ [attr.aria-owns]="matchOwned(items | async)">
14572
+ <ng-container *ngIf="showCurrentTime">
14573
+ <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14574
+ #currentTimeMarker class="k-current-time">
14575
+ </div>
14576
+ </ng-container>
14577
+ <table class="k-scheduler-table" #contentTable role="presentation">
14578
+ <tbody>
14579
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
14580
+ <tr class="k-scheduler-header-all-day" *ngIf="allDaySlot && verticalResources.length">
14581
+ <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14582
+ daySlot
14583
+ [start]="slot.start"
14584
+ [end]="slot.end"
14585
+ [class.k-selected]="isSlotSelected({
14586
+ start: toPlainDate(slot.start),
14587
+ end: toPlainDate(slot.end),
14588
+ isAllDay: true,
14589
+ resources: resourcesByIndex(verticalIndex)
14590
+ })"
14591
+ [id]="{ resourceIndex: verticalIndex, rangeIndex: 0, index: index }">
14592
+ <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14593
+ [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(verticalIndex) }"></ng-container>
14594
+ </td>
14595
+ </tr>
14596
+ <tr *ngFor="let slot of timeSlots; index as index; trackBy: itemIndex" [class.k-middle-row]="isMiddleSlot(index)">
14597
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
14598
+ <td *ngFor="let daySlot of daySlots; index as rangeIndex; trackBy: itemIndex"
14599
+ [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
14600
+ timeSlot #timeSlot="timeSlot"
14601
+ [date]="daySlot.start"
14602
+ [invariantStart]="slot.start"
14603
+ [invariantEnd]="slot.end"
14604
+ [workDayStart]="workDayStartTime"
14605
+ [workDayEnd]="workDayEndTime"
14606
+ [workWeekStart]="workWeekStart"
14607
+ [workWeekEnd]="workWeekEnd"
14608
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
14609
+ [class.k-selected]="isSlotSelected({
14610
+ start: toPlainDateTime(daySlot.start, slot.start),
14611
+ end: toPlainDateTime(daySlot.start, slot.end),
14612
+ isAllDay: false,
14613
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
14614
+ })"
14615
+ class="k-scheduler-cell"
14616
+ >
14617
+ <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
14618
+ [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex) }">
14619
+ </ng-container>
14620
+ </td>
14621
+ </ng-container>
14622
+ </tr>
14414
14623
  </ng-container>
14415
- </tr>
14624
+ </tbody>
14416
14625
  </table>
14417
- <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14626
+ <ng-container *ngFor="let item of items | async; trackBy: itemIndex;">
14418
14627
  <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14419
- [ngClass]="getEventClasses(item, itemResource.resources, true)"
14420
- [ngStyle]="getEventStyles(item, itemResource, true)"
14628
+ [ngClass]="getEventClasses(item, itemResource.resources)"
14629
+ [ngStyle]="getEventStyles(item, itemResource)"
14421
14630
  role="button"
14422
14631
  [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14423
14632
  [id]="item.elementId + '_' + itemResource.leafIdx"
14424
- dayTimeViewItem
14425
- [isAllDay]="true"
14633
+ dayTimeViewItem
14426
14634
  [editable]="editable"
14427
- [eventTemplate]="allDayEventTemplateRef"
14635
+ [vertical]="true"
14636
+ [eventTemplate]="eventTemplateRef"
14428
14637
  [item]="item"
14429
14638
  [index]="item.index"
14430
14639
  [rangeIndex]="item.rangeIndex"
@@ -14432,187 +14641,56 @@ MultiDayViewRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
14432
14641
  [resourceIndex]="itemResource.leafIdx">
14433
14642
  </div>
14434
14643
  </ng-container>
14435
- <kendo-hint-container #headerHintContainer>
14644
+ <ng-container *ngIf="verticalResources.length">
14645
+ <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14646
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14647
+ [ngClass]="getEventClasses(item, itemResource.resources, true)"
14648
+ [ngStyle]="getEventStyles(item, itemResource, true)"
14649
+ role="button"
14650
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14651
+ [id]="item.elementId + '_' + itemResource.leafIdx"
14652
+ dayTimeViewItem
14653
+ [isAllDay]="true"
14654
+ [editable]="editable"
14655
+ [eventTemplate]="allDayEventTemplateRef"
14656
+ [item]="item"
14657
+ [index]="item.index"
14658
+ [rangeIndex]="item.rangeIndex"
14659
+ [resources]="itemResource.resources"
14660
+ [resourceIndex]="itemResource.leafIdx">
14661
+ </div>
14662
+ </ng-container>
14663
+ </ng-container>
14664
+ <kendo-hint-container #hintContainer>
14436
14665
  <ng-template>
14437
- <div *ngIf="dragHints.length && allDayDragHint"
14666
+ <div *ngIf="dragHints.length && (!allDayDragHint || verticalResources.length)"
14438
14667
  class="k-event-drag-hint"
14668
+ role="button"
14439
14669
  dayTimeViewItem
14440
- [isAllDay]="true"
14670
+ [isAllDay]="allDayDragHint"
14441
14671
  [ngStyle]="dragHints[0].style"
14442
14672
  [ngClass]="dragHints[0].class"
14443
14673
  [dragHint]="true"
14444
14674
  [eventTemplate]="eventTemplateRef"
14445
- [item]="dragHints[0].item"
14446
- [resources]="dragHints[0].resources">
14675
+ [resources]="dragHints[0].resources"
14676
+ [item]="dragHints[0].item">
14447
14677
  </div>
14448
14678
 
14449
- <div *ngIf="resizeHints.length && allDayResizeHint"
14450
- kendoResizeHint
14451
- [hint]="resizeHints[0]"
14452
- [ngClass]="resizeHints[0].class"
14453
- [format]="allDayResizeHintFormat">
14454
- </div>
14679
+ <ng-container *ngIf="resizeHints.length && (!allDayResizeHint || verticalResources.length)">
14680
+ <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
14681
+ kendoResizeHint
14682
+ [hint]="hint"
14683
+ [ngClass]="hint.class"
14684
+ [format]="allDayResizeHint ? allDayResizeHintFormat : resizeHintFormat">
14685
+ </div>
14686
+ </ng-container>
14455
14687
  </ng-template>
14456
14688
  </kendo-hint-container>
14457
14689
  </div>
14458
- </div>
14459
- </div>
14460
- </div>
14461
- <div class="k-scheduler-pane">
14462
- <div class="k-scheduler-times" #times>
14463
- <ng-container *ngIf="showCurrentTime">
14464
- <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14465
- #currentTimeArrow class="k-current-time k-current-time-arrow-right">
14466
- </div>
14467
- </ng-container>
14468
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
14469
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
14470
- <tr *ngIf="verticalResources.length">
14471
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
14472
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell">
14473
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
14474
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
14475
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
14476
- </th>
14477
- </ng-container>
14478
- <th *ngIf="allDaySlot" class="k-scheduler-times-all-day" #allDayCell>{{ allDayMessage }}</th>
14479
- </tr>
14480
- <tr *ngFor="let slot of timeSlots; let timeSlotIndex = index;trackBy: itemIndex">
14481
- <th *ngIf="slot.isMajor" [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }">
14482
- <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ slot.start | kendoDate: 't' }}</ng-container>
14483
- <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14484
- </th>
14485
- <th *ngIf="!slot.isMajor" [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }">
14486
- <ng-container *ngIf="minorTimeHeaderTemplateRef" [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
14487
- </ng-container>
14488
- </th>
14489
- </tr>
14490
- </ng-container>
14491
- </table>
14492
- </div>
14493
- <div
14494
- class="k-scheduler-content k-user-select-none"
14495
- #content
14496
- role="group"
14497
- tabindex="0"
14498
- [attr.aria-owns]="matchOwned(items | async)">
14499
- <ng-container *ngIf="showCurrentTime">
14500
- <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14501
- #currentTimeMarker class="k-current-time">
14502
- </div>
14503
- </ng-container>
14504
- <table class="k-scheduler-table" #contentTable role="presentation">
14505
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
14506
- <tr class="k-scheduler-header-all-day" *ngIf="allDaySlot && verticalResources.length">
14507
- <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14508
- daySlot
14509
- [start]="slot.start"
14510
- [end]="slot.end"
14511
- [class.k-selected]="isSlotSelected({
14512
- start: toPlainDate(slot.start),
14513
- end: toPlainDate(slot.end),
14514
- isAllDay: true,
14515
- resources: resourcesByIndex(verticalIndex)
14516
- })"
14517
- [id]="{ resourceIndex: verticalIndex, rangeIndex: 0, index: index }">
14518
- <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14519
- [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(verticalIndex) }"></ng-container>
14520
- </td>
14521
- </tr>
14522
- <tr *ngFor="let slot of timeSlots; index as index; trackBy: itemIndex" [class.k-middle-row]="isMiddleSlot(index)">
14523
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
14524
- <td *ngFor="let daySlot of daySlots; index as rangeIndex; trackBy: itemIndex"
14525
- [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
14526
- timeSlot #timeSlot="timeSlot"
14527
- [date]="daySlot.start"
14528
- [invariantStart]="slot.start"
14529
- [invariantEnd]="slot.end"
14530
- [workDayStart]="workDayStartTime"
14531
- [workDayEnd]="workDayEndTime"
14532
- [workWeekStart]="workWeekStart"
14533
- [workWeekEnd]="workWeekEnd"
14534
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
14535
- [class.k-selected]="isSlotSelected({
14536
- start: toPlainDateTime(daySlot.start, slot.start),
14537
- end: toPlainDateTime(daySlot.start, slot.end),
14538
- isAllDay: false,
14539
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
14540
- })"
14541
- >
14542
- <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
14543
- [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex) }">
14544
- </ng-container>
14545
- </td>
14546
- </ng-container>
14547
- </tr>
14548
- </ng-container>
14549
- </table>
14550
- <ng-container *ngFor="let item of items | async; trackBy: itemIndex;">
14551
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14552
- [ngClass]="getEventClasses(item, itemResource.resources)"
14553
- [ngStyle]="getEventStyles(item, itemResource)"
14554
- role="button"
14555
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14556
- [id]="item.elementId + '_' + itemResource.leafIdx"
14557
- dayTimeViewItem
14558
- [editable]="editable"
14559
- [vertical]="true"
14560
- [eventTemplate]="eventTemplateRef"
14561
- [item]="item"
14562
- [index]="item.index"
14563
- [rangeIndex]="item.rangeIndex"
14564
- [resources]="itemResource.resources"
14565
- [resourceIndex]="itemResource.leafIdx">
14566
- </div>
14567
- </ng-container>
14568
- <ng-container *ngIf="verticalResources.length">
14569
- <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14570
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14571
- [ngClass]="getEventClasses(item, itemResource.resources, true)"
14572
- [ngStyle]="getEventStyles(item, itemResource, true)"
14573
- role="button"
14574
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14575
- [id]="item.elementId + '_' + itemResource.leafIdx"
14576
- dayTimeViewItem
14577
- [isAllDay]="true"
14578
- [editable]="editable"
14579
- [eventTemplate]="allDayEventTemplateRef"
14580
- [item]="item"
14581
- [index]="item.index"
14582
- [rangeIndex]="item.rangeIndex"
14583
- [resources]="itemResource.resources"
14584
- [resourceIndex]="itemResource.leafIdx">
14585
- </div>
14586
- </ng-container>
14587
- </ng-container>
14588
- <kendo-hint-container #hintContainer>
14589
- <ng-template>
14590
- <div *ngIf="dragHints.length && (!allDayDragHint || verticalResources.length)"
14591
- class="k-event-drag-hint"
14592
- role="button"
14593
- dayTimeViewItem
14594
- [isAllDay]="allDayDragHint"
14595
- [ngStyle]="dragHints[0].style"
14596
- [ngClass]="dragHints[0].class"
14597
- [dragHint]="true"
14598
- [eventTemplate]="eventTemplateRef"
14599
- [resources]="dragHints[0].resources"
14600
- [item]="dragHints[0].item">
14601
- </div>
14602
-
14603
- <ng-container *ngIf="resizeHints.length && (!allDayResizeHint || verticalResources.length)">
14604
- <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
14605
- kendoResizeHint
14606
- [hint]="hint"
14607
- [ngClass]="hint.class"
14608
- [format]="allDayResizeHint ? allDayResizeHintFormat : resizeHintFormat">
14609
- </div>
14610
- </ng-container>
14611
- </ng-template>
14612
- </kendo-hint-container>
14613
- </div>
14614
- </div>
14615
- </div>
14690
+ </td>
14691
+ </tr>
14692
+ </tbody>
14693
+ </table>
14616
14694
  `, 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" }] });
14617
14695
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MultiDayViewRendererComponent, decorators: [{
14618
14696
  type: Component,
@@ -14623,73 +14701,226 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
14623
14701
  DayTimeSlotService
14624
14702
  ],
14625
14703
  template: `
14626
- <div class="k-scheduler-layout k-scheduler-flex-layout" role="presentation" [ngClass]="classNames">
14627
- <div class="k-scheduler-pane">
14628
- <div class="k-scheduler-times" #timesHeader>
14629
- <table class="k-scheduler-table" aria-hidden="true">
14630
- <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
14631
- <th></th>
14632
- </tr>
14633
- <tr>
14634
- <th [style.height]="'auto'"></th>
14635
- </tr>
14636
- <tr *ngIf="allDaySlot && !verticalResources.length">
14637
- <th class="k-scheduler-times-all-day" #allDayCell>{{ allDayMessage }}</th>
14638
- </tr>
14639
- </table>
14640
- </div>
14641
- <div class="k-scheduler-header k-state-default" #header>
14642
- <div class="k-scheduler-header-wrap" #headerWrap>
14643
- <table class="k-scheduler-table" aria-hidden="true">
14644
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
14645
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
14646
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14647
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
14648
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
14649
- </th>
14650
- </tr>
14651
- <tr>
14652
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
14653
- <th *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex">
14654
- <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
14655
- <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14656
- </th>
14657
- </ng-container>
14658
- </tr>
14659
- </table>
14660
- <div [style.position]="'relative'" *ngIf="allDaySlot && !verticalResources.length">
14661
- <table class="k-scheduler-table k-scheduler-header-all-day k-user-select-none" aria-hidden="true">
14662
- <tr>
14663
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
14664
- <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14665
- daySlot
14666
- [start]="slot.start"
14667
- [end]="slot.end"
14668
- [id]="{ resourceIndex: resourceIndex, rangeIndex: 0, index: index }"
14669
- [class.k-selected]="isSlotSelected({
14670
- start: toPlainDate(slot.start),
14671
- end: toPlainDate(slot.end),
14672
- isAllDay: true,
14673
- resources: resourcesByIndex(resourceIndex)
14674
- })"
14675
- [ngClass]="allDaySlotClass(slot, resourceIndex)">
14676
- <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14677
- [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(resourceIndex) }"></ng-container>
14678
- </td>
14704
+ <table class="k-scheduler-layout" role="presentation" [ngClass]="classNames">
14705
+ <tbody>
14706
+ <tr class="k-scheduler-head">
14707
+ <td>
14708
+ <div class="k-scheduler-times" #timesHeader>
14709
+ <table class="k-scheduler-table" aria-hidden="true">
14710
+ <tbody>
14711
+ <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
14712
+ <th class="k-scheduler-cell k-heading-cell"></th>
14713
+ </tr>
14714
+ <tr [style.height]="'auto'">
14715
+ <th class="k-scheduler-cell k-heading-cell"></th>
14716
+ </tr>
14717
+ <tr *ngIf="allDaySlot && !verticalResources.length">
14718
+ <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
14719
+ </tr>
14720
+ </tbody>
14721
+ </table>
14722
+ </div>
14723
+ </td>
14724
+ <td>
14725
+ <div class="k-scheduler-header" #header>
14726
+ <div class="k-scheduler-header-wrap" #headerWrap>
14727
+ <table class="k-scheduler-table" aria-hidden="true">
14728
+ <tbody>
14729
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
14730
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
14731
+ class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14732
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
14733
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef" [ngTemplateOutletContext]="{ resource: item }"></ng-container>
14734
+ </th>
14735
+ </tr>
14736
+ <tr class="k-scheduler-date-group">
14737
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
14738
+ <th *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex" class="k-scheduler-cell k-heading-cell">
14739
+ <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
14740
+ <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14741
+ </th>
14742
+ </ng-container>
14743
+ </tr>
14744
+ </tbody>
14745
+ </table>
14746
+ <div [style.position]="'relative'" *ngIf="allDaySlot && !verticalResources.length">
14747
+ <table class="k-scheduler-table k-scheduler-header-all-day" aria-hidden="true">
14748
+ <tbody>
14749
+ <tr>
14750
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
14751
+ <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14752
+ daySlot
14753
+ [start]="slot.start"
14754
+ [end]="slot.end"
14755
+ [id]="{ resourceIndex: resourceIndex, rangeIndex: 0, index: index }"
14756
+ [class.k-selected]="isSlotSelected({
14757
+ start: toPlainDate(slot.start),
14758
+ end: toPlainDate(slot.end),
14759
+ isAllDay: true,
14760
+ resources: resourcesByIndex(resourceIndex)
14761
+ })"
14762
+ [ngClass]="allDaySlotClass(slot, resourceIndex)"
14763
+ class="k-scheduler-cell">
14764
+ <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14765
+ [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(resourceIndex) }"></ng-container>
14766
+ </td>
14767
+ </ng-container>
14768
+ </tr>
14769
+ </tbody>
14770
+ </table>
14771
+ <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14772
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14773
+ [ngClass]="getEventClasses(item, itemResource.resources, true)"
14774
+ [ngStyle]="getEventStyles(item, itemResource, true)"
14775
+ role="button"
14776
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14777
+ [id]="item.elementId + '_' + itemResource.leafIdx"
14778
+ dayTimeViewItem
14779
+ [isAllDay]="true"
14780
+ [editable]="editable"
14781
+ [eventTemplate]="allDayEventTemplateRef"
14782
+ [item]="item"
14783
+ [index]="item.index"
14784
+ [rangeIndex]="item.rangeIndex"
14785
+ [resources]="itemResource.resources"
14786
+ [resourceIndex]="itemResource.leafIdx">
14787
+ </div>
14679
14788
  </ng-container>
14680
- </tr>
14789
+ <kendo-hint-container #headerHintContainer>
14790
+ <ng-template>
14791
+ <div *ngIf="dragHints.length && allDayDragHint"
14792
+ class="k-event-drag-hint"
14793
+ dayTimeViewItem
14794
+ [isAllDay]="true"
14795
+ [ngStyle]="dragHints[0].style"
14796
+ [ngClass]="dragHints[0].class"
14797
+ [dragHint]="true"
14798
+ [eventTemplate]="eventTemplateRef"
14799
+ [item]="dragHints[0].item"
14800
+ [resources]="dragHints[0].resources">
14801
+ </div>
14802
+
14803
+ <div *ngIf="resizeHints.length && allDayResizeHint"
14804
+ kendoResizeHint
14805
+ [hint]="resizeHints[0]"
14806
+ [ngClass]="resizeHints[0].class"
14807
+ [format]="allDayResizeHintFormat">
14808
+ </div>
14809
+ </ng-template>
14810
+ </kendo-hint-container>
14811
+ </div>
14812
+ </div>
14813
+ </div>
14814
+ </td>
14815
+ </tr>
14816
+ <tr class="k-scheduler-body">
14817
+ <td>
14818
+ <div class="k-scheduler-times" #times>
14819
+ <ng-container *ngIf="showCurrentTime">
14820
+ <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14821
+ #currentTimeArrow class="k-current-time k-current-time-arrow-right">
14822
+ </div>
14823
+ </ng-container>
14824
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
14825
+ <tbody>
14826
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
14827
+ <tr *ngIf="verticalResources.length">
14828
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
14829
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell k-heading-cell">
14830
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
14831
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
14832
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
14833
+ </th>
14834
+ </ng-container>
14835
+ <th *ngIf="allDaySlot" class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
14836
+ </tr>
14837
+ <tr *ngFor="let slot of timeSlots; let timeSlotIndex = index;trackBy: itemIndex">
14838
+ <th *ngIf="slot.isMajor" [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell k-heading-cell">
14839
+ <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ slot.start | kendoDate: 't' }}</ng-container>
14840
+ <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14841
+ </th>
14842
+ <th *ngIf="!slot.isMajor" [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell k-heading-cell">
14843
+ <ng-container *ngIf="minorTimeHeaderTemplateRef" [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
14844
+ </ng-container>
14845
+ </th>
14846
+ </tr>
14847
+ </ng-container>
14848
+ </tbody>
14681
14849
  </table>
14682
- <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14850
+ </div>
14851
+ </td>
14852
+ <td>
14853
+ <div
14854
+ class="k-scheduler-content"
14855
+ #content
14856
+ role="group"
14857
+ tabindex="0"
14858
+ [attr.aria-owns]="matchOwned(items | async)">
14859
+ <ng-container *ngIf="showCurrentTime">
14860
+ <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14861
+ #currentTimeMarker class="k-current-time">
14862
+ </div>
14863
+ </ng-container>
14864
+ <table class="k-scheduler-table" #contentTable role="presentation">
14865
+ <tbody>
14866
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
14867
+ <tr class="k-scheduler-header-all-day" *ngIf="allDaySlot && verticalResources.length">
14868
+ <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14869
+ daySlot
14870
+ [start]="slot.start"
14871
+ [end]="slot.end"
14872
+ [class.k-selected]="isSlotSelected({
14873
+ start: toPlainDate(slot.start),
14874
+ end: toPlainDate(slot.end),
14875
+ isAllDay: true,
14876
+ resources: resourcesByIndex(verticalIndex)
14877
+ })"
14878
+ [id]="{ resourceIndex: verticalIndex, rangeIndex: 0, index: index }">
14879
+ <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14880
+ [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(verticalIndex) }"></ng-container>
14881
+ </td>
14882
+ </tr>
14883
+ <tr *ngFor="let slot of timeSlots; index as index; trackBy: itemIndex" [class.k-middle-row]="isMiddleSlot(index)">
14884
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
14885
+ <td *ngFor="let daySlot of daySlots; index as rangeIndex; trackBy: itemIndex"
14886
+ [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
14887
+ timeSlot #timeSlot="timeSlot"
14888
+ [date]="daySlot.start"
14889
+ [invariantStart]="slot.start"
14890
+ [invariantEnd]="slot.end"
14891
+ [workDayStart]="workDayStartTime"
14892
+ [workDayEnd]="workDayEndTime"
14893
+ [workWeekStart]="workWeekStart"
14894
+ [workWeekEnd]="workWeekEnd"
14895
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
14896
+ [class.k-selected]="isSlotSelected({
14897
+ start: toPlainDateTime(daySlot.start, slot.start),
14898
+ end: toPlainDateTime(daySlot.start, slot.end),
14899
+ isAllDay: false,
14900
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
14901
+ })"
14902
+ class="k-scheduler-cell"
14903
+ >
14904
+ <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
14905
+ [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex) }">
14906
+ </ng-container>
14907
+ </td>
14908
+ </ng-container>
14909
+ </tr>
14910
+ </ng-container>
14911
+ </tbody>
14912
+ </table>
14913
+ <ng-container *ngFor="let item of items | async; trackBy: itemIndex;">
14683
14914
  <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14684
- [ngClass]="getEventClasses(item, itemResource.resources, true)"
14685
- [ngStyle]="getEventStyles(item, itemResource, true)"
14915
+ [ngClass]="getEventClasses(item, itemResource.resources)"
14916
+ [ngStyle]="getEventStyles(item, itemResource)"
14686
14917
  role="button"
14687
14918
  [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14688
14919
  [id]="item.elementId + '_' + itemResource.leafIdx"
14689
- dayTimeViewItem
14690
- [isAllDay]="true"
14920
+ dayTimeViewItem
14691
14921
  [editable]="editable"
14692
- [eventTemplate]="allDayEventTemplateRef"
14922
+ [vertical]="true"
14923
+ [eventTemplate]="eventTemplateRef"
14693
14924
  [item]="item"
14694
14925
  [index]="item.index"
14695
14926
  [rangeIndex]="item.rangeIndex"
@@ -14697,187 +14928,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
14697
14928
  [resourceIndex]="itemResource.leafIdx">
14698
14929
  </div>
14699
14930
  </ng-container>
14700
- <kendo-hint-container #headerHintContainer>
14931
+ <ng-container *ngIf="verticalResources.length">
14932
+ <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14933
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14934
+ [ngClass]="getEventClasses(item, itemResource.resources, true)"
14935
+ [ngStyle]="getEventStyles(item, itemResource, true)"
14936
+ role="button"
14937
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14938
+ [id]="item.elementId + '_' + itemResource.leafIdx"
14939
+ dayTimeViewItem
14940
+ [isAllDay]="true"
14941
+ [editable]="editable"
14942
+ [eventTemplate]="allDayEventTemplateRef"
14943
+ [item]="item"
14944
+ [index]="item.index"
14945
+ [rangeIndex]="item.rangeIndex"
14946
+ [resources]="itemResource.resources"
14947
+ [resourceIndex]="itemResource.leafIdx">
14948
+ </div>
14949
+ </ng-container>
14950
+ </ng-container>
14951
+ <kendo-hint-container #hintContainer>
14701
14952
  <ng-template>
14702
- <div *ngIf="dragHints.length && allDayDragHint"
14953
+ <div *ngIf="dragHints.length && (!allDayDragHint || verticalResources.length)"
14703
14954
  class="k-event-drag-hint"
14955
+ role="button"
14704
14956
  dayTimeViewItem
14705
- [isAllDay]="true"
14957
+ [isAllDay]="allDayDragHint"
14706
14958
  [ngStyle]="dragHints[0].style"
14707
14959
  [ngClass]="dragHints[0].class"
14708
14960
  [dragHint]="true"
14709
14961
  [eventTemplate]="eventTemplateRef"
14710
- [item]="dragHints[0].item"
14711
- [resources]="dragHints[0].resources">
14962
+ [resources]="dragHints[0].resources"
14963
+ [item]="dragHints[0].item">
14712
14964
  </div>
14713
14965
 
14714
- <div *ngIf="resizeHints.length && allDayResizeHint"
14715
- kendoResizeHint
14716
- [hint]="resizeHints[0]"
14717
- [ngClass]="resizeHints[0].class"
14718
- [format]="allDayResizeHintFormat">
14719
- </div>
14966
+ <ng-container *ngIf="resizeHints.length && (!allDayResizeHint || verticalResources.length)">
14967
+ <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
14968
+ kendoResizeHint
14969
+ [hint]="hint"
14970
+ [ngClass]="hint.class"
14971
+ [format]="allDayResizeHint ? allDayResizeHintFormat : resizeHintFormat">
14972
+ </div>
14973
+ </ng-container>
14720
14974
  </ng-template>
14721
14975
  </kendo-hint-container>
14722
14976
  </div>
14723
- </div>
14724
- </div>
14725
- </div>
14726
- <div class="k-scheduler-pane">
14727
- <div class="k-scheduler-times" #times>
14728
- <ng-container *ngIf="showCurrentTime">
14729
- <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14730
- #currentTimeArrow class="k-current-time k-current-time-arrow-right">
14731
- </div>
14732
- </ng-container>
14733
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
14734
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
14735
- <tr *ngIf="verticalResources.length">
14736
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
14737
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell">
14738
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
14739
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
14740
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
14741
- </th>
14742
- </ng-container>
14743
- <th *ngIf="allDaySlot" class="k-scheduler-times-all-day" #allDayCell>{{ allDayMessage }}</th>
14744
- </tr>
14745
- <tr *ngFor="let slot of timeSlots; let timeSlotIndex = index;trackBy: itemIndex">
14746
- <th *ngIf="slot.isMajor" [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }">
14747
- <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ slot.start | kendoDate: 't' }}</ng-container>
14748
- <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }"></ng-container>
14749
- </th>
14750
- <th *ngIf="!slot.isMajor" [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }">
14751
- <ng-container *ngIf="minorTimeHeaderTemplateRef" [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
14752
- </ng-container>
14753
- </th>
14754
- </tr>
14755
- </ng-container>
14756
- </table>
14757
- </div>
14758
- <div
14759
- class="k-scheduler-content k-user-select-none"
14760
- #content
14761
- role="group"
14762
- tabindex="0"
14763
- [attr.aria-owns]="matchOwned(items | async)">
14764
- <ng-container *ngIf="showCurrentTime">
14765
- <div *ngFor="let resource of verticalResources | resourceIterator; trackBy: itemIndex;"
14766
- #currentTimeMarker class="k-current-time">
14767
- </div>
14768
- </ng-container>
14769
- <table class="k-scheduler-table" #contentTable role="presentation">
14770
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
14771
- <tr class="k-scheduler-header-all-day" *ngIf="allDaySlot && verticalResources.length">
14772
- <td *ngFor="let slot of daySlots; let index = index; trackBy: itemIndex"
14773
- daySlot
14774
- [start]="slot.start"
14775
- [end]="slot.end"
14776
- [class.k-selected]="isSlotSelected({
14777
- start: toPlainDate(slot.start),
14778
- end: toPlainDate(slot.end),
14779
- isAllDay: true,
14780
- resources: resourcesByIndex(verticalIndex)
14781
- })"
14782
- [id]="{ resourceIndex: verticalIndex, rangeIndex: 0, index: index }">
14783
- <ng-container *ngIf="allDaySlotTemplateRef" [ngTemplateOutlet]="allDaySlotTemplateRef"
14784
- [ngTemplateOutletContext]="{ date: slot.start, resources: resourcesByIndex(verticalIndex) }"></ng-container>
14785
- </td>
14786
- </tr>
14787
- <tr *ngFor="let slot of timeSlots; index as index; trackBy: itemIndex" [class.k-middle-row]="isMiddleSlot(index)">
14788
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
14789
- <td *ngFor="let daySlot of daySlots; index as rangeIndex; trackBy: itemIndex"
14790
- [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
14791
- timeSlot #timeSlot="timeSlot"
14792
- [date]="daySlot.start"
14793
- [invariantStart]="slot.start"
14794
- [invariantEnd]="slot.end"
14795
- [workDayStart]="workDayStartTime"
14796
- [workDayEnd]="workDayEndTime"
14797
- [workWeekStart]="workWeekStart"
14798
- [workWeekEnd]="workWeekEnd"
14799
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
14800
- [class.k-selected]="isSlotSelected({
14801
- start: toPlainDateTime(daySlot.start, slot.start),
14802
- end: toPlainDateTime(daySlot.start, slot.end),
14803
- isAllDay: false,
14804
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
14805
- })"
14806
- >
14807
- <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
14808
- [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex) }">
14809
- </ng-container>
14810
- </td>
14811
- </ng-container>
14812
- </tr>
14813
- </ng-container>
14814
- </table>
14815
- <ng-container *ngFor="let item of items | async; trackBy: itemIndex;">
14816
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14817
- [ngClass]="getEventClasses(item, itemResource.resources)"
14818
- [ngStyle]="getEventStyles(item, itemResource)"
14819
- role="button"
14820
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14821
- [id]="item.elementId + '_' + itemResource.leafIdx"
14822
- dayTimeViewItem
14823
- [editable]="editable"
14824
- [vertical]="true"
14825
- [eventTemplate]="eventTemplateRef"
14826
- [item]="item"
14827
- [index]="item.index"
14828
- [rangeIndex]="item.rangeIndex"
14829
- [resources]="itemResource.resources"
14830
- [resourceIndex]="itemResource.leafIdx">
14831
- </div>
14832
- </ng-container>
14833
- <ng-container *ngIf="verticalResources.length">
14834
- <ng-container *ngFor="let item of allDayItems | async; trackBy: itemIndex;">
14835
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
14836
- [ngClass]="getEventClasses(item, itemResource.resources, true)"
14837
- [ngStyle]="getEventStyles(item, itemResource, true)"
14838
- role="button"
14839
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
14840
- [id]="item.elementId + '_' + itemResource.leafIdx"
14841
- dayTimeViewItem
14842
- [isAllDay]="true"
14843
- [editable]="editable"
14844
- [eventTemplate]="allDayEventTemplateRef"
14845
- [item]="item"
14846
- [index]="item.index"
14847
- [rangeIndex]="item.rangeIndex"
14848
- [resources]="itemResource.resources"
14849
- [resourceIndex]="itemResource.leafIdx">
14850
- </div>
14851
- </ng-container>
14852
- </ng-container>
14853
- <kendo-hint-container #hintContainer>
14854
- <ng-template>
14855
- <div *ngIf="dragHints.length && (!allDayDragHint || verticalResources.length)"
14856
- class="k-event-drag-hint"
14857
- role="button"
14858
- dayTimeViewItem
14859
- [isAllDay]="allDayDragHint"
14860
- [ngStyle]="dragHints[0].style"
14861
- [ngClass]="dragHints[0].class"
14862
- [dragHint]="true"
14863
- [eventTemplate]="eventTemplateRef"
14864
- [resources]="dragHints[0].resources"
14865
- [item]="dragHints[0].item">
14866
- </div>
14867
-
14868
- <ng-container *ngIf="resizeHints.length && (!allDayResizeHint || verticalResources.length)">
14869
- <div *ngFor="let hint of resizeHints; trackBy: itemIndex;"
14870
- kendoResizeHint
14871
- [hint]="hint"
14872
- [ngClass]="hint.class"
14873
- [format]="allDayResizeHint ? allDayResizeHintFormat : resizeHintFormat">
14874
- </div>
14875
- </ng-container>
14876
- </ng-template>
14877
- </kendo-hint-container>
14878
- </div>
14879
- </div>
14880
- </div>
14977
+ </td>
14978
+ </tr>
14979
+ </tbody>
14980
+ </table>
14881
14981
  `
14882
14982
  }]
14883
14983
  }], 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: [{
@@ -15599,6 +15699,11 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
15599
15699
  get classNames() {
15600
15700
  return `k-scheduler-${this.viewName}-view`;
15601
15701
  }
15702
+ get contentWidthPercentage() {
15703
+ const expectedWidth = this.columnWidth * this.slotsCount;
15704
+ const percentage = (expectedWidth / this.contentWidth) * 100;
15705
+ return Math.max(percentage, 100);
15706
+ }
15602
15707
  ngOnChanges(changes) {
15603
15708
  if (changes.columnWidth) {
15604
15709
  this.changes.next(null);
@@ -15609,6 +15714,8 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
15609
15714
  const slotService = this.slotService;
15610
15715
  this.updateContentHeight();
15611
15716
  slotService.containerSize = this.content.nativeElement.scrollWidth;
15717
+ this.contentWidth = this.content.nativeElement.getBoundingClientRect().width;
15718
+ this.cdr.detectChanges();
15612
15719
  const verticalResourceRows = this.verticalResources.length ? this.verticalResourceRows.toArray() : [];
15613
15720
  slotService.layoutTimeline(this.eventHeight, verticalResourceRows);
15614
15721
  if (verticalResourceRows.length) {
@@ -15653,6 +15760,9 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
15653
15760
  }
15654
15761
  return result;
15655
15762
  }
15763
+ handleScroll() {
15764
+ this.headerWrap.nativeElement.scrollLeft = this.content.nativeElement.scrollLeft;
15765
+ }
15656
15766
  createTasks(items, dateRange) {
15657
15767
  return createTasks$3(dateRange.start, dateRange.end, items);
15658
15768
  }
@@ -15684,178 +15794,196 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
15684
15794
  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 });
15685
15795
  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: [
15686
15796
  DayTimeSlotService
15687
- ], viewQueries: [{ propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
15688
- <div class="k-scheduler-layout k-scheduler-flex-layout" [ngClass]="classNames">
15689
- <div class="k-scheduler-pane">
15690
- <div class="k-scheduler-times" #timesHeader>
15691
- <table class="k-scheduler-table" aria-hidden="true">
15692
- <tr><th [style.height]="'auto'"></th></tr>
15693
- <tr><th class="k-slot-cell"></th></tr>
15694
- <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
15695
- <th></th>
15696
- </tr>
15697
- </table>
15698
- </div>
15699
- <div class="k-scheduler-header k-state-default" #header >
15700
- <div class="k-scheduler-header-wrap" #headerWrap>
15701
- <ng-container *ngIf="showCurrentTime">
15702
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15703
- #currentTimeArrow class="k-current-time k-current-time-arrow-down">
15704
- </div>
15705
- </ng-container>
15706
- <table class="k-scheduler-table" aria-hidden="true">
15707
- <colgroup>
15708
- <col *ngFor="let slotIndex of slotsCount | repeat; trackBy: itemIndex;" [ngStyle]="{ 'width.px': columnWidth }" />
15709
- </colgroup>
15710
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
15711
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
15712
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
15713
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
15714
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15715
- [ngTemplateOutletContext]="{ resource: item }"></ng-container>
15716
- </th>
15717
- </tr>
15718
- <tr>
15719
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
15720
- <ng-container *ngFor="let daySlot of daySlots; let index = index; trackBy: itemIndex;">
15721
- <th [attr.colspan]="timeSlots.length" class="k-slot-cell">
15722
- <span *ngIf="!dateHeaderTemplateRef" class="k-link" [ngClass]="{ 'k-nav-day': numberOfDays > 1 }" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
15723
- <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
15797
+ ], viewQueries: [{ propertyName: "headerTable", first: true, predicate: ["headerTable"], descendants: true }, { propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
15798
+ <table class="k-scheduler-layout" [ngClass]="classNames">
15799
+ <tbody>
15800
+ <tr class="k-scheduler-head">
15801
+ <td>
15802
+ <div class="k-scheduler-times" #timesHeader>
15803
+ <table class="k-scheduler-table" aria-hidden="true">
15804
+ <tbody>
15805
+ <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
15806
+ <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
15807
+ <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
15808
+ <th class="k-scheduler-cell k-heading-cell"></th>
15809
+ </tr>
15810
+ </tbody>
15811
+ </table>
15812
+ </div>
15813
+ </td>
15814
+ <td>
15815
+ <div class="k-scheduler-header" #header >
15816
+ <div class="k-scheduler-header-wrap" #headerWrap>
15817
+ <ng-container *ngIf="showCurrentTime">
15818
+ <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15819
+ #currentTimeArrow class="k-current-time k-current-time-arrow-down">
15820
+ </div>
15821
+ </ng-container>
15822
+ <table class="k-scheduler-table" #headerTable aria-hidden="true" [style.width.%]="contentWidthPercentage">
15823
+ <tbody>
15824
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
15825
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
15826
+ class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
15827
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
15828
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15829
+ [ngTemplateOutletContext]="{ resource: item }"></ng-container>
15724
15830
  </th>
15725
- </ng-container>
15726
- </ng-container>
15727
- </tr>
15728
- <tr>
15729
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
15730
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15731
- <ng-container *ngFor="let timeSlot of timeSlots; let index = index; trackBy: itemIndex;">
15732
- <th *ngIf="timeSlot.isMajor" [attr.colspan]="timeColspan(index)">
15733
- <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ timeSlot.start | kendoDate: 't' }}</ng-container>
15734
- <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
15735
- </th>
15736
- <th *ngIf="!timeSlot.isMajor && minorTimeHeaderTemplateRef" [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}">
15737
- <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
15831
+ </tr>
15832
+ <tr class="k-scheduler-date-group">
15833
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
15834
+ <ng-container *ngFor="let daySlot of daySlots; let index = index; trackBy: itemIndex;">
15835
+ <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
15836
+ <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
15837
+ <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
15838
+ </th>
15839
+ </ng-container>
15840
+ </ng-container>
15841
+ </tr>
15842
+ <tr>
15843
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
15844
+ <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15845
+ <ng-container *ngFor="let timeSlot of timeSlots; let index = index; trackBy: itemIndex;">
15846
+ <th *ngIf="timeSlot.isMajor" [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
15847
+ <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ timeSlot.start | kendoDate: 't' }}</ng-container>
15848
+ <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
15849
+ </th>
15850
+ <th
15851
+ *ngIf="!timeSlot.isMajor && minorTimeHeaderTemplateRef"
15852
+ [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
15853
+ class="k-scheduler-cell k-heading-cell"
15854
+ >
15855
+ <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
15856
+ </ng-container>
15857
+ </th>
15738
15858
  </ng-container>
15739
- </th>
15859
+ </ng-container>
15740
15860
  </ng-container>
15741
- </ng-container>
15742
- </ng-container>
15743
- </tr>
15744
- </table>
15861
+ </tr>
15862
+ </tbody>
15863
+ </table>
15864
+ </div>
15745
15865
  </div>
15746
- </div>
15747
- </div>
15748
- <div class="k-scheduler-pane">
15749
- <div class="k-scheduler-times" #times>
15750
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
15751
- <tr *ngIf="!verticalResources.length">
15752
- <th rowspan="1" #titleCell>
15753
- {{ allEventsMessage }}
15754
- </th>
15755
- </tr>
15756
- <ng-container *ngIf="verticalResources.length">
15757
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
15758
- <tr #verticalResourceRows>
15759
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
15760
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell">
15761
- <div>
15762
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
15763
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15764
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
15765
- </div>
15866
+ </td>
15867
+ </tr>
15868
+ <tr class="k-scheduler-body">
15869
+ <td>
15870
+ <div class="k-scheduler-times" #times>
15871
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
15872
+ <tbody>
15873
+ <tr *ngIf="!verticalResources.length">
15874
+ <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
15875
+ {{ allEventsMessage }}
15766
15876
  </th>
15877
+ </tr>
15878
+ <ng-container *ngIf="verticalResources.length">
15879
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
15880
+ <tr #verticalResourceRows>
15881
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
15882
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
15883
+ <div>
15884
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
15885
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15886
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
15887
+ </div>
15888
+ </th>
15889
+ </ng-container>
15890
+ </tr>
15891
+ </ng-container>
15767
15892
  </ng-container>
15768
- </tr>
15769
- </ng-container>
15770
- </ng-container>
15771
- </table>
15772
- </div>
15773
- <div
15774
- class="k-scheduler-content"
15775
- #content
15776
- role="group"
15777
- tabindex="0"
15778
- [attr.aria-owns]="matchOwned(items | async | sort)">
15779
- <ng-container *ngIf="showCurrentTime">
15780
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15781
- class="k-current-time" #currentTimeMarker>
15893
+ </tbody>
15894
+ </table>
15782
15895
  </div>
15783
- </ng-container>
15784
- <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
15785
- <colgroup>
15786
- <col *ngFor="let slotIndex of slotsCount | repeat; trackBy: itemIndex;" [ngStyle]="{ 'width.px': columnWidth }" />
15787
- </colgroup>
15788
- <tr *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
15789
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
15790
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15791
- <td *ngFor="let slot of timeSlots; let index = index; trackBy: itemIndex;"
15792
- [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
15793
- timeSlot #timeSlot="timeSlot"
15794
- [date]="daySlot.start"
15795
- [invariantStart]="slot.start"
15796
- [invariantEnd]="slot.end"
15797
- [workDayStart]="workDayStartTime"
15798
- [workDayEnd]="workDayEndTime"
15799
- [workWeekStart]="workWeekStart"
15800
- [workWeekEnd]="workWeekEnd"
15801
- selectableSlot
15802
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
15803
- [class.k-selected]="isSlotSelected({
15804
- start: toPlainDateTime(daySlot.start, slot.start),
15805
- end: toPlainDateTime(daySlot.start, slot.end),
15806
- isAllDay: false,
15807
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
15808
- })"
15809
- >
15810
- <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
15811
- [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
15896
+ </td>
15897
+ <td>
15898
+ <div
15899
+ class="k-scheduler-content"
15900
+ #content
15901
+ role="group"
15902
+ tabindex="0"
15903
+ (scroll)="handleScroll()"
15904
+ [attr.aria-owns]="matchOwned(items | async | sort)">
15905
+ <ng-container *ngIf="showCurrentTime">
15906
+ <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15907
+ class="k-current-time" #currentTimeMarker>
15908
+ </div>
15909
+ </ng-container>
15910
+ <table class="k-scheduler-table" #contentTable role="presentation" [style.width.%]="contentWidthPercentage">
15911
+ <tbody>
15912
+ <tr *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
15913
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
15914
+ <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15915
+ <td *ngFor="let slot of timeSlots; let index = index; trackBy: itemIndex;"
15916
+ [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
15917
+ timeSlot #timeSlot="timeSlot"
15918
+ [date]="daySlot.start"
15919
+ [invariantStart]="slot.start"
15920
+ [invariantEnd]="slot.end"
15921
+ [workDayStart]="workDayStartTime"
15922
+ [workDayEnd]="workDayEndTime"
15923
+ [workWeekStart]="workWeekStart"
15924
+ [workWeekEnd]="workWeekEnd"
15925
+ selectableSlot
15926
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
15927
+ [class.k-selected]="isSlotSelected({
15928
+ start: toPlainDateTime(daySlot.start, slot.start),
15929
+ end: toPlainDateTime(daySlot.start, slot.end),
15930
+ isAllDay: false,
15931
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
15932
+ })"
15933
+ class="k-scheduler-cell"
15934
+ >
15935
+ <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
15936
+ [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
15937
+ </ng-container>
15938
+ </td>
15939
+ </ng-container>
15812
15940
  </ng-container>
15813
- </td>
15814
- </ng-container>
15941
+ </tr>
15942
+ </tbody>
15943
+ </table>
15944
+ <ng-container *ngFor="let item of items | async | sort; trackBy: itemIndex;">
15945
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
15946
+ [ngClass]="getEventClasses(item, itemResource.resources)"
15947
+ [ngStyle]="getEventStyles(item, itemResource)"
15948
+ role="button"
15949
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
15950
+ [id]="item.elementId + '_' + itemResource.leafIdx"
15951
+ dayTimeViewItem
15952
+ [editable]="editable"
15953
+ [item]="item"
15954
+ [index]="item.index"
15955
+ [rangeIndex]="item.rangeIndex"
15956
+ [eventTemplate]="eventTemplateRef"
15957
+ [resources]="itemResource.resources"
15958
+ [resourceIndex]="itemResource.leafIdx">
15959
+ </div>
15815
15960
  </ng-container>
15816
- </tr>
15817
- </table>
15818
- <ng-container *ngFor="let item of items | async | sort; trackBy: itemIndex;">
15819
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
15820
- [ngClass]="getEventClasses(item, itemResource.resources)"
15821
- [ngStyle]="getEventStyles(item, itemResource)"
15822
- role="button"
15823
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
15824
- [id]="item.elementId + '_' + itemResource.leafIdx"
15825
- dayTimeViewItem
15826
- [editable]="editable"
15827
- [item]="item"
15828
- [index]="item.index"
15829
- [rangeIndex]="item.rangeIndex"
15830
- [eventTemplate]="eventTemplateRef"
15831
- [resources]="itemResource.resources"
15832
- [resourceIndex]="itemResource.leafIdx">
15961
+ <kendo-hint-container #hintContainer>
15962
+ <ng-template>
15963
+ <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
15964
+ class="k-event-drag-hint"
15965
+ dayTimeViewItem
15966
+ [ngStyle]="hint.style"
15967
+ [ngClass]="hint.class"
15968
+ [dragHint]="true"
15969
+ [eventTemplate]="eventTemplateRef"
15970
+ [item]="hint.item"
15971
+ [resources]="hint.resources">
15972
+ </div>
15973
+ <div *ngIf="resizeHints && resizeHints.length"
15974
+ kendoResizeHint
15975
+ [hint]="resizeHints[0]"
15976
+ [ngClass]="resizeHints[0].class"
15977
+ [format]="resizeHintFormat">
15978
+ </div>
15979
+ </ng-template>
15980
+ </kendo-hint-container>
15833
15981
  </div>
15834
- </ng-container>
15835
- <kendo-hint-container #hintContainer>
15836
- <ng-template>
15837
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
15838
- class="k-event-drag-hint"
15839
- dayTimeViewItem
15840
- [ngStyle]="hint.style"
15841
- [ngClass]="hint.class"
15842
- [dragHint]="true"
15843
- [eventTemplate]="eventTemplateRef"
15844
- [item]="hint.item"
15845
- [resources]="hint.resources">
15846
- </div>
15847
- <div *ngIf="resizeHints && resizeHints.length"
15848
- kendoResizeHint
15849
- [hint]="resizeHints[0]"
15850
- [ngClass]="resizeHints[0].class"
15851
- [format]="resizeHintFormat">
15852
- </div>
15853
- </ng-template>
15854
- </kendo-hint-container>
15855
- </div>
15856
- </div>
15857
- </div>
15858
- `, 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" }] });
15982
+ </td>
15983
+ </tr>
15984
+ </tbody>
15985
+ </table>
15986
+ `, 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" }] });
15859
15987
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimelineMultiDayViewComponent, decorators: [{
15860
15988
  type: Component,
15861
15989
  args: [{
@@ -15865,176 +15993,194 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
15865
15993
  DayTimeSlotService
15866
15994
  ],
15867
15995
  template: `
15868
- <div class="k-scheduler-layout k-scheduler-flex-layout" [ngClass]="classNames">
15869
- <div class="k-scheduler-pane">
15870
- <div class="k-scheduler-times" #timesHeader>
15871
- <table class="k-scheduler-table" aria-hidden="true">
15872
- <tr><th [style.height]="'auto'"></th></tr>
15873
- <tr><th class="k-slot-cell"></th></tr>
15874
- <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
15875
- <th></th>
15876
- </tr>
15877
- </table>
15878
- </div>
15879
- <div class="k-scheduler-header k-state-default" #header >
15880
- <div class="k-scheduler-header-wrap" #headerWrap>
15881
- <ng-container *ngIf="showCurrentTime">
15882
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15883
- #currentTimeArrow class="k-current-time k-current-time-arrow-down">
15884
- </div>
15885
- </ng-container>
15886
- <table class="k-scheduler-table" aria-hidden="true">
15887
- <colgroup>
15888
- <col *ngFor="let slotIndex of slotsCount | repeat; trackBy: itemIndex;" [ngStyle]="{ 'width.px': columnWidth }" />
15889
- </colgroup>
15890
- <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
15891
- <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
15892
- class="k-slot-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
15893
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
15894
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15895
- [ngTemplateOutletContext]="{ resource: item }"></ng-container>
15896
- </th>
15897
- </tr>
15898
- <tr>
15899
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
15900
- <ng-container *ngFor="let daySlot of daySlots; let index = index; trackBy: itemIndex;">
15901
- <th [attr.colspan]="timeSlots.length" class="k-slot-cell">
15902
- <span *ngIf="!dateHeaderTemplateRef" class="k-link" [ngClass]="{ 'k-nav-day': numberOfDays > 1 }" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
15903
- <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
15996
+ <table class="k-scheduler-layout" [ngClass]="classNames">
15997
+ <tbody>
15998
+ <tr class="k-scheduler-head">
15999
+ <td>
16000
+ <div class="k-scheduler-times" #timesHeader>
16001
+ <table class="k-scheduler-table" aria-hidden="true">
16002
+ <tbody>
16003
+ <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
16004
+ <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
16005
+ <tr *ngFor="let resource of horizontalResources; trackBy: itemIndex;">
16006
+ <th class="k-scheduler-cell k-heading-cell"></th>
16007
+ </tr>
16008
+ </tbody>
16009
+ </table>
16010
+ </div>
16011
+ </td>
16012
+ <td>
16013
+ <div class="k-scheduler-header" #header >
16014
+ <div class="k-scheduler-header-wrap" #headerWrap>
16015
+ <ng-container *ngIf="showCurrentTime">
16016
+ <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
16017
+ #currentTimeArrow class="k-current-time k-current-time-arrow-down">
16018
+ </div>
16019
+ </ng-container>
16020
+ <table class="k-scheduler-table" #headerTable aria-hidden="true" [style.width.%]="contentWidthPercentage">
16021
+ <tbody>
16022
+ <tr *ngFor="let resource of horizontalResources; let resourceIndex = index; trackBy: itemIndex;">
16023
+ <th *ngFor="let item of horizontalResources | resourceIterator : resourceIndex; trackBy: itemIndex;"
16024
+ class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
16025
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(item, resource.textField) }}</ng-container>
16026
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
16027
+ [ngTemplateOutletContext]="{ resource: item }"></ng-container>
15904
16028
  </th>
15905
- </ng-container>
15906
- </ng-container>
15907
- </tr>
15908
- <tr>
15909
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
15910
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15911
- <ng-container *ngFor="let timeSlot of timeSlots; let index = index; trackBy: itemIndex;">
15912
- <th *ngIf="timeSlot.isMajor" [attr.colspan]="timeColspan(index)">
15913
- <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ timeSlot.start | kendoDate: 't' }}</ng-container>
15914
- <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
15915
- </th>
15916
- <th *ngIf="!timeSlot.isMajor && minorTimeHeaderTemplateRef" [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}">
15917
- <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
16029
+ </tr>
16030
+ <tr class="k-scheduler-date-group">
16031
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;">
16032
+ <ng-container *ngFor="let daySlot of daySlots; let index = index; trackBy: itemIndex;">
16033
+ <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
16034
+ <span *ngIf="!dateHeaderTemplateRef" class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
16035
+ <ng-container *ngIf="dateHeaderTemplateRef" [ngTemplateOutlet]="dateHeaderTemplateRef" [ngTemplateOutletContext]="{ date: daySlot.start }"></ng-container>
16036
+ </th>
16037
+ </ng-container>
16038
+ </ng-container>
16039
+ </tr>
16040
+ <tr>
16041
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let resourceIndex = index; trackBy: itemIndex;">
16042
+ <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
16043
+ <ng-container *ngFor="let timeSlot of timeSlots; let index = index; trackBy: itemIndex;">
16044
+ <th *ngIf="timeSlot.isMajor" [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
16045
+ <ng-container *ngIf="!majorTimeHeaderTemplateRef">{{ timeSlot.start | kendoDate: 't' }}</ng-container>
16046
+ <ng-container *ngIf="majorTimeHeaderTemplateRef" [ngTemplateOutlet]="majorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }"></ng-container>
16047
+ </th>
16048
+ <th
16049
+ *ngIf="!timeSlot.isMajor && minorTimeHeaderTemplateRef"
16050
+ [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
16051
+ class="k-scheduler-cell k-heading-cell"
16052
+ >
16053
+ <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
16054
+ </ng-container>
16055
+ </th>
15918
16056
  </ng-container>
15919
- </th>
16057
+ </ng-container>
15920
16058
  </ng-container>
15921
- </ng-container>
15922
- </ng-container>
15923
- </tr>
15924
- </table>
16059
+ </tr>
16060
+ </tbody>
16061
+ </table>
16062
+ </div>
15925
16063
  </div>
15926
- </div>
15927
- </div>
15928
- <div class="k-scheduler-pane">
15929
- <div class="k-scheduler-times" #times>
15930
- <table class="k-scheduler-table" #timesTable aria-hidden="true">
15931
- <tr *ngIf="!verticalResources.length">
15932
- <th rowspan="1" #titleCell>
15933
- {{ allEventsMessage }}
15934
- </th>
15935
- </tr>
15936
- <ng-container *ngIf="verticalResources.length">
15937
- <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
15938
- <tr #verticalResourceRows>
15939
- <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
15940
- <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell">
15941
- <div>
15942
- <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
15943
- <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
15944
- [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
15945
- </div>
16064
+ </td>
16065
+ </tr>
16066
+ <tr class="k-scheduler-body">
16067
+ <td>
16068
+ <div class="k-scheduler-times" #times>
16069
+ <table class="k-scheduler-table" #timesTable aria-hidden="true">
16070
+ <tbody>
16071
+ <tr *ngIf="!verticalResources.length">
16072
+ <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
16073
+ {{ allEventsMessage }}
15946
16074
  </th>
16075
+ </tr>
16076
+ <ng-container *ngIf="verticalResources.length">
16077
+ <ng-container *ngFor="let resourceItem of verticalResources | resourceIterator; let leafIndex = index; trackBy: itemIndex;">
16078
+ <tr #verticalResourceRows>
16079
+ <ng-container *ngFor="let resource of verticalResources; let resourceIndex = index; trackBy: itemIndex;">
16080
+ <th *ngIf="verticalItem(leafIndex, resourceIndex)" [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
16081
+ <div>
16082
+ <ng-container *ngIf="!groupHeaderTemplateRef">{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}</ng-container>
16083
+ <ng-container *ngIf="groupHeaderTemplateRef" [ngTemplateOutlet]="groupHeaderTemplateRef"
16084
+ [ngTemplateOutletContext]="{ resource: verticalItem(leafIndex, resourceIndex) }"></ng-container>
16085
+ </div>
16086
+ </th>
16087
+ </ng-container>
16088
+ </tr>
16089
+ </ng-container>
15947
16090
  </ng-container>
15948
- </tr>
15949
- </ng-container>
15950
- </ng-container>
15951
- </table>
15952
- </div>
15953
- <div
15954
- class="k-scheduler-content"
15955
- #content
15956
- role="group"
15957
- tabindex="0"
15958
- [attr.aria-owns]="matchOwned(items | async | sort)">
15959
- <ng-container *ngIf="showCurrentTime">
15960
- <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
15961
- class="k-current-time" #currentTimeMarker>
16091
+ </tbody>
16092
+ </table>
15962
16093
  </div>
15963
- </ng-container>
15964
- <table class="k-scheduler-table k-user-select-none" #contentTable role="presentation">
15965
- <colgroup>
15966
- <col *ngFor="let slotIndex of slotsCount | repeat; trackBy: itemIndex;" [ngStyle]="{ 'width.px': columnWidth }" />
15967
- </colgroup>
15968
- <tr *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
15969
- <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
15970
- <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
15971
- <td *ngFor="let slot of timeSlots; let index = index; trackBy: itemIndex;"
15972
- [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
15973
- timeSlot #timeSlot="timeSlot"
15974
- [date]="daySlot.start"
15975
- [invariantStart]="slot.start"
15976
- [invariantEnd]="slot.end"
15977
- [workDayStart]="workDayStartTime"
15978
- [workDayEnd]="workDayEndTime"
15979
- [workWeekStart]="workWeekStart"
15980
- [workWeekEnd]="workWeekEnd"
15981
- selectableSlot
15982
- [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
15983
- [class.k-selected]="isSlotSelected({
15984
- start: toPlainDateTime(daySlot.start, slot.start),
15985
- end: toPlainDateTime(daySlot.start, slot.end),
15986
- isAllDay: false,
15987
- resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
15988
- })"
15989
- >
15990
- <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
15991
- [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
16094
+ </td>
16095
+ <td>
16096
+ <div
16097
+ class="k-scheduler-content"
16098
+ #content
16099
+ role="group"
16100
+ tabindex="0"
16101
+ (scroll)="handleScroll()"
16102
+ [attr.aria-owns]="matchOwned(items | async | sort)">
16103
+ <ng-container *ngIf="showCurrentTime">
16104
+ <div *ngFor="let resource of horizontalResources | resourceIterator; trackBy: itemIndex;"
16105
+ class="k-current-time" #currentTimeMarker>
16106
+ </div>
16107
+ </ng-container>
16108
+ <table class="k-scheduler-table" #contentTable role="presentation" [style.width.%]="contentWidthPercentage">
16109
+ <tbody>
16110
+ <tr *ngFor="let resourceItem of verticalResources | resourceIterator; let verticalIndex = index; trackBy: itemIndex;">
16111
+ <ng-container *ngFor="let resource of horizontalResources | resourceIterator; let horizontalIndex = index; trackBy: itemIndex;">
16112
+ <ng-container *ngFor="let daySlot of daySlots; let rangeIndex = index; trackBy: itemIndex;">
16113
+ <td *ngFor="let slot of timeSlots; let index = index; trackBy: itemIndex;"
16114
+ [ngClass]="timeSlotClass(slot, daySlot.start, verticalResources.length ? verticalIndex : horizontalIndex)"
16115
+ timeSlot #timeSlot="timeSlot"
16116
+ [date]="daySlot.start"
16117
+ [invariantStart]="slot.start"
16118
+ [invariantEnd]="slot.end"
16119
+ [workDayStart]="workDayStartTime"
16120
+ [workDayEnd]="workDayEndTime"
16121
+ [workWeekStart]="workWeekStart"
16122
+ [workWeekEnd]="workWeekEnd"
16123
+ selectableSlot
16124
+ [id]="{ resourceIndex: verticalResources.length ? verticalIndex : horizontalIndex, rangeIndex: rangeIndex, index: index }"
16125
+ [class.k-selected]="isSlotSelected({
16126
+ start: toPlainDateTime(daySlot.start, slot.start),
16127
+ end: toPlainDateTime(daySlot.start, slot.end),
16128
+ isAllDay: false,
16129
+ resources: resourcesByIndex(verticalResources.length ? verticalIndex : horizontalIndex)
16130
+ })"
16131
+ class="k-scheduler-cell"
16132
+ >
16133
+ <ng-container *ngIf="timeSlotTemplateRef" [ngTemplateOutlet]="timeSlotTemplateRef"
16134
+ [ngTemplateOutletContext]="{ date: timeSlot.startLocalTime, resources: resourcesByIndex(timeSlot.id.resourceIndex ) }">
16135
+ </ng-container>
16136
+ </td>
16137
+ </ng-container>
15992
16138
  </ng-container>
15993
- </td>
15994
- </ng-container>
16139
+ </tr>
16140
+ </tbody>
16141
+ </table>
16142
+ <ng-container *ngFor="let item of items | async | sort; trackBy: itemIndex;">
16143
+ <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
16144
+ [ngClass]="getEventClasses(item, itemResource.resources)"
16145
+ [ngStyle]="getEventStyles(item, itemResource)"
16146
+ role="button"
16147
+ [kendoSchedulerFocusIndex]="itemResource.leafIdx"
16148
+ [id]="item.elementId + '_' + itemResource.leafIdx"
16149
+ dayTimeViewItem
16150
+ [editable]="editable"
16151
+ [item]="item"
16152
+ [index]="item.index"
16153
+ [rangeIndex]="item.rangeIndex"
16154
+ [eventTemplate]="eventTemplateRef"
16155
+ [resources]="itemResource.resources"
16156
+ [resourceIndex]="itemResource.leafIdx">
16157
+ </div>
15995
16158
  </ng-container>
15996
- </tr>
15997
- </table>
15998
- <ng-container *ngFor="let item of items | async | sort; trackBy: itemIndex;">
15999
- <div *ngFor="let itemResource of item.resources; trackBy: itemIndex;"
16000
- [ngClass]="getEventClasses(item, itemResource.resources)"
16001
- [ngStyle]="getEventStyles(item, itemResource)"
16002
- role="button"
16003
- [kendoSchedulerFocusIndex]="itemResource.leafIdx"
16004
- [id]="item.elementId + '_' + itemResource.leafIdx"
16005
- dayTimeViewItem
16006
- [editable]="editable"
16007
- [item]="item"
16008
- [index]="item.index"
16009
- [rangeIndex]="item.rangeIndex"
16010
- [eventTemplate]="eventTemplateRef"
16011
- [resources]="itemResource.resources"
16012
- [resourceIndex]="itemResource.leafIdx">
16159
+ <kendo-hint-container #hintContainer>
16160
+ <ng-template>
16161
+ <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
16162
+ class="k-event-drag-hint"
16163
+ dayTimeViewItem
16164
+ [ngStyle]="hint.style"
16165
+ [ngClass]="hint.class"
16166
+ [dragHint]="true"
16167
+ [eventTemplate]="eventTemplateRef"
16168
+ [item]="hint.item"
16169
+ [resources]="hint.resources">
16170
+ </div>
16171
+ <div *ngIf="resizeHints && resizeHints.length"
16172
+ kendoResizeHint
16173
+ [hint]="resizeHints[0]"
16174
+ [ngClass]="resizeHints[0].class"
16175
+ [format]="resizeHintFormat">
16176
+ </div>
16177
+ </ng-template>
16178
+ </kendo-hint-container>
16013
16179
  </div>
16014
- </ng-container>
16015
- <kendo-hint-container #hintContainer>
16016
- <ng-template>
16017
- <div *ngFor="let hint of dragHints; trackBy: itemIndex;"
16018
- class="k-event-drag-hint"
16019
- dayTimeViewItem
16020
- [ngStyle]="hint.style"
16021
- [ngClass]="hint.class"
16022
- [dragHint]="true"
16023
- [eventTemplate]="eventTemplateRef"
16024
- [item]="hint.item"
16025
- [resources]="hint.resources">
16026
- </div>
16027
- <div *ngIf="resizeHints && resizeHints.length"
16028
- kendoResizeHint
16029
- [hint]="resizeHints[0]"
16030
- [ngClass]="resizeHints[0].class"
16031
- [format]="resizeHintFormat">
16032
- </div>
16033
- </ng-template>
16034
- </kendo-hint-container>
16035
- </div>
16036
- </div>
16037
- </div>
16180
+ </td>
16181
+ </tr>
16182
+ </tbody>
16183
+ </table>
16038
16184
  `
16039
16185
  }]
16040
16186
  }], 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: [{
@@ -16046,6 +16192,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
16046
16192
  }], verticalResourceRows: [{
16047
16193
  type: ViewChildren,
16048
16194
  args: ['verticalResourceRows']
16195
+ }], headerTable: [{
16196
+ type: ViewChild,
16197
+ args: ['headerTable']
16049
16198
  }] } });
16050
16199
 
16051
16200
  const COLUMN_WIDTH = 'columnWidth';
@@ -17718,7 +17867,7 @@ YearViewInternalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
17718
17867
  {{ localization.get('yearViewNoEvents') }}
17719
17868
  </div>
17720
17869
  </ng-template>
17721
- `, 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"] }] });
17870
+ `, 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"] }] });
17722
17871
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: YearViewInternalComponent, decorators: [{
17723
17872
  type: Component,
17724
17873
  args: [{
@@ -18522,7 +18671,7 @@ class PDFComponent {
18522
18671
  const container = this.container = createDiv();
18523
18672
  container.style.top = container.style.left = '-10000px';
18524
18673
  container.style.position = 'absolute';
18525
- const wrapper = createDiv('k-widget k-scheduler k-floatwrap');
18674
+ const wrapper = createDiv('k-scheduler');
18526
18675
  wrapper.style.position = 'relative';
18527
18676
  wrapper.appendChild(args.element);
18528
18677
  container.appendChild(wrapper);