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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/esm2022/editing/date-time-picker.component.mjs +59 -56
  2. package/esm2022/editing/edit-dialog.component.mjs +373 -359
  3. package/esm2022/editing/recurrence/recurrence-editor.component.mjs +262 -253
  4. package/esm2022/editing/recurrence/recurrence-frequency-editor.component.mjs +44 -41
  5. package/esm2022/editing/recurrence/recurrence-monthly-yearly-editor.component.mjs +190 -193
  6. package/esm2022/editing/recurrence/recurrence-weekday-rule-editor.component.mjs +44 -43
  7. package/esm2022/editing/resource-multiple-editor.component.mjs +49 -41
  8. package/esm2022/editing/resource-single-editor.component.mjs +35 -31
  9. package/esm2022/editing/timezone-editor.component.mjs +20 -17
  10. package/esm2022/package-metadata.mjs +2 -2
  11. package/esm2022/pdf/pdf-command.directive.mjs +27 -17
  12. package/esm2022/scheduler.component.mjs +631 -625
  13. package/esm2022/toolbar/toolbar.component.mjs +37 -37
  14. package/esm2022/toolbar/view-selector.component.mjs +42 -33
  15. package/esm2022/views/agenda/agenda-header-item.component.mjs +23 -19
  16. package/esm2022/views/agenda/agenda-header.component.mjs +28 -26
  17. package/esm2022/views/agenda/agenda-task-item.component.mjs +49 -29
  18. package/esm2022/views/agenda/agenda-view-list.component.mjs +117 -95
  19. package/esm2022/views/common/resize-hint.component.mjs +16 -9
  20. package/esm2022/views/common/view-footer.component.mjs +27 -25
  21. package/esm2022/views/day-time/day-time-view-item.component.mjs +125 -85
  22. package/esm2022/views/month/month-slot.component.mjs +39 -29
  23. package/esm2022/views/month/month-view-item.component.mjs +81 -61
  24. package/esm2022/views/month/month-view-renderer.component.mjs +349 -281
  25. package/esm2022/views/multi-day/day-view.component.mjs +72 -69
  26. package/esm2022/views/multi-day/multi-day-view-renderer.component.mjs +665 -515
  27. package/esm2022/views/multi-day/multi-day-view.component.mjs +76 -73
  28. package/esm2022/views/multi-day/week-view.component.mjs +78 -75
  29. package/esm2022/views/multi-day/work-week-view.component.mjs +80 -77
  30. package/esm2022/views/timeline/timeline-month-view.component.mjs +74 -71
  31. package/esm2022/views/timeline/timeline-multi-day-view.component.mjs +449 -359
  32. package/esm2022/views/timeline/timeline-view.component.mjs +68 -65
  33. package/esm2022/views/timeline/timeline-week-view.component.mjs +74 -71
  34. package/esm2022/views/year/year-view-internal.component.mjs +151 -131
  35. package/fesm2022/progress-kendo-angular-scheduler.mjs +4448 -3889
  36. package/package.json +15 -15
  37. package/schematics/ngAdd/index.js +3 -3
@@ -10,7 +10,7 @@ import { ToolbarService } from './toolbar.service';
10
10
  import { ResizeSensorComponent } from '@progress/kendo-angular-common';
11
11
  import { ToolbarViewSelectorComponent } from './view-selector.component';
12
12
  import { ToolbarNavigationComponent } from './navigation.component';
13
- import { NgIf, NgTemplateOutlet } from '@angular/common';
13
+ import { NgTemplateOutlet } from '@angular/common';
14
14
  import * as i0 from "@angular/core";
15
15
  import * as i1 from "./toolbar.service";
16
16
  /**
@@ -82,55 +82,55 @@ export class ToolbarComponent {
82
82
  this.toolbarWidthChange.emit(this.toolbarWidth);
83
83
  }
84
84
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1.ToolbarService }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
85
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToolbarComponent, isStandalone: true, selector: "kendo-scheduler-toolbar", inputs: { selectedView: "selectedView", views: "views", dateRange: "dateRange", selectedDate: "selectedDate", template: "template", min: "min", max: "max" }, outputs: { navigate: "navigate", toolbarWidthChange: "toolbarWidthChange" }, host: { properties: { "class.k-scheduler-toolbar": "this.hostClasses", "class.k-toolbar": "this.hostClasses", "class.k-toolbar-solid": "this.hostClasses", "class.k-toolbar-md": "this.hostClasses", "attr.role": "this.toolbarRole" } }, usesOnChanges: true, ngImport: i0, template: `
86
- <ng-template
87
- *ngIf="template; else defaultTemplate"
85
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToolbarComponent, isStandalone: true, selector: "kendo-scheduler-toolbar", inputs: { selectedView: "selectedView", views: "views", dateRange: "dateRange", selectedDate: "selectedDate", template: "template", min: "min", max: "max" }, outputs: { navigate: "navigate", toolbarWidthChange: "toolbarWidthChange" }, host: { properties: { "class.k-scheduler-toolbar": "this.hostClasses", "class.k-toolbar": "this.hostClasses", "class.k-toolbar-solid": "this.hostClasses", "class.k-toolbar-md": "this.hostClasses", "attr.role": "this.toolbarRole" } }, usesOnChanges: true, ngImport: i0, template: `
86
+ @if (template) {
87
+ <ng-template
88
88
  [ngTemplateOutlet]="template.templateRef"
89
89
  [ngTemplateOutletContext]="templateContext"
90
- >
91
- </ng-template>
92
-
93
- <ng-template #defaultTemplate>
94
- <div kendoSchedulerToolbarNavigation
95
- [min]="min"
96
- [max]="max"
97
- [activeView]="activeView"
98
- [bottomView]="bottomView">
99
- </div>
100
- <span class="k-spacer"></span>
101
- <div kendoSchedulerToolbarViewSelector [toolbarWidth]="toolbarWidth"></div>
102
- </ng-template>
103
-
90
+ >
91
+ </ng-template>
92
+ } @else {
93
+ <div kendoSchedulerToolbarNavigation
94
+ [min]="min"
95
+ [max]="max"
96
+ [activeView]="activeView"
97
+ [bottomView]="bottomView">
98
+ </div>
99
+ <span class="k-spacer"></span>
100
+ <div kendoSchedulerToolbarViewSelector [toolbarWidth]="toolbarWidth"></div>
101
+ }
102
+
103
+
104
104
  <kendo-resize-sensor (resize)="resizeHandler()" [style]="'display: contents;'"></kendo-resize-sensor>
105
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolbarNavigationComponent, selector: "[kendoSchedulerToolbarNavigation]", inputs: ["min", "max", "activeView", "bottomView"] }, { kind: "component", type: ToolbarViewSelectorComponent, selector: "[kendoSchedulerToolbarViewSelector]", inputs: ["toolbarWidth", "responsiveBreakpoint"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
105
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolbarNavigationComponent, selector: "[kendoSchedulerToolbarNavigation]", inputs: ["min", "max", "activeView", "bottomView"] }, { kind: "component", type: ToolbarViewSelectorComponent, selector: "[kendoSchedulerToolbarViewSelector]", inputs: ["toolbarWidth", "responsiveBreakpoint"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
106
106
  }
107
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolbarComponent, decorators: [{
108
108
  type: Component,
109
109
  args: [{
110
110
  selector: 'kendo-scheduler-toolbar',
111
111
  template: `
112
- <ng-template
113
- *ngIf="template; else defaultTemplate"
112
+ @if (template) {
113
+ <ng-template
114
114
  [ngTemplateOutlet]="template.templateRef"
115
115
  [ngTemplateOutletContext]="templateContext"
116
- >
117
- </ng-template>
118
-
119
- <ng-template #defaultTemplate>
120
- <div kendoSchedulerToolbarNavigation
121
- [min]="min"
122
- [max]="max"
123
- [activeView]="activeView"
124
- [bottomView]="bottomView">
125
- </div>
126
- <span class="k-spacer"></span>
127
- <div kendoSchedulerToolbarViewSelector [toolbarWidth]="toolbarWidth"></div>
128
- </ng-template>
129
-
116
+ >
117
+ </ng-template>
118
+ } @else {
119
+ <div kendoSchedulerToolbarNavigation
120
+ [min]="min"
121
+ [max]="max"
122
+ [activeView]="activeView"
123
+ [bottomView]="bottomView">
124
+ </div>
125
+ <span class="k-spacer"></span>
126
+ <div kendoSchedulerToolbarViewSelector [toolbarWidth]="toolbarWidth"></div>
127
+ }
128
+
129
+
130
130
  <kendo-resize-sensor (resize)="resizeHandler()" [style]="'display: contents;'"></kendo-resize-sensor>
131
- `,
131
+ `,
132
132
  standalone: true,
133
- imports: [NgIf, NgTemplateOutlet, ToolbarNavigationComponent, ToolbarViewSelectorComponent, ResizeSensorComponent]
133
+ imports: [NgTemplateOutlet, ToolbarNavigationComponent, ToolbarViewSelectorComponent, ResizeSensorComponent]
134
134
  }]
135
135
  }], ctorParameters: () => [{ type: i1.ToolbarService }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { hostClasses: [{
136
136
  type: HostBinding,
@@ -7,7 +7,6 @@ import { ToolbarService } from './toolbar.service';
7
7
  import { LocalizationService } from '@progress/kendo-angular-l10n';
8
8
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
9
9
  import { FocusableDirective } from '../navigation/focusable.directive';
10
- import { NgIf, NgFor } from '@angular/common';
11
10
  import * as i0 from "@angular/core";
12
11
  import * as i1 from "./toolbar.service";
13
12
  import * as i2 from "@progress/kendo-angular-l10n";
@@ -88,40 +87,45 @@ export class ToolbarViewSelectorComponent {
88
87
  return this.ctx.selectedView === view;
89
88
  }
90
89
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolbarViewSelectorComponent, deps: [{ token: i1.ToolbarService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
91
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToolbarViewSelectorComponent, isStandalone: true, selector: "[kendoSchedulerToolbarViewSelector]", inputs: { toolbarWidth: "toolbarWidth", responsiveBreakpoint: "responsiveBreakpoint" }, ngImport: i0, template: `
92
- <select
93
- *ngIf="ctx.views?.length > 1 && toolbarWidth <= responsiveBreakpoint"
90
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToolbarViewSelectorComponent, isStandalone: true, selector: "[kendoSchedulerToolbarViewSelector]", inputs: { toolbarWidth: "toolbarWidth", responsiveBreakpoint: "responsiveBreakpoint" }, ngImport: i0, template: `
91
+ @if (ctx.views?.length > 1 && toolbarWidth <= responsiveBreakpoint) {
92
+ <select
94
93
  (change)="onChange($event)"
95
94
  class="k-views-dropdown k-picker-md k-rounded-md k-picker-solid k-dropdownlist k-picker"
96
95
  [attr.aria-label]="selectView"
97
96
  [kendoSchedulerFocusIndex]="0"
98
97
  containerType="toolbar">
99
- <option *ngFor="let view of ctx.views"
98
+ @for (view of ctx.views; track view) {
99
+ <option
100
100
  [selected]="isSelected(view) === true"
101
101
  [value]="view.name"
102
- >
102
+ >
103
103
  {{ view.title }}
104
- </option>
105
- </select>
106
- <span
107
- *ngIf="toolbarWidth > responsiveBreakpoint"
104
+ </option>
105
+ }
106
+ </select>
107
+ }
108
+ @if (toolbarWidth > responsiveBreakpoint) {
109
+ <span
108
110
  class="k-toolbar-button-group k-scheduler-views k-button-group k-button-group-solid"
109
111
  role="group"
110
- >
111
- <button kendoButton
112
+ >
113
+ @for (view of ctx.views; track view) {
114
+ <button kendoButton
112
115
  type="button"
113
- *ngFor="let view of ctx.views"
114
116
  [selected]="isSelected(view)"
115
117
  [attr.aria-pressed]="isSelected(view)"
116
118
  (click)="select(view)"
117
119
  [kendoSchedulerFocusIndex]="0"
118
120
  containerType="toolbar">
119
121
  <span class="k-button-text">
120
- {{ view.title }}
122
+ {{ view.title }}
121
123
  </span>
122
- </button>
123
- </span>
124
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
124
+ </button>
125
+ }
126
+ </span>
127
+ }
128
+ `, isInline: true, dependencies: [{ kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
125
129
  }
126
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolbarViewSelectorComponent, decorators: [{
127
131
  type: Component,
@@ -129,41 +133,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
129
133
  // eslint-disable-next-line @angular-eslint/component-selector
130
134
  selector: '[kendoSchedulerToolbarViewSelector]',
131
135
  template: `
132
- <select
133
- *ngIf="ctx.views?.length > 1 && toolbarWidth <= responsiveBreakpoint"
136
+ @if (ctx.views?.length > 1 && toolbarWidth <= responsiveBreakpoint) {
137
+ <select
134
138
  (change)="onChange($event)"
135
139
  class="k-views-dropdown k-picker-md k-rounded-md k-picker-solid k-dropdownlist k-picker"
136
140
  [attr.aria-label]="selectView"
137
141
  [kendoSchedulerFocusIndex]="0"
138
142
  containerType="toolbar">
139
- <option *ngFor="let view of ctx.views"
143
+ @for (view of ctx.views; track view) {
144
+ <option
140
145
  [selected]="isSelected(view) === true"
141
146
  [value]="view.name"
142
- >
147
+ >
143
148
  {{ view.title }}
144
- </option>
145
- </select>
146
- <span
147
- *ngIf="toolbarWidth > responsiveBreakpoint"
149
+ </option>
150
+ }
151
+ </select>
152
+ }
153
+ @if (toolbarWidth > responsiveBreakpoint) {
154
+ <span
148
155
  class="k-toolbar-button-group k-scheduler-views k-button-group k-button-group-solid"
149
156
  role="group"
150
- >
151
- <button kendoButton
157
+ >
158
+ @for (view of ctx.views; track view) {
159
+ <button kendoButton
152
160
  type="button"
153
- *ngFor="let view of ctx.views"
154
161
  [selected]="isSelected(view)"
155
162
  [attr.aria-pressed]="isSelected(view)"
156
163
  (click)="select(view)"
157
164
  [kendoSchedulerFocusIndex]="0"
158
165
  containerType="toolbar">
159
166
  <span class="k-button-text">
160
- {{ view.title }}
167
+ {{ view.title }}
161
168
  </span>
162
- </button>
163
- </span>
164
- `,
169
+ </button>
170
+ }
171
+ </span>
172
+ }
173
+ `,
165
174
  standalone: true,
166
- imports: [NgIf, FocusableDirective, NgFor, ButtonComponent]
175
+ imports: [FocusableDirective, ButtonComponent]
167
176
  }]
168
177
  }], ctorParameters: () => [{ type: i1.ToolbarService }, { type: i2.LocalizationService }], propDecorators: { toolbarWidth: [{
169
178
  type: Input
@@ -5,7 +5,7 @@
5
5
  import { Component, Input, HostBinding, ChangeDetectionStrategy, TemplateRef } from '@angular/core';
6
6
  import { toLocalDate } from '@progress/kendo-date-math';
7
7
  import { DatePipe } from '@progress/kendo-angular-intl';
8
- import { NgIf, NgTemplateOutlet } from '@angular/common';
8
+ import { NgTemplateOutlet } from '@angular/common';
9
9
  import * as i0 from "@angular/core";
10
10
  /**
11
11
  * @hidden
@@ -26,16 +26,18 @@ export class AgendaHeaderItemComponent {
26
26
  return toLocalDate(this.item.dataItem.value);
27
27
  }
28
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgendaHeaderItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AgendaHeaderItemComponent, isStandalone: true, 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: `
30
- <ng-container *ngIf="!agendaDateTemplate">
31
- <strong class="k-scheduler-agendaday">{{itemDate | kendoDate: 'dd'}}</strong>
32
- <em class="k-scheduler-agendaweek">{{itemDate | kendoDate: 'EEEE'}}</em>
33
- <span class="k-scheduler-agendadate">{{itemDate | kendoDate: 'y'}}</span>
34
- </ng-container>
35
- <ng-container *ngIf="agendaDateTemplate" [ngTemplateOutlet]="agendaDateTemplate"
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AgendaHeaderItemComponent, isStandalone: true, 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: `
30
+ @if (!agendaDateTemplate) {
31
+ <strong class="k-scheduler-agendaday">{{itemDate | kendoDate: 'dd'}}</strong>
32
+ <em class="k-scheduler-agendaweek">{{itemDate | kendoDate: 'EEEE'}}</em>
33
+ <span class="k-scheduler-agendadate">{{itemDate | kendoDate: 'y'}}</span>
34
+ }
35
+ @if (agendaDateTemplate) {
36
+ <ng-container [ngTemplateOutlet]="agendaDateTemplate"
36
37
  [ngTemplateOutletContext]="{ date: itemDate }">
37
- </ng-container>
38
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DatePipe, name: "kendoDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
38
+ </ng-container>
39
+ }
40
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DatePipe, name: "kendoDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39
41
  }
40
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgendaHeaderItemComponent, decorators: [{
41
43
  type: Component,
@@ -44,17 +46,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
44
46
  // eslint-disable-next-line @angular-eslint/component-selector
45
47
  selector: '[kendoSchedulerAgendaHeaderItem]',
46
48
  template: `
47
- <ng-container *ngIf="!agendaDateTemplate">
48
- <strong class="k-scheduler-agendaday">{{itemDate | kendoDate: 'dd'}}</strong>
49
- <em class="k-scheduler-agendaweek">{{itemDate | kendoDate: 'EEEE'}}</em>
50
- <span class="k-scheduler-agendadate">{{itemDate | kendoDate: 'y'}}</span>
51
- </ng-container>
52
- <ng-container *ngIf="agendaDateTemplate" [ngTemplateOutlet]="agendaDateTemplate"
49
+ @if (!agendaDateTemplate) {
50
+ <strong class="k-scheduler-agendaday">{{itemDate | kendoDate: 'dd'}}</strong>
51
+ <em class="k-scheduler-agendaweek">{{itemDate | kendoDate: 'EEEE'}}</em>
52
+ <span class="k-scheduler-agendadate">{{itemDate | kendoDate: 'y'}}</span>
53
+ }
54
+ @if (agendaDateTemplate) {
55
+ <ng-container [ngTemplateOutlet]="agendaDateTemplate"
53
56
  [ngTemplateOutletContext]="{ date: itemDate }">
54
- </ng-container>
55
- `,
57
+ </ng-container>
58
+ }
59
+ `,
56
60
  standalone: true,
57
- imports: [NgIf, NgTemplateOutlet, DatePipe]
61
+ imports: [NgTemplateOutlet, DatePipe]
58
62
  }]
59
63
  }], propDecorators: { classes: [{
60
64
  type: HostBinding,
@@ -4,7 +4,6 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, ChangeDetectionStrategy, HostBinding, Input } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { NgFor } from '@angular/common';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "@progress/kendo-angular-l10n";
10
9
  /**
@@ -27,20 +26,22 @@ export class AgendaHeaderComponent {
27
26
  this.localization = localization;
28
27
  }
29
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgendaHeaderComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
30
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AgendaHeaderComponent, isStandalone: true, selector: "[kendoSchedulerAgendaHeader]", inputs: { resources: "resources" }, host: { properties: { "class.k-scheduler-header": "this.classes" } }, ngImport: i0, template: `
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AgendaHeaderComponent, isStandalone: true, selector: "[kendoSchedulerAgendaHeader]", inputs: { resources: "resources" }, host: { properties: { "class.k-scheduler-header": "this.classes" } }, ngImport: i0, template: `
31
30
  <div class="k-scheduler-header-wrap">
32
- <table class="k-scheduler-table" role="none">
33
- <tbody role="rowgroup">
34
- <tr role="row">
35
- <th *ngFor="let resource of resources" class="k-scheduler-groupcolumn k-first" role="columnheader"></th>
36
- <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
37
- <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
38
- <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
39
- </tr>
40
- </tbody>
41
- </table>
31
+ <table class="k-scheduler-table" role="none">
32
+ <tbody role="rowgroup">
33
+ <tr role="row">
34
+ @for (resource of resources; track resource) {
35
+ <th class="k-scheduler-groupcolumn k-first" role="columnheader"></th>
36
+ }
37
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
38
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
39
+ <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
40
+ </tr>
41
+ </tbody>
42
+ </table>
42
43
  </div>
43
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
45
  }
45
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgendaHeaderComponent, decorators: [{
46
47
  type: Component,
@@ -50,20 +51,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
50
51
  selector: '[kendoSchedulerAgendaHeader]',
51
52
  template: `
52
53
  <div class="k-scheduler-header-wrap">
53
- <table class="k-scheduler-table" role="none">
54
- <tbody role="rowgroup">
55
- <tr role="row">
56
- <th *ngFor="let resource of resources" class="k-scheduler-groupcolumn k-first" role="columnheader"></th>
57
- <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
58
- <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
59
- <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
60
- </tr>
61
- </tbody>
62
- </table>
54
+ <table class="k-scheduler-table" role="none">
55
+ <tbody role="rowgroup">
56
+ <tr role="row">
57
+ @for (resource of resources; track resource) {
58
+ <th class="k-scheduler-groupcolumn k-first" role="columnheader"></th>
59
+ }
60
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
61
+ <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
62
+ <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
63
+ </tr>
64
+ </tbody>
65
+ </table>
63
66
  </div>
64
- `,
65
- standalone: true,
66
- imports: [NgFor]
67
+ `,
68
+ standalone: true
67
69
  }]
68
70
  }], ctorParameters: () => [{ type: i1.LocalizationService }], propDecorators: { classes: [{
69
71
  type: HostBinding,
@@ -8,7 +8,7 @@ import { toLocalDate } from '@progress/kendo-date-math';
8
8
  import { arrowRotateCwIcon, arrowsNoRepeatIcon, xIcon } from '@progress/kendo-svg-icons';
9
9
  import { isRecurrence, isRecurrenceException, formatEventTime } from '../utils';
10
10
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
11
- import { NgIf, NgTemplateOutlet } from '@angular/common';
11
+ import { NgTemplateOutlet } from '@angular/common';
12
12
  import { IntlService } from '@progress/kendo-angular-intl';
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "@progress/kendo-angular-l10n";
@@ -53,24 +53,34 @@ export class AgendaTaskItemComponent {
53
53
  this.intl = intl;
54
54
  }
55
55
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgendaTaskItemComponent, deps: [{ token: i1.LocalizationService }, { token: i2.IntlService }], target: i0.ɵɵFactoryTarget.Component });
56
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AgendaTaskItemComponent, isStandalone: true, 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: `
56
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AgendaTaskItemComponent, isStandalone: true, 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: `
57
57
  <div class="k-task" [title]="item.title">
58
- <span class="k-scheduler-mark" *ngIf="eventColor" [style.background-color]="eventColor"></span>
59
- <kendo-icon-wrapper *ngIf="isRecurrence" name="arrow-rotate-cw" [svgIcon]="arrowRotateCWIcon"></kendo-icon-wrapper>
60
-
61
- <kendo-icon-wrapper *ngIf="isRecurrenceException" name="arrows-no-repeat" [svgIcon]="arrowsNoRepeatIcon"></kendo-icon-wrapper>
62
- <ng-container *ngIf="!eventTemplate">
63
- {{item?.title }}
58
+ @if (eventColor) {
59
+ <span class="k-scheduler-mark" [style.background-color]="eventColor"></span>
60
+ }
61
+ @if (isRecurrence) {
62
+ <kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="arrowRotateCWIcon"></kendo-icon-wrapper>
63
+ }
64
+
65
+ @if (isRecurrenceException) {
66
+ <kendo-icon-wrapper name="arrows-no-repeat" [svgIcon]="arrowsNoRepeatIcon"></kendo-icon-wrapper>
67
+ }
68
+ @if (!eventTemplate) {
69
+ {{item?.title }}
70
+ }
71
+ @if (eventTemplate) {
72
+ <ng-container [ngTemplateOutlet]="eventTemplate"
73
+ [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: item.resources }">
64
74
  </ng-container>
65
- <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
66
- [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: item.resources }">
67
- </ng-container>
68
-
69
- <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
70
- <kendo-icon-wrapper name="x" [svgIcon]="xIcon"></kendo-icon-wrapper>
75
+ }
76
+
77
+ @if (removable) {
78
+ <span class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
79
+ <kendo-icon-wrapper name="x" [svgIcon]="xIcon"></kendo-icon-wrapper>
71
80
  </span>
81
+ }
72
82
  </div>
73
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
+ `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74
84
  }
75
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgendaTaskItemComponent, decorators: [{
76
86
  type: Component,
@@ -80,24 +90,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
80
90
  selector: '[kendoSchedulerAgendaTaskItem]',
81
91
  template: `
82
92
  <div class="k-task" [title]="item.title">
83
- <span class="k-scheduler-mark" *ngIf="eventColor" [style.background-color]="eventColor"></span>
84
- <kendo-icon-wrapper *ngIf="isRecurrence" name="arrow-rotate-cw" [svgIcon]="arrowRotateCWIcon"></kendo-icon-wrapper>
85
-
86
- <kendo-icon-wrapper *ngIf="isRecurrenceException" name="arrows-no-repeat" [svgIcon]="arrowsNoRepeatIcon"></kendo-icon-wrapper>
87
- <ng-container *ngIf="!eventTemplate">
88
- {{item?.title }}
89
- </ng-container>
90
- <ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
91
- [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: item.resources }">
93
+ @if (eventColor) {
94
+ <span class="k-scheduler-mark" [style.background-color]="eventColor"></span>
95
+ }
96
+ @if (isRecurrence) {
97
+ <kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="arrowRotateCWIcon"></kendo-icon-wrapper>
98
+ }
99
+
100
+ @if (isRecurrenceException) {
101
+ <kendo-icon-wrapper name="arrows-no-repeat" [svgIcon]="arrowsNoRepeatIcon"></kendo-icon-wrapper>
102
+ }
103
+ @if (!eventTemplate) {
104
+ {{item?.title }}
105
+ }
106
+ @if (eventTemplate) {
107
+ <ng-container [ngTemplateOutlet]="eventTemplate"
108
+ [ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: item.resources }">
92
109
  </ng-container>
93
-
94
- <span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
95
- <kendo-icon-wrapper name="x" [svgIcon]="xIcon"></kendo-icon-wrapper>
110
+ }
111
+
112
+ @if (removable) {
113
+ <span class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
114
+ <kendo-icon-wrapper name="x" [svgIcon]="xIcon"></kendo-icon-wrapper>
96
115
  </span>
116
+ }
97
117
  </div>
98
- `,
118
+ `,
99
119
  standalone: true,
100
- imports: [NgIf, IconWrapperComponent, NgTemplateOutlet]
120
+ imports: [IconWrapperComponent, NgTemplateOutlet]
101
121
  }]
102
122
  }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i2.IntlService }], propDecorators: { item: [{
103
123
  type: Input,