@progress/kendo-angular-scheduler 14.4.0-develop.16 → 14.4.0-develop.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,11 +8,11 @@ import * as i1$1 from '@progress/kendo-angular-l10n';
8
8
  import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
9
9
  import * as i7 from '@progress/kendo-angular-common';
10
10
  import { hasObservers, isDocumentAvailable, isVisible as isVisible$1, scrollbarWidth, isChanged, Keys, shouldShowValidationUI, anyChanged, ResizeSensorComponent, EventsModule, ResizeSensorModule, guid, WatermarkModule } from '@progress/kendo-angular-common';
11
- import { isEqualDate, timezoneNames, ZonedDate, toLocalDate, getDate, Day, MS_PER_DAY as MS_PER_DAY$1, addDays, firstDayOfMonth, firstDayInWeek, addMonths, addWeeks } from '@progress/kendo-date-math';
11
+ import { isEqualDate, timezoneNames, ZonedDate, toLocalDate, getDate, Day, MS_PER_DAY as MS_PER_DAY$1, addDays, firstDayOfMonth, firstDayInWeek, addMonths, addWeeks, addYears } from '@progress/kendo-date-math';
12
12
  import { auditTime, buffer, filter, map, debounceTime, take, switchMap, tap, distinctUntilChanged } from 'rxjs/operators';
13
13
  import { validatePackage } from '@progress/kendo-licensing';
14
14
  import * as i2 from '@progress/kendo-angular-dateinputs';
15
- import { PreventableEvent as PreventableEvent$1, CalendarModule, DateInputsModule } from '@progress/kendo-angular-dateinputs';
15
+ import { PreventableEvent as PreventableEvent$1, CalendarModule, MultiViewCalendarComponent, CalendarsModule, DateInputsModule } from '@progress/kendo-angular-dateinputs';
16
16
  import { Subject, BehaviorSubject, fromEvent, Subscription, combineLatest, merge } from 'rxjs';
17
17
  import * as i14 from '@angular/forms';
18
18
  import { NG_VALUE_ACCESSOR, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
@@ -38,6 +38,8 @@ import { orderBy, groupBy } from '@progress/kendo-data-query';
38
38
  import * as i4$1 from '@progress/kendo-angular-icons';
39
39
  import { IconsModule } from '@progress/kendo-angular-icons';
40
40
  import { Draggable } from '@progress/kendo-draggable';
41
+ import * as i11$1 from '@progress/kendo-angular-tooltip';
42
+ import { TooltipDirective, TooltipsModule } from '@progress/kendo-angular-tooltip';
41
43
  import { drawDOM, exportPDF } from '@progress/kendo-drawing';
42
44
  import { saveAs } from '@progress/kendo-file-saver';
43
45
 
@@ -48,8 +50,8 @@ const packageMetadata = {
48
50
  name: '@progress/kendo-angular-scheduler',
49
51
  productName: 'Kendo UI for Angular',
50
52
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
51
- publishDate: 1706186536,
52
- version: '14.4.0-develop.16',
53
+ publishDate: 1706192872,
54
+ version: '14.4.0-develop.17',
53
55
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
54
56
  };
55
57
 
@@ -2459,7 +2461,7 @@ class ToolbarNavigationComponent {
2459
2461
  }
2460
2462
  }
2461
2463
  ToolbarNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarNavigationComponent, deps: [{ token: i1$2.PopupService }, { token: ToolbarService }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }], target: i0.ɵɵFactoryTarget.Component });
2462
- ToolbarNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ToolbarNavigationComponent, selector: "[kendoSchedulerToolbarNavigation]", inputs: { min: "min", max: "max" }, host: { properties: { "class.k-toolbar-group": "this.hostClass" } }, providers: [
2464
+ ToolbarNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ToolbarNavigationComponent, selector: "[kendoSchedulerToolbarNavigation]", inputs: { min: "min", max: "max", activeView: "activeView", bottomView: "bottomView" }, host: { properties: { "class.k-toolbar-group": "this.hostClass" } }, providers: [
2463
2465
  PopupService
2464
2466
  ], viewQueries: [{ propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }], ngImport: i0, template: `
2465
2467
  <span class="k-scheduler-navigation k-button-group k-button-group-solid" role="group">
@@ -2517,6 +2519,8 @@ ToolbarNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
2517
2519
  <kendo-calendar
2518
2520
  #calendar
2519
2521
  (blur)="onBlur()"
2522
+ [activeView]="activeView"
2523
+ [bottomView]="bottomView"
2520
2524
  (keydown.escape)="toggleSelectedDate({ nativeElement: anchor }, template); anchor.focus();"
2521
2525
  (valueChange)="selectDate($event)"
2522
2526
  [value]="ctx.selectedDate | async" [min]="min" [max]="max">
@@ -2590,6 +2594,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2590
2594
  <kendo-calendar
2591
2595
  #calendar
2592
2596
  (blur)="onBlur()"
2597
+ [activeView]="activeView"
2598
+ [bottomView]="bottomView"
2593
2599
  (keydown.escape)="toggleSelectedDate({ nativeElement: anchor }, template); anchor.focus();"
2594
2600
  (valueChange)="selectDate($event)"
2595
2601
  [value]="ctx.selectedDate | async" [min]="min" [max]="max">
@@ -2609,6 +2615,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2609
2615
  type: Input
2610
2616
  }], max: [{
2611
2617
  type: Input
2618
+ }], activeView: [{
2619
+ type: Input
2620
+ }], bottomView: [{
2621
+ type: Input
2612
2622
  }] } });
2613
2623
 
2614
2624
  /**
@@ -2773,6 +2783,20 @@ class ToolbarComponent {
2773
2783
  this.subs = new Subscription();
2774
2784
  this.subs.add(service.action.subscribe(action => this.navigate.next(action)));
2775
2785
  }
2786
+ /**
2787
+ * @hidden
2788
+ */
2789
+ get activeView() {
2790
+ var _a;
2791
+ return ((_a = this.service.context.selectedView) === null || _a === void 0 ? void 0 : _a.name) === 'year' ? 'decade' : 'month';
2792
+ }
2793
+ /**
2794
+ * @hidden
2795
+ */
2796
+ get bottomView() {
2797
+ var _a;
2798
+ return ((_a = this.service.context.selectedView) === null || _a === void 0 ? void 0 : _a.name) === 'year' ? 'decade' : 'month';
2799
+ }
2776
2800
  ngOnInit() {
2777
2801
  this.subs.add(this.selectedDate.subscribe(date => this.templateContext.selectedDate = date));
2778
2802
  this.subs.add(this.dateRange.subscribe(dateRange => this.templateContext.dateRange = dateRange));
@@ -2812,13 +2836,18 @@ ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
2812
2836
  </ng-template>
2813
2837
 
2814
2838
  <ng-template #defaultTemplate>
2815
- <div kendoSchedulerToolbarNavigation [min]="min" [max]="max"></div>
2839
+ <div kendoSchedulerToolbarNavigation
2840
+ [min]="min"
2841
+ [max]="max"
2842
+ [activeView]="activeView"
2843
+ [bottomView]="bottomView">
2844
+ </div>
2816
2845
  <span class="k-spacer"></span>
2817
2846
  <div kendoSchedulerToolbarViewSelector [toolbarWidth]="toolbarWidth"></div>
2818
2847
  </ng-template>
2819
2848
 
2820
2849
  <kendo-resize-sensor (resize)="resizeHandler()" [style]="'display: contents;'"></kendo-resize-sensor>
2821
- `, isInline: true, components: [{ type: ToolbarNavigationComponent, selector: "[kendoSchedulerToolbarNavigation]", inputs: ["min", "max"] }, { type: ToolbarViewSelectorComponent, selector: "[kendoSchedulerToolbarViewSelector]", inputs: ["toolbarWidth", "responsiveBreakpoint"] }, { type: i7.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
2850
+ `, isInline: true, components: [{ type: ToolbarNavigationComponent, selector: "[kendoSchedulerToolbarNavigation]", inputs: ["min", "max", "activeView", "bottomView"] }, { type: ToolbarViewSelectorComponent, selector: "[kendoSchedulerToolbarViewSelector]", inputs: ["toolbarWidth", "responsiveBreakpoint"] }, { type: i7.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
2822
2851
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarComponent, decorators: [{
2823
2852
  type: Component,
2824
2853
  args: [{
@@ -2832,7 +2861,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2832
2861
  </ng-template>
2833
2862
 
2834
2863
  <ng-template #defaultTemplate>
2835
- <div kendoSchedulerToolbarNavigation [min]="min" [max]="max"></div>
2864
+ <div kendoSchedulerToolbarNavigation
2865
+ [min]="min"
2866
+ [max]="max"
2867
+ [activeView]="activeView"
2868
+ [bottomView]="bottomView">
2869
+ </div>
2836
2870
  <span class="k-spacer"></span>
2837
2871
  <div kendoSchedulerToolbarViewSelector [toolbarWidth]="toolbarWidth"></div>
2838
2872
  </ng-template>
@@ -5977,7 +6011,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5977
6011
  class Messages extends ComponentMessages {
5978
6012
  }
5979
6013
  Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
5980
- Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Messages, inputs: { allEvents: "allEvents", allDay: "allDay", dateHeader: "dateHeader", timeHeader: "timeHeader", eventHeader: "eventHeader", deleteTitle: "deleteTitle", nextTitle: "nextTitle", previousTitle: "previousTitle", today: "today", calendarToday: "calendarToday", showFullDay: "showFullDay", showWorkDay: "showWorkDay", dayViewTitle: "dayViewTitle", multiDayViewTitle: "multiDayViewTitle", weekViewTitle: "weekViewTitle", workWeekViewTitle: "workWeekViewTitle", monthViewTitle: "monthViewTitle", multiWeekViewTitle: "multiWeekViewTitle", timelineViewTitle: "timelineViewTitle", timelineWeekViewTitle: "timelineWeekViewTitle", timelineMonthViewTitle: "timelineMonthViewTitle", agendaViewTitle: "agendaViewTitle", cancel: "cancel", save: "save", editorEventTitle: "editorEventTitle", editorEventStart: "editorEventStart", editorEventStartTimeZone: "editorEventStartTimeZone", editorEventEnd: "editorEventEnd", editorEventEndTimeZone: "editorEventEndTimeZone", editorEventAllDay: "editorEventAllDay", editorEventDescription: "editorEventDescription", editorEventSeparateTimeZones: "editorEventSeparateTimeZones", editorEventTimeZone: "editorEventTimeZone", editorDateInputsToday: "editorDateInputsToday", editorDateInputsToggle: "editorDateInputsToggle", editorDateInputsParentViewButton: "editorDateInputsParentViewButton", editorDateInputsNow: "editorDateInputsNow", editorDateInputsNowLabel: "editorDateInputsNowLabel", editorDateInputsAccept: "editorDateInputsAccept", editorDateInputsAcceptLabel: "editorDateInputsAcceptLabel", editorDateInputsCancel: "editorDateInputsCancel", editorDateInputsCancelLabel: "editorDateInputsCancelLabel", editorDateInputsDateTab: "editorDateInputsDateTab", editorDateInputsDateTabLabel: "editorDateInputsDateTabLabel", editorDateInputsTimeTab: "editorDateInputsTimeTab", editorDateInputsTimeTabLabel: "editorDateInputsTimeTabLabel", recurrenceEditorNumericIncrement: "recurrenceEditorNumericIncrement", recurrenceEditorNumericDecrement: "recurrenceEditorNumericDecrement", recurrenceEditorRepeat: "recurrenceEditorRepeat", recurrenceEditorDailyInterval: "recurrenceEditorDailyInterval", recurrenceEditorDailyRepeatEvery: "recurrenceEditorDailyRepeatEvery", recurrenceEditorWeeklyInterval: "recurrenceEditorWeeklyInterval", recurrenceEditorWeeklyRepeatEvery: "recurrenceEditorWeeklyRepeatEvery", recurrenceEditorWeeklyRepeatOn: "recurrenceEditorWeeklyRepeatOn", recurrenceEditorMonthlyDay: "recurrenceEditorMonthlyDay", recurrenceEditorMonthlyInterval: "recurrenceEditorMonthlyInterval", recurrenceEditorMonthlyRepeatEvery: "recurrenceEditorMonthlyRepeatEvery", recurrenceEditorMonthlyRepeatOn: "recurrenceEditorMonthlyRepeatOn", recurrenceEditorYearlyOf: "recurrenceEditorYearlyOf", recurrenceEditorYearlyRepeatEvery: "recurrenceEditorYearlyRepeatEvery", recurrenceEditorYearlyRepeatOn: "recurrenceEditorYearlyRepeatOn", recurrenceEditorYearlyInterval: "recurrenceEditorYearlyInterval", recurrenceEditorFrequenciesDaily: "recurrenceEditorFrequenciesDaily", recurrenceEditorFrequenciesMonthly: "recurrenceEditorFrequenciesMonthly", recurrenceEditorFrequenciesNever: "recurrenceEditorFrequenciesNever", recurrenceEditorFrequenciesWeekly: "recurrenceEditorFrequenciesWeekly", recurrenceEditorFrequenciesYearly: "recurrenceEditorFrequenciesYearly", recurrenceEditorOffsetPositionsFirst: "recurrenceEditorOffsetPositionsFirst", recurrenceEditorOffsetPositionsSecond: "recurrenceEditorOffsetPositionsSecond", recurrenceEditorOffsetPositionsThird: "recurrenceEditorOffsetPositionsThird", recurrenceEditorOffsetPositionsFourth: "recurrenceEditorOffsetPositionsFourth", recurrenceEditorOffsetPositionsLast: "recurrenceEditorOffsetPositionsLast", recurrenceEditorWeekdaysDay: "recurrenceEditorWeekdaysDay", recurrenceEditorWeekdaysWeekday: "recurrenceEditorWeekdaysWeekday", recurrenceEditorWeekdaysWeekendday: "recurrenceEditorWeekdaysWeekendday", recurrenceEditorEndAfter: "recurrenceEditorEndAfter", recurrenceEditorEndOccurrence: "recurrenceEditorEndOccurrence", recurrenceEditorEndLabel: "recurrenceEditorEndLabel", recurrenceEditorEndNever: "recurrenceEditorEndNever", recurrenceEditorEndOn: "recurrenceEditorEndOn", editorTitle: "editorTitle", destroy: "destroy", deleteConfirmation: "deleteConfirmation", editRecurringConfirmation: "editRecurringConfirmation", editOccurrence: "editOccurrence", editSeries: "editSeries", deleteRecurringConfirmation: "deleteRecurringConfirmation", deleteOccurrence: "deleteOccurrence", deleteSeries: "deleteSeries", deleteDialogTitle: "deleteDialogTitle", deleteRecurringDialogTitle: "deleteRecurringDialogTitle", editRecurringDialogTitle: "editRecurringDialogTitle", selectView: "selectView" }, usesInheritance: true, ngImport: i0 });
6014
+ Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: Messages, inputs: { allEvents: "allEvents", allDay: "allDay", dateHeader: "dateHeader", timeHeader: "timeHeader", eventHeader: "eventHeader", deleteTitle: "deleteTitle", nextTitle: "nextTitle", previousTitle: "previousTitle", today: "today", calendarToday: "calendarToday", showFullDay: "showFullDay", showWorkDay: "showWorkDay", dayViewTitle: "dayViewTitle", multiDayViewTitle: "multiDayViewTitle", weekViewTitle: "weekViewTitle", workWeekViewTitle: "workWeekViewTitle", monthViewTitle: "monthViewTitle", multiWeekViewTitle: "multiWeekViewTitle", timelineViewTitle: "timelineViewTitle", timelineWeekViewTitle: "timelineWeekViewTitle", timelineMonthViewTitle: "timelineMonthViewTitle", agendaViewTitle: "agendaViewTitle", yearViewTitle: "yearViewTitle", yearViewNoEvents: "yearViewNoEvents", cancel: "cancel", save: "save", editorEventTitle: "editorEventTitle", editorEventStart: "editorEventStart", editorEventStartTimeZone: "editorEventStartTimeZone", editorEventEnd: "editorEventEnd", editorEventEndTimeZone: "editorEventEndTimeZone", editorEventAllDay: "editorEventAllDay", editorEventDescription: "editorEventDescription", editorEventSeparateTimeZones: "editorEventSeparateTimeZones", editorEventTimeZone: "editorEventTimeZone", editorDateInputsToday: "editorDateInputsToday", editorDateInputsToggle: "editorDateInputsToggle", editorDateInputsParentViewButton: "editorDateInputsParentViewButton", editorDateInputsNow: "editorDateInputsNow", editorDateInputsNowLabel: "editorDateInputsNowLabel", editorDateInputsAccept: "editorDateInputsAccept", editorDateInputsAcceptLabel: "editorDateInputsAcceptLabel", editorDateInputsCancel: "editorDateInputsCancel", editorDateInputsCancelLabel: "editorDateInputsCancelLabel", editorDateInputsDateTab: "editorDateInputsDateTab", editorDateInputsDateTabLabel: "editorDateInputsDateTabLabel", editorDateInputsTimeTab: "editorDateInputsTimeTab", editorDateInputsTimeTabLabel: "editorDateInputsTimeTabLabel", recurrenceEditorNumericIncrement: "recurrenceEditorNumericIncrement", recurrenceEditorNumericDecrement: "recurrenceEditorNumericDecrement", recurrenceEditorRepeat: "recurrenceEditorRepeat", recurrenceEditorDailyInterval: "recurrenceEditorDailyInterval", recurrenceEditorDailyRepeatEvery: "recurrenceEditorDailyRepeatEvery", recurrenceEditorWeeklyInterval: "recurrenceEditorWeeklyInterval", recurrenceEditorWeeklyRepeatEvery: "recurrenceEditorWeeklyRepeatEvery", recurrenceEditorWeeklyRepeatOn: "recurrenceEditorWeeklyRepeatOn", recurrenceEditorMonthlyDay: "recurrenceEditorMonthlyDay", recurrenceEditorMonthlyInterval: "recurrenceEditorMonthlyInterval", recurrenceEditorMonthlyRepeatEvery: "recurrenceEditorMonthlyRepeatEvery", recurrenceEditorMonthlyRepeatOn: "recurrenceEditorMonthlyRepeatOn", recurrenceEditorYearlyOf: "recurrenceEditorYearlyOf", recurrenceEditorYearlyRepeatEvery: "recurrenceEditorYearlyRepeatEvery", recurrenceEditorYearlyRepeatOn: "recurrenceEditorYearlyRepeatOn", recurrenceEditorYearlyInterval: "recurrenceEditorYearlyInterval", recurrenceEditorFrequenciesDaily: "recurrenceEditorFrequenciesDaily", recurrenceEditorFrequenciesMonthly: "recurrenceEditorFrequenciesMonthly", recurrenceEditorFrequenciesNever: "recurrenceEditorFrequenciesNever", recurrenceEditorFrequenciesWeekly: "recurrenceEditorFrequenciesWeekly", recurrenceEditorFrequenciesYearly: "recurrenceEditorFrequenciesYearly", recurrenceEditorOffsetPositionsFirst: "recurrenceEditorOffsetPositionsFirst", recurrenceEditorOffsetPositionsSecond: "recurrenceEditorOffsetPositionsSecond", recurrenceEditorOffsetPositionsThird: "recurrenceEditorOffsetPositionsThird", recurrenceEditorOffsetPositionsFourth: "recurrenceEditorOffsetPositionsFourth", recurrenceEditorOffsetPositionsLast: "recurrenceEditorOffsetPositionsLast", recurrenceEditorWeekdaysDay: "recurrenceEditorWeekdaysDay", recurrenceEditorWeekdaysWeekday: "recurrenceEditorWeekdaysWeekday", recurrenceEditorWeekdaysWeekendday: "recurrenceEditorWeekdaysWeekendday", recurrenceEditorEndAfter: "recurrenceEditorEndAfter", recurrenceEditorEndOccurrence: "recurrenceEditorEndOccurrence", recurrenceEditorEndLabel: "recurrenceEditorEndLabel", recurrenceEditorEndNever: "recurrenceEditorEndNever", recurrenceEditorEndOn: "recurrenceEditorEndOn", editorTitle: "editorTitle", destroy: "destroy", deleteConfirmation: "deleteConfirmation", editRecurringConfirmation: "editRecurringConfirmation", editOccurrence: "editOccurrence", editSeries: "editSeries", deleteRecurringConfirmation: "deleteRecurringConfirmation", deleteOccurrence: "deleteOccurrence", deleteSeries: "deleteSeries", deleteDialogTitle: "deleteDialogTitle", deleteRecurringDialogTitle: "deleteRecurringDialogTitle", editRecurringDialogTitle: "editRecurringDialogTitle", selectView: "selectView" }, usesInheritance: true, ngImport: i0 });
5981
6015
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, decorators: [{
5982
6016
  type: Directive
5983
6017
  }], propDecorators: { allEvents: [{
@@ -6024,6 +6058,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6024
6058
  type: Input
6025
6059
  }], agendaViewTitle: [{
6026
6060
  type: Input
6061
+ }], yearViewTitle: [{
6062
+ type: Input
6063
+ }], yearViewNoEvents: [{
6064
+ type: Input
6027
6065
  }], cancel: [{
6028
6066
  type: Input
6029
6067
  }], save: [{
@@ -7096,6 +7134,12 @@ SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
7096
7134
  i18n-agendaViewTitle="kendo.scheduler.agendaViewTitle|The agenda view title."
7097
7135
  agendaViewTitle="Agenda"
7098
7136
 
7137
+ i18n-yearViewTitle="kendo.scheduler.yearViewTitle|The year view title."
7138
+ yearViewTitle="Year"
7139
+
7140
+ i18n-yearViewNoEvents="kendo.scheduler.yearViewNoEvents|The year view no events message."
7141
+ yearViewNoEvents="No events on this date."
7142
+
7099
7143
  i18n-cancel="kendo.scheduler.cancel|The text similar to 'Cancel' displayed in the Scheduler."
7100
7144
  cancel="Cancel"
7101
7145
 
@@ -7437,6 +7481,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7437
7481
  i18n-agendaViewTitle="kendo.scheduler.agendaViewTitle|The agenda view title."
7438
7482
  agendaViewTitle="Agenda"
7439
7483
 
7484
+ i18n-yearViewTitle="kendo.scheduler.yearViewTitle|The year view title."
7485
+ yearViewTitle="Year"
7486
+
7487
+ i18n-yearViewNoEvents="kendo.scheduler.yearViewNoEvents|The year view no events message."
7488
+ yearViewNoEvents="No events on this date."
7489
+
7440
7490
  i18n-cancel="kendo.scheduler.cancel|The text similar to 'Cancel' displayed in the Scheduler."
7441
7491
  cancel="Cancel"
7442
7492
 
@@ -8038,7 +8088,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8038
8088
  /**
8039
8089
  * @hidden
8040
8090
  */
8041
- const createTasks$2 = (periodStart, periodEnd, items) => {
8091
+ const createTasks$3 = (periodStart, periodEnd, items) => {
8042
8092
  const tasks = [];
8043
8093
  const utcStart = toUTCDate(periodStart);
8044
8094
  const utcEnd = toUTCDate(periodEnd);
@@ -10097,7 +10147,7 @@ const last = (arr) => arr[arr.length - 1];
10097
10147
  /**
10098
10148
  * @hidden
10099
10149
  */
10100
- const createTasks$1 = (periodStart, periodEnd, items, ranges) => {
10150
+ const createTasks$2 = (periodStart, periodEnd, items, ranges) => {
10101
10151
  const tasks = [];
10102
10152
  const utcStart = toUTCDate(periodStart);
10103
10153
  const utcEnd = toUTCDate(periodEnd);
@@ -11618,7 +11668,7 @@ class MonthViewRendererComponent extends BaseView {
11618
11668
  }
11619
11669
  createTasks(items, dateRange) {
11620
11670
  this.weeks = this.createDaySlots(dateRange);
11621
- return createTasks$1(dateRange.start, dateRange.end, items, this.weeks);
11671
+ return createTasks$2(dateRange.start, dateRange.end, items, this.weeks);
11622
11672
  }
11623
11673
  onTasksChange() {
11624
11674
  updateTaskData(this.tasks);
@@ -13237,7 +13287,7 @@ const isMultiDay = ({ start, end }) => {
13237
13287
  };
13238
13288
  //check start and times or update day ranges to have them
13239
13289
  /** @hidden */
13240
- const createTasks = (periodStart, periodEnd, items, ranges) => {
13290
+ const createTasks$1 = (periodStart, periodEnd, items, ranges) => {
13241
13291
  const tasks = [];
13242
13292
  const utcStart = toUTCDate(periodStart);
13243
13293
  const utcEnd = toUTCDate(periodEnd);
@@ -14033,7 +14083,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
14033
14083
  start: toUTCTime(daySlot.start, startTimeSlot.start),
14034
14084
  end: nextDateEnd ? toUTCDate(daySlot.end) : toUTCTime(daySlot.start, endTimeSlot)
14035
14085
  }));
14036
- return createTasks(dateRange.start, dateRange.end, items, ranges);
14086
+ return createTasks$1(dateRange.start, dateRange.end, items, ranges);
14037
14087
  }
14038
14088
  onTasksChange() {
14039
14089
  this.items.next(this.tasks.filter(task => !task.isAllDay));
@@ -15458,7 +15508,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
15458
15508
  return result;
15459
15509
  }
15460
15510
  createTasks(items, dateRange) {
15461
- return createTasks$2(dateRange.start, dateRange.end, items);
15511
+ return createTasks$3(dateRange.start, dateRange.end, items);
15462
15512
  }
15463
15513
  onTasksChange() {
15464
15514
  this.items.next(this.tasks);
@@ -16907,6 +16957,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16907
16957
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
16908
16958
 
16909
16959
  const isContentWrapper = element => hasClasses(element, 'k-scheduler-content');
16960
+ const CALENDAR_TAG = 'KENDO-CALENDAR-HORIZONTAL';
16910
16961
  /**
16911
16962
  * @hidden
16912
16963
  */
@@ -16999,6 +17050,10 @@ class ShortcutsDirective {
16999
17050
  }, {
17000
17051
  match: e => (e.keyCode === Keys.ArrowUp || e.keyCode === Keys.ArrowLeft) && noModifiers(e) && !isContentWrapper(e.target),
17001
17052
  action: e => {
17053
+ //use the MultiViewCalendar navigation for Year View
17054
+ if (e.target.tagName === CALENDAR_TAG) {
17055
+ return;
17056
+ }
17002
17057
  const prevented = this.scheduler.onNavigationAction({ type: 'focus-prev' });
17003
17058
  if (!prevented) {
17004
17059
  const item = this.focusService.activeItem;
@@ -17012,6 +17067,10 @@ class ShortcutsDirective {
17012
17067
  }, {
17013
17068
  match: e => (e.keyCode === Keys.ArrowDown || e.keyCode === Keys.ArrowRight) && noModifiers(e) && !isContentWrapper(e.target),
17014
17069
  action: e => {
17070
+ //use the MultiViewCalendar navigation for Year View
17071
+ if (e.target.tagName === CALENDAR_TAG) {
17072
+ return;
17073
+ }
17015
17074
  const prevented = this.scheduler.onNavigationAction({ type: 'focus-next' });
17016
17075
  if (!prevented) {
17017
17076
  const isInToolbar = this.focusService.activeItem.containerType === 'toolbar';
@@ -17173,6 +17232,583 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17173
17232
  type: Output
17174
17233
  }] } });
17175
17234
 
17235
+ /**
17236
+ * @hidden
17237
+ */
17238
+ const createTasks = (periodStart, periodEnd, items, ranges) => {
17239
+ const tasks = [];
17240
+ const utcStart = toUTCDateTime(periodStart);
17241
+ const utcEnd = toUTCDateTime(periodEnd);
17242
+ for (let index = 0; index < items.length; index++) {
17243
+ const item = items[index];
17244
+ const data = {};
17245
+ const startTime = item.start.toUTCDate();
17246
+ const end = item.end;
17247
+ const endTime = (item.end.getTime() !== end.getTime() ? end.addDays(1) : end).toUTCDate();
17248
+ if (intersects(startTime, endTime, utcStart, utcEnd)) {
17249
+ for (let rangeIdx = 0; rangeIdx < ranges.length; rangeIdx++) {
17250
+ const range = ranges[rangeIdx];
17251
+ const rangeStart = toUTCDate(range);
17252
+ const rangeEnd = toUTCDate(addDays(range, 1));
17253
+ if (intersects(startTime, endTime, rangeStart, rangeEnd)) {
17254
+ const task = {
17255
+ index,
17256
+ startTime: startTime > rangeStart ? startTime : rangeStart,
17257
+ endTime: endTime < rangeEnd ? endTime : rangeEnd,
17258
+ start: item.start,
17259
+ end: item.end,
17260
+ event: item.event,
17261
+ isAllDay: item.event.isAllDay,
17262
+ rangeIndex: rangeIdx,
17263
+ data: data
17264
+ };
17265
+ task.head = endTime > rangeEnd && startTime > rangeStart;
17266
+ task.tail = startTime < rangeStart && endTime < rangeEnd;
17267
+ task.mid = endTime > rangeEnd && startTime < rangeStart;
17268
+ task.isMultiDay = task.head || task.mid || task.tail;
17269
+ tasks.push(task);
17270
+ }
17271
+ }
17272
+ }
17273
+ }
17274
+ return sortTasksByTime(tasks);
17275
+ };
17276
+ /**
17277
+ * @hidden
17278
+ */
17279
+ const noop = (_) => { };
17280
+ /**
17281
+ * @hidden
17282
+ */
17283
+ const yearEnd = (year) => new Date(year, 11, 31, 23, 59, 59, 999);
17284
+ /**
17285
+ * @hidden
17286
+ */
17287
+ const yearStart = (year) => new Date(year, 0, 1, 0, 0, 0, 0);
17288
+
17289
+ const today = new Date(Date.now());
17290
+ const getDateAttribute = (element) => { var _a; return (_a = element === null || element === void 0 ? void 0 : element.querySelector('span>span[date]')) === null || _a === void 0 ? void 0 : _a.getAttribute('date'); };
17291
+ /**
17292
+ * @hidden
17293
+ */
17294
+ class YearViewInternalComponent extends BaseView {
17295
+ constructor(localization, focusService, intl, viewContext, viewState, zone, renderer, pdfService, element, slotService, scrollBarWidthService, changeDetector, localeId) {
17296
+ super(viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, changeDetector, scrollBarWidthService);
17297
+ this.localization = localization;
17298
+ this.focusService = focusService;
17299
+ this.intl = intl;
17300
+ this.localeId = localeId;
17301
+ this.caretAltLeftIcon = caretAltLeftIcon;
17302
+ this.caretAltRightIcon = caretAltRightIcon;
17303
+ this.eventsPerSelectedDay = [];
17304
+ this.days = [];
17305
+ this.tds = [];
17306
+ this.isTooltipClicked = false;
17307
+ this.slotByIndex = (slotIndex, args) => noop(slotIndex);
17308
+ this.dragHintSize = (startSlot, endSlot) => noop(startSlot);
17309
+ this.dragRanges = (slot) => noop(slot);
17310
+ this.slotByPosition = (x, y, container) => noop(x);
17311
+ this.cachedTds = [];
17312
+ }
17313
+ get arrowIcons() {
17314
+ return !this.localization.rtl
17315
+ ? ['caret-alt-left', 'caret-alt-right']
17316
+ : ['caret-alt-right', 'caret-alt-left'];
17317
+ }
17318
+ get arrowSVGIcons() {
17319
+ return !this.localization.rtl
17320
+ ? [this.caretAltLeftIcon, this.caretAltRightIcon]
17321
+ : [this.caretAltRightIcon, this.caretAltLeftIcon];
17322
+ }
17323
+ ngAfterViewInit() {
17324
+ this.updateTds();
17325
+ super.ngAfterViewInit();
17326
+ }
17327
+ getSlotClass(date) {
17328
+ if (this.slotClass) {
17329
+ return this.slotClass({
17330
+ start: date,
17331
+ end: addDays(date, 1),
17332
+ events: this.eventsPerDay(date),
17333
+ });
17334
+ }
17335
+ }
17336
+ getEventClasses(item, resources, isAllDay) {
17337
+ if (this.eventClass) {
17338
+ return this.eventClass({
17339
+ event: item.event,
17340
+ resources,
17341
+ isAllDay,
17342
+ });
17343
+ }
17344
+ }
17345
+ onBlur() {
17346
+ if (!this.isTooltipClicked) {
17347
+ this.tooltip.hide();
17348
+ }
17349
+ this.isTooltipClicked = false;
17350
+ }
17351
+ getDate(element) {
17352
+ return new Date(getDateAttribute(element.nativeElement));
17353
+ }
17354
+ eventTitle(event) {
17355
+ const startTime = toLocalDate(event.startTime);
17356
+ const endTime = toLocalDate(event.endTime);
17357
+ const time = formatEventTime(startTime, endTime, event.isAllDay, this.localeId);
17358
+ return `${time}, ${event.event.title}`;
17359
+ }
17360
+ onClick(event) {
17361
+ if (event.target.tagName === 'SPAN') {
17362
+ const clickedDate = getDateAttribute(event.target.closest('td.k-calendar-td'));
17363
+ if (clickedDate === getDateAttribute(this.currentTd)) {
17364
+ this.tooltip.show(this.currentTd);
17365
+ }
17366
+ }
17367
+ else {
17368
+ this.tooltip.hide();
17369
+ }
17370
+ }
17371
+ onMouseDown() {
17372
+ this.isTooltipClicked = true;
17373
+ }
17374
+ onKeydown(event) {
17375
+ if (event.key === 'Backspace' || event.key === 'Delete') {
17376
+ this.tooltip.hide();
17377
+ }
17378
+ if (event.key === 'Enter' && !this.tooltip.popupRef) {
17379
+ this.tooltip.show(this.currentTd);
17380
+ return;
17381
+ }
17382
+ if (event.key === 'Enter' && this.tooltip.popupRef && (getDateAttribute(this.currentTd) === this.calendar.focusedDate.toString())) {
17383
+ this.navigateToDay(new Date(getDateAttribute(this.currentTd)));
17384
+ }
17385
+ }
17386
+ navigateToDay(date) {
17387
+ this.tooltip.hide();
17388
+ this.zone.run(() => {
17389
+ this.viewState.navigateTo({ viewName: 'day', date: new Date(date) });
17390
+ });
17391
+ }
17392
+ eventsPerDay(date) {
17393
+ var _a;
17394
+ return ((_a = this.tasksPerDay(date)) === null || _a === void 0 ? void 0 : _a.map((task) => task.event)) || [];
17395
+ }
17396
+ tasksPerDay(date) {
17397
+ var _a, _b, _c;
17398
+ if (((_a = this.resources) === null || _a === void 0 ? void 0 : _a.length) > 0) {
17399
+ return (_b = this.tasks) === null || _b === void 0 ? void 0 : _b.filter((event) => event.resources.length > 0 &&
17400
+ event.startTime.getUTCDate() === date.getDate() &&
17401
+ event.startTime.getUTCMonth() === date.getMonth());
17402
+ }
17403
+ else {
17404
+ return (_c = this.tasks) === null || _c === void 0 ? void 0 : _c.filter((event) => event.startTime.getUTCDate() === date.getDate() && event.startTime.getUTCMonth() === date.getMonth());
17405
+ }
17406
+ }
17407
+ onValueChange(date) {
17408
+ this.eventsPerSelectedDay = this.tasksPerDay(date);
17409
+ this.currentTd = this.tds.find((td) => getDateAttribute(td) === date.toString());
17410
+ if (this.tooltip.popupRef) {
17411
+ this.tooltip.hide();
17412
+ }
17413
+ }
17414
+ hasEvent(date) {
17415
+ return this.tasksPerDay(date).length > 0;
17416
+ }
17417
+ createPDFElement() {
17418
+ const element = this.element.nativeElement.cloneNode(true);
17419
+ element.style.width = `${this.element.nativeElement.offsetWidth}px`;
17420
+ element.querySelector('.k-scheduler-layout').style.height = 'auto';
17421
+ this.pdfService.elementReady.emit({
17422
+ element: element,
17423
+ });
17424
+ }
17425
+ onSelectDate(date) {
17426
+ const year = date.getFullYear();
17427
+ this.focusedDate = new Date(year, today.getMonth(), today.getDate());
17428
+ const start = yearStart(year);
17429
+ this.selectedDate = start;
17430
+ const dateRange = this.dateRange(date);
17431
+ this.viewState.notifyDateRange(dateRange);
17432
+ this.days = this.createDaySlots(dateRange);
17433
+ if (this.calendar) {
17434
+ this.calendar.min = start;
17435
+ this.calendar.max = yearEnd(start.getFullYear());
17436
+ this.updateTds();
17437
+ }
17438
+ }
17439
+ onAction(e) {
17440
+ const now = this.selectedDate;
17441
+ if (e.type === 'next' || e.type === 'prev') {
17442
+ const offset = e.type === 'next' ? 1 : -1;
17443
+ const next = addYears(now, offset);
17444
+ this.viewState.notifyNextDate(next);
17445
+ this.calendar.min = next;
17446
+ this.calendar.max = yearEnd(next.getFullYear());
17447
+ this.focusedDate = new Date(next.getFullYear(), today.getMonth(), today.getDate());
17448
+ }
17449
+ }
17450
+ createTasks(items, dateRange) {
17451
+ this.days = this.createDaySlots(dateRange);
17452
+ return createTasks(dateRange.start, dateRange.end, items, this.days);
17453
+ }
17454
+ reflow() {
17455
+ this.updateContentHeight();
17456
+ const content = this.content.nativeElement;
17457
+ if (this.contentHeight === 'auto') {
17458
+ // bigger size changes cause the table to overflow the container and in horizontal scrollbars
17459
+ // this changes the table and slots size during rendering before the browser re-adjusts the 100% table width
17460
+ content.style.overflow = 'visible';
17461
+ }
17462
+ if (this.contentHeight === 'auto') {
17463
+ content.style.overflow = '';
17464
+ }
17465
+ }
17466
+ dateRange(date = this.selectedDate) {
17467
+ return this.dateRangeFn(date);
17468
+ }
17469
+ onTasksChange() {
17470
+ this.items.next(this.tasks);
17471
+ }
17472
+ createDaySlots({ start }) {
17473
+ const days = [];
17474
+ const monthsPerYear = 12;
17475
+ let date = start;
17476
+ for (let idx = 0; idx < monthsPerYear; idx++) {
17477
+ const monthTotalDays = this.getLastDayOfMonth(date.getFullYear(), date.getMonth());
17478
+ for (let dayIdx = 0; dayIdx < monthTotalDays; dayIdx++) {
17479
+ days.push(date);
17480
+ const nextDay = addDays(date, 1);
17481
+ date = nextDay;
17482
+ }
17483
+ }
17484
+ return days;
17485
+ }
17486
+ getLastDayOfMonth(year, month) {
17487
+ return new Date(year, month + 1, 0).getDate();
17488
+ }
17489
+ updateTds() {
17490
+ this.cachedTds.forEach((td) => {
17491
+ this.renderer.setAttribute(td, 'class', 'k-calendar-td');
17492
+ });
17493
+ this.cachedTds = [];
17494
+ this.tds = Array.from(this.calendar.element.nativeElement.querySelectorAll('.k-calendar-td:not(.k-other-month)'));
17495
+ if (this.slotClass) {
17496
+ this.tds.forEach((td) => {
17497
+ const date = toUTCDate(new Date(getDateAttribute(td)));
17498
+ const userClass = this.getSlotClass(date);
17499
+ if (userClass) {
17500
+ this.renderer.addClass(td, userClass);
17501
+ this.cachedTds.push(td);
17502
+ }
17503
+ });
17504
+ }
17505
+ }
17506
+ }
17507
+ YearViewInternalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewInternalComponent, deps: [{ token: i1$1.LocalizationService }, { token: FocusService }, { token: i1$4.IntlService }, { token: ViewContextService }, { token: ViewStateService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: PDFService }, { token: i0.ElementRef }, { token: MonthSlotService }, { token: i7.ScrollbarWidthService }, { token: i0.ChangeDetectorRef }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
17508
+ YearViewInternalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: YearViewInternalComponent, selector: "year-view-internal", inputs: { newRange: "newRange", dateRangeFn: "dateRangeFn", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [MonthSlotService], viewQueries: [{ propertyName: "calendar", first: true, predicate: MultiViewCalendarComponent, descendants: true }, { propertyName: "tooltip", first: true, predicate: TooltipDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
17509
+ <div #content class="k-scheduler-layout k-scheduler-layout-flex k-scheduler-yearview">
17510
+ <div class="k-scheduler-body">
17511
+ <kendo-multiviewcalendar
17512
+ [showOtherMonthDates]="false"
17513
+ [showCalendarHeader]="false"
17514
+ [showViewHeader]="true"
17515
+ [views]="12"
17516
+ [focusedDate]="focusedDate"
17517
+ kendoTooltip
17518
+ filter=".k-calendar-td"
17519
+ showOn="none"
17520
+ [tooltipTemplate]="template"
17521
+ position="right"
17522
+ tooltipContentClass="k-scheduler-tooltip"
17523
+ [tooltipWidth]="220"
17524
+ [collision]="{ horizontal: 'flip', vertical: 'flip' }"
17525
+ (valueChange)="onValueChange($event)"
17526
+ (blur)="onBlur()"
17527
+ >
17528
+ <ng-template kendoCalendarMonthCellTemplate let-date let-context="cellContext">
17529
+ <span *ngIf="!context.isOtherMonth" [attr.date]="date">{{ date.getDate() }}</span>
17530
+ <span *ngIf="!context.isOtherMonth && hasEvent(date)" class="k-day-indicator"></span>
17531
+ </ng-template>
17532
+ </kendo-multiviewcalendar>
17533
+ </div>
17534
+ </div>
17535
+ <ng-template #template let-anchor>
17536
+ <div
17537
+ class="k-tooltip-title k-text-center"
17538
+ (click)="navigateToDay(getDate(anchor))"
17539
+ (mousedown)="onMouseDown()"
17540
+ >
17541
+ <div class="k-month">{{ intl.formatDate(getDate(anchor), 'MMM') }}</div>
17542
+ <div class="k-link k-day k-text-primary">{{ intl.formatDate(getDate(anchor), 'dd') }}</div>
17543
+ </div>
17544
+ <div class="k-tooltip-events-container" (mousedown)="onMouseDown()">
17545
+ <div class="k-tooltip-events">
17546
+ <div
17547
+ *ngFor="let event of eventsPerSelectedDay"
17548
+ class="k-tooltip-event k-event"
17549
+ [title]="eventTitle(event)"
17550
+ [ngClass]="getEventClasses(event, event.resources)"
17551
+ [ngStyle]="getEventStyles(event, event.resources[0], event.isAllDay)"
17552
+ >
17553
+ <kendo-icon-wrapper
17554
+ *ngIf="event.tail || event.mid"
17555
+ [name]="arrowIcons[0]"
17556
+ [svgIcon]="arrowSVGIcons[0]"
17557
+ >
17558
+ </kendo-icon-wrapper>
17559
+ <div class="k-event-title k-text-ellipsis">{{ event.event.title }}</div>
17560
+ <span class="k-spacer"></span>
17561
+ <span
17562
+ class="k-event-time"
17563
+ *ngIf="(event.isMultiDay && event.head && !event.isAllDay) || !event.isMultiDay"
17564
+ >{{ intl.formatDate(event.start, 't') }}</span
17565
+ >
17566
+ <kendo-icon-wrapper
17567
+ *ngIf="event.head || event.mid"
17568
+ [name]="arrowIcons[1]"
17569
+ [svgIcon]="arrowSVGIcons[1]"
17570
+ >
17571
+ </kendo-icon-wrapper>
17572
+ </div>
17573
+ </div>
17574
+ </div>
17575
+ <div *ngIf="eventsPerSelectedDay.length === 0" class="k-no-data k-text-center">
17576
+ {{ localization.get('yearViewNoEvents') }}
17577
+ </div>
17578
+ </ng-template>
17579
+ `, isInline: true, components: [{ type: i2.MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDates", "showCalendarHeader", "id", "focusedDate", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { type: i4$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i11$1.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "tooltipContentClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }, { type: i2.MonthCellTemplateDirective, selector: "[kendoCalendarMonthCellTemplate]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
17580
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewInternalComponent, decorators: [{
17581
+ type: Component,
17582
+ args: [{
17583
+ selector: 'year-view-internal',
17584
+ providers: [MonthSlotService],
17585
+ template: `
17586
+ <div #content class="k-scheduler-layout k-scheduler-layout-flex k-scheduler-yearview">
17587
+ <div class="k-scheduler-body">
17588
+ <kendo-multiviewcalendar
17589
+ [showOtherMonthDates]="false"
17590
+ [showCalendarHeader]="false"
17591
+ [showViewHeader]="true"
17592
+ [views]="12"
17593
+ [focusedDate]="focusedDate"
17594
+ kendoTooltip
17595
+ filter=".k-calendar-td"
17596
+ showOn="none"
17597
+ [tooltipTemplate]="template"
17598
+ position="right"
17599
+ tooltipContentClass="k-scheduler-tooltip"
17600
+ [tooltipWidth]="220"
17601
+ [collision]="{ horizontal: 'flip', vertical: 'flip' }"
17602
+ (valueChange)="onValueChange($event)"
17603
+ (blur)="onBlur()"
17604
+ >
17605
+ <ng-template kendoCalendarMonthCellTemplate let-date let-context="cellContext">
17606
+ <span *ngIf="!context.isOtherMonth" [attr.date]="date">{{ date.getDate() }}</span>
17607
+ <span *ngIf="!context.isOtherMonth && hasEvent(date)" class="k-day-indicator"></span>
17608
+ </ng-template>
17609
+ </kendo-multiviewcalendar>
17610
+ </div>
17611
+ </div>
17612
+ <ng-template #template let-anchor>
17613
+ <div
17614
+ class="k-tooltip-title k-text-center"
17615
+ (click)="navigateToDay(getDate(anchor))"
17616
+ (mousedown)="onMouseDown()"
17617
+ >
17618
+ <div class="k-month">{{ intl.formatDate(getDate(anchor), 'MMM') }}</div>
17619
+ <div class="k-link k-day k-text-primary">{{ intl.formatDate(getDate(anchor), 'dd') }}</div>
17620
+ </div>
17621
+ <div class="k-tooltip-events-container" (mousedown)="onMouseDown()">
17622
+ <div class="k-tooltip-events">
17623
+ <div
17624
+ *ngFor="let event of eventsPerSelectedDay"
17625
+ class="k-tooltip-event k-event"
17626
+ [title]="eventTitle(event)"
17627
+ [ngClass]="getEventClasses(event, event.resources)"
17628
+ [ngStyle]="getEventStyles(event, event.resources[0], event.isAllDay)"
17629
+ >
17630
+ <kendo-icon-wrapper
17631
+ *ngIf="event.tail || event.mid"
17632
+ [name]="arrowIcons[0]"
17633
+ [svgIcon]="arrowSVGIcons[0]"
17634
+ >
17635
+ </kendo-icon-wrapper>
17636
+ <div class="k-event-title k-text-ellipsis">{{ event.event.title }}</div>
17637
+ <span class="k-spacer"></span>
17638
+ <span
17639
+ class="k-event-time"
17640
+ *ngIf="(event.isMultiDay && event.head && !event.isAllDay) || !event.isMultiDay"
17641
+ >{{ intl.formatDate(event.start, 't') }}</span
17642
+ >
17643
+ <kendo-icon-wrapper
17644
+ *ngIf="event.head || event.mid"
17645
+ [name]="arrowIcons[1]"
17646
+ [svgIcon]="arrowSVGIcons[1]"
17647
+ >
17648
+ </kendo-icon-wrapper>
17649
+ </div>
17650
+ </div>
17651
+ </div>
17652
+ <div *ngIf="eventsPerSelectedDay.length === 0" class="k-no-data k-text-center">
17653
+ {{ localization.get('yearViewNoEvents') }}
17654
+ </div>
17655
+ </ng-template>
17656
+ `,
17657
+ }]
17658
+ }], ctorParameters: function () {
17659
+ return [{ type: i1$1.LocalizationService }, { type: FocusService }, { type: i1$4.IntlService }, { type: ViewContextService }, { type: ViewStateService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: PDFService }, { type: i0.ElementRef }, { type: MonthSlotService }, { type: i7.ScrollbarWidthService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
17660
+ type: Inject,
17661
+ args: [LOCALE_ID]
17662
+ }] }];
17663
+ }, propDecorators: { newRange: [{
17664
+ type: Input
17665
+ }], dateRangeFn: [{
17666
+ type: Input
17667
+ }], calendar: [{
17668
+ type: ViewChild,
17669
+ args: [MultiViewCalendarComponent]
17670
+ }], tooltip: [{
17671
+ type: ViewChild,
17672
+ args: [TooltipDirective]
17673
+ }], selectedDateFormat: [{
17674
+ type: Input
17675
+ }], selectedShortDateFormat: [{
17676
+ type: Input
17677
+ }] } });
17678
+
17679
+ /**
17680
+ * The component for rendering the **Year** view.
17681
+ */
17682
+ class YearViewComponent extends ConfigurationViewBase {
17683
+ constructor(localization, changeDetector, viewContext, viewState, intl) {
17684
+ super(localization, changeDetector, viewContext, viewState);
17685
+ this.intl = intl;
17686
+ /**
17687
+ * The long-date format for displaying the
17688
+ * selected year in the Scheduler toolbar.
17689
+ * For more information, see [Parsing and Formatting Dates and Numbers]({% slug parsingandformatting_intl %}#toc-date-formatting).
17690
+ * @default '{0:yyy}'
17691
+ */
17692
+ this.selectedDateFormat = '{0:yyy}';
17693
+ /**
17694
+ * The short-date format for displaying the
17695
+ * selected year in the Scheduler toolbar.
17696
+ * For more information, see [Parsing and Formatting Dates and Numbers]({% slug parsingandformatting_intl %}#toc-date-formatting).
17697
+ * @default '{0:yyy}'
17698
+ */
17699
+ this.selectedShortDateFormat = '{0:yyy}';
17700
+ /**
17701
+ * The invariant name for this view.
17702
+ * @default 'year'
17703
+ */
17704
+ this.name = 'year';
17705
+ }
17706
+ /**
17707
+ * @hidden
17708
+ */
17709
+ get title() {
17710
+ return this.localization.get('yearViewTitle');
17711
+ }
17712
+ /**
17713
+ * @hidden
17714
+ */
17715
+ dateRange(date) {
17716
+ const year = date.getFullYear();
17717
+ const start = yearStart(year);
17718
+ const end = yearEnd(year);
17719
+ const text = this.intl.format(this.selectedDateFormat, start);
17720
+ const shortText = this.intl.format(this.selectedShortDateFormat, start);
17721
+ return { start, end, text, shortText };
17722
+ }
17723
+ /**
17724
+ * @hidden
17725
+ */
17726
+ newRange(date, direction = 1) {
17727
+ return new Date(addYears(date, direction));
17728
+ }
17729
+ }
17730
+ YearViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }, { token: i1$4.IntlService }], target: i0.ɵɵFactoryTarget.Component });
17731
+ YearViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: YearViewComponent, selector: "kendo-scheduler-year-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
17732
+ provide: SchedulerView,
17733
+ useExisting: forwardRef(() => YearViewComponent)
17734
+ }], usesInheritance: true, ngImport: i0, template: `
17735
+ <ng-template #content>
17736
+ <year-view-internal
17737
+ [selectedDateFormat]="selectedDateFormat"
17738
+ [selectedShortDateFormat]="selectedShortDateFormat"
17739
+ [slotClass]="viewSlotClass"
17740
+ [eventClass]="viewEventClass"
17741
+ [eventStyles]="viewEventStyles"
17742
+ [dateRangeFn]="dateRange"
17743
+ [newRange]="newRange">
17744
+ </year-view-internal>
17745
+ </ng-template>
17746
+ `, isInline: true, components: [{ type: YearViewInternalComponent, selector: "year-view-internal", inputs: ["newRange", "dateRangeFn", "selectedDateFormat", "selectedShortDateFormat"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17747
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewComponent, decorators: [{
17748
+ type: Component,
17749
+ args: [{
17750
+ changeDetection: ChangeDetectionStrategy.OnPush,
17751
+ selector: 'kendo-scheduler-year-view',
17752
+ providers: [{
17753
+ provide: SchedulerView,
17754
+ useExisting: forwardRef(() => YearViewComponent)
17755
+ }],
17756
+ template: `
17757
+ <ng-template #content>
17758
+ <year-view-internal
17759
+ [selectedDateFormat]="selectedDateFormat"
17760
+ [selectedShortDateFormat]="selectedShortDateFormat"
17761
+ [slotClass]="viewSlotClass"
17762
+ [eventClass]="viewEventClass"
17763
+ [eventStyles]="viewEventStyles"
17764
+ [dateRangeFn]="dateRange"
17765
+ [newRange]="newRange">
17766
+ </year-view-internal>
17767
+ </ng-template>
17768
+ `
17769
+ }]
17770
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }, { type: ViewStateService }, { type: i1$4.IntlService }]; }, propDecorators: { selectedDateFormat: [{
17771
+ type: Input
17772
+ }], selectedShortDateFormat: [{
17773
+ type: Input
17774
+ }] } });
17775
+
17776
+ /**
17777
+ * @hidden
17778
+ */
17779
+ class YearViewModule {
17780
+ }
17781
+ YearViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17782
+ YearViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewModule, declarations: [YearViewComponent,
17783
+ YearViewInternalComponent], imports: [ViewsSharedModule,
17784
+ CalendarsModule,
17785
+ TooltipsModule,
17786
+ IntlModule], exports: [YearViewComponent] });
17787
+ YearViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewModule, imports: [[
17788
+ ViewsSharedModule,
17789
+ CalendarsModule,
17790
+ TooltipsModule,
17791
+ IntlModule
17792
+ ]] });
17793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewModule, decorators: [{
17794
+ type: NgModule,
17795
+ args: [{
17796
+ imports: [
17797
+ ViewsSharedModule,
17798
+ CalendarsModule,
17799
+ TooltipsModule,
17800
+ IntlModule
17801
+ ],
17802
+ exports: [
17803
+ YearViewComponent
17804
+ ],
17805
+ declarations: [
17806
+ YearViewComponent,
17807
+ YearViewInternalComponent
17808
+ ]
17809
+ }]
17810
+ }] });
17811
+
17176
17812
  const TEMPLATES = [
17177
17813
  AgendaDateTemplateDirective,
17178
17814
  AgendaTimeTemplateDirective,
@@ -17218,6 +17854,7 @@ const declarations$1 = [
17218
17854
  const publicDirectives = [
17219
17855
  AgendaViewComponent,
17220
17856
  MonthViewModule,
17857
+ YearViewComponent,
17221
17858
  MultiDayViewModule,
17222
17859
  ReactiveEditingDirective,
17223
17860
  TimelineViewModule,
@@ -17302,7 +17939,8 @@ SchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
17302
17939
  ResizeSensorModule,
17303
17940
  MonthViewModule,
17304
17941
  TimelineViewModule,
17305
- WatermarkModule, ButtonsModule,
17942
+ WatermarkModule,
17943
+ YearViewModule, ButtonsModule,
17306
17944
  CheckBoxModule,
17307
17945
  TextAreaModule,
17308
17946
  DateInputsModule,
@@ -17315,6 +17953,7 @@ SchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
17315
17953
  LabelModule,
17316
17954
  FormFieldModule], exports: [AgendaViewComponent,
17317
17955
  MonthViewModule,
17956
+ YearViewComponent,
17318
17957
  MultiDayViewModule,
17319
17958
  ReactiveEditingDirective,
17320
17959
  TimelineViewModule, ToolbarNavigationComponent, ToolbarTemplateDirective, ToolbarViewSelectorComponent, SchedulerComponent,
@@ -17365,6 +18004,7 @@ SchedulerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
17365
18004
  MonthViewModule,
17366
18005
  TimelineViewModule,
17367
18006
  WatermarkModule,
18007
+ YearViewModule,
17368
18008
  ...importedKendoModules
17369
18009
  ], MonthViewModule,
17370
18010
  MultiDayViewModule,
@@ -17381,6 +18021,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17381
18021
  MonthViewModule,
17382
18022
  TimelineViewModule,
17383
18023
  WatermarkModule,
18024
+ YearViewModule,
17384
18025
  ...importedKendoModules
17385
18026
  ],
17386
18027
  declarations: declarations$1,
@@ -17937,5 +18578,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17937
18578
  * Generated bundle index. Do not edit.
17938
18579
  */
17939
18580
 
17940
- export { AddEvent, AgendaDateTemplateDirective, AgendaTimeTemplateDirective, AgendaViewComponent, AllDayEventTemplateDirective, AllDaySlotTemplateDirective, BaseEditService, CancelEvent, CrudOperation, DataBindingDirective, DateChangeEvent, DateHeaderTemplateDirective, DaySlotDirective, DayTimeModule, DayTimeSlotService, DayTimeViewItemComponent, DayViewComponent, DragEndEvent, DragEvent, DragStartEvent, EditDialogComponent, EditDialogTemplateDirective, EditEvent, EditEventBase, EditMode, EndRuleRadioButtonDirective, EventClickEvent, EventKeydownEvent, EventTemplateDirective, FocusService, FocusableDirective, GroupHeaderTemplateDirective, HintContainerComponent, IsSlotSelectedArgs, LoadingComponent, LocalizedMessagesDirective, MajorTimeHeaderTemplateDirective, MinorTimeHeaderTemplateDirective, MonthDaySlotTemplateDirective, MonthViewComponent, MonthViewModule, MultiDayViewComponent, MultiDayViewModule, MultiWeekDaySlotTemplateDirective, MultiWeekViewComponent, MultipleResourceEditorComponent, NavigateEvent, PDFCommandDirective, PDFComponent, PDFExportEvent, PDFModule, PDFService, ReactiveEditingDirective, RecurrenceEditorComponent, RecurrenceEditorCustomMessagesComponent, RecurrenceEditorLocalizedMessagesDirective, RecurrenceEndRuleEditorComponent, RecurrenceFrequencyEditorComponent, RecurrenceIntervalEditorComponent, RecurrenceMonthlyYearlyEditorComponent, RecurrenceWeekdayRuleEditorComponent, RemoveEvent, RepeatOnRadioButtonDirective, RepeatPipe, ResizeEndEvent, ResizeEvent, ResizeHintComponent, ResizeStartEvent, ResourceIteratorPipe, SaveEvent, SchedulerComponent, SchedulerCustomMessagesComponent, SchedulerDateTimePickerComponent, SchedulerModule, SchedulerView, SchedulerViewDirective, SharedModule, ShortcutsDirective, SingleResourceEditorComponent, SlotClickEvent, SlotDragEndEvent, SlotDragEvent, SlotDragStartEvent, SlotSelectableDirective, SortPipe, TimeSlotDirective, TimeSlotTemplateDirective, TimeZoneEditorComponent, TimelineBase, TimelineMonthViewComponent, TimelineMultiDayViewComponent, TimelineViewComponent, TimelineViewModule, TimelineWeekViewComponent, ToolbarNavigationComponent, ToolbarService, ToolbarTemplateDirective, ToolbarViewSelectorComponent, VIEW_EVENT_MAP, ViewContextService, ViewFooterComponent, ViewStateService, ViewsSharedModule, WeekViewComponent, WorkHoursFooterDirective, WorkWeekViewComponent };
18581
+ export { AddEvent, AgendaDateTemplateDirective, AgendaTimeTemplateDirective, AgendaViewComponent, AllDayEventTemplateDirective, AllDaySlotTemplateDirective, BaseEditService, CancelEvent, CrudOperation, DataBindingDirective, DateChangeEvent, DateHeaderTemplateDirective, DaySlotDirective, DayTimeModule, DayTimeSlotService, DayTimeViewItemComponent, DayViewComponent, DragEndEvent, DragEvent, DragStartEvent, EditDialogComponent, EditDialogTemplateDirective, EditEvent, EditEventBase, EditMode, EndRuleRadioButtonDirective, EventClickEvent, EventKeydownEvent, EventTemplateDirective, FocusService, FocusableDirective, GroupHeaderTemplateDirective, HintContainerComponent, IsSlotSelectedArgs, LoadingComponent, LocalizedMessagesDirective, MajorTimeHeaderTemplateDirective, MinorTimeHeaderTemplateDirective, MonthDaySlotTemplateDirective, MonthViewComponent, MonthViewModule, MultiDayViewComponent, MultiDayViewModule, MultiWeekDaySlotTemplateDirective, MultiWeekViewComponent, MultipleResourceEditorComponent, NavigateEvent, PDFCommandDirective, PDFComponent, PDFExportEvent, PDFModule, PDFService, ReactiveEditingDirective, RecurrenceEditorComponent, RecurrenceEditorCustomMessagesComponent, RecurrenceEditorLocalizedMessagesDirective, RecurrenceEndRuleEditorComponent, RecurrenceFrequencyEditorComponent, RecurrenceIntervalEditorComponent, RecurrenceMonthlyYearlyEditorComponent, RecurrenceWeekdayRuleEditorComponent, RemoveEvent, RepeatOnRadioButtonDirective, RepeatPipe, ResizeEndEvent, ResizeEvent, ResizeHintComponent, ResizeStartEvent, ResourceIteratorPipe, SaveEvent, SchedulerComponent, SchedulerCustomMessagesComponent, SchedulerDateTimePickerComponent, SchedulerModule, SchedulerView, SchedulerViewDirective, SharedModule, ShortcutsDirective, SingleResourceEditorComponent, SlotClickEvent, SlotDragEndEvent, SlotDragEvent, SlotDragStartEvent, SlotSelectableDirective, SortPipe, TimeSlotDirective, TimeSlotTemplateDirective, TimeZoneEditorComponent, TimelineBase, TimelineMonthViewComponent, TimelineMultiDayViewComponent, TimelineViewComponent, TimelineViewModule, TimelineWeekViewComponent, ToolbarNavigationComponent, ToolbarService, ToolbarTemplateDirective, ToolbarViewSelectorComponent, VIEW_EVENT_MAP, ViewContextService, ViewFooterComponent, ViewStateService, ViewsSharedModule, WeekViewComponent, WorkHoursFooterDirective, WorkWeekViewComponent, YearViewComponent };
17941
18582