@progress/kendo-angular-scheduler 18.1.0-develop.3 → 18.1.0-develop.31
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.
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/views/agenda/agenda-task-item.component.mjs +9 -10
- package/esm2022/views/day-time/day-time-slot.service.mjs +16 -4
- package/esm2022/views/day-time/day-time-view-item.component.mjs +15 -17
- package/esm2022/views/month/month-view-item.component.mjs +7 -10
- package/esm2022/views/multi-day/multi-day-view-renderer.component.mjs +3 -1
- package/esm2022/views/timeline/timeline-multi-day-view.component.mjs +1 -1
- package/esm2022/views/view-items/base-view-item.mjs +8 -6
- package/esm2022/views/year/year-view-internal.component.mjs +5 -10
- package/fesm2022/progress-kendo-angular-scheduler.mjs +95 -96
- package/package.json +16 -16
- package/schematics/ngAdd/index.js +3 -3
- package/views/agenda/agenda-task-item.component.d.ts +3 -2
- package/views/day-time/day-time-view-item.component.d.ts +3 -3
- package/views/month/month-view-item.component.d.ts +2 -2
- package/views/view-items/base-view-item.d.ts +3 -2
- package/views/year/year-view-internal.component.d.ts +1 -2
|
@@ -10,7 +10,7 @@ export const packageMetadata = {
|
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCode: 'KENDOUIANGULAR',
|
|
12
12
|
productCodes: ['KENDOUIANGULAR'],
|
|
13
|
-
publishDate:
|
|
14
|
-
version: '18.1.0-develop.
|
|
13
|
+
publishDate: 1739264593,
|
|
14
|
+
version: '18.1.0-develop.31',
|
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
16
16
|
};
|
|
@@ -2,21 +2,23 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Component, Input, ChangeDetectionStrategy, TemplateRef, HostBinding
|
|
5
|
+
import { Component, Input, ChangeDetectionStrategy, TemplateRef, HostBinding } from '@angular/core';
|
|
6
6
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
7
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
11
|
import { NgIf, NgTemplateOutlet } from '@angular/common';
|
|
12
|
+
import { IntlService } from '@progress/kendo-angular-intl';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
import * as i1 from "@progress/kendo-angular-l10n";
|
|
15
|
+
import * as i2 from "@progress/kendo-angular-intl";
|
|
14
16
|
/**
|
|
15
17
|
* @hidden
|
|
16
18
|
*/
|
|
17
19
|
export class AgendaTaskItemComponent {
|
|
18
20
|
localization;
|
|
19
|
-
|
|
21
|
+
intl;
|
|
20
22
|
arrowRotateCWIcon = arrowRotateCwIcon;
|
|
21
23
|
arrowsNoRepeatIcon = arrowsNoRepeatIcon;
|
|
22
24
|
xIcon = xIcon;
|
|
@@ -28,7 +30,7 @@ export class AgendaTaskItemComponent {
|
|
|
28
30
|
get eventTitle() {
|
|
29
31
|
const start = toLocalDate(this.item.start);
|
|
30
32
|
const end = toLocalDate(this.item.end);
|
|
31
|
-
const time = formatEventTime(start, end, this.item.isAllDay, this.localeId);
|
|
33
|
+
const time = formatEventTime(start, end, this.item.isAllDay, this.intl.localeId);
|
|
32
34
|
return `${time}, ${this.item.event.title}`;
|
|
33
35
|
}
|
|
34
36
|
get eventColor() {
|
|
@@ -46,11 +48,11 @@ export class AgendaTaskItemComponent {
|
|
|
46
48
|
get removable() {
|
|
47
49
|
return this.editable && this.editable.remove !== false;
|
|
48
50
|
}
|
|
49
|
-
constructor(localization,
|
|
51
|
+
constructor(localization, intl) {
|
|
50
52
|
this.localization = localization;
|
|
51
|
-
this.
|
|
53
|
+
this.intl = intl;
|
|
52
54
|
}
|
|
53
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AgendaTaskItemComponent, deps: [{ token: i1.LocalizationService }, { token:
|
|
55
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AgendaTaskItemComponent, deps: [{ token: i1.LocalizationService }, { token: i2.IntlService }], target: i0.ɵɵFactoryTarget.Component });
|
|
54
56
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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: `
|
|
55
57
|
<div class="k-task" [title]="item.title">
|
|
56
58
|
<span class="k-scheduler-mark" *ngIf="eventColor" [style.background-color]="eventColor"></span>
|
|
@@ -97,10 +99,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
97
99
|
standalone: true,
|
|
98
100
|
imports: [NgIf, IconWrapperComponent, NgTemplateOutlet]
|
|
99
101
|
}]
|
|
100
|
-
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type:
|
|
101
|
-
type: Inject,
|
|
102
|
-
args: [LOCALE_ID]
|
|
103
|
-
}] }]; }, propDecorators: { item: [{
|
|
102
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.IntlService }]; }, propDecorators: { item: [{
|
|
104
103
|
type: Input,
|
|
105
104
|
args: ["kendoSchedulerAgendaTaskItem"]
|
|
106
105
|
}], color: [{
|
|
@@ -58,11 +58,23 @@ function initTimeColumns(slotKeys, slotItems) {
|
|
|
58
58
|
events.splice(event.columnIndex, 0, event);
|
|
59
59
|
break;
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
//events that don't intersect their start or end times but overlap in rendered height due to the minimum event height
|
|
62
|
+
const anyOverlappingEvents = events.filter(e => e !== current && e.rect).some(event => {
|
|
63
|
+
const areIntersecting = intersects(event.item.startTime, event.item.endTime, current.item.startTime, current.item.endTime);
|
|
64
|
+
const areOverlapping = minHeightOverlaps(current.rect.top, event.rect.top);
|
|
65
|
+
return !areIntersecting && areOverlapping;
|
|
66
|
+
});
|
|
67
|
+
const intersectingEvents = intersects(event.item.startTime, event.item.endTime, current.item.startTime, current.item.endTime);
|
|
68
|
+
const overlappingEvents = minHeightOverlaps(current.rect.top, event.rect.top);
|
|
69
|
+
if (!(anyOverlappingEvents || intersectingEvents || overlappingEvents)) {
|
|
70
|
+
columns--;
|
|
63
71
|
event.columnIndex = idx;
|
|
64
|
-
event.lastColumn = !events.some(e =>
|
|
65
|
-
|
|
72
|
+
event.lastColumn = !events.some((e) => {
|
|
73
|
+
const hasColumnIndex = e.columnIndex;
|
|
74
|
+
const isBeforeCurrentIndex = idx < e.columnIndex;
|
|
75
|
+
const areIntersecting = intersects(event.item.startTime, event.item.endTime, e.item.startTime, e.item.endTime);
|
|
76
|
+
return hasColumnIndex && isBeforeCurrentIndex && areIntersecting;
|
|
77
|
+
});
|
|
66
78
|
events.splice(eventIdx, 1);
|
|
67
79
|
events.splice(idx, 0, event);
|
|
68
80
|
break;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Component, ElementRef, Input, Renderer2
|
|
5
|
+
import { Component, ElementRef, Input, Renderer2 } from '@angular/core';
|
|
6
6
|
import { IntlService } from '@progress/kendo-angular-intl';
|
|
7
7
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
8
8
|
import { toLocalDate } from '@progress/kendo-date-math';
|
|
@@ -13,16 +13,15 @@ import { BaseViewItem } from '../view-items/base-view-item';
|
|
|
13
13
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
|
14
14
|
import { NgIf, NgTemplateOutlet } from '@angular/common';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "
|
|
17
|
-
import * as i2 from "
|
|
18
|
-
import * as i3 from "
|
|
19
|
-
import * as i4 from "
|
|
16
|
+
import * as i1 from "../day-time/day-time-slot.service";
|
|
17
|
+
import * as i2 from "@progress/kendo-angular-l10n";
|
|
18
|
+
import * as i3 from "../../navigation";
|
|
19
|
+
import * as i4 from "@progress/kendo-angular-intl";
|
|
20
20
|
/**
|
|
21
21
|
* @hidden
|
|
22
22
|
*/
|
|
23
23
|
export class DayTimeViewItemComponent extends BaseViewItem {
|
|
24
24
|
intlService;
|
|
25
|
-
localeId;
|
|
26
25
|
caretAltLeftIcon = caretAltLeftIcon;
|
|
27
26
|
caretAltRightIcon = caretAltRightIcon;
|
|
28
27
|
caretAltUpIcon = caretAltUpIcon;
|
|
@@ -32,16 +31,16 @@ export class DayTimeViewItemComponent extends BaseViewItem {
|
|
|
32
31
|
xIcon = xIcon;
|
|
33
32
|
vertical;
|
|
34
33
|
isAllDay;
|
|
34
|
+
name;
|
|
35
35
|
get eventTime() {
|
|
36
36
|
return this.intlService.format('{0:t}–{1:t}', toLocalDate(this.item.startTime), toLocalDate(this.item.endTime));
|
|
37
37
|
}
|
|
38
|
-
constructor(
|
|
39
|
-
super(slotService, localization, focusService, element, renderer,
|
|
38
|
+
constructor(slotService, localization, focusService, element, renderer, intlService) {
|
|
39
|
+
super(slotService, localization, focusService, element, renderer, intlService);
|
|
40
40
|
this.intlService = intlService;
|
|
41
|
-
this.localeId = localeId;
|
|
42
41
|
}
|
|
43
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayTimeViewItemComponent, deps: [{ token: i1.
|
|
44
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DayTimeViewItemComponent, isStandalone: true, selector: "[dayTimeViewItem]", inputs: { vertical: "vertical", isAllDay: "isAllDay" }, usesInheritance: true, ngImport: i0, template: `
|
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayTimeViewItemComponent, deps: [{ token: i1.DayTimeSlotService }, { token: i2.LocalizationService }, { token: i3.FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i4.IntlService }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DayTimeViewItemComponent, isStandalone: true, selector: "[dayTimeViewItem]", inputs: { vertical: "vertical", isAllDay: "isAllDay", name: "name" }, usesInheritance: true, ngImport: i0, template: `
|
|
45
44
|
<span class="k-event-actions">
|
|
46
45
|
<kendo-icon-wrapper
|
|
47
46
|
*ngIf="item.tail && !vertical"
|
|
@@ -95,7 +94,7 @@ export class DayTimeViewItemComponent extends BaseViewItem {
|
|
|
95
94
|
<span class="k-resize-handle k-resize-s" *ngIf="!item.head"></span>
|
|
96
95
|
</ng-container>
|
|
97
96
|
|
|
98
|
-
<ng-container *ngIf="resizable && !vertical">
|
|
97
|
+
<ng-container *ngIf="resizable && !vertical && !(isAllDay && name === 'day')">
|
|
99
98
|
<span class="k-resize-handle k-resize-w"></span>
|
|
100
99
|
<span class="k-resize-handle k-resize-e"></span>
|
|
101
100
|
</ng-container>
|
|
@@ -160,7 +159,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
160
159
|
<span class="k-resize-handle k-resize-s" *ngIf="!item.head"></span>
|
|
161
160
|
</ng-container>
|
|
162
161
|
|
|
163
|
-
<ng-container *ngIf="resizable && !vertical">
|
|
162
|
+
<ng-container *ngIf="resizable && !vertical && !(isAllDay && name === 'day')">
|
|
164
163
|
<span class="k-resize-handle k-resize-w"></span>
|
|
165
164
|
<span class="k-resize-handle k-resize-e"></span>
|
|
166
165
|
</ng-container>
|
|
@@ -168,11 +167,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
168
167
|
standalone: true,
|
|
169
168
|
imports: [NgIf, IconWrapperComponent, NgTemplateOutlet]
|
|
170
169
|
}]
|
|
171
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
172
|
-
type: Inject,
|
|
173
|
-
args: [LOCALE_ID]
|
|
174
|
-
}] }]; }, propDecorators: { vertical: [{
|
|
170
|
+
}], ctorParameters: function () { return [{ type: i1.DayTimeSlotService }, { type: i2.LocalizationService }, { type: i3.FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i4.IntlService }]; }, propDecorators: { vertical: [{
|
|
175
171
|
type: Input
|
|
176
172
|
}], isAllDay: [{
|
|
177
173
|
type: Input
|
|
174
|
+
}], name: [{
|
|
175
|
+
type: Input
|
|
178
176
|
}] } });
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Component, ElementRef, Renderer2
|
|
5
|
+
import { Component, ElementRef, Renderer2 } from '@angular/core';
|
|
6
6
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
7
7
|
import { MonthSlotService } from './month-slot.service';
|
|
8
8
|
import { BaseViewItem } from '../view-items/base-view-item';
|
|
@@ -10,23 +10,23 @@ import { FocusService } from '../../navigation';
|
|
|
10
10
|
import { arrowRotateCwIcon, arrowsNoRepeatIcon, caretAltLeftIcon, caretAltRightIcon, xIcon } from '@progress/kendo-svg-icons';
|
|
11
11
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
|
12
12
|
import { NgIf, NgTemplateOutlet } from '@angular/common';
|
|
13
|
+
import { IntlService } from '@progress/kendo-angular-intl';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
import * as i1 from "./month-slot.service";
|
|
15
16
|
import * as i2 from "@progress/kendo-angular-l10n";
|
|
16
17
|
import * as i3 from "../../navigation";
|
|
18
|
+
import * as i4 from "@progress/kendo-angular-intl";
|
|
17
19
|
/**
|
|
18
20
|
* @hidden
|
|
19
21
|
*/
|
|
20
22
|
export class MonthViewItemComponent extends BaseViewItem {
|
|
21
|
-
localeId;
|
|
22
23
|
caretAltLeftIcon = caretAltLeftIcon;
|
|
23
24
|
caretAltRightIcon = caretAltRightIcon;
|
|
24
25
|
arrowRotateCwIcon = arrowRotateCwIcon;
|
|
25
26
|
arrowsNoRepeatIcon = arrowsNoRepeatIcon;
|
|
26
27
|
xIcon = xIcon;
|
|
27
|
-
constructor(slotService, localization, focusService, element, renderer,
|
|
28
|
-
super(slotService, localization, focusService, element, renderer,
|
|
29
|
-
this.localeId = localeId;
|
|
28
|
+
constructor(slotService, localization, focusService, element, renderer, intl) {
|
|
29
|
+
super(slotService, localization, focusService, element, renderer, intl);
|
|
30
30
|
}
|
|
31
31
|
reflow() {
|
|
32
32
|
if (this.item.data[this.resourceIndex].hidden) {
|
|
@@ -38,7 +38,7 @@ export class MonthViewItemComponent extends BaseViewItem {
|
|
|
38
38
|
}
|
|
39
39
|
super.reflow();
|
|
40
40
|
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MonthViewItemComponent, deps: [{ token: i1.MonthSlotService }, { token: i2.LocalizationService }, { token: i3.FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token:
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MonthViewItemComponent, deps: [{ token: i1.MonthSlotService }, { token: i2.LocalizationService }, { token: i3.FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i4.IntlService }], target: i0.ɵɵFactoryTarget.Component });
|
|
42
42
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MonthViewItemComponent, isStandalone: true, selector: "[monthViewItem]", usesInheritance: true, ngImport: i0, template: `
|
|
43
43
|
<span class="k-event-actions">
|
|
44
44
|
<kendo-icon-wrapper
|
|
@@ -138,7 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
138
138
|
standalone: true,
|
|
139
139
|
imports: [NgIf, IconWrapperComponent, NgTemplateOutlet]
|
|
140
140
|
}]
|
|
141
|
-
}], ctorParameters: function () { return [{ type: i1.MonthSlotService }, { type: i2.LocalizationService }, { type: i3.FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type:
|
|
142
|
-
type: Inject,
|
|
143
|
-
args: [LOCALE_ID]
|
|
144
|
-
}] }]; } });
|
|
141
|
+
}], ctorParameters: function () { return [{ type: i1.MonthSlotService }, { type: i2.LocalizationService }, { type: i3.FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i4.IntlService }]; } });
|
|
@@ -327,6 +327,7 @@ export class MultiDayViewRendererComponent extends DayTimeViewComponent {
|
|
|
327
327
|
[kendoSchedulerFocusIndex]="itemResource.leafIdx"
|
|
328
328
|
[id]="item.elementId + '_' + itemResource.leafIdx"
|
|
329
329
|
dayTimeViewItem
|
|
330
|
+
[name]="name"
|
|
330
331
|
[isAllDay]="true"
|
|
331
332
|
[editable]="editable"
|
|
332
333
|
[eventTemplate]="allDayEventTemplateRef"
|
|
@@ -529,7 +530,7 @@ export class MultiDayViewRendererComponent extends DayTimeViewComponent {
|
|
|
529
530
|
</tr>
|
|
530
531
|
</tbody>
|
|
531
532
|
</table>
|
|
532
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DaySlotDirective, selector: "[daySlot]", inputs: ["start", "end"] }, { kind: "component", type: DayTimeViewItemComponent, selector: "[dayTimeViewItem]", inputs: ["vertical", "isAllDay"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "directive", type: TimeSlotDirective, selector: "[timeSlot]", inputs: ["invariantStart", "invariantEnd", "workDayStart", "workDayEnd", "workWeekStart", "workWeekEnd", "date"], exportAs: ["timeSlot"] }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
533
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DaySlotDirective, selector: "[daySlot]", inputs: ["start", "end"] }, { kind: "component", type: DayTimeViewItemComponent, selector: "[dayTimeViewItem]", inputs: ["vertical", "isAllDay", "name"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "directive", type: TimeSlotDirective, selector: "[timeSlot]", inputs: ["invariantStart", "invariantEnd", "workDayStart", "workDayEnd", "workWeekStart", "workWeekEnd", "date"], exportAs: ["timeSlot"] }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
533
534
|
}
|
|
534
535
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiDayViewRendererComponent, decorators: [{
|
|
535
536
|
type: Component,
|
|
@@ -615,6 +616,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
615
616
|
[kendoSchedulerFocusIndex]="itemResource.leafIdx"
|
|
616
617
|
[id]="item.elementId + '_' + itemResource.leafIdx"
|
|
617
618
|
dayTimeViewItem
|
|
619
|
+
[name]="name"
|
|
618
620
|
[isAllDay]="true"
|
|
619
621
|
[editable]="editable"
|
|
620
622
|
[eventTemplate]="allDayEventTemplateRef"
|
|
@@ -331,7 +331,7 @@ export class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
331
331
|
</tr>
|
|
332
332
|
</tbody>
|
|
333
333
|
</table>
|
|
334
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SortPipe, name: "sort" }] });
|
|
334
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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", "name"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SortPipe, name: "sort" }] });
|
|
335
335
|
}
|
|
336
336
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TimelineMultiDayViewComponent, decorators: [{
|
|
337
337
|
type: Component,
|
|
@@ -11,10 +11,12 @@ import { isRecurrence, isRecurrenceException, formatEventTime } from '../utils';
|
|
|
11
11
|
import { FocusService } from '../../navigation';
|
|
12
12
|
import { toLocalDate } from '@progress/kendo-date-math';
|
|
13
13
|
import { caretAltLeftIcon, caretAltRightIcon } from '@progress/kendo-svg-icons';
|
|
14
|
+
import { IntlService } from '@progress/kendo-angular-intl';
|
|
14
15
|
import * as i0 from "@angular/core";
|
|
15
16
|
import * as i1 from "./base-slot.service";
|
|
16
17
|
import * as i2 from "@progress/kendo-angular-l10n";
|
|
17
18
|
import * as i3 from "../../navigation";
|
|
19
|
+
import * as i4 from "@progress/kendo-angular-intl";
|
|
18
20
|
/**
|
|
19
21
|
* @hidden
|
|
20
22
|
*/
|
|
@@ -24,7 +26,7 @@ export class BaseViewItem {
|
|
|
24
26
|
focusService;
|
|
25
27
|
element;
|
|
26
28
|
renderer;
|
|
27
|
-
|
|
29
|
+
intl;
|
|
28
30
|
item;
|
|
29
31
|
resourceIndex;
|
|
30
32
|
rangeIndex;
|
|
@@ -43,7 +45,7 @@ export class BaseViewItem {
|
|
|
43
45
|
get eventTitle() {
|
|
44
46
|
const startTime = toLocalDate(this.item.startTime);
|
|
45
47
|
const endTime = toLocalDate(this.item.endTime);
|
|
46
|
-
const time = formatEventTime(startTime, endTime, this.item.isAllDay, this.localeId);
|
|
48
|
+
const time = formatEventTime(startTime, endTime, this.item.isAllDay, this.intl.localeId);
|
|
47
49
|
return `${time}, ${this.item.event.title}`;
|
|
48
50
|
}
|
|
49
51
|
get deleteMessage() {
|
|
@@ -59,13 +61,13 @@ export class BaseViewItem {
|
|
|
59
61
|
caretAltRightIcon = caretAltRightIcon;
|
|
60
62
|
rect;
|
|
61
63
|
subs = new Subscription();
|
|
62
|
-
constructor(slotService, localization, focusService, element, renderer,
|
|
64
|
+
constructor(slotService, localization, focusService, element, renderer, intl) {
|
|
63
65
|
this.slotService = slotService;
|
|
64
66
|
this.localization = localization;
|
|
65
67
|
this.focusService = focusService;
|
|
66
68
|
this.element = element;
|
|
67
69
|
this.renderer = renderer;
|
|
68
|
-
this.
|
|
70
|
+
this.intl = intl;
|
|
69
71
|
}
|
|
70
72
|
get isRecurrence() {
|
|
71
73
|
return isRecurrence(this.item);
|
|
@@ -156,12 +158,12 @@ export class BaseViewItem {
|
|
|
156
158
|
get arrowSVGIcons() {
|
|
157
159
|
return !this.localization.rtl ? [this.caretAltLeftIcon, this.caretAltRightIcon] : [this.caretAltRightIcon, this.caretAltLeftIcon];
|
|
158
160
|
}
|
|
159
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseViewItem, deps:
|
|
161
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseViewItem, deps: [{ token: i1.BaseSlotService }, { token: i2.LocalizationService }, { token: i3.FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i4.IntlService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
160
162
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: BaseViewItem, inputs: { item: "item", resourceIndex: "resourceIndex", rangeIndex: "rangeIndex", index: "index", eventTemplate: "eventTemplate", editable: "editable", dragHint: "dragHint", resources: "resources" }, host: { properties: { "class.k-event": "this.className", "attr.data-task-index": "this.taskIndex", "style.touch-action": "this.touchAction", "attr.aria-label": "this.eventTitle" } }, usesOnChanges: true, ngImport: i0 });
|
|
161
163
|
}
|
|
162
164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseViewItem, decorators: [{
|
|
163
165
|
type: Directive
|
|
164
|
-
}], ctorParameters: function () { return [{ type: i1.BaseSlotService }, { type: i2.LocalizationService }, { type: i3.FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type:
|
|
166
|
+
}], ctorParameters: function () { return [{ type: i1.BaseSlotService }, { type: i2.LocalizationService }, { type: i3.FocusService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i4.IntlService }]; }, propDecorators: { item: [{
|
|
165
167
|
type: Input
|
|
166
168
|
}], resourceIndex: [{
|
|
167
169
|
type: Input
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { ChangeDetectorRef, Component, ElementRef,
|
|
5
|
+
import { ChangeDetectorRef, Component, ElementRef, Input, NgZone, Renderer2, ViewChild, } from '@angular/core';
|
|
6
6
|
import { ScrollbarWidthService } from '@progress/kendo-angular-common';
|
|
7
7
|
import { ViewContextService } from '../view-context.service';
|
|
8
8
|
import { ViewStateService } from '../view-state.service';
|
|
@@ -39,7 +39,6 @@ export class YearViewInternalComponent extends BaseView {
|
|
|
39
39
|
localization;
|
|
40
40
|
focusService;
|
|
41
41
|
intl;
|
|
42
|
-
localeId;
|
|
43
42
|
/**
|
|
44
43
|
* Calculates the next or previous range to be displayed
|
|
45
44
|
*/
|
|
@@ -68,12 +67,11 @@ export class YearViewInternalComponent extends BaseView {
|
|
|
68
67
|
currentTd;
|
|
69
68
|
tds = [];
|
|
70
69
|
isTooltipClicked = false;
|
|
71
|
-
constructor(localization, focusService, intl, viewContext, viewState, zone, renderer, pdfService, element, slotService, scrollBarWidthService, changeDetector
|
|
70
|
+
constructor(localization, focusService, intl, viewContext, viewState, zone, renderer, pdfService, element, slotService, scrollBarWidthService, changeDetector) {
|
|
72
71
|
super(viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, changeDetector, scrollBarWidthService);
|
|
73
72
|
this.localization = localization;
|
|
74
73
|
this.focusService = focusService;
|
|
75
74
|
this.intl = intl;
|
|
76
|
-
this.localeId = localeId;
|
|
77
75
|
}
|
|
78
76
|
ngAfterViewInit() {
|
|
79
77
|
this.updateTds();
|
|
@@ -110,7 +108,7 @@ export class YearViewInternalComponent extends BaseView {
|
|
|
110
108
|
eventTitle(event) {
|
|
111
109
|
const startTime = toLocalDate(event.startTime);
|
|
112
110
|
const endTime = toLocalDate(event.endTime);
|
|
113
|
-
const time = formatEventTime(startTime, endTime, event.isAllDay, this.localeId);
|
|
111
|
+
const time = formatEventTime(startTime, endTime, event.isAllDay, this.intl.localeId);
|
|
114
112
|
return `${time}, ${event.event.title}`;
|
|
115
113
|
}
|
|
116
114
|
onClick(event) {
|
|
@@ -267,7 +265,7 @@ export class YearViewInternalComponent extends BaseView {
|
|
|
267
265
|
});
|
|
268
266
|
}
|
|
269
267
|
}
|
|
270
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: YearViewInternalComponent, deps: [{ token: i1.LocalizationService }, { token: i2.FocusService }, { token: i3.IntlService }, { token: i4.ViewContextService }, { token: i5.ViewStateService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i6.PDFService }, { token: i0.ElementRef }, { token: i7.MonthSlotService }, { token: i8.ScrollbarWidthService }, { token: i0.ChangeDetectorRef }
|
|
268
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: YearViewInternalComponent, deps: [{ token: i1.LocalizationService }, { token: i2.FocusService }, { token: i3.IntlService }, { token: i4.ViewContextService }, { token: i5.ViewStateService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i6.PDFService }, { token: i0.ElementRef }, { token: i7.MonthSlotService }, { token: i8.ScrollbarWidthService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
271
269
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: YearViewInternalComponent, isStandalone: true, selector: "year-view-internal", inputs: { newRange: "newRange", dateRangeFn: "dateRangeFn" }, providers: [MonthSlotService], viewQueries: [{ propertyName: "calendar", first: true, predicate: MultiViewCalendarComponent, descendants: true }, { propertyName: "tooltip", first: true, predicate: TooltipDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
272
270
|
<div #content class="k-scheduler-layout k-scheduler-layout-flex k-scheduler-yearview">
|
|
273
271
|
<div class="k-scheduler-body">
|
|
@@ -421,10 +419,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
421
419
|
standalone: true,
|
|
422
420
|
imports: [MultiViewCalendarComponent, TooltipDirective, MonthCellTemplateDirective, NgIf, NgFor, NgClass, NgStyle, IconWrapperComponent]
|
|
423
421
|
}]
|
|
424
|
-
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.FocusService }, { type: i3.IntlService }, { type: i4.ViewContextService }, { type: i5.ViewStateService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i6.PDFService }, { type: i0.ElementRef }, { type: i7.MonthSlotService }, { type: i8.ScrollbarWidthService }, { type: i0.ChangeDetectorRef },
|
|
425
|
-
type: Inject,
|
|
426
|
-
args: [LOCALE_ID]
|
|
427
|
-
}] }]; }, propDecorators: { newRange: [{
|
|
422
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.FocusService }, { type: i3.IntlService }, { type: i4.ViewContextService }, { type: i5.ViewStateService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i6.PDFService }, { type: i0.ElementRef }, { type: i7.MonthSlotService }, { type: i8.ScrollbarWidthService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { newRange: [{
|
|
428
423
|
type: Input
|
|
429
424
|
}], dateRangeFn: [{
|
|
430
425
|
type: Input
|