@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
@@ -28,7 +28,7 @@ const packageMetadata = {
28
28
  name: '@progress/kendo-angular-dateinputs',
29
29
  productName: 'Kendo UI for Angular',
30
30
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
31
- publishDate: 1666814053,
31
+ publishDate: 1668098044,
32
32
  version: '',
33
33
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
34
34
  };
@@ -1913,12 +1913,12 @@ class HorizontalViewListComponent {
1913
1913
  this.dates = [];
1914
1914
  this.intlSubscription = this.intl.changes.subscribe(this.intlChange.bind(this));
1915
1915
  }
1916
- /**
1917
- * @hidden
1918
- */
1919
- handleFocus() {
1916
+ handleMultiViewCalendarFocus() {
1920
1917
  this.focusCalendar.emit();
1921
1918
  }
1919
+ handleMultiViewCalendarBlur(event) {
1920
+ this.blurCalendar.emit(event);
1921
+ }
1922
1922
  get weekNumber() {
1923
1923
  return this.showWeekNumbers && this.isMonthView();
1924
1924
  }
@@ -1943,6 +1943,9 @@ class HorizontalViewListComponent {
1943
1943
  get getComponentCenturyClass() {
1944
1944
  return this.activeView === CalendarViewEnum.century;
1945
1945
  }
1946
+ get role() {
1947
+ return this.views === 2 ? 'grid' : null;
1948
+ }
1946
1949
  get getActiveDescendant() {
1947
1950
  return this.views === 1 ? this.activeDescendant : null;
1948
1951
  }
@@ -1998,6 +2001,12 @@ class HorizontalViewListComponent {
1998
2001
  getCaptionClass() {
1999
2002
  return this.isMonthView() ? 'k-month-header' : 'k-meta-header';
2000
2003
  }
2004
+ handleClassicCalendarFocus() {
2005
+ this.focusCalendar.emit();
2006
+ }
2007
+ handleClassicCalendarBlur(event) {
2008
+ this.blurCalendar.emit(event);
2009
+ }
2001
2010
  animateView(action) {
2002
2011
  const container = this.element.nativeElement;
2003
2012
  const table = container.querySelector('table');
@@ -2119,17 +2128,17 @@ class HorizontalViewListComponent {
2119
2128
  }
2120
2129
  }
2121
2130
  HorizontalViewListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HorizontalViewListComponent, deps: [{ token: BusViewService }, { token: i1.IntlService }, { token: WeekNamesService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
2122
- 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: `
2131
+ 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: `
2123
2132
  <ng-template #tableTemplate let-date="date" let-class="className">
2124
2133
  <table
2125
- role="grid"
2134
+ [attr.role]="views === 2 ? 'none' : 'grid'"
2126
2135
  class="k-content k-calendar-table"
2127
2136
  [ngClass]="class"
2128
2137
  [attr.aria-labelledby]="id"
2129
2138
  [attr.aria-activedescendant]="getActiveDescendant"
2130
2139
  [attr.tabindex]="getTabIndex"
2131
- (focus)="focusCalendar.emit()"
2132
- (focusout)="blurCalendar.emit($event)"
2140
+ (focus)="handleClassicCalendarFocus()"
2141
+ (blur)="handleClassicCalendarBlur($event)"
2133
2142
  >
2134
2143
  <caption *ngIf="showViewHeader" [ngClass]="getCaptionClass()">{{ getCaptionTitle(date) }}</caption>
2135
2144
  <thead *ngIf="isMonthView()" class="k-calendar-thead" role="rowgroup">
@@ -2209,14 +2218,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
2209
2218
  template: `
2210
2219
  <ng-template #tableTemplate let-date="date" let-class="className">
2211
2220
  <table
2212
- role="grid"
2221
+ [attr.role]="views === 2 ? 'none' : 'grid'"
2213
2222
  class="k-content k-calendar-table"
2214
2223
  [ngClass]="class"
2215
2224
  [attr.aria-labelledby]="id"
2216
2225
  [attr.aria-activedescendant]="getActiveDescendant"
2217
2226
  [attr.tabindex]="getTabIndex"
2218
- (focus)="focusCalendar.emit()"
2219
- (focusout)="blurCalendar.emit($event)"
2227
+ (focus)="handleClassicCalendarFocus()"
2228
+ (blur)="handleClassicCalendarBlur($event)"
2220
2229
  >
2221
2230
  <caption *ngIf="showViewHeader" [ngClass]="getCaptionClass()">{{ getCaptionTitle(date) }}</caption>
2222
2231
  <thead *ngIf="isMonthView()" class="k-calendar-thead" role="rowgroup">
@@ -2289,9 +2298,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
2289
2298
  </ng-template>
2290
2299
  `
2291
2300
  }]
2292
- }], ctorParameters: function () { return [{ type: BusViewService }, { type: i1.IntlService }, { type: WeekNamesService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { handleFocus: [{
2301
+ }], ctorParameters: function () { return [{ type: BusViewService }, { type: i1.IntlService }, { type: WeekNamesService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { handleMultiViewCalendarFocus: [{
2293
2302
  type: HostListener,
2294
2303
  args: ["focus"]
2304
+ }], handleMultiViewCalendarBlur: [{
2305
+ type: HostListener,
2306
+ args: ["blur", ['$event']]
2295
2307
  }], cellTemplateRef: [{
2296
2308
  type: Input
2297
2309
  }], weekNumberTemplateRef: [{
@@ -2375,6 +2387,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
2375
2387
  }], getComponentCenturyClass: [{
2376
2388
  type: HostBinding,
2377
2389
  args: ["class.k-calendar-centuryview"]
2390
+ }], role: [{
2391
+ type: HostBinding,
2392
+ args: ['attr.role']
2378
2393
  }] } });
2379
2394
 
2380
2395
  /**
@@ -3275,9 +3290,13 @@ class MultiViewCalendarComponent {
3275
3290
  */
3276
3291
  this.valueChange = new EventEmitter();
3277
3292
  /**
3278
- * @hidden
3293
+ * Fires each time the MultiViewCalendar gets blurred.
3279
3294
  */
3280
3295
  this.blurEvent = new EventEmitter();
3296
+ /**
3297
+ * Fires each time the MultiViewCalendar gets focused.
3298
+ */
3299
+ this.focusEvent = new EventEmitter();
3281
3300
  /**
3282
3301
  * @hidden
3283
3302
  */
@@ -3521,7 +3540,8 @@ class MultiViewCalendarComponent {
3521
3540
  handleFocusout(event) {
3522
3541
  const relatedTarget = event.relatedTarget;
3523
3542
  if (!this.element.nativeElement.contains(relatedTarget)) {
3524
- this.blurEvent.emit(event);
3543
+ const isClassicCalendar = this.views === 1;
3544
+ isClassicCalendar ? this.blurEvent.emit(event) : this.blurEvent.emit();
3525
3545
  this.onControlTouched();
3526
3546
  }
3527
3547
  this.isActive = false;
@@ -3532,7 +3552,9 @@ class MultiViewCalendarComponent {
3532
3552
  */
3533
3553
  handleFocus() {
3534
3554
  this.isActive = true;
3535
- this.focusCalendar.emit();
3555
+ const isClassicCalendar = this.views === 1;
3556
+ isClassicCalendar ? this.focusCalendar.emit() : this.focusEvent.emit();
3557
+ this.focusEvent.emit();
3536
3558
  }
3537
3559
  /**
3538
3560
  * @hidden
@@ -3877,7 +3899,7 @@ class MultiViewCalendarComponent {
3877
3899
  }
3878
3900
  }
3879
3901
  MultiViewCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MultiViewCalendarComponent, deps: [{ token: BusViewService }, { token: i0.ElementRef }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: DisabledDatesService }, { token: SelectionService }], target: i0.ɵɵFactoryTarget.Component });
3880
- 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: [
3902
+ 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: [
3881
3903
  BusViewService,
3882
3904
  RANGE_CALENDAR_VALUE_ACCESSOR,
3883
3905
  RANGE_CALENDAR_RANGE_VALIDATORS,
@@ -4096,6 +4118,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
4096
4118
  }], blurEvent: [{
4097
4119
  type: Output,
4098
4120
  args: ['blur']
4121
+ }], focusEvent: [{
4122
+ type: Output,
4123
+ args: ['focus']
4099
4124
  }], focusCalendar: [{
4100
4125
  type: Output
4101
4126
  }], cellTemplate: [{
@@ -4155,12 +4180,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
4155
4180
  }, {
4156
4181
  type: HostBinding,
4157
4182
  args: ['class.k-disabled']
4158
- }], handleFocusout: [{
4159
- type: HostListener,
4160
- args: ['focusout', ['$event']]
4161
- }], handleFocus: [{
4162
- type: HostListener,
4163
- args: ["focus"]
4164
4183
  }], handleMouseEnter: [{
4165
4184
  type: HostListener,
4166
4185
  args: ["mouseenter"]
@@ -5188,7 +5207,7 @@ ViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
5188
5207
  [attr.tabindex]="getTabIndex()"
5189
5208
  [attr.aria-labelledby]="id"
5190
5209
  (focus)="focusCalendar.emit()"
5191
- (focusout)="blurCalendar.emit($event)"
5210
+ (blur)="blurCalendar.emit($event)"
5192
5211
  >
5193
5212
  <colgroup><col *ngFor="let _ of cols" /></colgroup>
5194
5213
 
@@ -5257,7 +5276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
5257
5276
  [attr.tabindex]="getTabIndex()"
5258
5277
  [attr.aria-labelledby]="id"
5259
5278
  (focus)="focusCalendar.emit()"
5260
- (focusout)="blurCalendar.emit($event)"
5279
+ (blur)="blurCalendar.emit($event)"
5261
5280
  >
5262
5281
  <colgroup><col *ngFor="let _ of cols" /></colgroup>
5263
5282
 
@@ -5701,6 +5720,14 @@ class CalendarComponent {
5701
5720
  * Applies to the [`infinite`]({% slug api_dateinputs_calendarcomponent %}#toc-type) Calendar only.
5702
5721
  */
5703
5722
  this.activeViewDateChange = new EventEmitter();
5723
+ /**
5724
+ * Fires each time the Calendar gets blurred.
5725
+ */
5726
+ this.onBlur = new EventEmitter();
5727
+ /**
5728
+ * Fires each time the Calendar gets focused.
5729
+ */
5730
+ this.onFocus = new EventEmitter();
5704
5731
  /**
5705
5732
  * Fires when the value is changed
5706
5733
  * ([more information and example]({% slug overview_calendar %}#toc-events)).
@@ -5729,6 +5756,12 @@ class CalendarComponent {
5729
5756
  this.pickerService.calendar = this;
5730
5757
  }
5731
5758
  }
5759
+ /**
5760
+ * @hidden
5761
+ */
5762
+ get popupId() {
5763
+ return `kendo-popup-${this.bus.calendarId}`;
5764
+ }
5732
5765
  /**
5733
5766
  * Sets or gets the `focusedDate` property of the Calendar and
5734
5767
  * defines the focused date of the component
@@ -6314,17 +6347,19 @@ class CalendarComponent {
6314
6347
  }
6315
6348
  bindEvents() {
6316
6349
  const element = this.element.nativeElement;
6317
- 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)));
6350
+ 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)));
6318
6351
  }
6319
6352
  emitBlur(args) {
6320
6353
  if (this.pickerService) {
6321
6354
  this.pickerService.onBlur.emit(args);
6322
6355
  }
6356
+ this.onBlur.emit();
6323
6357
  }
6324
6358
  emitFocus() {
6325
6359
  if (this.pickerService) {
6326
6360
  this.pickerService.onFocus.emit();
6327
6361
  }
6362
+ this.onFocus.emit();
6328
6363
  }
6329
6364
  handleComponentClick() {
6330
6365
  if (!this.isActive) {
@@ -6422,7 +6457,7 @@ class CalendarComponent {
6422
6457
  }
6423
6458
  }
6424
6459
  CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarComponent, deps: [{ token: BusViewService }, { token: CalendarDOMService }, { token: i0.ElementRef }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Injector }, { token: ScrollSyncService }, { token: DisabledDatesService }, { token: i1$1.LocalizationService }, { token: SelectionService }, { token: PickerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
6425
- 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: [
6460
+ 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: [
6426
6461
  BusViewService,
6427
6462
  CALENDAR_VALUE_ACCESSOR,
6428
6463
  CALENDAR_RANGE_VALIDATORS,
@@ -6522,6 +6557,7 @@ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
6522
6557
  (valueChange)="handleMultiViewCalendarValueChange($event, multiviewcalendar.focusedDate)"
6523
6558
  (focusCalendar)="handleFocus()"
6524
6559
  (blur)="handleBlur($event)"
6560
+ (blurEvent)="handleBlur($event)"
6525
6561
  (keydown)="handleMultiViewCalendarKeydown($event)"
6526
6562
  >
6527
6563
  <kendo-multiviewcalendar-messages
@@ -6533,7 +6569,7 @@ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
6533
6569
  </kendo-multiviewcalendar-messages>
6534
6570
  </kendo-multiviewcalendar>
6535
6571
  </ng-container>
6536
- `, isInline: true, components: [{ type: NavigationComponent, selector: "kendo-calendar-navigation", inputs: ["activeView", "min", "max", "focusedDate", "templateRef"], outputs: ["valueChange", "pageChange"] }, { type: 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: i5.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: 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: MultiViewCalendarCustomMessagesComponent, selector: "kendo-multiviewcalendar-messages" }], directives: [{ type: CalendarLocalizedMessagesDirective, selector: "[kendoCalendarLocalizedMessages]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6572
+ `, isInline: true, components: [{ type: NavigationComponent, selector: "kendo-calendar-navigation", inputs: ["activeView", "min", "max", "focusedDate", "templateRef"], outputs: ["valueChange", "pageChange"] }, { type: 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: i5.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: 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: MultiViewCalendarCustomMessagesComponent, selector: "kendo-multiviewcalendar-messages" }], directives: [{ type: CalendarLocalizedMessagesDirective, selector: "[kendoCalendarLocalizedMessages]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6537
6573
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CalendarComponent, decorators: [{
6538
6574
  type: Component,
6539
6575
  args: [{
@@ -6641,6 +6677,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
6641
6677
  (valueChange)="handleMultiViewCalendarValueChange($event, multiviewcalendar.focusedDate)"
6642
6678
  (focusCalendar)="handleFocus()"
6643
6679
  (blur)="handleBlur($event)"
6680
+ (blurEvent)="handleBlur($event)"
6644
6681
  (keydown)="handleMultiViewCalendarKeydown($event)"
6645
6682
  >
6646
6683
  <kendo-multiviewcalendar-messages
@@ -6701,6 +6738,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
6701
6738
  type: Output
6702
6739
  }], activeViewDateChange: [{
6703
6740
  type: Output
6741
+ }], onBlur: [{
6742
+ type: Output,
6743
+ args: ['blur']
6744
+ }], onFocus: [{
6745
+ type: Output,
6746
+ args: ['focus']
6704
6747
  }], valueChange: [{
6705
6748
  type: Output
6706
6749
  }], cellTemplate: [{
@@ -6894,7 +6937,6 @@ class KendoDate {
6894
6937
  validatePackage(packageMetadata);
6895
6938
  this.monthNames = this.allFormatedMonths();
6896
6939
  this.dayPeriods = this.allDayPeriods();
6897
- nextId++;
6898
6940
  if (!value) {
6899
6941
  this.value = getDate(new Date());
6900
6942
  const sampleFormat = this.dateFormatString(this.value, this.format).symbols;
@@ -7381,10 +7423,6 @@ class DateInputComponent {
7381
7423
  * [spinner buttons]({% slug spinbuttons_dateinput %}).
7382
7424
  */
7383
7425
  this.spinners = false;
7384
- /**
7385
- * @hidden
7386
- */
7387
- this.hasPopup = false;
7388
7426
  /**
7389
7427
  * Fires each time the user selects a new value.
7390
7428
  * For more information, refer to the section on
@@ -7464,6 +7502,7 @@ class DateInputComponent {
7464
7502
  this.incompleteValidator = noop$2;
7465
7503
  this._value = null;
7466
7504
  this._active = false;
7505
+ this._focusableId = `dateinput-${nextId++}`;
7467
7506
  this.kendoDate = null;
7468
7507
  this.paste = false;
7469
7508
  this.domEvents = [];
@@ -7486,14 +7525,21 @@ class DateInputComponent {
7486
7525
  /**
7487
7526
  * @hidden
7488
7527
  */
7528
+ set focusableId(_focusableId) {
7529
+ this._focusableId = _focusableId;
7530
+ }
7489
7531
  get focusableId() {
7490
- if (this.pickerType) {
7491
- return `${this.pickerType}-${nextId}`;
7492
- }
7493
- else {
7494
- return `dateinput-${nextId}`;
7532
+ return this._focusableId;
7533
+ }
7534
+ /**
7535
+ * @hidden
7536
+ */
7537
+ set pickerType(_pickerType) {
7538
+ if (_pickerType) {
7539
+ this.focusableId = `${_pickerType}-${nextId}`;
7495
7540
  }
7496
7541
  }
7542
+ ;
7497
7543
  /**
7498
7544
  * @hidden
7499
7545
  */
@@ -7936,6 +7982,7 @@ class DateInputComponent {
7936
7982
  * @hidden
7937
7983
  */
7938
7984
  handleFocus(args) {
7985
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
7939
7986
  this.isActive = true;
7940
7987
  this.updateElementValue();
7941
7988
  if (!this.hasMousedown) {
@@ -8239,7 +8286,7 @@ class DateInputComponent {
8239
8286
  }
8240
8287
  }
8241
8288
  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: i1$1.LocalizationService }, { token: PickerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
8242
- 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: [
8289
+ 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: [
8243
8290
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
8244
8291
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true },
8245
8292
  { provide: L10N_PREFIX, useValue: 'kendo.dateinput' },
@@ -8389,7 +8436,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
8389
8436
  }]
8390
8437
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.IntlService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Injector }, { type: i1$1.LocalizationService }, { type: PickerService, decorators: [{
8391
8438
  type: Optional
8392
- }] }]; }, propDecorators: { pickerType: [{
8439
+ }] }]; }, propDecorators: { focusableId: [{
8440
+ type: Input
8441
+ }], pickerType: [{
8393
8442
  type: Input
8394
8443
  }], disabled: [{
8395
8444
  type: Input
@@ -9016,7 +9065,7 @@ class DatePickerComponent {
9016
9065
  }
9017
9066
  get popupUID() {
9018
9067
  var _a;
9019
- return (_a = this.calendar) === null || _a === void 0 ? void 0 : _a.id;
9068
+ return (_a = this.calendar) === null || _a === void 0 ? void 0 : _a.popupId;
9020
9069
  }
9021
9070
  ;
9022
9071
  get isActive() {
@@ -9482,7 +9531,7 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
9482
9531
  #input
9483
9532
  [role]="'combobox'"
9484
9533
  pickerType="datepicker"
9485
- [hasPopup]="true"
9534
+ hasPopup="grid"
9486
9535
  [isPopupOpen]="show"
9487
9536
  [disabled]="disabled"
9488
9537
  [readonly]="readonly || readOnlyInput"
@@ -9555,7 +9604,7 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
9555
9604
  </kendo-calendar-messages>
9556
9605
  </kendo-calendar>
9557
9606
  <ng-template>
9558
- `, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrect", "incompleteDateValidation", "twoDigitYearMax", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { type: CalendarComponent, selector: "kendo-calendar", inputs: ["id", "focusedDate", "min", "max", "rangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "valueChange"], exportAs: ["kendo-calendar"] }, { type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }], directives: [{ type: DatePickerLocalizedMessagesDirective, selector: "[kendoDatePickerLocalizedMessages]" }, { type: i5.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9607
+ `, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrect", "incompleteDateValidation", "twoDigitYearMax", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { type: CalendarComponent, selector: "kendo-calendar", inputs: ["id", "focusedDate", "min", "max", "rangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }], directives: [{ type: DatePickerLocalizedMessagesDirective, selector: "[kendoDatePickerLocalizedMessages]" }, { type: i5.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9559
9608
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DatePickerComponent, decorators: [{
9560
9609
  type: Component,
9561
9610
  args: [{
@@ -9593,7 +9642,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
9593
9642
  #input
9594
9643
  [role]="'combobox'"
9595
9644
  pickerType="datepicker"
9596
- [hasPopup]="true"
9645
+ hasPopup="grid"
9597
9646
  [isPopupOpen]="show"
9598
9647
  [disabled]="disabled"
9599
9648
  [readonly]="readonly || readOnlyInput"
@@ -10492,23 +10541,14 @@ class TimeListComponent {
10492
10541
  this.data = [];
10493
10542
  this.indexToScroll = -1;
10494
10543
  this.domEvents = [];
10495
- this.hostElement = this.element.nativeElement;
10496
10544
  }
10497
10545
  get roleAttribute() {
10498
- return this.isDayPeriod ? 'listbox' : 'spinbutton';
10546
+ return 'listbox';
10499
10547
  }
10500
10548
  get ariaLabel() {
10501
10549
  var _a;
10502
10550
  return this.localization.get((_a = this.part) === null || _a === void 0 ? void 0 : _a.type);
10503
10551
  }
10504
- get valueMin() {
10505
- var _a;
10506
- return (_a = this.data[0]) === null || _a === void 0 ? void 0 : _a.text;
10507
- }
10508
- get valueMax() {
10509
- var _a;
10510
- return (_a = this.data[this.data.length - 1]) === null || _a === void 0 ? void 0 : _a.text;
10511
- }
10512
10552
  get tabIndex() {
10513
10553
  return this.disabled ? undefined : 0;
10514
10554
  }
@@ -10516,8 +10556,10 @@ class TimeListComponent {
10516
10556
  var _a;
10517
10557
  return ((_a = this.part) === null || _a === void 0 ? void 0 : _a.type) === 'dayperiod';
10518
10558
  }
10559
+ get currentSelectedIndex() {
10560
+ return this.selectedIndex(this.value);
10561
+ }
10519
10562
  ngOnChanges(changes) {
10520
- var _a, _b;
10521
10563
  if (changes.part) {
10522
10564
  this.service = this.injector.get(services[this.part.type]);
10523
10565
  this.service.configure(this.serviceSettings());
@@ -10537,8 +10579,6 @@ class TimeListComponent {
10537
10579
  this.animateToIndex = this.animateToIndex && this.textHasChanged(valueChanges);
10538
10580
  this.total = this.service.total(value);
10539
10581
  this.indexToScroll = this.selectedIndex(value);
10540
- this.renderer.setAttribute(this.hostElement, attributeNames.valueNow, (_a = this.getCurrentItem()) === null || _a === void 0 ? void 0 : _a.value.toString());
10541
- this.renderer.setAttribute(this.hostElement, attributeNames.valuetext, (_b = this.getCurrentItem()) === null || _b === void 0 ? void 0 : _b.text);
10542
10582
  }
10543
10583
  ngOnInit() {
10544
10584
  this.animateToIndex = true;
@@ -10691,7 +10731,7 @@ class TimeListComponent {
10691
10731
  }
10692
10732
  }
10693
10733
  TimeListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TimeListComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: TimePickerDOMService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
10694
- TimeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TimeListComponent, selector: "kendo-timelist", inputs: { min: "min", max: "max", part: "part", step: "step", disabled: "disabled", value: "value" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.role": "this.roleAttribute", "attr.aria-label": "this.ariaLabel", "attr.valuemin": "this.valueMin", "attr.valuemax": "this.valueMax", "attr.tabindex": "this.tabIndex", "class.k-time-list": "this.componentClass" } }, viewQueries: [{ propertyName: "virtualization", first: true, predicate: VirtualizationComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
10734
+ TimeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TimeListComponent, selector: "kendo-timelist", inputs: { min: "min", max: "max", part: "part", step: "step", disabled: "disabled", value: "value" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.role": "this.roleAttribute", "attr.aria-label": "this.ariaLabel", "attr.tabindex": "this.tabIndex", "class.k-time-list": "this.componentClass" } }, viewQueries: [{ propertyName: "virtualization", first: true, predicate: VirtualizationComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
10695
10735
  <kendo-virtualization
10696
10736
  [skip]="skip"
10697
10737
  [take]="total"
@@ -10709,11 +10749,12 @@ TimeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
10709
10749
  click: handleItemClick
10710
10750
  }"
10711
10751
  [scope]="this"
10712
- [attr.role]="isDayPeriod ? 'presentation' : null"
10752
+ [attr.role]="'presentation'"
10713
10753
  >
10714
10754
  <li *ngFor="let item of data; let index = index;" class="k-item"
10715
10755
  [attr.data-timelist-item-index]="index"
10716
- [attr.role]="isDayPeriod ? 'option' : null"
10756
+ [attr.role]="'option'"
10757
+ [attr.aria-selected]="index === currentSelectedIndex"
10717
10758
  >
10718
10759
  <span>{{item.text}}</span>
10719
10760
  </li>
@@ -10742,11 +10783,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
10742
10783
  click: handleItemClick
10743
10784
  }"
10744
10785
  [scope]="this"
10745
- [attr.role]="isDayPeriod ? 'presentation' : null"
10786
+ [attr.role]="'presentation'"
10746
10787
  >
10747
10788
  <li *ngFor="let item of data; let index = index;" class="k-item"
10748
10789
  [attr.data-timelist-item-index]="index"
10749
- [attr.role]="isDayPeriod ? 'option' : null"
10790
+ [attr.role]="'option'"
10791
+ [attr.aria-selected]="index === currentSelectedIndex"
10750
10792
  >
10751
10793
  <span>{{item.text}}</span>
10752
10794
  </li>
@@ -10777,12 +10819,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
10777
10819
  }], ariaLabel: [{
10778
10820
  type: HostBinding,
10779
10821
  args: ["attr.aria-label"]
10780
- }], valueMin: [{
10781
- type: HostBinding,
10782
- args: ['attr.valuemin']
10783
- }], valueMax: [{
10784
- type: HostBinding,
10785
- args: ["attr.valuemax"]
10786
10822
  }], tabIndex: [{
10787
10823
  type: HostBinding,
10788
10824
  args: ["attr.tabindex"]
@@ -12048,12 +12084,14 @@ class TimePickerComponent {
12048
12084
  const { altKey, keyCode } = event;
12049
12085
  if (keyCode === Keys$1.Escape) {
12050
12086
  this.show = false;
12087
+ this.cdr.detectChanges();
12051
12088
  return;
12052
12089
  }
12053
12090
  if (altKey) {
12054
12091
  if (keyCode === Keys$1.ArrowUp) {
12055
12092
  event.preventDefault();
12056
12093
  this.show = false;
12094
+ this.cdr.detectChanges();
12057
12095
  }
12058
12096
  if (keyCode === Keys$1.ArrowDown && !this.show) {
12059
12097
  event.preventDefault();
@@ -12207,6 +12245,7 @@ class TimePickerComponent {
12207
12245
  //due to async IE focus event
12208
12246
  this.handleFocus();
12209
12247
  this.show = !this.show;
12248
+ this.cdr.detectChanges();
12210
12249
  }
12211
12250
  /**
12212
12251
  * @hidden
@@ -12353,6 +12392,7 @@ class TimePickerComponent {
12353
12392
  else {
12354
12393
  this.blurComponent();
12355
12394
  }
12395
+ this.cdr.detectChanges();
12356
12396
  }
12357
12397
  blurComponent() {
12358
12398
  this.isActive = false; // order is important ¯\_(ツ)_/¯
@@ -12433,7 +12473,7 @@ TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
12433
12473
  <kendo-dateinput
12434
12474
  #input
12435
12475
  pickerType="timepicker"
12436
- [hasPopup]="true"
12476
+ hasPopup="dialog"
12437
12477
  [isPopupOpen]="show"
12438
12478
  [disabled]="disabled"
12439
12479
  [readonly]="readonly || readOnlyInput"
@@ -12504,7 +12544,7 @@ TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
12504
12544
  </kendo-timeselector>
12505
12545
  </ng-template>
12506
12546
  <ng-container #container></ng-container>
12507
- `, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrect", "incompleteDateValidation", "twoDigitYearMax", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "steps", "value"], outputs: ["valueChange", "valueReject"], exportAs: ["kendo-timeselector"] }, { type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { type: i5.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12547
+ `, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrect", "incompleteDateValidation", "twoDigitYearMax", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "steps", "value"], outputs: ["valueChange", "valueReject"], exportAs: ["kendo-timeselector"] }, { type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { type: i5.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12508
12548
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TimePickerComponent, decorators: [{
12509
12549
  type: Component,
12510
12550
  args: [{
@@ -12565,7 +12605,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
12565
12605
  <kendo-dateinput
12566
12606
  #input
12567
12607
  pickerType="timepicker"
12568
- [hasPopup]="true"
12608
+ hasPopup="dialog"
12569
12609
  [isPopupOpen]="show"
12570
12610
  [disabled]="disabled"
12571
12611
  [readonly]="readonly || readOnlyInput"
@@ -13257,7 +13297,7 @@ class DateTimePickerComponent {
13257
13297
  }
13258
13298
  get popupUID() {
13259
13299
  var _a;
13260
- return (_a = this.calendar) === null || _a === void 0 ? void 0 : _a.id;
13300
+ return (_a = this.calendar) === null || _a === void 0 ? void 0 : _a.popupId;
13261
13301
  }
13262
13302
  ;
13263
13303
  ngOnInit() {
@@ -13841,7 +13881,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
13841
13881
  [tabindex]="tabindex"
13842
13882
  [title]="title"
13843
13883
  pickerType="datetimepicker"
13844
- [hasPopup]="true"
13884
+ hasPopup="grid"
13845
13885
  [isPopupOpen]="isOpen"
13846
13886
  (valueChange)="handleInputValueChange($event)"
13847
13887
  [kendoEventsOutsideAngular]="{
@@ -13892,12 +13932,13 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
13892
13932
  }"
13893
13933
  [scope]="this"
13894
13934
  >
13895
- <div class="k-button-group k-button-group-stretched">
13935
+ <div class="k-button-group k-button-group-stretched" role="group">
13896
13936
  <button
13897
13937
  type="button"
13898
13938
  class="k-button k-group-start k-date-tab"
13899
13939
  [ngClass]="popupButtonsClasses()"
13900
13940
  [class.k-active]="activeTab === 'date'"
13941
+ [attr.aria-pressed]="activeTab === 'date' ? 'true' : 'false'"
13901
13942
  [attr.title]="localization.get('dateTabLabel')"
13902
13943
  [attr.aria-label]="localization.get('dateTabLabel')"
13903
13944
  [kendoEventsOutsideAngular]="{
@@ -13913,6 +13954,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
13913
13954
  class="k-button k-group-end k-time-tab"
13914
13955
  [ngClass]="popupButtonsClasses()"
13915
13956
  [class.k-active]="activeTab === 'time'"
13957
+ [attr.aria-pressed]="activeTab === 'time' ? 'true' : 'false'"
13916
13958
  [attr.title]="localization.get('timeTabLabel')"
13917
13959
  [attr.aria-label]="localization.get('timeTabLabel')"
13918
13960
  [kendoEventsOutsideAngular]="{
@@ -14019,7 +14061,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
14019
14061
  </div>
14020
14062
  </div>
14021
14063
  </ng-template>
14022
- `, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrect", "incompleteDateValidation", "twoDigitYearMax", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { type: CalendarComponent, selector: "kendo-calendar", inputs: ["id", "focusedDate", "min", "max", "rangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "valueChange"], exportAs: ["kendo-calendar"] }, { type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "steps", "value"], outputs: ["valueChange", "valueReject"], exportAs: ["kendo-timeselector"] }, { type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { type: i5.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14064
+ `, isInline: true, components: [{ type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrect", "incompleteDateValidation", "twoDigitYearMax", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { type: CalendarComponent, selector: "kendo-calendar", inputs: ["id", "focusedDate", "min", "max", "rangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "navigationItemTemplate"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "steps", "value"], outputs: ["valueChange", "valueReject"], exportAs: ["kendo-timeselector"] }, { type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { type: i5.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14023
14065
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateTimePickerComponent, decorators: [{
14024
14066
  type: Component,
14025
14067
  args: [{
@@ -14100,7 +14142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
14100
14142
  [tabindex]="tabindex"
14101
14143
  [title]="title"
14102
14144
  pickerType="datetimepicker"
14103
- [hasPopup]="true"
14145
+ hasPopup="grid"
14104
14146
  [isPopupOpen]="isOpen"
14105
14147
  (valueChange)="handleInputValueChange($event)"
14106
14148
  [kendoEventsOutsideAngular]="{
@@ -14151,12 +14193,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
14151
14193
  }"
14152
14194
  [scope]="this"
14153
14195
  >
14154
- <div class="k-button-group k-button-group-stretched">
14196
+ <div class="k-button-group k-button-group-stretched" role="group">
14155
14197
  <button
14156
14198
  type="button"
14157
14199
  class="k-button k-group-start k-date-tab"
14158
14200
  [ngClass]="popupButtonsClasses()"
14159
14201
  [class.k-active]="activeTab === 'date'"
14202
+ [attr.aria-pressed]="activeTab === 'date' ? 'true' : 'false'"
14160
14203
  [attr.title]="localization.get('dateTabLabel')"
14161
14204
  [attr.aria-label]="localization.get('dateTabLabel')"
14162
14205
  [kendoEventsOutsideAngular]="{
@@ -14172,6 +14215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
14172
14215
  class="k-button k-group-end k-time-tab"
14173
14216
  [ngClass]="popupButtonsClasses()"
14174
14217
  [class.k-active]="activeTab === 'time'"
14218
+ [attr.aria-pressed]="activeTab === 'time' ? 'true' : 'false'"
14175
14219
  [attr.title]="localization.get('timeTabLabel')"
14176
14220
  [attr.aria-label]="localization.get('timeTabLabel')"
14177
14221
  [kendoEventsOutsideAngular]="{
@@ -14418,8 +14462,6 @@ class DateRangeService {
14418
14462
  /** @hidden */
14419
14463
  constructor(renderer) {
14420
14464
  this.renderer = renderer;
14421
- /** @hidden */
14422
- this.focusedCellChange = new Subscription();
14423
14465
  /**
14424
14466
  * An Observable instance that notifies when the `activeRangeEnd` state is changed.
14425
14467
  */
@@ -14479,23 +14521,34 @@ class DateRangeService {
14479
14521
  get selectionRange() {
14480
14522
  return this.range$.value;
14481
14523
  }
14524
+ /**
14525
+ * @hidden
14526
+ * Gets the start input element.
14527
+ */
14528
+ get inputStartElement() {
14529
+ return this.startInput$.value.dateInput.nativeElement;
14530
+ }
14531
+ /**
14532
+ * @hidden
14533
+ * Gets the end input element.
14534
+ */
14535
+ get inputEndElement() {
14536
+ return this.endInput$.value.dateInput.nativeElement;
14537
+ }
14482
14538
  /**
14483
14539
  * Activates the registered `DateRangePopup` component.
14484
14540
  * The method opens the popup and focuses the calendar.
14485
14541
  */
14486
14542
  activatePopup() {
14487
- var _a;
14488
14543
  const dateRangePopup = this.dateRangePopup$.value;
14489
14544
  if (!dateRangePopup) {
14490
14545
  return;
14491
14546
  }
14492
14547
  if (this.startInput$.value) {
14493
- const inputElement = this.startInput$.value.dateInput.nativeElement;
14494
- this.renderer.setAttribute(inputElement, attributeNames.ariaControls, dateRangePopup.popupUID);
14495
- this.renderer.setAttribute(inputElement, attributeNames.ariaExpanded, 'true');
14496
- this.focusedCellChange = (_a = dateRangePopup.viewCalendar.first) === null || _a === void 0 ? void 0 : _a.viewList.focusedCellChange.subscribe((id) => {
14497
- this.renderer.setAttribute(inputElement, attributeNames.ariaActiveDescendant, id);
14498
- });
14548
+ this.renderer.setAttribute(this.inputStartElement, attributeNames.ariaControls, dateRangePopup.popupUID);
14549
+ this.renderer.setAttribute(this.inputStartElement, attributeNames.ariaExpanded, 'true');
14550
+ this.renderer.setAttribute(this.inputEndElement, attributeNames.ariaControls, dateRangePopup.popupUID);
14551
+ this.renderer.setAttribute(this.inputEndElement, attributeNames.ariaExpanded, 'true');
14499
14552
  }
14500
14553
  dateRangePopup.activate();
14501
14554
  }
@@ -14504,20 +14557,28 @@ class DateRangeService {
14504
14557
  * The method closes the popup.
14505
14558
  */
14506
14559
  deactivatePopup() {
14507
- var _a;
14508
14560
  const dateRangePopup = this.dateRangePopup$.value;
14509
14561
  if (!(dateRangePopup && dateRangePopup.show)) {
14510
14562
  return;
14511
14563
  }
14512
14564
  if (this.startInput$.value) {
14513
- const inputElement = this.startInput$.value.dateInput.nativeElement;
14514
- this.renderer.removeAttribute(inputElement, attributeNames.ariaControls);
14515
- this.renderer.setAttribute(inputElement, attributeNames.ariaExpanded, 'false');
14516
- (_a = this.focusedCellChange) === null || _a === void 0 ? void 0 : _a.unsubscribe();
14517
- this.renderer.removeAttribute(inputElement, attributeNames.ariaActiveDescendant);
14565
+ this.renderer.removeAttribute(this.inputStartElement, attributeNames.ariaControls);
14566
+ this.renderer.setAttribute(this.inputStartElement, attributeNames.ariaExpanded, 'false');
14567
+ this.renderer.removeAttribute(this.inputStartElement, attributeNames.ariaActiveDescendant);
14568
+ this.renderer.removeAttribute(this.inputEndElement, attributeNames.ariaControls);
14569
+ this.renderer.setAttribute(this.inputEndElement, attributeNames.ariaExpanded, 'false');
14570
+ this.renderer.removeAttribute(this.inputEndElement, attributeNames.ariaActiveDescendant);
14518
14571
  }
14519
14572
  dateRangePopup.show = false;
14520
14573
  }
14574
+ /**
14575
+ * @hidden
14576
+ */
14577
+ setActiveDescendent(id) {
14578
+ this.renderer.setAttribute(this.inputStartElement, attributeNames.ariaActiveDescendant, id);
14579
+ this.renderer.setAttribute(this.inputEndElement, attributeNames.ariaActiveDescendant, id);
14580
+ }
14581
+ ;
14521
14582
  /**
14522
14583
  * @hidden
14523
14584
  *
@@ -14946,7 +15007,12 @@ class DateRangePopupComponent {
14946
15007
  this.zone.runOutsideAngular(() => {
14947
15008
  this.activateSubscription = merge(this.contentCalendar.changes, this.viewCalendar.changes)
14948
15009
  .pipe(filter(changes => changes && changes.first), map(changes => changes.first))
14949
- .subscribe((calendar) => setTimeout(() => calendar.focus()));
15010
+ .subscribe((calendar) => setTimeout(() => {
15011
+ calendar.focus();
15012
+ this.calendarSubscriptions.add(calendar.viewList.focusedCellChange.subscribe((id) => {
15013
+ this.dateRangeService.setActiveDescendent(id);
15014
+ }));
15015
+ }));
14950
15016
  });
14951
15017
  }
14952
15018
  /**
@@ -15073,7 +15139,7 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
15073
15139
  <ng-template #defaultTemplate>
15074
15140
  <kendo-multiviewcalendar kendoDateRangeSelection></kendo-multiviewcalendar>
15075
15141
  </ng-template>
15076
- `, isInline: true, components: [{ type: 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"] }], directives: [{ type: DateRangeSelectionDirective, selector: "[kendoDateRangeSelection]", inputs: ["autoCorrectOn", "selectionRange", "activeRangeEnd"], outputs: ["activeRangeEndChange", "selectionRangeChange"] }] });
15142
+ `, isInline: true, components: [{ type: 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"] }], directives: [{ type: DateRangeSelectionDirective, selector: "[kendoDateRangeSelection]", inputs: ["autoCorrectOn", "selectionRange", "activeRangeEnd"], outputs: ["activeRangeEndChange", "selectionRangeChange"] }] });
15077
15143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangePopupComponent, decorators: [{
15078
15144
  type: Component,
15079
15145
  args: [{
@@ -15239,6 +15305,8 @@ class DateRangeInput {
15239
15305
  return isPresent(popup) && isPresent(popup.calendar);
15240
15306
  }
15241
15307
  init() {
15308
+ this.input.role = 'combobox';
15309
+ this.input.hasPopup = 'grid';
15242
15310
  if (this.input.value) {
15243
15311
  this.dateRangeService.setRange(this.getRange(this.input.value));
15244
15312
  }
@@ -15370,11 +15438,10 @@ class DateRangeEndInputDirective extends DateRangeInput {
15370
15438
  ngOnInit() {
15371
15439
  this.rangeService.registerEndInput(this.dateInput);
15372
15440
  super.init();
15441
+ this.dateInput.pickerType = 'daterangeend';
15373
15442
  }
15374
15443
  ngAfterViewInit() {
15375
- const inputElement = this.dateInput.inputElement;
15376
- this.renderer.removeAttribute(inputElement, attributeNames.ariaExpanded);
15377
- this.dateInput.pickerType = 'daterangeend';
15444
+ this.renderer.setAttribute(this.dateInput.inputElement, attributeNames.ariaExpanded, 'false');
15378
15445
  }
15379
15446
  ngOnDestroy() {
15380
15447
  super.destroy();
@@ -15452,13 +15519,10 @@ class DateRangeStartInputDirective extends DateRangeInput {
15452
15519
  ngOnInit() {
15453
15520
  this.rangeService.registerStartInput(this.dateInput);
15454
15521
  super.init();
15522
+ this.dateInput.pickerType = 'daterangestart';
15455
15523
  }
15456
15524
  ngAfterViewInit() {
15457
- const inputElement = this.dateInput.inputElement;
15458
- this.renderer.setAttribute(inputElement, 'role', 'combobox');
15459
- this.renderer.setAttribute(inputElement, attributeNames.ariaHasPopup, 'true');
15460
- this.dateInput.pickerType = 'daterangestart';
15461
- this.renderer.setAttribute(inputElement, attributeNames.ariaExpanded, 'false');
15525
+ this.renderer.setAttribute(this.dateInput.inputElement, attributeNames.ariaExpanded, 'false');
15462
15526
  }
15463
15527
  ngOnDestroy() {
15464
15528
  super.destroy();
@@ -15700,7 +15764,7 @@ const COMPONENT_DIRECTIVES$3 = [
15700
15764
  /**
15701
15765
  * @hidden
15702
15766
  *
15703
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
15767
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
15704
15768
  * definition for the Virtualization component.
15705
15769
  */
15706
15770
  class VirtualizationModule {
@@ -15929,7 +15993,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
15929
15993
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
15930
15994
 
15931
15995
  /**
15932
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
15996
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
15933
15997
  * definition for the DateInput component.
15934
15998
  */
15935
15999
  class DateInputModule {
@@ -15992,7 +16056,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
15992
16056
  }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }]; } });
15993
16057
 
15994
16058
  /**
15995
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
16059
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
15996
16060
  * definition for the DatePicker component.
15997
16061
  */
15998
16062
  class DatePickerModule {
@@ -16187,7 +16251,7 @@ const providers = [
16187
16251
  }
16188
16252
  ];
16189
16253
  /**
16190
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
16254
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
16191
16255
  * definition for the TimePicker component.
16192
16256
  */
16193
16257
  class TimePickerModule {
@@ -16260,7 +16324,7 @@ const COMPONENT_DIRECTIVES = [
16260
16324
  LocalizedMessagesDirective
16261
16325
  ];
16262
16326
  /**
16263
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
16327
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
16264
16328
  * definition for the DateTimePicker component.
16265
16329
  */
16266
16330
  class DateTimePickerModule {
@@ -16325,7 +16389,7 @@ const COMPONENT_MODULES = [
16325
16389
  DateTimePickerModule
16326
16390
  ];
16327
16391
  /**
16328
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
16392
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
16329
16393
  * definition for the Date Inputs components.
16330
16394
  *
16331
16395
  * @example