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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/esm2022/editing/date-time-picker.component.mjs +59 -56
  2. package/esm2022/editing/edit-dialog.component.mjs +373 -359
  3. package/esm2022/editing/recurrence/recurrence-editor.component.mjs +262 -253
  4. package/esm2022/editing/recurrence/recurrence-frequency-editor.component.mjs +44 -41
  5. package/esm2022/editing/recurrence/recurrence-monthly-yearly-editor.component.mjs +190 -193
  6. package/esm2022/editing/recurrence/recurrence-weekday-rule-editor.component.mjs +44 -43
  7. package/esm2022/editing/resource-multiple-editor.component.mjs +49 -41
  8. package/esm2022/editing/resource-single-editor.component.mjs +35 -31
  9. package/esm2022/editing/timezone-editor.component.mjs +20 -17
  10. package/esm2022/navigation/shortcuts.directive.mjs +12 -12
  11. package/esm2022/package-metadata.mjs +2 -2
  12. package/esm2022/pdf/pdf-command.directive.mjs +27 -17
  13. package/esm2022/scheduler.component.mjs +631 -625
  14. package/esm2022/toolbar/toolbar.component.mjs +37 -37
  15. package/esm2022/toolbar/view-selector.component.mjs +42 -33
  16. package/esm2022/views/agenda/agenda-header-item.component.mjs +23 -19
  17. package/esm2022/views/agenda/agenda-header.component.mjs +28 -26
  18. package/esm2022/views/agenda/agenda-task-item.component.mjs +49 -29
  19. package/esm2022/views/agenda/agenda-view-list.component.mjs +117 -95
  20. package/esm2022/views/common/resize-hint.component.mjs +16 -9
  21. package/esm2022/views/common/view-footer.component.mjs +27 -25
  22. package/esm2022/views/day-time/day-time-view-item.component.mjs +125 -85
  23. package/esm2022/views/month/month-slot.component.mjs +39 -29
  24. package/esm2022/views/month/month-view-item.component.mjs +81 -61
  25. package/esm2022/views/month/month-view-renderer.component.mjs +349 -281
  26. package/esm2022/views/multi-day/day-view.component.mjs +72 -69
  27. package/esm2022/views/multi-day/multi-day-view-renderer.component.mjs +665 -515
  28. package/esm2022/views/multi-day/multi-day-view.component.mjs +76 -73
  29. package/esm2022/views/multi-day/week-view.component.mjs +78 -75
  30. package/esm2022/views/multi-day/work-week-view.component.mjs +80 -77
  31. package/esm2022/views/timeline/timeline-month-view.component.mjs +74 -71
  32. package/esm2022/views/timeline/timeline-multi-day-view.component.mjs +449 -359
  33. package/esm2022/views/timeline/timeline-view.component.mjs +68 -65
  34. package/esm2022/views/timeline/timeline-week-view.component.mjs +74 -71
  35. package/esm2022/views/year/year-view-internal.component.mjs +151 -131
  36. package/fesm2022/progress-kendo-angular-scheduler.mjs +4460 -3901
  37. package/package.json +15 -15
  38. package/schematics/ngAdd/index.js +3 -3
@@ -12,7 +12,7 @@ import { AgendaTaskItemComponent } from './agenda-task-item.component';
12
12
  import { FocusableDirective } from '../../navigation/focusable.directive';
13
13
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
14
14
  import { AgendaHeaderItemComponent } from './agenda-header-item.component';
15
- import { NgFor, NgIf, NgTemplateOutlet, NgClass, NgStyle } from '@angular/common';
15
+ import { NgTemplateOutlet, NgClass, NgStyle } from '@angular/common';
16
16
  import * as i0 from "@angular/core";
17
17
  import * as i1 from "@progress/kendo-angular-intl";
18
18
  import * as i2 from "@progress/kendo-angular-l10n";
@@ -105,55 +105,66 @@ export class AgendaListComponent {
105
105
  return !this.localization.rtl ? [this.caretAltLeftIcon, this.caretAltRightIcon] : [this.caretAltRightIcon, this.caretAltLeftIcon];
106
106
  }
107
107
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgendaListComponent, deps: [{ token: i1.IntlService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
108
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AgendaListComponent, isStandalone: true, selector: "[kendoSchedulerAgendaList]", inputs: { tasks: "tasks", eventTemplate: "eventTemplate", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", agendaTimeTemplate: "agendaTimeTemplate", agendaDateTemplate: "agendaDateTemplate", editable: "editable" }, host: { properties: { "class.k-scheduler-content": "this.classes" } }, ngImport: i0, template: `
108
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AgendaListComponent, isStandalone: true, selector: "[kendoSchedulerAgendaList]", inputs: { tasks: "tasks", eventTemplate: "eventTemplate", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", agendaTimeTemplate: "agendaTimeTemplate", agendaDateTemplate: "agendaDateTemplate", editable: "editable" }, host: { properties: { "class.k-scheduler-content": "this.classes" } }, ngImport: i0, template: `
109
109
  <table class="k-scheduler-table" role="none">
110
- <tbody role="rowgroup">
111
- <ng-container *ngFor="let group of tasks; let groupIndex = index;">
112
- <tr *ngFor="let item of group.tasks; let index = index; trackBy: trackByFn" role="row">
113
- <ng-container *ngFor="let resource of group.resources; let resourceIndex = index">
114
- <td *ngIf="group.spans[resourceIndex] && index === 0" class="k-scheduler-groupcolumn k-first" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
115
- {{ resource }}
116
- </td>
117
- </ng-container>
118
- <td *ngIf="item.type === 'group'"
119
- [kendoSchedulerAgendaHeaderItem]="item"
120
- [hasFirstClass]="!group.resources || group.resources.length === 0"
121
- [agendaDateTemplate]="agendaDateTemplate">
122
- </td>
123
- <td class="k-scheduler-timecolumn k-scheduler-cell" role="gridcell">
124
- <div *ngIf="!agendaTimeTemplate">
125
- <kendo-icon-wrapper
126
- *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
127
- [name]="arrowIcons[0]"
128
- [svgIcon]="arrowSVGIcons[0]"
129
- >
130
- </kendo-icon-wrapper>
131
-
132
- {{ formatTime(extractDataItem(item)) }}
133
- <kendo-icon-wrapper
134
- *ngIf="extractDataItem(item).head || extractDataItem(item).mid"
135
- [name]="arrowIcons[1]"
136
- [svgIcon]="arrowSVGIcons[1]"
137
- >
138
- </kendo-icon-wrapper>
139
- </div>
140
- <ng-container *ngIf="agendaTimeTemplate" [ngTemplateOutlet]="agendaTimeTemplate"
141
- [ngTemplateOutletContext]="extractDataItemInLocalTime(item)">
142
- </ng-container>
143
- </td>
144
- <td [attr.data-group-index]="groupIndex" [attr.data-task-index]="index" role="gridcell"
145
- [ngClass]="cellClasses(item)" [ngStyle]="getEventStyles(item)"
146
- [kendoSchedulerFocusIndex]="groupIndex"
147
- [id]="item.elementId"
148
- [kendoSchedulerAgendaTaskItem]="extractDataItem(item)"
149
- [editable]="editable"
150
- [eventTemplate]="eventTemplate"
151
- ></td>
152
- </tr>
153
- </ng-container>
154
- </tbody>
110
+ <tbody role="rowgroup">
111
+ @for (group of tasks; track group; let groupIndex = $index) {
112
+ @for (item of group.tasks; track trackByFn(index, item); let index = $index) {
113
+ <tr role="row">
114
+ @for (resource of group.resources; track resource; let resourceIndex = $index) {
115
+ @if (group.spans[resourceIndex] && index === 0) {
116
+ <td class="k-scheduler-groupcolumn k-first" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
117
+ {{ resource }}
118
+ </td>
119
+ }
120
+ }
121
+ @if (item.type === 'group') {
122
+ <td
123
+ [kendoSchedulerAgendaHeaderItem]="item"
124
+ [hasFirstClass]="!group.resources || group.resources.length === 0"
125
+ [agendaDateTemplate]="agendaDateTemplate">
126
+ </td>
127
+ }
128
+ <td class="k-scheduler-timecolumn k-scheduler-cell" role="gridcell">
129
+ @if (!agendaTimeTemplate) {
130
+ <div>
131
+ @if (extractDataItem(item).tail || extractDataItem(item).mid) {
132
+ <kendo-icon-wrapper
133
+ [name]="arrowIcons[0]"
134
+ [svgIcon]="arrowSVGIcons[0]"
135
+ >
136
+ </kendo-icon-wrapper>
137
+ }
138
+ {{ formatTime(extractDataItem(item)) }}
139
+ @if (extractDataItem(item).head || extractDataItem(item).mid) {
140
+ <kendo-icon-wrapper
141
+ [name]="arrowIcons[1]"
142
+ [svgIcon]="arrowSVGIcons[1]"
143
+ >
144
+ </kendo-icon-wrapper>
145
+ }
146
+ </div>
147
+ }
148
+ @if (agendaTimeTemplate) {
149
+ <ng-container [ngTemplateOutlet]="agendaTimeTemplate"
150
+ [ngTemplateOutletContext]="extractDataItemInLocalTime(item)">
151
+ </ng-container>
152
+ }
153
+ </td>
154
+ <td [attr.data-group-index]="groupIndex" [attr.data-task-index]="index" role="gridcell"
155
+ [ngClass]="cellClasses(item)" [ngStyle]="getEventStyles(item)"
156
+ [kendoSchedulerFocusIndex]="groupIndex"
157
+ [id]="item.elementId"
158
+ [kendoSchedulerAgendaTaskItem]="extractDataItem(item)"
159
+ [editable]="editable"
160
+ [eventTemplate]="eventTemplate"
161
+ ></td>
162
+ </tr>
163
+ }
164
+ }
165
+ </tbody>
155
166
  </table>
156
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AgendaHeaderItemComponent, selector: "[kendoSchedulerAgendaHeaderItem]", inputs: ["kendoSchedulerAgendaHeaderItem", "agendaDateTemplate", "hasFirstClass"] }, { 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"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: AgendaTaskItemComponent, selector: "[kendoSchedulerAgendaTaskItem]", inputs: ["kendoSchedulerAgendaTaskItem", "color", "eventTemplate", "editable"] }] });
167
+ `, isInline: true, dependencies: [{ kind: "component", type: AgendaHeaderItemComponent, selector: "[kendoSchedulerAgendaHeaderItem]", inputs: ["kendoSchedulerAgendaHeaderItem", "agendaDateTemplate", "hasFirstClass"] }, { 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"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: AgendaTaskItemComponent, selector: "[kendoSchedulerAgendaTaskItem]", inputs: ["kendoSchedulerAgendaTaskItem", "color", "eventTemplate", "editable"] }] });
157
168
  }
158
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgendaListComponent, decorators: [{
159
170
  type: Component,
@@ -162,55 +173,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
162
173
  selector: '[kendoSchedulerAgendaList]',
163
174
  template: `
164
175
  <table class="k-scheduler-table" role="none">
165
- <tbody role="rowgroup">
166
- <ng-container *ngFor="let group of tasks; let groupIndex = index;">
167
- <tr *ngFor="let item of group.tasks; let index = index; trackBy: trackByFn" role="row">
168
- <ng-container *ngFor="let resource of group.resources; let resourceIndex = index">
169
- <td *ngIf="group.spans[resourceIndex] && index === 0" class="k-scheduler-groupcolumn k-first" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
170
- {{ resource }}
171
- </td>
172
- </ng-container>
173
- <td *ngIf="item.type === 'group'"
174
- [kendoSchedulerAgendaHeaderItem]="item"
175
- [hasFirstClass]="!group.resources || group.resources.length === 0"
176
- [agendaDateTemplate]="agendaDateTemplate">
177
- </td>
178
- <td class="k-scheduler-timecolumn k-scheduler-cell" role="gridcell">
179
- <div *ngIf="!agendaTimeTemplate">
180
- <kendo-icon-wrapper
181
- *ngIf="extractDataItem(item).tail || extractDataItem(item).mid"
182
- [name]="arrowIcons[0]"
183
- [svgIcon]="arrowSVGIcons[0]"
184
- >
185
- </kendo-icon-wrapper>
186
-
187
- {{ formatTime(extractDataItem(item)) }}
188
- <kendo-icon-wrapper
189
- *ngIf="extractDataItem(item).head || extractDataItem(item).mid"
190
- [name]="arrowIcons[1]"
191
- [svgIcon]="arrowSVGIcons[1]"
192
- >
193
- </kendo-icon-wrapper>
194
- </div>
195
- <ng-container *ngIf="agendaTimeTemplate" [ngTemplateOutlet]="agendaTimeTemplate"
196
- [ngTemplateOutletContext]="extractDataItemInLocalTime(item)">
197
- </ng-container>
198
- </td>
199
- <td [attr.data-group-index]="groupIndex" [attr.data-task-index]="index" role="gridcell"
200
- [ngClass]="cellClasses(item)" [ngStyle]="getEventStyles(item)"
201
- [kendoSchedulerFocusIndex]="groupIndex"
202
- [id]="item.elementId"
203
- [kendoSchedulerAgendaTaskItem]="extractDataItem(item)"
204
- [editable]="editable"
205
- [eventTemplate]="eventTemplate"
206
- ></td>
207
- </tr>
208
- </ng-container>
209
- </tbody>
176
+ <tbody role="rowgroup">
177
+ @for (group of tasks; track group; let groupIndex = $index) {
178
+ @for (item of group.tasks; track trackByFn(index, item); let index = $index) {
179
+ <tr role="row">
180
+ @for (resource of group.resources; track resource; let resourceIndex = $index) {
181
+ @if (group.spans[resourceIndex] && index === 0) {
182
+ <td class="k-scheduler-groupcolumn k-first" [attr.rowspan]="group.spans[resourceIndex]" role="rowheader">
183
+ {{ resource }}
184
+ </td>
185
+ }
186
+ }
187
+ @if (item.type === 'group') {
188
+ <td
189
+ [kendoSchedulerAgendaHeaderItem]="item"
190
+ [hasFirstClass]="!group.resources || group.resources.length === 0"
191
+ [agendaDateTemplate]="agendaDateTemplate">
192
+ </td>
193
+ }
194
+ <td class="k-scheduler-timecolumn k-scheduler-cell" role="gridcell">
195
+ @if (!agendaTimeTemplate) {
196
+ <div>
197
+ @if (extractDataItem(item).tail || extractDataItem(item).mid) {
198
+ <kendo-icon-wrapper
199
+ [name]="arrowIcons[0]"
200
+ [svgIcon]="arrowSVGIcons[0]"
201
+ >
202
+ </kendo-icon-wrapper>
203
+ }
204
+ {{ formatTime(extractDataItem(item)) }}
205
+ @if (extractDataItem(item).head || extractDataItem(item).mid) {
206
+ <kendo-icon-wrapper
207
+ [name]="arrowIcons[1]"
208
+ [svgIcon]="arrowSVGIcons[1]"
209
+ >
210
+ </kendo-icon-wrapper>
211
+ }
212
+ </div>
213
+ }
214
+ @if (agendaTimeTemplate) {
215
+ <ng-container [ngTemplateOutlet]="agendaTimeTemplate"
216
+ [ngTemplateOutletContext]="extractDataItemInLocalTime(item)">
217
+ </ng-container>
218
+ }
219
+ </td>
220
+ <td [attr.data-group-index]="groupIndex" [attr.data-task-index]="index" role="gridcell"
221
+ [ngClass]="cellClasses(item)" [ngStyle]="getEventStyles(item)"
222
+ [kendoSchedulerFocusIndex]="groupIndex"
223
+ [id]="item.elementId"
224
+ [kendoSchedulerAgendaTaskItem]="extractDataItem(item)"
225
+ [editable]="editable"
226
+ [eventTemplate]="eventTemplate"
227
+ ></td>
228
+ </tr>
229
+ }
230
+ }
231
+ </tbody>
210
232
  </table>
211
- `,
233
+ `,
212
234
  standalone: true,
213
- imports: [NgFor, NgIf, AgendaHeaderItemComponent, IconWrapperComponent, NgTemplateOutlet, NgClass, NgStyle, FocusableDirective, AgendaTaskItemComponent]
235
+ imports: [AgendaHeaderItemComponent, IconWrapperComponent, NgTemplateOutlet, NgClass, NgStyle, FocusableDirective, AgendaTaskItemComponent]
214
236
  }]
215
237
  }], ctorParameters: () => [{ type: i1.IntlService }, { type: i2.LocalizationService }], propDecorators: { classes: [{
216
238
  type: HostBinding,
@@ -5,7 +5,6 @@
5
5
  import { Component, HostBinding, Input } from '@angular/core';
6
6
  import { toLocalDate } from '@progress/kendo-date-math';
7
7
  import { DatePipe } from '@progress/kendo-angular-intl';
8
- import { NgIf } from '@angular/common';
9
8
  import * as i0 from "@angular/core";
10
9
  /**
11
10
  * @hidden
@@ -33,13 +32,17 @@ export class ResizeHintComponent {
33
32
  return toLocalDate(this.hint.end);
34
33
  }
35
34
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizeHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ResizeHintComponent, isStandalone: true, selector: "[kendoResizeHint]", inputs: { hint: "hint", format: "format" }, host: { properties: { "class.k-marquee": "this.marqueeClasses", "class.k-scheduler-marquee": "this.marqueeClasses", "class.k-first": "this.marqueeClasses", "class.k-last": "this.marqueeClasses", "style.left.px": "this.left", "style.right.px": "this.left", "style.top.px": "this.top", "style.width.px": "this.width", "style.height.px": "this.height" } }, ngImport: i0, template: `
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ResizeHintComponent, isStandalone: true, selector: "[kendoResizeHint]", inputs: { hint: "hint", format: "format" }, host: { properties: { "class.k-marquee": "this.marqueeClasses", "class.k-scheduler-marquee": "this.marqueeClasses", "class.k-first": "this.marqueeClasses", "class.k-last": "this.marqueeClasses", "style.left.px": "this.left", "style.right.px": "this.left", "style.top.px": "this.top", "style.width.px": "this.width", "style.height.px": "this.height" } }, ngImport: i0, template: `
37
36
  <div class="k-marquee-color"></div>
38
37
  <div class="k-marquee-text">
39
- <div class="k-label-top" *ngIf="hint.first">{{ start | kendoDate : format }}</div>
40
- <div class="k-label-bottom" *ngIf="hint.last">{{ end | kendoDate : format }}</div>
38
+ @if (hint.first) {
39
+ <div class="k-label-top">{{ start | kendoDate : format }}</div>
40
+ }
41
+ @if (hint.last) {
42
+ <div class="k-label-bottom">{{ end | kendoDate : format }}</div>
43
+ }
41
44
  </div>
42
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: DatePipe, name: "kendoDate" }] });
45
+ `, isInline: true, dependencies: [{ kind: "pipe", type: DatePipe, name: "kendoDate" }] });
43
46
  }
44
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizeHintComponent, decorators: [{
45
48
  type: Component,
@@ -49,12 +52,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
49
52
  template: `
50
53
  <div class="k-marquee-color"></div>
51
54
  <div class="k-marquee-text">
52
- <div class="k-label-top" *ngIf="hint.first">{{ start | kendoDate : format }}</div>
53
- <div class="k-label-bottom" *ngIf="hint.last">{{ end | kendoDate : format }}</div>
55
+ @if (hint.first) {
56
+ <div class="k-label-top">{{ start | kendoDate : format }}</div>
57
+ }
58
+ @if (hint.last) {
59
+ <div class="k-label-bottom">{{ end | kendoDate : format }}</div>
60
+ }
54
61
  </div>
55
- `,
62
+ `,
56
63
  standalone: true,
57
- imports: [NgIf, DatePipe]
64
+ imports: [DatePipe]
58
65
  }]
59
66
  }], propDecorators: { hint: [{
60
67
  type: Input
@@ -6,7 +6,7 @@ import { Component, Input, HostBinding, Output, EventEmitter } from '@angular/co
6
6
  import { ViewStateService } from '../view-state.service';
7
7
  import { FocusableDirective } from '../../navigation/focusable.directive';
8
8
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
9
- import { NgFor, NgClass } from '@angular/common';
9
+ import { NgClass } from '@angular/common';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "../view-state.service";
12
12
  /**
@@ -35,22 +35,23 @@ export class ViewFooterComponent {
35
35
  this.itemClick.emit(item);
36
36
  }
37
37
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewFooterComponent, deps: [{ token: i1.ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ViewFooterComponent, isStandalone: true, selector: "[viewFooter]", inputs: { items: "items" }, outputs: { itemClick: "itemClick" }, host: { properties: { "class.k-scheduler-footer": "this.hostClasses", "class.k-toolbar": "this.hostClasses", "class.k-toolbar-solid": "this.hostClasses", "class.k-toolbar-md": "this.hostClasses", "attr.role": "this.toolbarRole", "style.justify-content": "this.inlineJustifyContentStyle" } }, ngImport: i0, template: `
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ViewFooterComponent, isStandalone: true, selector: "[viewFooter]", inputs: { items: "items" }, outputs: { itemClick: "itemClick" }, host: { properties: { "class.k-scheduler-footer": "this.hostClasses", "class.k-toolbar": "this.hostClasses", "class.k-toolbar-solid": "this.hostClasses", "class.k-toolbar-md": "this.hostClasses", "attr.role": "this.toolbarRole", "style.justify-content": "this.inlineJustifyContentStyle" } }, ngImport: i0, template: `
39
39
  <span class="k-scheduler-navigation">
40
+ @for (item of items; track item) {
40
41
  <button
41
- *ngFor="let item of items"
42
- type="button"
43
- kendoButton
44
- [icon]="item.fontIcon"
45
- [svgIcon]="item.svgIcon"
46
- [ngClass]="item.cssClass"
47
- (click)="onItemClick($event, item)"
48
- [kendoSchedulerFocusIndex]="0"
49
- containerType='footer'>
50
- <span class="k-button-text">{{ item.text }}</span>
42
+ type="button"
43
+ kendoButton
44
+ [icon]="item.fontIcon"
45
+ [svgIcon]="item.svgIcon"
46
+ [ngClass]="item.cssClass"
47
+ (click)="onItemClick($event, item)"
48
+ [kendoSchedulerFocusIndex]="0"
49
+ containerType='footer'>
50
+ <span class="k-button-text">{{ item.text }}</span>
51
51
  </button>
52
+ }
52
53
  </span>
53
- `, isInline: true, dependencies: [{ 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"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }] });
54
+ `, isInline: true, dependencies: [{ 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"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }] });
54
55
  }
55
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewFooterComponent, decorators: [{
56
57
  type: Component,
@@ -59,22 +60,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
59
60
  selector: '[viewFooter]',
60
61
  template: `
61
62
  <span class="k-scheduler-navigation">
63
+ @for (item of items; track item) {
62
64
  <button
63
- *ngFor="let item of items"
64
- type="button"
65
- kendoButton
66
- [icon]="item.fontIcon"
67
- [svgIcon]="item.svgIcon"
68
- [ngClass]="item.cssClass"
69
- (click)="onItemClick($event, item)"
70
- [kendoSchedulerFocusIndex]="0"
71
- containerType='footer'>
72
- <span class="k-button-text">{{ item.text }}</span>
65
+ type="button"
66
+ kendoButton
67
+ [icon]="item.fontIcon"
68
+ [svgIcon]="item.svgIcon"
69
+ [ngClass]="item.cssClass"
70
+ (click)="onItemClick($event, item)"
71
+ [kendoSchedulerFocusIndex]="0"
72
+ containerType='footer'>
73
+ <span class="k-button-text">{{ item.text }}</span>
73
74
  </button>
75
+ }
74
76
  </span>
75
- `,
77
+ `,
76
78
  standalone: true,
77
- imports: [NgFor, ButtonComponent, NgClass, FocusableDirective]
79
+ imports: [ButtonComponent, NgClass, FocusableDirective]
78
80
  }]
79
81
  }], ctorParameters: () => [{ type: i1.ViewStateService }], propDecorators: { hostClasses: [{
80
82
  type: HostBinding,