@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
 
@@ -2424,7 +2426,7 @@ class ToolbarNavigationComponent {
2424
2426
  }
2425
2427
  }
2426
2428
  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 });
2427
- 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: [
2429
+ 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: [
2428
2430
  PopupService
2429
2431
  ], viewQueries: [{ propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }], ngImport: i0, template: `
2430
2432
  <span class="k-scheduler-navigation k-button-group k-button-group-solid" role="group">
@@ -2482,6 +2484,8 @@ ToolbarNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
2482
2484
  <kendo-calendar
2483
2485
  #calendar
2484
2486
  (blur)="onBlur()"
2487
+ [activeView]="activeView"
2488
+ [bottomView]="bottomView"
2485
2489
  (keydown.escape)="toggleSelectedDate({ nativeElement: anchor }, template); anchor.focus();"
2486
2490
  (valueChange)="selectDate($event)"
2487
2491
  [value]="ctx.selectedDate | async" [min]="min" [max]="max">
@@ -2555,6 +2559,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2555
2559
  <kendo-calendar
2556
2560
  #calendar
2557
2561
  (blur)="onBlur()"
2562
+ [activeView]="activeView"
2563
+ [bottomView]="bottomView"
2558
2564
  (keydown.escape)="toggleSelectedDate({ nativeElement: anchor }, template); anchor.focus();"
2559
2565
  (valueChange)="selectDate($event)"
2560
2566
  [value]="ctx.selectedDate | async" [min]="min" [max]="max">
@@ -2574,6 +2580,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2574
2580
  type: Input
2575
2581
  }], max: [{
2576
2582
  type: Input
2583
+ }], activeView: [{
2584
+ type: Input
2585
+ }], bottomView: [{
2586
+ type: Input
2577
2587
  }] } });
2578
2588
 
2579
2589
  /**
@@ -2738,6 +2748,18 @@ class ToolbarComponent {
2738
2748
  this.subs = new Subscription();
2739
2749
  this.subs.add(service.action.subscribe(action => this.navigate.next(action)));
2740
2750
  }
2751
+ /**
2752
+ * @hidden
2753
+ */
2754
+ get activeView() {
2755
+ return this.service.context.selectedView?.name === 'year' ? 'decade' : 'month';
2756
+ }
2757
+ /**
2758
+ * @hidden
2759
+ */
2760
+ get bottomView() {
2761
+ return this.service.context.selectedView?.name === 'year' ? 'decade' : 'month';
2762
+ }
2741
2763
  ngOnInit() {
2742
2764
  this.subs.add(this.selectedDate.subscribe(date => this.templateContext.selectedDate = date));
2743
2765
  this.subs.add(this.dateRange.subscribe(dateRange => this.templateContext.dateRange = dateRange));
@@ -2777,13 +2799,18 @@ ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
2777
2799
  </ng-template>
2778
2800
 
2779
2801
  <ng-template #defaultTemplate>
2780
- <div kendoSchedulerToolbarNavigation [min]="min" [max]="max"></div>
2802
+ <div kendoSchedulerToolbarNavigation
2803
+ [min]="min"
2804
+ [max]="max"
2805
+ [activeView]="activeView"
2806
+ [bottomView]="bottomView">
2807
+ </div>
2781
2808
  <span class="k-spacer"></span>
2782
2809
  <div kendoSchedulerToolbarViewSelector [toolbarWidth]="toolbarWidth"></div>
2783
2810
  </ng-template>
2784
2811
 
2785
2812
  <kendo-resize-sensor (resize)="resizeHandler()" [style]="'display: contents;'"></kendo-resize-sensor>
2786
- `, 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"] }] });
2813
+ `, 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"] }] });
2787
2814
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ToolbarComponent, decorators: [{
2788
2815
  type: Component,
2789
2816
  args: [{
@@ -2797,7 +2824,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2797
2824
  </ng-template>
2798
2825
 
2799
2826
  <ng-template #defaultTemplate>
2800
- <div kendoSchedulerToolbarNavigation [min]="min" [max]="max"></div>
2827
+ <div kendoSchedulerToolbarNavigation
2828
+ [min]="min"
2829
+ [max]="max"
2830
+ [activeView]="activeView"
2831
+ [bottomView]="bottomView">
2832
+ </div>
2801
2833
  <span class="k-spacer"></span>
2802
2834
  <div kendoSchedulerToolbarViewSelector [toolbarWidth]="toolbarWidth"></div>
2803
2835
  </ng-template>
@@ -5939,7 +5971,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5939
5971
  class Messages extends ComponentMessages {
5940
5972
  }
5941
5973
  Messages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
5942
- 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 });
5974
+ 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 });
5943
5975
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: Messages, decorators: [{
5944
5976
  type: Directive
5945
5977
  }], propDecorators: { allEvents: [{
@@ -5986,6 +6018,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5986
6018
  type: Input
5987
6019
  }], agendaViewTitle: [{
5988
6020
  type: Input
6021
+ }], yearViewTitle: [{
6022
+ type: Input
6023
+ }], yearViewNoEvents: [{
6024
+ type: Input
5989
6025
  }], cancel: [{
5990
6026
  type: Input
5991
6027
  }], save: [{
@@ -7058,6 +7094,12 @@ SchedulerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
7058
7094
  i18n-agendaViewTitle="kendo.scheduler.agendaViewTitle|The agenda view title."
7059
7095
  agendaViewTitle="Agenda"
7060
7096
 
7097
+ i18n-yearViewTitle="kendo.scheduler.yearViewTitle|The year view title."
7098
+ yearViewTitle="Year"
7099
+
7100
+ i18n-yearViewNoEvents="kendo.scheduler.yearViewNoEvents|The year view no events message."
7101
+ yearViewNoEvents="No events on this date."
7102
+
7061
7103
  i18n-cancel="kendo.scheduler.cancel|The text similar to 'Cancel' displayed in the Scheduler."
7062
7104
  cancel="Cancel"
7063
7105
 
@@ -7399,6 +7441,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7399
7441
  i18n-agendaViewTitle="kendo.scheduler.agendaViewTitle|The agenda view title."
7400
7442
  agendaViewTitle="Agenda"
7401
7443
 
7444
+ i18n-yearViewTitle="kendo.scheduler.yearViewTitle|The year view title."
7445
+ yearViewTitle="Year"
7446
+
7447
+ i18n-yearViewNoEvents="kendo.scheduler.yearViewNoEvents|The year view no events message."
7448
+ yearViewNoEvents="No events on this date."
7449
+
7402
7450
  i18n-cancel="kendo.scheduler.cancel|The text similar to 'Cancel' displayed in the Scheduler."
7403
7451
  cancel="Cancel"
7404
7452
 
@@ -8000,7 +8048,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8000
8048
  /**
8001
8049
  * @hidden
8002
8050
  */
8003
- const createTasks$2 = (periodStart, periodEnd, items) => {
8051
+ const createTasks$3 = (periodStart, periodEnd, items) => {
8004
8052
  const tasks = [];
8005
8053
  const utcStart = toUTCDate(periodStart);
8006
8054
  const utcEnd = toUTCDate(periodEnd);
@@ -10060,7 +10108,7 @@ const last = (arr) => arr[arr.length - 1];
10060
10108
  /**
10061
10109
  * @hidden
10062
10110
  */
10063
- const createTasks$1 = (periodStart, periodEnd, items, ranges) => {
10111
+ const createTasks$2 = (periodStart, periodEnd, items, ranges) => {
10064
10112
  const tasks = [];
10065
10113
  const utcStart = toUTCDate(periodStart);
10066
10114
  const utcEnd = toUTCDate(periodEnd);
@@ -11581,7 +11629,7 @@ class MonthViewRendererComponent extends BaseView {
11581
11629
  }
11582
11630
  createTasks(items, dateRange) {
11583
11631
  this.weeks = this.createDaySlots(dateRange);
11584
- return createTasks$1(dateRange.start, dateRange.end, items, this.weeks);
11632
+ return createTasks$2(dateRange.start, dateRange.end, items, this.weeks);
11585
11633
  }
11586
11634
  onTasksChange() {
11587
11635
  updateTaskData(this.tasks);
@@ -13193,7 +13241,7 @@ const isMultiDay = ({ start, end }) => {
13193
13241
  };
13194
13242
  //check start and times or update day ranges to have them
13195
13243
  /** @hidden */
13196
- const createTasks = (periodStart, periodEnd, items, ranges) => {
13244
+ const createTasks$1 = (periodStart, periodEnd, items, ranges) => {
13197
13245
  const tasks = [];
13198
13246
  const utcStart = toUTCDate(periodStart);
13199
13247
  const utcEnd = toUTCDate(periodEnd);
@@ -13987,7 +14035,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
13987
14035
  start: toUTCTime(daySlot.start, startTimeSlot.start),
13988
14036
  end: nextDateEnd ? toUTCDate(daySlot.end) : toUTCTime(daySlot.start, endTimeSlot)
13989
14037
  }));
13990
- return createTasks(dateRange.start, dateRange.end, items, ranges);
14038
+ return createTasks$1(dateRange.start, dateRange.end, items, ranges);
13991
14039
  }
13992
14040
  onTasksChange() {
13993
14041
  this.items.next(this.tasks.filter(task => !task.isAllDay));
@@ -15412,7 +15460,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
15412
15460
  return result;
15413
15461
  }
15414
15462
  createTasks(items, dateRange) {
15415
- return createTasks$2(dateRange.start, dateRange.end, items);
15463
+ return createTasks$3(dateRange.start, dateRange.end, items);
15416
15464
  }
15417
15465
  onTasksChange() {
15418
15466
  this.items.next(this.tasks);
@@ -16861,6 +16909,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16861
16909
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
16862
16910
 
16863
16911
  const isContentWrapper = element => hasClasses(element, 'k-scheduler-content');
16912
+ const CALENDAR_TAG = 'KENDO-CALENDAR-HORIZONTAL';
16864
16913
  /**
16865
16914
  * @hidden
16866
16915
  */
@@ -16953,6 +17002,10 @@ class ShortcutsDirective {
16953
17002
  }, {
16954
17003
  match: e => (e.keyCode === Keys.ArrowUp || e.keyCode === Keys.ArrowLeft) && noModifiers(e) && !isContentWrapper(e.target),
16955
17004
  action: e => {
17005
+ //use the MultiViewCalendar navigation for Year View
17006
+ if (e.target.tagName === CALENDAR_TAG) {
17007
+ return;
17008
+ }
16956
17009
  const prevented = this.scheduler.onNavigationAction({ type: 'focus-prev' });
16957
17010
  if (!prevented) {
16958
17011
  const item = this.focusService.activeItem;
@@ -16966,6 +17019,10 @@ class ShortcutsDirective {
16966
17019
  }, {
16967
17020
  match: e => (e.keyCode === Keys.ArrowDown || e.keyCode === Keys.ArrowRight) && noModifiers(e) && !isContentWrapper(e.target),
16968
17021
  action: e => {
17022
+ //use the MultiViewCalendar navigation for Year View
17023
+ if (e.target.tagName === CALENDAR_TAG) {
17024
+ return;
17025
+ }
16969
17026
  const prevented = this.scheduler.onNavigationAction({ type: 'focus-next' });
16970
17027
  if (!prevented) {
16971
17028
  const isInToolbar = this.focusService.activeItem.containerType === 'toolbar';
@@ -17127,6 +17184,579 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17127
17184
  type: Output
17128
17185
  }] } });
17129
17186
 
17187
+ /**
17188
+ * @hidden
17189
+ */
17190
+ const createTasks = (periodStart, periodEnd, items, ranges) => {
17191
+ const tasks = [];
17192
+ const utcStart = toUTCDateTime(periodStart);
17193
+ const utcEnd = toUTCDateTime(periodEnd);
17194
+ for (let index = 0; index < items.length; index++) {
17195
+ const item = items[index];
17196
+ const data = {};
17197
+ const startTime = item.start.toUTCDate();
17198
+ const end = item.end;
17199
+ const endTime = (item.end.getTime() !== end.getTime() ? end.addDays(1) : end).toUTCDate();
17200
+ if (intersects(startTime, endTime, utcStart, utcEnd)) {
17201
+ for (let rangeIdx = 0; rangeIdx < ranges.length; rangeIdx++) {
17202
+ const range = ranges[rangeIdx];
17203
+ const rangeStart = toUTCDate(range);
17204
+ const rangeEnd = toUTCDate(addDays(range, 1));
17205
+ if (intersects(startTime, endTime, rangeStart, rangeEnd)) {
17206
+ const task = {
17207
+ index,
17208
+ startTime: startTime > rangeStart ? startTime : rangeStart,
17209
+ endTime: endTime < rangeEnd ? endTime : rangeEnd,
17210
+ start: item.start,
17211
+ end: item.end,
17212
+ event: item.event,
17213
+ isAllDay: item.event.isAllDay,
17214
+ rangeIndex: rangeIdx,
17215
+ data: data
17216
+ };
17217
+ task.head = endTime > rangeEnd && startTime > rangeStart;
17218
+ task.tail = startTime < rangeStart && endTime < rangeEnd;
17219
+ task.mid = endTime > rangeEnd && startTime < rangeStart;
17220
+ task.isMultiDay = task.head || task.mid || task.tail;
17221
+ tasks.push(task);
17222
+ }
17223
+ }
17224
+ }
17225
+ }
17226
+ return sortTasksByTime(tasks);
17227
+ };
17228
+ /**
17229
+ * @hidden
17230
+ */
17231
+ const noop = (_) => { };
17232
+ /**
17233
+ * @hidden
17234
+ */
17235
+ const yearEnd = (year) => new Date(year, 11, 31, 23, 59, 59, 999);
17236
+ /**
17237
+ * @hidden
17238
+ */
17239
+ const yearStart = (year) => new Date(year, 0, 1, 0, 0, 0, 0);
17240
+
17241
+ const today = new Date(Date.now());
17242
+ const getDateAttribute = (element) => element?.querySelector('span>span[date]')?.getAttribute('date');
17243
+ /**
17244
+ * @hidden
17245
+ */
17246
+ class YearViewInternalComponent extends BaseView {
17247
+ constructor(localization, focusService, intl, viewContext, viewState, zone, renderer, pdfService, element, slotService, scrollBarWidthService, changeDetector, localeId) {
17248
+ super(viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, changeDetector, scrollBarWidthService);
17249
+ this.localization = localization;
17250
+ this.focusService = focusService;
17251
+ this.intl = intl;
17252
+ this.localeId = localeId;
17253
+ this.caretAltLeftIcon = caretAltLeftIcon;
17254
+ this.caretAltRightIcon = caretAltRightIcon;
17255
+ this.eventsPerSelectedDay = [];
17256
+ this.days = [];
17257
+ this.tds = [];
17258
+ this.isTooltipClicked = false;
17259
+ this.slotByIndex = (slotIndex, args) => noop(slotIndex);
17260
+ this.dragHintSize = (startSlot, endSlot) => noop(startSlot);
17261
+ this.dragRanges = (slot) => noop(slot);
17262
+ this.slotByPosition = (x, y, container) => noop(x);
17263
+ this.cachedTds = [];
17264
+ }
17265
+ get arrowIcons() {
17266
+ return !this.localization.rtl
17267
+ ? ['caret-alt-left', 'caret-alt-right']
17268
+ : ['caret-alt-right', 'caret-alt-left'];
17269
+ }
17270
+ get arrowSVGIcons() {
17271
+ return !this.localization.rtl
17272
+ ? [this.caretAltLeftIcon, this.caretAltRightIcon]
17273
+ : [this.caretAltRightIcon, this.caretAltLeftIcon];
17274
+ }
17275
+ ngAfterViewInit() {
17276
+ this.updateTds();
17277
+ super.ngAfterViewInit();
17278
+ }
17279
+ getSlotClass(date) {
17280
+ if (this.slotClass) {
17281
+ return this.slotClass({
17282
+ start: date,
17283
+ end: addDays(date, 1),
17284
+ events: this.eventsPerDay(date),
17285
+ });
17286
+ }
17287
+ }
17288
+ getEventClasses(item, resources, isAllDay) {
17289
+ if (this.eventClass) {
17290
+ return this.eventClass({
17291
+ event: item.event,
17292
+ resources,
17293
+ isAllDay,
17294
+ });
17295
+ }
17296
+ }
17297
+ onBlur() {
17298
+ if (!this.isTooltipClicked) {
17299
+ this.tooltip.hide();
17300
+ }
17301
+ this.isTooltipClicked = false;
17302
+ }
17303
+ getDate(element) {
17304
+ return new Date(getDateAttribute(element.nativeElement));
17305
+ }
17306
+ eventTitle(event) {
17307
+ const startTime = toLocalDate(event.startTime);
17308
+ const endTime = toLocalDate(event.endTime);
17309
+ const time = formatEventTime(startTime, endTime, event.isAllDay, this.localeId);
17310
+ return `${time}, ${event.event.title}`;
17311
+ }
17312
+ onClick(event) {
17313
+ if (event.target.tagName === 'SPAN') {
17314
+ const clickedDate = getDateAttribute(event.target.closest('td.k-calendar-td'));
17315
+ if (clickedDate === getDateAttribute(this.currentTd)) {
17316
+ this.tooltip.show(this.currentTd);
17317
+ }
17318
+ }
17319
+ else {
17320
+ this.tooltip.hide();
17321
+ }
17322
+ }
17323
+ onMouseDown() {
17324
+ this.isTooltipClicked = true;
17325
+ }
17326
+ onKeydown(event) {
17327
+ if (event.key === 'Backspace' || event.key === 'Delete') {
17328
+ this.tooltip.hide();
17329
+ }
17330
+ if (event.key === 'Enter' && !this.tooltip.popupRef) {
17331
+ this.tooltip.show(this.currentTd);
17332
+ return;
17333
+ }
17334
+ if (event.key === 'Enter' && this.tooltip.popupRef && (getDateAttribute(this.currentTd) === this.calendar.focusedDate.toString())) {
17335
+ this.navigateToDay(new Date(getDateAttribute(this.currentTd)));
17336
+ }
17337
+ }
17338
+ navigateToDay(date) {
17339
+ this.tooltip.hide();
17340
+ this.zone.run(() => {
17341
+ this.viewState.navigateTo({ viewName: 'day', date: new Date(date) });
17342
+ });
17343
+ }
17344
+ eventsPerDay(date) {
17345
+ return this.tasksPerDay(date)?.map((task) => task.event) || [];
17346
+ }
17347
+ tasksPerDay(date) {
17348
+ if (this.resources?.length > 0) {
17349
+ return this.tasks?.filter((event) => event.resources.length > 0 &&
17350
+ event.startTime.getUTCDate() === date.getDate() &&
17351
+ event.startTime.getUTCMonth() === date.getMonth());
17352
+ }
17353
+ else {
17354
+ return this.tasks?.filter((event) => event.startTime.getUTCDate() === date.getDate() && event.startTime.getUTCMonth() === date.getMonth());
17355
+ }
17356
+ }
17357
+ onValueChange(date) {
17358
+ this.eventsPerSelectedDay = this.tasksPerDay(date);
17359
+ this.currentTd = this.tds.find((td) => getDateAttribute(td) === date.toString());
17360
+ if (this.tooltip.popupRef) {
17361
+ this.tooltip.hide();
17362
+ }
17363
+ }
17364
+ hasEvent(date) {
17365
+ return this.tasksPerDay(date).length > 0;
17366
+ }
17367
+ createPDFElement() {
17368
+ const element = this.element.nativeElement.cloneNode(true);
17369
+ element.style.width = `${this.element.nativeElement.offsetWidth}px`;
17370
+ element.querySelector('.k-scheduler-layout').style.height = 'auto';
17371
+ this.pdfService.elementReady.emit({
17372
+ element: element,
17373
+ });
17374
+ }
17375
+ onSelectDate(date) {
17376
+ const year = date.getFullYear();
17377
+ this.focusedDate = new Date(year, today.getMonth(), today.getDate());
17378
+ const start = yearStart(year);
17379
+ this.selectedDate = start;
17380
+ const dateRange = this.dateRange(date);
17381
+ this.viewState.notifyDateRange(dateRange);
17382
+ this.days = this.createDaySlots(dateRange);
17383
+ if (this.calendar) {
17384
+ this.calendar.min = start;
17385
+ this.calendar.max = yearEnd(start.getFullYear());
17386
+ this.updateTds();
17387
+ }
17388
+ }
17389
+ onAction(e) {
17390
+ const now = this.selectedDate;
17391
+ if (e.type === 'next' || e.type === 'prev') {
17392
+ const offset = e.type === 'next' ? 1 : -1;
17393
+ const next = addYears(now, offset);
17394
+ this.viewState.notifyNextDate(next);
17395
+ this.calendar.min = next;
17396
+ this.calendar.max = yearEnd(next.getFullYear());
17397
+ this.focusedDate = new Date(next.getFullYear(), today.getMonth(), today.getDate());
17398
+ }
17399
+ }
17400
+ createTasks(items, dateRange) {
17401
+ this.days = this.createDaySlots(dateRange);
17402
+ return createTasks(dateRange.start, dateRange.end, items, this.days);
17403
+ }
17404
+ reflow() {
17405
+ this.updateContentHeight();
17406
+ const content = this.content.nativeElement;
17407
+ if (this.contentHeight === 'auto') {
17408
+ // bigger size changes cause the table to overflow the container and in horizontal scrollbars
17409
+ // this changes the table and slots size during rendering before the browser re-adjusts the 100% table width
17410
+ content.style.overflow = 'visible';
17411
+ }
17412
+ if (this.contentHeight === 'auto') {
17413
+ content.style.overflow = '';
17414
+ }
17415
+ }
17416
+ dateRange(date = this.selectedDate) {
17417
+ return this.dateRangeFn(date);
17418
+ }
17419
+ onTasksChange() {
17420
+ this.items.next(this.tasks);
17421
+ }
17422
+ createDaySlots({ start }) {
17423
+ const days = [];
17424
+ const monthsPerYear = 12;
17425
+ let date = start;
17426
+ for (let idx = 0; idx < monthsPerYear; idx++) {
17427
+ const monthTotalDays = this.getLastDayOfMonth(date.getFullYear(), date.getMonth());
17428
+ for (let dayIdx = 0; dayIdx < monthTotalDays; dayIdx++) {
17429
+ days.push(date);
17430
+ const nextDay = addDays(date, 1);
17431
+ date = nextDay;
17432
+ }
17433
+ }
17434
+ return days;
17435
+ }
17436
+ getLastDayOfMonth(year, month) {
17437
+ return new Date(year, month + 1, 0).getDate();
17438
+ }
17439
+ updateTds() {
17440
+ this.cachedTds.forEach((td) => {
17441
+ this.renderer.setAttribute(td, 'class', 'k-calendar-td');
17442
+ });
17443
+ this.cachedTds = [];
17444
+ this.tds = Array.from(this.calendar.element.nativeElement.querySelectorAll('.k-calendar-td:not(.k-other-month)'));
17445
+ if (this.slotClass) {
17446
+ this.tds.forEach((td) => {
17447
+ const date = toUTCDate(new Date(getDateAttribute(td)));
17448
+ const userClass = this.getSlotClass(date);
17449
+ if (userClass) {
17450
+ this.renderer.addClass(td, userClass);
17451
+ this.cachedTds.push(td);
17452
+ }
17453
+ });
17454
+ }
17455
+ }
17456
+ }
17457
+ 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 });
17458
+ 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: `
17459
+ <div #content class="k-scheduler-layout k-scheduler-layout-flex k-scheduler-yearview">
17460
+ <div class="k-scheduler-body">
17461
+ <kendo-multiviewcalendar
17462
+ [showOtherMonthDates]="false"
17463
+ [showCalendarHeader]="false"
17464
+ [showViewHeader]="true"
17465
+ [views]="12"
17466
+ [focusedDate]="focusedDate"
17467
+ kendoTooltip
17468
+ filter=".k-calendar-td"
17469
+ showOn="none"
17470
+ [tooltipTemplate]="template"
17471
+ position="right"
17472
+ tooltipContentClass="k-scheduler-tooltip"
17473
+ [tooltipWidth]="220"
17474
+ [collision]="{ horizontal: 'flip', vertical: 'flip' }"
17475
+ (valueChange)="onValueChange($event)"
17476
+ (blur)="onBlur()"
17477
+ >
17478
+ <ng-template kendoCalendarMonthCellTemplate let-date let-context="cellContext">
17479
+ <span *ngIf="!context.isOtherMonth" [attr.date]="date">{{ date.getDate() }}</span>
17480
+ <span *ngIf="!context.isOtherMonth && hasEvent(date)" class="k-day-indicator"></span>
17481
+ </ng-template>
17482
+ </kendo-multiviewcalendar>
17483
+ </div>
17484
+ </div>
17485
+ <ng-template #template let-anchor>
17486
+ <div
17487
+ class="k-tooltip-title k-text-center"
17488
+ (click)="navigateToDay(getDate(anchor))"
17489
+ (mousedown)="onMouseDown()"
17490
+ >
17491
+ <div class="k-month">{{ intl.formatDate(getDate(anchor), 'MMM') }}</div>
17492
+ <div class="k-link k-day k-text-primary">{{ intl.formatDate(getDate(anchor), 'dd') }}</div>
17493
+ </div>
17494
+ <div class="k-tooltip-events-container" (mousedown)="onMouseDown()">
17495
+ <div class="k-tooltip-events">
17496
+ <div
17497
+ *ngFor="let event of eventsPerSelectedDay"
17498
+ class="k-tooltip-event k-event"
17499
+ [title]="eventTitle(event)"
17500
+ [ngClass]="getEventClasses(event, event.resources)"
17501
+ [ngStyle]="getEventStyles(event, event.resources[0], event.isAllDay)"
17502
+ >
17503
+ <kendo-icon-wrapper
17504
+ *ngIf="event.tail || event.mid"
17505
+ [name]="arrowIcons[0]"
17506
+ [svgIcon]="arrowSVGIcons[0]"
17507
+ >
17508
+ </kendo-icon-wrapper>
17509
+ <div class="k-event-title k-text-ellipsis">{{ event.event.title }}</div>
17510
+ <span class="k-spacer"></span>
17511
+ <span
17512
+ class="k-event-time"
17513
+ *ngIf="(event.isMultiDay && event.head && !event.isAllDay) || !event.isMultiDay"
17514
+ >{{ intl.formatDate(event.start, 't') }}</span
17515
+ >
17516
+ <kendo-icon-wrapper
17517
+ *ngIf="event.head || event.mid"
17518
+ [name]="arrowIcons[1]"
17519
+ [svgIcon]="arrowSVGIcons[1]"
17520
+ >
17521
+ </kendo-icon-wrapper>
17522
+ </div>
17523
+ </div>
17524
+ </div>
17525
+ <div *ngIf="eventsPerSelectedDay.length === 0" class="k-no-data k-text-center">
17526
+ {{ localization.get('yearViewNoEvents') }}
17527
+ </div>
17528
+ </ng-template>
17529
+ `, 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"] }] });
17530
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewInternalComponent, decorators: [{
17531
+ type: Component,
17532
+ args: [{
17533
+ selector: 'year-view-internal',
17534
+ providers: [MonthSlotService],
17535
+ template: `
17536
+ <div #content class="k-scheduler-layout k-scheduler-layout-flex k-scheduler-yearview">
17537
+ <div class="k-scheduler-body">
17538
+ <kendo-multiviewcalendar
17539
+ [showOtherMonthDates]="false"
17540
+ [showCalendarHeader]="false"
17541
+ [showViewHeader]="true"
17542
+ [views]="12"
17543
+ [focusedDate]="focusedDate"
17544
+ kendoTooltip
17545
+ filter=".k-calendar-td"
17546
+ showOn="none"
17547
+ [tooltipTemplate]="template"
17548
+ position="right"
17549
+ tooltipContentClass="k-scheduler-tooltip"
17550
+ [tooltipWidth]="220"
17551
+ [collision]="{ horizontal: 'flip', vertical: 'flip' }"
17552
+ (valueChange)="onValueChange($event)"
17553
+ (blur)="onBlur()"
17554
+ >
17555
+ <ng-template kendoCalendarMonthCellTemplate let-date let-context="cellContext">
17556
+ <span *ngIf="!context.isOtherMonth" [attr.date]="date">{{ date.getDate() }}</span>
17557
+ <span *ngIf="!context.isOtherMonth && hasEvent(date)" class="k-day-indicator"></span>
17558
+ </ng-template>
17559
+ </kendo-multiviewcalendar>
17560
+ </div>
17561
+ </div>
17562
+ <ng-template #template let-anchor>
17563
+ <div
17564
+ class="k-tooltip-title k-text-center"
17565
+ (click)="navigateToDay(getDate(anchor))"
17566
+ (mousedown)="onMouseDown()"
17567
+ >
17568
+ <div class="k-month">{{ intl.formatDate(getDate(anchor), 'MMM') }}</div>
17569
+ <div class="k-link k-day k-text-primary">{{ intl.formatDate(getDate(anchor), 'dd') }}</div>
17570
+ </div>
17571
+ <div class="k-tooltip-events-container" (mousedown)="onMouseDown()">
17572
+ <div class="k-tooltip-events">
17573
+ <div
17574
+ *ngFor="let event of eventsPerSelectedDay"
17575
+ class="k-tooltip-event k-event"
17576
+ [title]="eventTitle(event)"
17577
+ [ngClass]="getEventClasses(event, event.resources)"
17578
+ [ngStyle]="getEventStyles(event, event.resources[0], event.isAllDay)"
17579
+ >
17580
+ <kendo-icon-wrapper
17581
+ *ngIf="event.tail || event.mid"
17582
+ [name]="arrowIcons[0]"
17583
+ [svgIcon]="arrowSVGIcons[0]"
17584
+ >
17585
+ </kendo-icon-wrapper>
17586
+ <div class="k-event-title k-text-ellipsis">{{ event.event.title }}</div>
17587
+ <span class="k-spacer"></span>
17588
+ <span
17589
+ class="k-event-time"
17590
+ *ngIf="(event.isMultiDay && event.head && !event.isAllDay) || !event.isMultiDay"
17591
+ >{{ intl.formatDate(event.start, 't') }}</span
17592
+ >
17593
+ <kendo-icon-wrapper
17594
+ *ngIf="event.head || event.mid"
17595
+ [name]="arrowIcons[1]"
17596
+ [svgIcon]="arrowSVGIcons[1]"
17597
+ >
17598
+ </kendo-icon-wrapper>
17599
+ </div>
17600
+ </div>
17601
+ </div>
17602
+ <div *ngIf="eventsPerSelectedDay.length === 0" class="k-no-data k-text-center">
17603
+ {{ localization.get('yearViewNoEvents') }}
17604
+ </div>
17605
+ </ng-template>
17606
+ `,
17607
+ }]
17608
+ }], ctorParameters: function () { 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: [{
17609
+ type: Inject,
17610
+ args: [LOCALE_ID]
17611
+ }] }]; }, propDecorators: { newRange: [{
17612
+ type: Input
17613
+ }], dateRangeFn: [{
17614
+ type: Input
17615
+ }], calendar: [{
17616
+ type: ViewChild,
17617
+ args: [MultiViewCalendarComponent]
17618
+ }], tooltip: [{
17619
+ type: ViewChild,
17620
+ args: [TooltipDirective]
17621
+ }], selectedDateFormat: [{
17622
+ type: Input
17623
+ }], selectedShortDateFormat: [{
17624
+ type: Input
17625
+ }] } });
17626
+
17627
+ /**
17628
+ * The component for rendering the **Year** view.
17629
+ */
17630
+ class YearViewComponent extends ConfigurationViewBase {
17631
+ constructor(localization, changeDetector, viewContext, viewState, intl) {
17632
+ super(localization, changeDetector, viewContext, viewState);
17633
+ this.intl = intl;
17634
+ /**
17635
+ * The long-date format for displaying the
17636
+ * selected year in the Scheduler toolbar.
17637
+ * For more information, see [Parsing and Formatting Dates and Numbers]({% slug parsingandformatting_intl %}#toc-date-formatting).
17638
+ * @default '{0:yyy}'
17639
+ */
17640
+ this.selectedDateFormat = '{0:yyy}';
17641
+ /**
17642
+ * The short-date format for displaying the
17643
+ * selected year in the Scheduler toolbar.
17644
+ * For more information, see [Parsing and Formatting Dates and Numbers]({% slug parsingandformatting_intl %}#toc-date-formatting).
17645
+ * @default '{0:yyy}'
17646
+ */
17647
+ this.selectedShortDateFormat = '{0:yyy}';
17648
+ /**
17649
+ * The invariant name for this view.
17650
+ * @default 'year'
17651
+ */
17652
+ this.name = 'year';
17653
+ }
17654
+ /**
17655
+ * @hidden
17656
+ */
17657
+ get title() {
17658
+ return this.localization.get('yearViewTitle');
17659
+ }
17660
+ /**
17661
+ * @hidden
17662
+ */
17663
+ dateRange(date) {
17664
+ const year = date.getFullYear();
17665
+ const start = yearStart(year);
17666
+ const end = yearEnd(year);
17667
+ const text = this.intl.format(this.selectedDateFormat, start);
17668
+ const shortText = this.intl.format(this.selectedShortDateFormat, start);
17669
+ return { start, end, text, shortText };
17670
+ }
17671
+ /**
17672
+ * @hidden
17673
+ */
17674
+ newRange(date, direction = 1) {
17675
+ return new Date(addYears(date, direction));
17676
+ }
17677
+ }
17678
+ 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 });
17679
+ 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: [{
17680
+ provide: SchedulerView,
17681
+ useExisting: forwardRef(() => YearViewComponent)
17682
+ }], usesInheritance: true, ngImport: i0, template: `
17683
+ <ng-template #content>
17684
+ <year-view-internal
17685
+ [selectedDateFormat]="selectedDateFormat"
17686
+ [selectedShortDateFormat]="selectedShortDateFormat"
17687
+ [slotClass]="viewSlotClass"
17688
+ [eventClass]="viewEventClass"
17689
+ [eventStyles]="viewEventStyles"
17690
+ [dateRangeFn]="dateRange"
17691
+ [newRange]="newRange">
17692
+ </year-view-internal>
17693
+ </ng-template>
17694
+ `, isInline: true, components: [{ type: YearViewInternalComponent, selector: "year-view-internal", inputs: ["newRange", "dateRangeFn", "selectedDateFormat", "selectedShortDateFormat"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewComponent, decorators: [{
17696
+ type: Component,
17697
+ args: [{
17698
+ changeDetection: ChangeDetectionStrategy.OnPush,
17699
+ selector: 'kendo-scheduler-year-view',
17700
+ providers: [{
17701
+ provide: SchedulerView,
17702
+ useExisting: forwardRef(() => YearViewComponent)
17703
+ }],
17704
+ template: `
17705
+ <ng-template #content>
17706
+ <year-view-internal
17707
+ [selectedDateFormat]="selectedDateFormat"
17708
+ [selectedShortDateFormat]="selectedShortDateFormat"
17709
+ [slotClass]="viewSlotClass"
17710
+ [eventClass]="viewEventClass"
17711
+ [eventStyles]="viewEventStyles"
17712
+ [dateRangeFn]="dateRange"
17713
+ [newRange]="newRange">
17714
+ </year-view-internal>
17715
+ </ng-template>
17716
+ `
17717
+ }]
17718
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }, { type: ViewStateService }, { type: i1$4.IntlService }]; }, propDecorators: { selectedDateFormat: [{
17719
+ type: Input
17720
+ }], selectedShortDateFormat: [{
17721
+ type: Input
17722
+ }] } });
17723
+
17724
+ /**
17725
+ * @hidden
17726
+ */
17727
+ class YearViewModule {
17728
+ }
17729
+ YearViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17730
+ YearViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewModule, declarations: [YearViewComponent,
17731
+ YearViewInternalComponent], imports: [ViewsSharedModule,
17732
+ CalendarsModule,
17733
+ TooltipsModule,
17734
+ IntlModule], exports: [YearViewComponent] });
17735
+ YearViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewModule, imports: [[
17736
+ ViewsSharedModule,
17737
+ CalendarsModule,
17738
+ TooltipsModule,
17739
+ IntlModule
17740
+ ]] });
17741
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: YearViewModule, decorators: [{
17742
+ type: NgModule,
17743
+ args: [{
17744
+ imports: [
17745
+ ViewsSharedModule,
17746
+ CalendarsModule,
17747
+ TooltipsModule,
17748
+ IntlModule
17749
+ ],
17750
+ exports: [
17751
+ YearViewComponent
17752
+ ],
17753
+ declarations: [
17754
+ YearViewComponent,
17755
+ YearViewInternalComponent
17756
+ ]
17757
+ }]
17758
+ }] });
17759
+
17130
17760
  const TEMPLATES = [
17131
17761
  AgendaDateTemplateDirective,
17132
17762
  AgendaTimeTemplateDirective,
@@ -17172,6 +17802,7 @@ const declarations$1 = [
17172
17802
  const publicDirectives = [
17173
17803
  AgendaViewComponent,
17174
17804
  MonthViewModule,
17805
+ YearViewComponent,
17175
17806
  MultiDayViewModule,
17176
17807
  ReactiveEditingDirective,
17177
17808
  TimelineViewModule,
@@ -17256,7 +17887,8 @@ SchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
17256
17887
  ResizeSensorModule,
17257
17888
  MonthViewModule,
17258
17889
  TimelineViewModule,
17259
- WatermarkModule, ButtonsModule,
17890
+ WatermarkModule,
17891
+ YearViewModule, ButtonsModule,
17260
17892
  CheckBoxModule,
17261
17893
  TextAreaModule,
17262
17894
  DateInputsModule,
@@ -17269,6 +17901,7 @@ SchedulerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
17269
17901
  LabelModule,
17270
17902
  FormFieldModule], exports: [AgendaViewComponent,
17271
17903
  MonthViewModule,
17904
+ YearViewComponent,
17272
17905
  MultiDayViewModule,
17273
17906
  ReactiveEditingDirective,
17274
17907
  TimelineViewModule, ToolbarNavigationComponent, ToolbarTemplateDirective, ToolbarViewSelectorComponent, SchedulerComponent,
@@ -17319,6 +17952,7 @@ SchedulerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
17319
17952
  MonthViewModule,
17320
17953
  TimelineViewModule,
17321
17954
  WatermarkModule,
17955
+ YearViewModule,
17322
17956
  ...importedKendoModules
17323
17957
  ], MonthViewModule,
17324
17958
  MultiDayViewModule,
@@ -17335,6 +17969,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17335
17969
  MonthViewModule,
17336
17970
  TimelineViewModule,
17337
17971
  WatermarkModule,
17972
+ YearViewModule,
17338
17973
  ...importedKendoModules
17339
17974
  ],
17340
17975
  declarations: declarations$1,
@@ -17891,5 +18526,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
17891
18526
  * Generated bundle index. Do not edit.
17892
18527
  */
17893
18528
 
17894
- 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 };
18529
+ 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 };
17895
18530