@progress/kendo-angular-dateinputs 7.1.4 → 7.1.5-dev.202211101635

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/bundles/kendo-angular-dateinputs.umd.js +1 -1
  2. package/calendar/calendar.component.d.ts +13 -1
  3. package/calendar/horizontal-view-list.component.d.ts +5 -4
  4. package/calendar/multiview-calendar.component.d.ts +6 -2
  5. package/dateinput/dateinput.component.d.ts +7 -3
  6. package/dateinput/dateinput.module.d.ts +1 -1
  7. package/dateinputs.module.d.ts +1 -1
  8. package/datepicker/datepicker.module.d.ts +1 -1
  9. package/daterange/date-range.service.d.ts +15 -3
  10. package/datetimepicker/datetimepicker.module.d.ts +1 -1
  11. package/esm2015/calendar/calendar.component.js +27 -3
  12. package/esm2015/calendar/horizontal-view-list.component.js +27 -12
  13. package/esm2015/calendar/multiview-calendar.component.js +14 -10
  14. package/esm2015/calendar/view-list.component.js +2 -2
  15. package/esm2015/dateinput/dateinput.component.js +18 -12
  16. package/esm2015/dateinput/dateinput.module.js +1 -1
  17. package/esm2015/dateinputs.module.js +1 -1
  18. package/esm2015/datepicker/datepicker.component.js +4 -4
  19. package/esm2015/datepicker/datepicker.module.js +1 -1
  20. package/esm2015/daterange/date-range-end-input.directive.js +2 -3
  21. package/esm2015/daterange/date-range-input.js +2 -0
  22. package/esm2015/daterange/date-range-popup.component.js +7 -2
  23. package/esm2015/daterange/date-range-start-input.directive.js +2 -5
  24. package/esm2015/daterange/date-range.service.js +32 -16
  25. package/esm2015/datetimepicker/datetimepicker.component.js +10 -6
  26. package/esm2015/datetimepicker/datetimepicker.module.js +1 -1
  27. package/esm2015/package-metadata.js +1 -1
  28. package/esm2015/timepicker/timelist.component.js +11 -25
  29. package/esm2015/timepicker/timepicker.component.js +7 -3
  30. package/esm2015/timepicker/timepicker.module.js +1 -1
  31. package/esm2015/virtualization/virtualization.module.js +1 -1
  32. package/fesm2015/kendo-angular-dateinputs.js +172 -108
  33. package/package.json +1 -1
  34. package/timepicker/timelist.component.d.ts +1 -3
  35. package/timepicker/timepicker.module.d.ts +1 -1
  36. package/virtualization/virtualization.module.d.ts +1 -1
@@ -73,6 +73,10 @@ export declare class CalendarComponent implements ControlValueAccessor, OnChange
73
73
  * @hidden
74
74
  */
75
75
  id: string;
76
+ /**
77
+ * @hidden
78
+ */
79
+ get popupId(): string;
76
80
  /**
77
81
  * Sets or gets the `focusedDate` property of the Calendar and
78
82
  * defines the focused date of the component
@@ -215,6 +219,14 @@ export declare class CalendarComponent implements ControlValueAccessor, OnChange
215
219
  * Applies to the [`infinite`]({% slug api_dateinputs_calendarcomponent %}#toc-type) Calendar only.
216
220
  */
217
221
  activeViewDateChange: EventEmitter<Date>;
222
+ /**
223
+ * Fires each time the Calendar gets blurred.
224
+ */
225
+ onBlur: EventEmitter<any>;
226
+ /**
227
+ * Fires each time the Calendar gets focused.
228
+ */
229
+ onFocus: EventEmitter<any>;
218
230
  /**
219
231
  * Fires when the value is changed
220
232
  * ([more information and example]({% slug overview_calendar %}#toc-events)).
@@ -522,5 +534,5 @@ export declare class CalendarComponent implements ControlValueAccessor, OnChange
522
534
  private parseSelectionToValue;
523
535
  private performSelection;
524
536
  static ɵfac: i0.ɵɵFactoryDeclaration<CalendarComponent, [null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
525
- static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "kendo-calendar", ["kendo-calendar"], { "id": "id"; "focusedDate": "focusedDate"; "min": "min"; "max": "max"; "rangeValidation": "rangeValidation"; "selection": "selection"; "value": "value"; "disabled": "disabled"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "disabledDates": "disabledDates"; "navigation": "navigation"; "activeView": "activeView"; "bottomView": "bottomView"; "topView": "topView"; "type": "type"; "animateNavigation": "animateNavigation"; "weekNumber": "weekNumber"; "cellTemplateRef": "cellTemplate"; "monthCellTemplateRef": "monthCellTemplate"; "yearCellTemplateRef": "yearCellTemplate"; "decadeCellTemplateRef": "decadeCellTemplate"; "centuryCellTemplateRef": "centuryCellTemplate"; "weekNumberTemplateRef": "weekNumberTemplate"; "headerTitleTemplateRef": "headerTitleTemplate"; "navigationItemTemplateRef": "navigationItemTemplate"; }, { "activeViewChange": "activeViewChange"; "navigate": "navigate"; "activeViewDateChange": "activeViewDateChange"; "valueChange": "valueChange"; }, ["cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate"], never>;
537
+ static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "kendo-calendar", ["kendo-calendar"], { "id": "id"; "focusedDate": "focusedDate"; "min": "min"; "max": "max"; "rangeValidation": "rangeValidation"; "selection": "selection"; "value": "value"; "disabled": "disabled"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "disabledDates": "disabledDates"; "navigation": "navigation"; "activeView": "activeView"; "bottomView": "bottomView"; "topView": "topView"; "type": "type"; "animateNavigation": "animateNavigation"; "weekNumber": "weekNumber"; "cellTemplateRef": "cellTemplate"; "monthCellTemplateRef": "monthCellTemplate"; "yearCellTemplateRef": "yearCellTemplate"; "decadeCellTemplateRef": "decadeCellTemplate"; "centuryCellTemplateRef": "centuryCellTemplate"; "weekNumberTemplateRef": "weekNumberTemplate"; "headerTitleTemplateRef": "headerTitleTemplate"; "navigationItemTemplateRef": "navigationItemTemplate"; }, { "activeViewChange": "activeViewChange"; "navigate": "navigate"; "activeViewDateChange": "activeViewDateChange"; "onBlur": "blur"; "onFocus": "focus"; "valueChange": "valueChange"; }, ["cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate"], never>;
526
538
  }
@@ -23,10 +23,8 @@ export declare class HorizontalViewListComponent implements OnChanges, AfterView
23
23
  private cdr;
24
24
  private element;
25
25
  private renderer;
26
- /**
27
- * @hidden
28
- */
29
- handleFocus(): void;
26
+ handleMultiViewCalendarFocus(): void;
27
+ handleMultiViewCalendarBlur(event: any): void;
30
28
  cellTemplateRef: TemplateRef<any>;
31
29
  weekNumberTemplateRef: TemplateRef<any>;
32
30
  activeRangeEnd: SelectionRangeEnd;
@@ -63,6 +61,7 @@ export declare class HorizontalViewListComponent implements OnChanges, AfterView
63
61
  get getComponentYearClass(): boolean;
64
62
  get getComponentDecadeClass(): boolean;
65
63
  get getComponentCenturyClass(): boolean;
64
+ get role(): string;
66
65
  get getActiveDescendant(): string;
67
66
  get getTabIndex(): number;
68
67
  service: ViewService;
@@ -85,6 +84,8 @@ export declare class HorizontalViewListComponent implements OnChanges, AfterView
85
84
  isMonthView(): boolean;
86
85
  getCaptionTitle(date: Date): string;
87
86
  getCaptionClass(): string;
87
+ handleClassicCalendarFocus(): void;
88
+ handleClassicCalendarBlur(event: any): void;
88
89
  animateView(action: Action): void;
89
90
  navigate(action: Action): Date;
90
91
  canNavigate(action: Action): boolean;
@@ -239,9 +239,13 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
239
239
  */
240
240
  valueChange: EventEmitter<any>;
241
241
  /**
242
- * @hidden
242
+ * Fires each time the MultiViewCalendar gets blurred.
243
243
  */
244
244
  blurEvent: EventEmitter<any>;
245
+ /**
246
+ * Fires each time the MultiViewCalendar gets focused.
247
+ */
248
+ focusEvent: EventEmitter<any>;
245
249
  /**
246
250
  * @hidden
247
251
  */
@@ -519,5 +523,5 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
519
523
  private parseSelectionToValue;
520
524
  private performSelection;
521
525
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiViewCalendarComponent, never>;
522
- static ɵcmp: i0.ɵɵComponentDeclaration<MultiViewCalendarComponent, "kendo-multiviewcalendar", ["kendo-multiviewcalendar"], { "id": "id"; "focusedDate": "focusedDate"; "min": "min"; "max": "max"; "rangeValidation": "rangeValidation"; "disabledDatesRangeValidation": "disabledDatesRangeValidation"; "selection": "selection"; "value": "value"; "disabled": "disabled"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "isActive": "isActive"; "disabledDates": "disabledDates"; "activeView": "activeView"; "bottomView": "bottomView"; "topView": "topView"; "showViewHeader": "showViewHeader"; "animateNavigation": "animateNavigation"; "weekNumber": "weekNumber"; "activeRangeEnd": "activeRangeEnd"; "selectionRange": "selectionRange"; "views": "views"; "orientation": "orientation"; "cellTemplateRef": "cellTemplate"; "monthCellTemplateRef": "monthCellTemplate"; "yearCellTemplateRef": "yearCellTemplate"; "decadeCellTemplateRef": "decadeCellTemplate"; "centuryCellTemplateRef": "centuryCellTemplate"; "weekNumberTemplateRef": "weekNumberTemplate"; "headerTitleTemplateRef": "headerTitleTemplate"; }, { "activeViewChange": "activeViewChange"; "navigate": "navigate"; "cellEnter": "cellEnter"; "cellLeave": "cellLeave"; "valueChange": "valueChange"; "blurEvent": "blur"; "focusCalendar": "focusCalendar"; }, ["cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate"], never>;
526
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiViewCalendarComponent, "kendo-multiviewcalendar", ["kendo-multiviewcalendar"], { "id": "id"; "focusedDate": "focusedDate"; "min": "min"; "max": "max"; "rangeValidation": "rangeValidation"; "disabledDatesRangeValidation": "disabledDatesRangeValidation"; "selection": "selection"; "value": "value"; "disabled": "disabled"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "isActive": "isActive"; "disabledDates": "disabledDates"; "activeView": "activeView"; "bottomView": "bottomView"; "topView": "topView"; "showViewHeader": "showViewHeader"; "animateNavigation": "animateNavigation"; "weekNumber": "weekNumber"; "activeRangeEnd": "activeRangeEnd"; "selectionRange": "selectionRange"; "views": "views"; "orientation": "orientation"; "cellTemplateRef": "cellTemplate"; "monthCellTemplateRef": "monthCellTemplate"; "yearCellTemplateRef": "yearCellTemplate"; "decadeCellTemplateRef": "decadeCellTemplate"; "centuryCellTemplateRef": "centuryCellTemplate"; "weekNumberTemplateRef": "weekNumberTemplate"; "headerTitleTemplateRef": "headerTitleTemplate"; }, { "activeViewChange": "activeViewChange"; "navigate": "navigate"; "cellEnter": "cellEnter"; "cellLeave": "cellLeave"; "valueChange": "valueChange"; "blurEvent": "blur"; "focusEvent": "focus"; "focusCalendar": "focusCalendar"; }, ["cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate"], never>;
523
527
  }
@@ -15,6 +15,7 @@ import { DateInputSize } from '../common/models/size';
15
15
  import { DateInputRounded } from '../common/models/rounded';
16
16
  import { DateInputFillMode } from '../common/models/fillmode';
17
17
  import * as i0 from "@angular/core";
18
+ declare type DatePickerType = 'daterangestart' | 'daterangeend' | 'datepicker' | 'datetimepicker' | 'timepicker';
18
19
  /**
19
20
  * Represents the [Kendo UI DateInput component for Angular]({% slug overview_dateinput %}#toc-basic-usage).
20
21
  */
@@ -30,11 +31,12 @@ export declare class DateInputComponent implements OnInit, AfterViewInit, Contro
30
31
  /**
31
32
  * @hidden
32
33
  */
34
+ set focusableId(_focusableId: string);
33
35
  get focusableId(): string;
34
36
  /**
35
37
  * @hidden
36
38
  */
37
- pickerType: string;
39
+ set pickerType(_pickerType: DatePickerType);
38
40
  /**
39
41
  * Sets or gets the `disabled` property of the DateInput and
40
42
  * determines whether the component is active
@@ -213,7 +215,7 @@ export declare class DateInputComponent implements OnInit, AfterViewInit, Contro
213
215
  /**
214
216
  * @hidden
215
217
  */
216
- hasPopup: boolean;
218
+ hasPopup: string;
217
219
  /**
218
220
  * Sets the size of the component.
219
221
  *
@@ -351,6 +353,7 @@ export declare class DateInputComponent implements OnInit, AfterViewInit, Contro
351
353
  private incompleteValidator;
352
354
  private _value;
353
355
  private _active;
356
+ private _focusableId;
354
357
  private kendoDate;
355
358
  private paste;
356
359
  private domEvents;
@@ -499,5 +502,6 @@ export declare class DateInputComponent implements OnInit, AfterViewInit, Contro
499
502
  private setSpinnerFill;
500
503
  private setComponentClasses;
501
504
  static ɵfac: i0.ɵɵFactoryDeclaration<DateInputComponent, [null, null, null, null, null, null, null, { optional: true; }]>;
502
- static ɵcmp: i0.ɵɵComponentDeclaration<DateInputComponent, "kendo-dateinput", ["kendo-dateinput"], { "pickerType": "pickerType"; "disabled": "disabled"; "readonly": "readonly"; "title": "title"; "tabindex": "tabindex"; "role": "role"; "ariaReadOnly": "ariaReadOnly"; "tabIndex": "tabIndex"; "format": "format"; "formatPlaceholder": "formatPlaceholder"; "placeholder": "placeholder"; "steps": "steps"; "max": "max"; "min": "min"; "rangeValidation": "rangeValidation"; "autoCorrect": "autoCorrect"; "incompleteDateValidation": "incompleteDateValidation"; "twoDigitYearMax": "twoDigitYearMax"; "value": "value"; "spinners": "spinners"; "isPopupOpen": "isPopupOpen"; "hasPopup": "hasPopup"; "size": "size"; "rounded": "rounded"; "fillMode": "fillMode"; }, { "valueChange": "valueChange"; "valueUpdate": "valueUpdate"; "onFocus": "focus"; "onBlur": "blur"; }, never, never>;
505
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateInputComponent, "kendo-dateinput", ["kendo-dateinput"], { "focusableId": "focusableId"; "pickerType": "pickerType"; "disabled": "disabled"; "readonly": "readonly"; "title": "title"; "tabindex": "tabindex"; "role": "role"; "ariaReadOnly": "ariaReadOnly"; "tabIndex": "tabIndex"; "format": "format"; "formatPlaceholder": "formatPlaceholder"; "placeholder": "placeholder"; "steps": "steps"; "max": "max"; "min": "min"; "rangeValidation": "rangeValidation"; "autoCorrect": "autoCorrect"; "incompleteDateValidation": "incompleteDateValidation"; "twoDigitYearMax": "twoDigitYearMax"; "value": "value"; "spinners": "spinners"; "isPopupOpen": "isPopupOpen"; "hasPopup": "hasPopup"; "size": "size"; "rounded": "rounded"; "fillMode": "fillMode"; }, { "valueChange": "valueChange"; "valueUpdate": "valueUpdate"; "onFocus": "focus"; "onBlur": "blur"; }, never, never>;
503
506
  }
507
+ export {};
@@ -10,7 +10,7 @@ import * as i4 from "@angular/common";
10
10
  import * as i5 from "@progress/kendo-angular-intl";
11
11
  import * as i6 from "@progress/kendo-angular-common";
12
12
  /**
13
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
13
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
14
14
  * definition for the DateInput component.
15
15
  */
16
16
  export declare class DateInputModule {
@@ -10,7 +10,7 @@ import * as i4 from "./timepicker/timepicker.module";
10
10
  import * as i5 from "./daterange/date-range.module";
11
11
  import * as i6 from "./datetimepicker/datetimepicker.module";
12
12
  /**
13
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
13
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
14
14
  * definition for the Date Inputs components.
15
15
  *
16
16
  * @example
@@ -14,7 +14,7 @@ import * as i8 from "@progress/kendo-angular-popup";
14
14
  import * as i9 from "../calendar/templates.module";
15
15
  import * as i10 from "@progress/kendo-angular-common";
16
16
  /**
17
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
17
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
18
18
  * definition for the DatePicker component.
19
19
  */
20
20
  export declare class DatePickerModule {
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { Renderer2 } from '@angular/core';
5
+ import { Renderer2, ElementRef } from '@angular/core';
6
6
  import { BehaviorSubject } from 'rxjs';
7
7
  import { DateInputComponent } from '../dateinput/dateinput.component';
8
8
  import type { DateRangePopupComponent } from './date-range-popup.component';
@@ -15,8 +15,6 @@ import * as i0 from "@angular/core";
15
15
  */
16
16
  export declare class DateRangeService {
17
17
  private renderer?;
18
- /** @hidden */
19
- private focusedCellChange?;
20
18
  /**
21
19
  * An Observable instance that notifies when the `activeRangeEnd` state is changed.
22
20
  */
@@ -65,6 +63,16 @@ export declare class DateRangeService {
65
63
  * Gets the current `selectionRange` value.
66
64
  */
67
65
  get selectionRange(): SelectionRange;
66
+ /**
67
+ * @hidden
68
+ * Gets the start input element.
69
+ */
70
+ get inputStartElement(): ElementRef;
71
+ /**
72
+ * @hidden
73
+ * Gets the end input element.
74
+ */
75
+ get inputEndElement(): ElementRef;
68
76
  /** @hidden */
69
77
  constructor(renderer?: Renderer2);
70
78
  /**
@@ -77,6 +85,10 @@ export declare class DateRangeService {
77
85
  * The method closes the popup.
78
86
  */
79
87
  deactivatePopup(): void;
88
+ /**
89
+ * @hidden
90
+ */
91
+ setActiveDescendent(id: string): void;
80
92
  /**
81
93
  * @hidden
82
94
  *
@@ -15,7 +15,7 @@ import * as i9 from "@progress/kendo-angular-popup";
15
15
  import * as i10 from "@progress/kendo-angular-common";
16
16
  import * as i11 from "../calendar/templates.module";
17
17
  /**
18
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
18
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
19
19
  * definition for the DateTimePicker component.
20
20
  */
21
21
  export declare class DateTimePickerModule {
@@ -187,6 +187,14 @@ export class CalendarComponent {
187
187
  * Applies to the [`infinite`]({% slug api_dateinputs_calendarcomponent %}#toc-type) Calendar only.
188
188
  */
189
189
  this.activeViewDateChange = new EventEmitter();
190
+ /**
191
+ * Fires each time the Calendar gets blurred.
192
+ */
193
+ this.onBlur = new EventEmitter();
194
+ /**
195
+ * Fires each time the Calendar gets focused.
196
+ */
197
+ this.onFocus = new EventEmitter();
190
198
  /**
191
199
  * Fires when the value is changed
192
200
  * ([more information and example]({% slug overview_calendar %}#toc-events)).
@@ -215,6 +223,12 @@ export class CalendarComponent {
215
223
  this.pickerService.calendar = this;
216
224
  }
217
225
  }
226
+ /**
227
+ * @hidden
228
+ */
229
+ get popupId() {
230
+ return `kendo-popup-${this.bus.calendarId}`;
231
+ }
218
232
  /**
219
233
  * Sets or gets the `focusedDate` property of the Calendar and
220
234
  * defines the focused date of the component
@@ -800,17 +814,19 @@ export class CalendarComponent {
800
814
  }
801
815
  bindEvents() {
802
816
  const element = this.element.nativeElement;
803
- this.domEvents.push(this.renderer.listen(element, 'blur', this.handleBlur.bind(this)), this.renderer.listen(element, 'focus', this.handleFocus.bind(this)), this.renderer.listen(element, 'mousedown', preventDefault), this.renderer.listen(element, 'click', this.handleComponentClick.bind(this)), this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)));
817
+ this.domEvents.push(this.renderer.listen(element, 'focus', this.handleFocus.bind(this)), this.renderer.listen(element, 'mousedown', preventDefault), this.renderer.listen(element, 'click', this.handleComponentClick.bind(this)), this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)));
804
818
  }
805
819
  emitBlur(args) {
806
820
  if (this.pickerService) {
807
821
  this.pickerService.onBlur.emit(args);
808
822
  }
823
+ this.onBlur.emit();
809
824
  }
810
825
  emitFocus() {
811
826
  if (this.pickerService) {
812
827
  this.pickerService.onFocus.emit();
813
828
  }
829
+ this.onFocus.emit();
814
830
  }
815
831
  handleComponentClick() {
816
832
  if (!this.isActive) {
@@ -908,7 +924,7 @@ export class CalendarComponent {
908
924
  }
909
925
  }
910
926
  CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.BusViewService }, { token: i2.CalendarDOMService }, { token: i0.ElementRef }, { token: i3.NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Injector }, { token: i4.ScrollSyncService }, { token: i5.DisabledDatesService }, { token: i6.LocalizationService }, { token: i7.SelectionService }, { token: i8.PickerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
911
- CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CalendarComponent, selector: "kendo-calendar", inputs: { id: "id", focusedDate: "focusedDate", min: "min", max: "max", rangeValidation: "rangeValidation", selection: "selection", value: "value", disabled: "disabled", tabindex: "tabindex", tabIndex: "tabIndex", disabledDates: "disabledDates", navigation: "navigation", activeView: "activeView", bottomView: "bottomView", topView: "topView", type: "type", animateNavigation: "animateNavigation", weekNumber: "weekNumber", cellTemplateRef: ["cellTemplate", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"], navigationItemTemplateRef: ["navigationItemTemplate", "navigationItemTemplateRef"] }, outputs: { activeViewChange: "activeViewChange", navigate: "navigate", activeViewDateChange: "activeViewDateChange", valueChange: "valueChange" }, host: { properties: { "class.k-week-number": "this.weekNumber", "attr.id": "this.widgetId", "attr.aria-disabled": "this.ariaDisabled", "class.k-disabled": "this.ariaDisabled" } }, providers: [
927
+ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CalendarComponent, selector: "kendo-calendar", inputs: { id: "id", focusedDate: "focusedDate", min: "min", max: "max", rangeValidation: "rangeValidation", selection: "selection", value: "value", disabled: "disabled", tabindex: "tabindex", tabIndex: "tabIndex", disabledDates: "disabledDates", navigation: "navigation", activeView: "activeView", bottomView: "bottomView", topView: "topView", type: "type", animateNavigation: "animateNavigation", weekNumber: "weekNumber", cellTemplateRef: ["cellTemplate", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"], navigationItemTemplateRef: ["navigationItemTemplate", "navigationItemTemplateRef"] }, outputs: { activeViewChange: "activeViewChange", navigate: "navigate", activeViewDateChange: "activeViewDateChange", onBlur: "blur", onFocus: "focus", valueChange: "valueChange" }, host: { properties: { "class.k-week-number": "this.weekNumber", "attr.id": "this.widgetId", "attr.aria-disabled": "this.ariaDisabled", "class.k-disabled": "this.ariaDisabled" } }, providers: [
912
928
  BusViewService,
913
929
  CALENDAR_VALUE_ACCESSOR,
914
930
  CALENDAR_RANGE_VALIDATORS,
@@ -1008,6 +1024,7 @@ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
1008
1024
  (valueChange)="handleMultiViewCalendarValueChange($event, multiviewcalendar.focusedDate)"
1009
1025
  (focusCalendar)="handleFocus()"
1010
1026
  (blur)="handleBlur($event)"
1027
+ (blurEvent)="handleBlur($event)"
1011
1028
  (keydown)="handleMultiViewCalendarKeydown($event)"
1012
1029
  >
1013
1030
  <kendo-multiviewcalendar-messages
@@ -1019,7 +1036,7 @@ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
1019
1036
  </kendo-multiviewcalendar-messages>
1020
1037
  </kendo-multiviewcalendar>
1021
1038
  </ng-container>
1022
- `, isInline: true, components: [{ type: i9.NavigationComponent, selector: "kendo-calendar-navigation", inputs: ["activeView", "min", "max", "focusedDate", "templateRef"], outputs: ["valueChange", "pageChange"] }, { type: i10.ViewListComponent, selector: "kendo-calendar-viewlist", inputs: ["cellTemplateRef", "weekNumberTemplateRef", "headerTitleTemplateRef", "activeView", "cellUID", "focusedDate", "isActive", "min", "max", "selectedDates", "tabIndex", "disabled", "id", "weekNumber"], outputs: ["cellClick", "weekNumberCellClick", "activeDateChange", "todayButtonClick", "pageChange", "focusCalendar", "blurCalendar", "focusedCellChange"] }, { type: i11.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i12.MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["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", "focusCalendar"], exportAs: ["kendo-multiviewcalendar"] }, { type: i13.MultiViewCalendarCustomMessagesComponent, selector: "kendo-multiviewcalendar-messages" }], directives: [{ type: i14.CalendarLocalizedMessagesDirective, selector: "[kendoCalendarLocalizedMessages]" }, { type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1039
+ `, isInline: true, components: [{ type: i9.NavigationComponent, selector: "kendo-calendar-navigation", inputs: ["activeView", "min", "max", "focusedDate", "templateRef"], outputs: ["valueChange", "pageChange"] }, { type: i10.ViewListComponent, selector: "kendo-calendar-viewlist", inputs: ["cellTemplateRef", "weekNumberTemplateRef", "headerTitleTemplateRef", "activeView", "cellUID", "focusedDate", "isActive", "min", "max", "selectedDates", "tabIndex", "disabled", "id", "weekNumber"], outputs: ["cellClick", "weekNumberCellClick", "activeDateChange", "todayButtonClick", "pageChange", "focusCalendar", "blurCalendar", "focusedCellChange"] }, { type: i11.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i12.MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["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"], exportAs: ["kendo-multiviewcalendar"] }, { type: i13.MultiViewCalendarCustomMessagesComponent, selector: "kendo-multiviewcalendar-messages" }], directives: [{ type: i14.CalendarLocalizedMessagesDirective, selector: "[kendoCalendarLocalizedMessages]" }, { type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1023
1040
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarComponent, decorators: [{
1024
1041
  type: Component,
1025
1042
  args: [{
@@ -1127,6 +1144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1127
1144
  (valueChange)="handleMultiViewCalendarValueChange($event, multiviewcalendar.focusedDate)"
1128
1145
  (focusCalendar)="handleFocus()"
1129
1146
  (blur)="handleBlur($event)"
1147
+ (blurEvent)="handleBlur($event)"
1130
1148
  (keydown)="handleMultiViewCalendarKeydown($event)"
1131
1149
  >
1132
1150
  <kendo-multiviewcalendar-messages
@@ -1187,6 +1205,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1187
1205
  type: Output
1188
1206
  }], activeViewDateChange: [{
1189
1207
  type: Output
1208
+ }], onBlur: [{
1209
+ type: Output,
1210
+ args: ['blur']
1211
+ }], onFocus: [{
1212
+ type: Output,
1213
+ args: ['focus']
1190
1214
  }], valueChange: [{
1191
1215
  type: Output
1192
1216
  }], cellTemplate: [{
@@ -55,12 +55,12 @@ export class HorizontalViewListComponent {
55
55
  this.dates = [];
56
56
  this.intlSubscription = this.intl.changes.subscribe(this.intlChange.bind(this));
57
57
  }
58
- /**
59
- * @hidden
60
- */
61
- handleFocus() {
58
+ handleMultiViewCalendarFocus() {
62
59
  this.focusCalendar.emit();
63
60
  }
61
+ handleMultiViewCalendarBlur(event) {
62
+ this.blurCalendar.emit(event);
63
+ }
64
64
  get weekNumber() {
65
65
  return this.showWeekNumbers && this.isMonthView();
66
66
  }
@@ -85,6 +85,9 @@ export class HorizontalViewListComponent {
85
85
  get getComponentCenturyClass() {
86
86
  return this.activeView === CalendarViewEnum.century;
87
87
  }
88
+ get role() {
89
+ return this.views === 2 ? 'grid' : null;
90
+ }
88
91
  get getActiveDescendant() {
89
92
  return this.views === 1 ? this.activeDescendant : null;
90
93
  }
@@ -140,6 +143,12 @@ export class HorizontalViewListComponent {
140
143
  getCaptionClass() {
141
144
  return this.isMonthView() ? 'k-month-header' : 'k-meta-header';
142
145
  }
146
+ handleClassicCalendarFocus() {
147
+ this.focusCalendar.emit();
148
+ }
149
+ handleClassicCalendarBlur(event) {
150
+ this.blurCalendar.emit(event);
151
+ }
143
152
  animateView(action) {
144
153
  const container = this.element.nativeElement;
145
154
  const table = container.querySelector('table');
@@ -261,17 +270,17 @@ export class HorizontalViewListComponent {
261
270
  }
262
271
  }
263
272
  HorizontalViewListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HorizontalViewListComponent, deps: [{ token: i1.BusViewService }, { token: i2.IntlService }, { token: i3.WeekNamesService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
264
- HorizontalViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: HorizontalViewListComponent, selector: "kendo-calendar-horizontal", inputs: { cellTemplateRef: "cellTemplateRef", weekNumberTemplateRef: "weekNumberTemplateRef", activeRangeEnd: "activeRangeEnd", activeView: "activeView", cellUID: "cellUID", focusedDate: "focusedDate", isActive: "isActive", min: "min", max: "max", selectionRange: "selectionRange", selectedDates: "selectedDates", views: "views", showViewHeader: "showViewHeader", animateNavigation: "animateNavigation", orientation: "orientation", activeDescendant: "activeDescendant", tabIndex: "tabIndex", disabled: "disabled", id: "id", weekNumber: "weekNumber" }, outputs: { cellClick: "cellClick", weekNumberCellClick: "weekNumberCellClick", cellEnter: "cellEnter", cellLeave: "cellLeave", activeDateChange: "activeDateChange", focusCalendar: "focusCalendar", blurCalendar: "blurCalendar", focusedCellChange: "focusedCellChange" }, host: { listeners: { "focus": "handleFocus()" }, properties: { "class.k-calendar-view": "this.getComponentClass", "class.k-align-items-start": "this.getComponentClass", "class.k-justify-content-center": "this.getComponentClass", "class.k-hstack": "this.horizontalHostClass", "class.k-vstack": "this.verticalHostClass", "class.k-calendar-monthview": "this.getComponentMonthClass", "class.k-calendar-yearview": "this.getComponentYearClass", "class.k-calendar-decadeview": "this.getComponentDecadeClass", "class.k-calendar-centuryview": "this.getComponentCenturyClass" } }, usesOnChanges: true, ngImport: i0, template: `
273
+ HorizontalViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: HorizontalViewListComponent, selector: "kendo-calendar-horizontal", inputs: { cellTemplateRef: "cellTemplateRef", weekNumberTemplateRef: "weekNumberTemplateRef", activeRangeEnd: "activeRangeEnd", activeView: "activeView", cellUID: "cellUID", focusedDate: "focusedDate", isActive: "isActive", min: "min", max: "max", selectionRange: "selectionRange", selectedDates: "selectedDates", views: "views", showViewHeader: "showViewHeader", animateNavigation: "animateNavigation", orientation: "orientation", activeDescendant: "activeDescendant", tabIndex: "tabIndex", disabled: "disabled", id: "id", weekNumber: "weekNumber" }, outputs: { cellClick: "cellClick", weekNumberCellClick: "weekNumberCellClick", cellEnter: "cellEnter", cellLeave: "cellLeave", activeDateChange: "activeDateChange", focusCalendar: "focusCalendar", blurCalendar: "blurCalendar", focusedCellChange: "focusedCellChange" }, host: { listeners: { "focus": "handleMultiViewCalendarFocus()", "blur": "handleMultiViewCalendarBlur($event)" }, properties: { "class.k-calendar-view": "this.getComponentClass", "class.k-align-items-start": "this.getComponentClass", "class.k-justify-content-center": "this.getComponentClass", "class.k-hstack": "this.horizontalHostClass", "class.k-vstack": "this.verticalHostClass", "class.k-calendar-monthview": "this.getComponentMonthClass", "class.k-calendar-yearview": "this.getComponentYearClass", "class.k-calendar-decadeview": "this.getComponentDecadeClass", "class.k-calendar-centuryview": "this.getComponentCenturyClass", "attr.role": "this.role" } }, usesOnChanges: true, ngImport: i0, template: `
265
274
  <ng-template #tableTemplate let-date="date" let-class="className">
266
275
  <table
267
- role="grid"
276
+ [attr.role]="views === 2 ? 'none' : 'grid'"
268
277
  class="k-content k-calendar-table"
269
278
  [ngClass]="class"
270
279
  [attr.aria-labelledby]="id"
271
280
  [attr.aria-activedescendant]="getActiveDescendant"
272
281
  [attr.tabindex]="getTabIndex"
273
- (focus)="focusCalendar.emit()"
274
- (focusout)="blurCalendar.emit($event)"
282
+ (focus)="handleClassicCalendarFocus()"
283
+ (blur)="handleClassicCalendarBlur($event)"
275
284
  >
276
285
  <caption *ngIf="showViewHeader" [ngClass]="getCaptionClass()">{{ getCaptionTitle(date) }}</caption>
277
286
  <thead *ngIf="isMonthView()" class="k-calendar-thead" role="rowgroup">
@@ -351,14 +360,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
351
360
  template: `
352
361
  <ng-template #tableTemplate let-date="date" let-class="className">
353
362
  <table
354
- role="grid"
363
+ [attr.role]="views === 2 ? 'none' : 'grid'"
355
364
  class="k-content k-calendar-table"
356
365
  [ngClass]="class"
357
366
  [attr.aria-labelledby]="id"
358
367
  [attr.aria-activedescendant]="getActiveDescendant"
359
368
  [attr.tabindex]="getTabIndex"
360
- (focus)="focusCalendar.emit()"
361
- (focusout)="blurCalendar.emit($event)"
369
+ (focus)="handleClassicCalendarFocus()"
370
+ (blur)="handleClassicCalendarBlur($event)"
362
371
  >
363
372
  <caption *ngIf="showViewHeader" [ngClass]="getCaptionClass()">{{ getCaptionTitle(date) }}</caption>
364
373
  <thead *ngIf="isMonthView()" class="k-calendar-thead" role="rowgroup">
@@ -431,9 +440,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
431
440
  </ng-template>
432
441
  `
433
442
  }]
434
- }], ctorParameters: function () { return [{ type: i1.BusViewService }, { type: i2.IntlService }, { type: i3.WeekNamesService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { handleFocus: [{
443
+ }], ctorParameters: function () { return [{ type: i1.BusViewService }, { type: i2.IntlService }, { type: i3.WeekNamesService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { handleMultiViewCalendarFocus: [{
435
444
  type: HostListener,
436
445
  args: ["focus"]
446
+ }], handleMultiViewCalendarBlur: [{
447
+ type: HostListener,
448
+ args: ["blur", ['$event']]
437
449
  }], cellTemplateRef: [{
438
450
  type: Input
439
451
  }], weekNumberTemplateRef: [{
@@ -517,4 +529,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
517
529
  }], getComponentCenturyClass: [{
518
530
  type: HostBinding,
519
531
  args: ["class.k-calendar-centuryview"]
532
+ }], role: [{
533
+ type: HostBinding,
534
+ args: ['attr.role']
520
535
  }] } });
@@ -190,9 +190,13 @@ export class MultiViewCalendarComponent {
190
190
  */
191
191
  this.valueChange = new EventEmitter();
192
192
  /**
193
- * @hidden
193
+ * Fires each time the MultiViewCalendar gets blurred.
194
194
  */
195
195
  this.blurEvent = new EventEmitter();
196
+ /**
197
+ * Fires each time the MultiViewCalendar gets focused.
198
+ */
199
+ this.focusEvent = new EventEmitter();
196
200
  /**
197
201
  * @hidden
198
202
  */
@@ -436,7 +440,8 @@ export class MultiViewCalendarComponent {
436
440
  handleFocusout(event) {
437
441
  const relatedTarget = event.relatedTarget;
438
442
  if (!this.element.nativeElement.contains(relatedTarget)) {
439
- this.blurEvent.emit(event);
443
+ const isClassicCalendar = this.views === 1;
444
+ isClassicCalendar ? this.blurEvent.emit(event) : this.blurEvent.emit();
440
445
  this.onControlTouched();
441
446
  }
442
447
  this.isActive = false;
@@ -447,7 +452,9 @@ export class MultiViewCalendarComponent {
447
452
  */
448
453
  handleFocus() {
449
454
  this.isActive = true;
450
- this.focusCalendar.emit();
455
+ const isClassicCalendar = this.views === 1;
456
+ isClassicCalendar ? this.focusCalendar.emit() : this.focusEvent.emit();
457
+ this.focusEvent.emit();
451
458
  }
452
459
  /**
453
460
  * @hidden
@@ -792,7 +799,7 @@ export class MultiViewCalendarComponent {
792
799
  }
793
800
  }
794
801
  MultiViewCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MultiViewCalendarComponent, deps: [{ token: i1.BusViewService }, { token: i0.ElementRef }, { token: i2.NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i3.DisabledDatesService }, { token: i4.SelectionService }], target: i0.ɵɵFactoryTarget.Component });
795
- MultiViewCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: { id: "id", focusedDate: "focusedDate", min: "min", max: "max", rangeValidation: "rangeValidation", disabledDatesRangeValidation: "disabledDatesRangeValidation", selection: "selection", value: "value", disabled: "disabled", tabindex: "tabindex", tabIndex: "tabIndex", isActive: "isActive", disabledDates: "disabledDates", activeView: "activeView", bottomView: "bottomView", topView: "topView", showViewHeader: "showViewHeader", animateNavigation: "animateNavigation", weekNumber: "weekNumber", activeRangeEnd: "activeRangeEnd", selectionRange: "selectionRange", views: "views", orientation: "orientation", cellTemplateRef: ["cellTemplate", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"] }, outputs: { activeViewChange: "activeViewChange", navigate: "navigate", cellEnter: "cellEnter", cellLeave: "cellLeave", valueChange: "valueChange", blurEvent: "blur", focusCalendar: "focusCalendar" }, host: { listeners: { "focusout": "handleFocusout($event)", "focus": "handleFocus()", "mouseenter": "handleMouseEnter()", "mouseleave": "handleMouseLeave()", "mousedown": "handleMousedown($event)", "click": "handleClick()", "keydown": "keydown($event)" }, properties: { "attr.id": "this.widgetId", "attr.aria-disabled": "this.ariaDisabled", "class.k-disabled": "this.ariaDisabled" } }, providers: [
802
+ MultiViewCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: { id: "id", focusedDate: "focusedDate", min: "min", max: "max", rangeValidation: "rangeValidation", disabledDatesRangeValidation: "disabledDatesRangeValidation", selection: "selection", value: "value", disabled: "disabled", tabindex: "tabindex", tabIndex: "tabIndex", isActive: "isActive", disabledDates: "disabledDates", activeView: "activeView", bottomView: "bottomView", topView: "topView", showViewHeader: "showViewHeader", animateNavigation: "animateNavigation", weekNumber: "weekNumber", activeRangeEnd: "activeRangeEnd", selectionRange: "selectionRange", views: "views", orientation: "orientation", cellTemplateRef: ["cellTemplate", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"] }, outputs: { activeViewChange: "activeViewChange", navigate: "navigate", cellEnter: "cellEnter", cellLeave: "cellLeave", valueChange: "valueChange", blurEvent: "blur", focusEvent: "focus", focusCalendar: "focusCalendar" }, host: { listeners: { "mouseenter": "handleMouseEnter()", "mouseleave": "handleMouseLeave()", "mousedown": "handleMousedown($event)", "click": "handleClick()", "keydown": "keydown($event)" }, properties: { "attr.id": "this.widgetId", "attr.aria-disabled": "this.ariaDisabled", "class.k-disabled": "this.ariaDisabled" } }, providers: [
796
803
  BusViewService,
797
804
  RANGE_CALENDAR_VALUE_ACCESSOR,
798
805
  RANGE_CALENDAR_RANGE_VALIDATORS,
@@ -1011,6 +1018,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1011
1018
  }], blurEvent: [{
1012
1019
  type: Output,
1013
1020
  args: ['blur']
1021
+ }], focusEvent: [{
1022
+ type: Output,
1023
+ args: ['focus']
1014
1024
  }], focusCalendar: [{
1015
1025
  type: Output
1016
1026
  }], cellTemplate: [{
@@ -1070,12 +1080,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1070
1080
  }, {
1071
1081
  type: HostBinding,
1072
1082
  args: ['class.k-disabled']
1073
- }], handleFocusout: [{
1074
- type: HostListener,
1075
- args: ['focusout', ['$event']]
1076
- }], handleFocus: [{
1077
- type: HostListener,
1078
- args: ["focus"]
1079
1083
  }], handleMouseEnter: [{
1080
1084
  type: HostListener,
1081
1085
  args: ["mouseenter"]
@@ -219,7 +219,7 @@ ViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
219
219
  [attr.tabindex]="getTabIndex()"
220
220
  [attr.aria-labelledby]="id"
221
221
  (focus)="focusCalendar.emit()"
222
- (focusout)="blurCalendar.emit($event)"
222
+ (blur)="blurCalendar.emit($event)"
223
223
  >
224
224
  <colgroup><col *ngFor="let _ of cols" /></colgroup>
225
225
 
@@ -288,7 +288,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
288
288
  [attr.tabindex]="getTabIndex()"
289
289
  [attr.aria-labelledby]="id"
290
290
  (focus)="focusCalendar.emit()"
291
- (focusout)="blurCalendar.emit($event)"
291
+ (blur)="blurCalendar.emit($event)"
292
292
  >
293
293
  <colgroup><col *ngFor="let _ of cols" /></colgroup>
294
294
 
@@ -75,7 +75,6 @@ class KendoDate {
75
75
  validatePackage(packageMetadata);
76
76
  this.monthNames = this.allFormatedMonths();
77
77
  this.dayPeriods = this.allDayPeriods();
78
- nextId++;
79
78
  if (!value) {
80
79
  this.value = getDate(new Date());
81
80
  const sampleFormat = this.dateFormatString(this.value, this.format).symbols;
@@ -562,10 +561,6 @@ export class DateInputComponent {
562
561
  * [spinner buttons]({% slug spinbuttons_dateinput %}).
563
562
  */
564
563
  this.spinners = false;
565
- /**
566
- * @hidden
567
- */
568
- this.hasPopup = false;
569
564
  /**
570
565
  * Fires each time the user selects a new value.
571
566
  * For more information, refer to the section on
@@ -645,6 +640,7 @@ export class DateInputComponent {
645
640
  this.incompleteValidator = noop;
646
641
  this._value = null;
647
642
  this._active = false;
643
+ this._focusableId = `dateinput-${nextId++}`;
648
644
  this.kendoDate = null;
649
645
  this.paste = false;
650
646
  this.domEvents = [];
@@ -667,14 +663,21 @@ export class DateInputComponent {
667
663
  /**
668
664
  * @hidden
669
665
  */
666
+ set focusableId(_focusableId) {
667
+ this._focusableId = _focusableId;
668
+ }
670
669
  get focusableId() {
671
- if (this.pickerType) {
672
- return `${this.pickerType}-${nextId}`;
673
- }
674
- else {
675
- return `dateinput-${nextId}`;
670
+ return this._focusableId;
671
+ }
672
+ /**
673
+ * @hidden
674
+ */
675
+ set pickerType(_pickerType) {
676
+ if (_pickerType) {
677
+ this.focusableId = `${_pickerType}-${nextId}`;
676
678
  }
677
679
  }
680
+ ;
678
681
  /**
679
682
  * @hidden
680
683
  */
@@ -1117,6 +1120,7 @@ export class DateInputComponent {
1117
1120
  * @hidden
1118
1121
  */
1119
1122
  handleFocus(args) {
1123
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
1120
1124
  this.isActive = true;
1121
1125
  this.updateElementValue();
1122
1126
  if (!this.hasMousedown) {
@@ -1420,7 +1424,7 @@ export class DateInputComponent {
1420
1424
  }
1421
1425
  }
1422
1426
  DateInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.IntlService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }, { token: i2.LocalizationService }, { token: i3.PickerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1423
- DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DateInputComponent, selector: "kendo-dateinput", inputs: { pickerType: "pickerType", disabled: "disabled", readonly: "readonly", title: "title", tabindex: "tabindex", role: "role", ariaReadOnly: "ariaReadOnly", tabIndex: "tabIndex", format: "format", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", steps: "steps", max: "max", min: "min", rangeValidation: "rangeValidation", autoCorrect: "autoCorrect", incompleteDateValidation: "incompleteDateValidation", twoDigitYearMax: "twoDigitYearMax", value: "value", spinners: "spinners", isPopupOpen: "isPopupOpen", hasPopup: "hasPopup", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", valueUpdate: "valueUpdate", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-input": "this.wrapperClass", "class.k-dateinput": "this.wrapperClass", "class.k-disabled": "this.disabledClass" } }, providers: [
1427
+ DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DateInputComponent, selector: "kendo-dateinput", inputs: { focusableId: "focusableId", pickerType: "pickerType", disabled: "disabled", readonly: "readonly", title: "title", tabindex: "tabindex", role: "role", ariaReadOnly: "ariaReadOnly", tabIndex: "tabIndex", format: "format", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", steps: "steps", max: "max", min: "min", rangeValidation: "rangeValidation", autoCorrect: "autoCorrect", incompleteDateValidation: "incompleteDateValidation", twoDigitYearMax: "twoDigitYearMax", value: "value", spinners: "spinners", isPopupOpen: "isPopupOpen", hasPopup: "hasPopup", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", valueUpdate: "valueUpdate", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-input": "this.wrapperClass", "class.k-dateinput": "this.wrapperClass", "class.k-disabled": "this.disabledClass" } }, providers: [
1424
1428
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
1425
1429
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true },
1426
1430
  { provide: L10N_PREFIX, useValue: 'kendo.dateinput' },
@@ -1570,7 +1574,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1570
1574
  }]
1571
1575
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.IntlService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Injector }, { type: i2.LocalizationService }, { type: i3.PickerService, decorators: [{
1572
1576
  type: Optional
1573
- }] }]; }, propDecorators: { pickerType: [{
1577
+ }] }]; }, propDecorators: { focusableId: [{
1578
+ type: Input
1579
+ }], pickerType: [{
1574
1580
  type: Input
1575
1581
  }], disabled: [{
1576
1582
  type: Input