@progress/kendo-angular-dateinputs 7.1.3-dev.202210121001 → 7.1.3-dev.202210260703

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 (56) hide show
  1. package/bundles/kendo-angular-dateinputs.umd.js +1 -1
  2. package/calendar/calendar.component.d.ts +7 -2
  3. package/calendar/header.component.d.ts +4 -1
  4. package/calendar/horizontal-view-list.component.d.ts +17 -1
  5. package/calendar/localization/calendar-messages.d.ts +5 -1
  6. package/calendar/localization/multiview-calendar-messages.d.ts +5 -1
  7. package/calendar/multiview-calendar.component.d.ts +21 -11
  8. package/calendar/services/bus-view.service.d.ts +1 -0
  9. package/calendar/services/selection.service.d.ts +2 -0
  10. package/calendar/services/weeknames.service.d.ts +1 -1
  11. package/calendar/view-list.component.d.ts +9 -1
  12. package/calendar/view.component.d.ts +3 -1
  13. package/common/utils.d.ts +33 -0
  14. package/dateinput/dateinput.component.d.ts +22 -8
  15. package/datepicker/datepicker.component.d.ts +2 -10
  16. package/daterange/date-range-end-input.directive.d.ts +1 -0
  17. package/daterange/date-range-input.d.ts +4 -1
  18. package/daterange/date-range-start-input.directive.d.ts +2 -0
  19. package/daterange/date-range.component.d.ts +7 -1
  20. package/daterange/date-range.service.d.ts +6 -2
  21. package/datetimepicker/datetimepicker.component.d.ts +6 -9
  22. package/esm2015/calendar/calendar.component.js +88 -48
  23. package/esm2015/calendar/header.component.js +30 -3
  24. package/esm2015/calendar/horizontal-view-list.component.js +83 -11
  25. package/esm2015/calendar/localization/calendar-messages.js +3 -1
  26. package/esm2015/calendar/localization/multiview-calendar-messages.js +3 -1
  27. package/esm2015/calendar/multiview-calendar.component.js +91 -45
  28. package/esm2015/calendar/services/bus-view.service.js +2 -0
  29. package/esm2015/calendar/services/month-view.service.js +1 -1
  30. package/esm2015/calendar/services/selection.service.js +4 -0
  31. package/esm2015/calendar/services/weeknames.service.js +2 -2
  32. package/esm2015/calendar/view-list.component.js +45 -9
  33. package/esm2015/calendar/view.component.js +16 -3
  34. package/esm2015/common/utils.js +34 -0
  35. package/esm2015/dateinput/dateinput.component.js +68 -34
  36. package/esm2015/datepicker/datepicker.component.js +27 -20
  37. package/esm2015/daterange/date-range-end-input.directive.js +6 -1
  38. package/esm2015/daterange/date-range-input.js +10 -0
  39. package/esm2015/daterange/date-range-popup.component.js +4 -4
  40. package/esm2015/daterange/date-range-selection.directive.js +1 -1
  41. package/esm2015/daterange/date-range-start-input.directive.js +9 -0
  42. package/esm2015/daterange/date-range.component.js +29 -11
  43. package/esm2015/daterange/date-range.service.js +28 -4
  44. package/esm2015/datetimepicker/datetimepicker.component.js +38 -20
  45. package/esm2015/package-metadata.js +1 -1
  46. package/esm2015/timepicker/localization/messages.js +11 -1
  47. package/esm2015/timepicker/timelist.component.js +57 -10
  48. package/esm2015/timepicker/timepicker.component.js +75 -32
  49. package/esm2015/util.js +2 -2
  50. package/esm2015/virtualization/virtualization.component.js +7 -5
  51. package/fesm2015/kendo-angular-dateinputs.js +811 -320
  52. package/package.json +1 -1
  53. package/timepicker/localization/messages.d.ts +21 -1
  54. package/timepicker/timelist.component.d.ts +10 -1
  55. package/timepicker/timepicker.component.d.ts +7 -13
  56. package/virtualization/virtualization.component.d.ts +3 -1
@@ -6,7 +6,7 @@ import { Component, ChangeDetectionStrategy, EventEmitter, HostBinding, Input, O
6
6
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, NgControl } from '@angular/forms';
7
7
  import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
8
8
  import { cloneDate } from '@progress/kendo-date-math';
9
- import { hasObservers, KendoInput, guid, Keys } from '@progress/kendo-angular-common';
9
+ import { hasObservers, KendoInput, Keys } from '@progress/kendo-angular-common';
10
10
  import { validatePackage } from '@progress/kendo-licensing';
11
11
  import { packageMetadata } from '../package-metadata';
12
12
  import { MIN_DATE, MAX_DATE } from '../defaults';
@@ -26,7 +26,7 @@ import { PickerService } from '../common/picker.service';
26
26
  import { DisabledDatesService } from '../calendar/services/disabled-dates.service';
27
27
  import { noop, isValidRange, setTime, isWindowAvailable, isTabExitingCalendar, getSizeClass, getRoundedClass, getFillModeClass, DEFAULT_FILL_MODE, DEFAULT_ROUNDED, DEFAULT_SIZE } from '../util';
28
28
  import { TOUCH_ENABLED } from '../touch-enabled';
29
- import { requiresZoneOnBlur, currentFocusTarget } from '../common/utils';
29
+ import { requiresZoneOnBlur, currentFocusTarget, attributeNames } from '../common/utils';
30
30
  import { fromEvent } from 'rxjs';
31
31
  import { incompleteDateValidator } from '../validators/incomplete-date.validator';
32
32
  import { disabledDatesValidator } from '../validators/disabled-date.validator';
@@ -60,10 +60,6 @@ export class DatePickerComponent {
60
60
  this.pickerService = pickerService;
61
61
  this.disabledDatesService = disabledDatesService;
62
62
  this.touchEnabled = touchEnabled;
63
- /**
64
- * @hidden
65
- */
66
- this.focusableId = `k-${guid()}`;
67
63
  /**
68
64
  * Defines the active view that the Calendar initially renders
69
65
  * ([see example]({% slug calendar_type_datepicker %}#toc-active-view)).
@@ -266,7 +262,6 @@ export class DatePickerComponent {
266
262
  * @hidden
267
263
  */
268
264
  this.wrapperClasses = true;
269
- this.popupUID = guid();
270
265
  this._popupSettings = { animate: true };
271
266
  this._show = false;
272
267
  this._value = null;
@@ -460,12 +455,11 @@ export class DatePickerComponent {
460
455
  get disabledClass() {
461
456
  return this.disabled;
462
457
  }
463
- /**
464
- * @hidden
465
- */
466
- get inputRole() {
467
- return this.readOnlyInput ? 'listbox' : 'spinbutton';
458
+ get popupUID() {
459
+ var _a;
460
+ return (_a = this.calendar) === null || _a === void 0 ? void 0 : _a.id;
468
461
  }
462
+ ;
469
463
  get isActive() {
470
464
  return this._active;
471
465
  }
@@ -749,6 +743,7 @@ export class DatePickerComponent {
749
743
  return;
750
744
  }
751
745
  this._show = show;
746
+ const inputElement = this.wrapper.nativeElement.querySelector('input');
752
747
  if (show) {
753
748
  const direction = this.localization.rtl ? 'right' : 'left';
754
749
  this.popupRef = this.popupService.open({
@@ -761,13 +756,27 @@ export class DatePickerComponent {
761
756
  popupClass: this.popupClasses,
762
757
  positionMode: 'absolute'
763
758
  });
759
+ if (this.calendar.type === 'infinite') {
760
+ this.pickerSubscriptions.add(this.calendar.monthView.focusedCellChange.subscribe((id) => {
761
+ this.renderer.setAttribute(inputElement, attributeNames.ariaActiveDescendant, id);
762
+ }));
763
+ }
764
+ else {
765
+ this.pickerSubscriptions.add(this.calendar.multiViewCalendar.viewList.focusedCellChange.subscribe((id) => {
766
+ this.renderer.setAttribute(inputElement, attributeNames.ariaActiveDescendant, id);
767
+ }));
768
+ }
764
769
  this.popupRef.popupElement.setAttribute('id', this.popupUID);
770
+ this.renderer.setAttribute(inputElement, attributeNames.ariaControls, this.popupUID);
765
771
  this.subscription = this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);
766
772
  }
767
773
  else {
768
774
  this.popupRef.close();
769
775
  this.popupRef = null;
770
776
  this.subscription.unsubscribe();
777
+ this.renderer.removeAttribute(inputElement, attributeNames.ariaControls);
778
+ this.renderer.removeAttribute(inputElement, attributeNames.ariaActiveDescendant);
779
+ this.cdr.detectChanges();
771
780
  }
772
781
  }
773
782
  focusInput() {
@@ -884,7 +893,7 @@ export class DatePickerComponent {
884
893
  }
885
894
  }
886
895
  DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DatePickerComponent, deps: [{ token: i0.NgZone }, { token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.PopupService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i3.PickerService }, { token: i4.DisabledDatesService }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
887
- DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DatePickerComponent, selector: "kendo-datepicker", inputs: { cellTemplateRef: ["cellTemplate", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"], navigationItemTemplateRef: ["navigationItemTemplate", "navigationItemTemplateRef"], focusableId: "focusableId", activeView: "activeView", bottomView: "bottomView", topView: "topView", calendarType: "calendarType", animateCalendarNavigation: "animateCalendarNavigation", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", popupSettings: "popupSettings", navigation: "navigation", min: "min", max: "max", incompleteDateValidation: "incompleteDateValidation", focusedDate: "focusedDate", value: "value", format: "format", twoDigitYearMax: "twoDigitYearMax", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", tabindex: "tabindex", tabIndex: "tabIndex", disabledDates: "disabledDates", title: "title", rangeValidation: "rangeValidation", disabledDatesValidation: "disabledDatesValidation", weekNumber: "weekNumber", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", onFocus: "focus", onBlur: "blur", open: "open", close: "close" }, host: { properties: { "class.k-datepicker": "this.wrapperClasses", "class.k-input": "this.wrapperClasses", "class.k-disabled": "this.disabledClass" } }, providers: [
896
+ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DatePickerComponent, selector: "kendo-datepicker", inputs: { cellTemplateRef: ["cellTemplate", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"], navigationItemTemplateRef: ["navigationItemTemplate", "navigationItemTemplateRef"], activeView: "activeView", bottomView: "bottomView", topView: "topView", calendarType: "calendarType", animateCalendarNavigation: "animateCalendarNavigation", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", popupSettings: "popupSettings", navigation: "navigation", min: "min", max: "max", incompleteDateValidation: "incompleteDateValidation", focusedDate: "focusedDate", value: "value", format: "format", twoDigitYearMax: "twoDigitYearMax", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", tabindex: "tabindex", tabIndex: "tabIndex", disabledDates: "disabledDates", title: "title", rangeValidation: "rangeValidation", disabledDatesValidation: "disabledDatesValidation", weekNumber: "weekNumber", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", onFocus: "focus", onBlur: "blur", open: "open", close: "close" }, host: { properties: { "class.k-datepicker": "this.wrapperClasses", "class.k-input": "this.wrapperClasses", "class.k-disabled": "this.disabledClass" } }, providers: [
888
897
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DatePickerComponent), multi: true },
889
898
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => DatePickerComponent), multi: true },
890
899
  { provide: KendoInput, useExisting: forwardRef(() => DatePickerComponent) },
@@ -912,8 +921,8 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
912
921
  </ng-container>
913
922
  <kendo-dateinput
914
923
  #input
915
- [role]="inputRole"
916
- [focusableId]="focusableId"
924
+ [role]="'combobox'"
925
+ pickerType="datepicker"
917
926
  [hasPopup]="true"
918
927
  [isPopupOpen]="show"
919
928
  [disabled]="disabled"
@@ -987,7 +996,7 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
987
996
  </kendo-calendar-messages>
988
997
  </kendo-calendar>
989
998
  <ng-template>
990
- `, isInline: true, components: [{ type: i5.DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "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: i6.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: i7.CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }], directives: [{ type: i8.DatePickerLocalizedMessagesDirective, selector: "[kendoDatePickerLocalizedMessages]" }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
999
+ `, isInline: true, components: [{ type: i5.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: i6.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: i7.CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }], directives: [{ type: i8.DatePickerLocalizedMessagesDirective, selector: "[kendoDatePickerLocalizedMessages]" }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
991
1000
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DatePickerComponent, decorators: [{
992
1001
  type: Component,
993
1002
  args: [{
@@ -1023,8 +1032,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1023
1032
  </ng-container>
1024
1033
  <kendo-dateinput
1025
1034
  #input
1026
- [role]="inputRole"
1027
- [focusableId]="focusableId"
1035
+ [role]="'combobox'"
1036
+ pickerType="datepicker"
1028
1037
  [hasPopup]="true"
1029
1038
  [isPopupOpen]="show"
1030
1039
  [disabled]="disabled"
@@ -1162,8 +1171,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1162
1171
  }], navigationItemTemplateRef: [{
1163
1172
  type: Input,
1164
1173
  args: ['navigationItemTemplate']
1165
- }], focusableId: [{
1166
- type: Input
1167
1174
  }], activeView: [{
1168
1175
  type: Input
1169
1176
  }], bottomView: [{
@@ -7,7 +7,7 @@ import { cloneDate, isEqual } from '@progress/kendo-date-math';
7
7
  import { DateRangeInput } from './date-range-input';
8
8
  import { EMPTY_SELECTIONRANGE } from '../calendar/models/selection-range.interface';
9
9
  import { clampRange, isInRange } from '../util';
10
- import { isPresent } from '../common/utils';
10
+ import { attributeNames, isPresent } from '../common/utils';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "./date-range.service";
13
13
  import * as i2 from "../dateinput/dateinput.component";
@@ -51,6 +51,11 @@ export class DateRangeEndInputDirective extends DateRangeInput {
51
51
  this.rangeService.registerEndInput(this.dateInput);
52
52
  super.init();
53
53
  }
54
+ ngAfterViewInit() {
55
+ const inputElement = this.dateInput.inputElement;
56
+ this.renderer.removeAttribute(inputElement, attributeNames.ariaExpanded);
57
+ this.dateInput.pickerType = 'daterangeend';
58
+ }
54
59
  ngOnDestroy() {
55
60
  super.destroy();
56
61
  }
@@ -2,11 +2,15 @@
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 { Directive } from '@angular/core';
5
6
  import { cloneDate } from '@progress/kendo-date-math';
6
7
  import { Keys } from '@progress/kendo-angular-common';
7
8
  import { Subscription, fromEvent } from 'rxjs';
8
9
  import { filter } from 'rxjs/operators';
9
10
  import { isPresent } from '../common/utils';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "./date-range.service";
13
+ import * as i2 from "../dateinput/dateinput.component";
10
14
  /**
11
15
  * @hidden
12
16
  */
@@ -115,3 +119,9 @@ export class DateRangeInput {
115
119
  }
116
120
  }
117
121
  }
122
+ DateRangeInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangeInput, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
123
+ DateRangeInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: DateRangeInput, ngImport: i0 });
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangeInput, decorators: [{
125
+ type: Directive,
126
+ args: [{}]
127
+ }], ctorParameters: function () { return [{ type: undefined }, { type: i1.DateRangeService }, { type: i2.DateInputComponent }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; } });
@@ -241,9 +241,9 @@ export class DateRangePopupComponent {
241
241
  if (!calendar) {
242
242
  return;
243
243
  }
244
- const nativeElement = calendar.element.nativeElement;
245
- this.blurSubscription = fromEvent(nativeElement, 'blur').subscribe(() => this.onBlur.emit());
246
- this.focusSubscription = fromEvent(nativeElement, 'focus').subscribe(() => this.onFocus.emit());
244
+ const calendarElement = calendar.element.nativeElement.querySelector('.k-calendar-view');
245
+ this.blurSubscription = fromEvent(calendarElement, 'blur').subscribe(() => this.onBlur.emit());
246
+ this.focusSubscription = fromEvent(calendarElement, 'focus').subscribe(() => this.onFocus.emit());
247
247
  }
248
248
  addPopupSubscriptions(...subscriptions) {
249
249
  if (!isPresent(this.popupSubscriptions)) {
@@ -297,7 +297,7 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
297
297
  <ng-template #defaultTemplate>
298
298
  <kendo-multiviewcalendar kendoDateRangeSelection></kendo-multiviewcalendar>
299
299
  </ng-template>
300
- `, isInline: true, components: [{ type: i3.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"], exportAs: ["kendo-multiviewcalendar"] }], directives: [{ type: i4.DateRangeSelectionDirective, selector: "[kendoDateRangeSelection]", inputs: ["autoCorrectOn", "selectionRange", "activeRangeEnd"], outputs: ["activeRangeEndChange", "selectionRangeChange"] }] });
300
+ `, isInline: true, components: [{ type: i3.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: i4.DateRangeSelectionDirective, selector: "[kendoDateRangeSelection]", inputs: ["autoCorrectOn", "selectionRange", "activeRangeEnd"], outputs: ["activeRangeEndChange", "selectionRangeChange"] }] });
301
301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangePopupComponent, decorators: [{
302
302
  type: Component,
303
303
  args: [{
@@ -40,7 +40,7 @@ export class DateRangeSelectionDirective {
40
40
  */
41
41
  this.selectionRangeChange = new EventEmitter();
42
42
  this.calendarSubscriptions = new Subscription();
43
- this.dateRangeService = this.dateRangeService || new DateRangeService();
43
+ this.dateRangeService = this.dateRangeService || new DateRangeService(renderer);
44
44
  renderer.setAttribute(element.nativeElement, 'aria-multiselectable', 'true');
45
45
  }
46
46
  /**
@@ -7,6 +7,7 @@ import { cloneDate, isEqual } from '@progress/kendo-date-math';
7
7
  import { DateRangeInput } from './date-range-input';
8
8
  import { EMPTY_SELECTIONRANGE } from '../calendar/models/selection-range.interface';
9
9
  import { clampRange, isInRange } from '../util';
10
+ import { attributeNames } from '../common/utils';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "./date-range.service";
12
13
  import * as i2 from "../dateinput/dateinput.component";
@@ -20,6 +21,7 @@ export class DateRangeStartInputDirective extends DateRangeInput {
20
21
  super('start', rangeService, dateInput, element, renderer, zone);
21
22
  this.rangeService = rangeService;
22
23
  this.dateInput = dateInput;
24
+ this.renderer = renderer;
23
25
  /**
24
26
  * Specifies the navigation behavior of the calendar when the active end is changed on input focus.
25
27
  * When enabled, the calendar navigates to the value of the focused input. Otherwise, the calendar
@@ -51,6 +53,13 @@ export class DateRangeStartInputDirective extends DateRangeInput {
51
53
  this.rangeService.registerStartInput(this.dateInput);
52
54
  super.init();
53
55
  }
56
+ ngAfterViewInit() {
57
+ const inputElement = this.dateInput.inputElement;
58
+ this.renderer.setAttribute(inputElement, 'role', 'combobox');
59
+ this.renderer.setAttribute(inputElement, attributeNames.ariaHasPopup, 'true');
60
+ this.dateInput.pickerType = 'daterangestart';
61
+ this.renderer.setAttribute(inputElement, attributeNames.ariaExpanded, 'false');
62
+ }
54
63
  ngOnDestroy() {
55
64
  super.destroy();
56
65
  }
@@ -2,14 +2,16 @@
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 { Component, ContentChildren, HostBinding } from '@angular/core';
5
+ import { Component, ContentChildren, HostBinding, HostListener } from '@angular/core';
6
6
  import { validatePackage } from '@progress/kendo-licensing';
7
7
  import { packageMetadata } from '../package-metadata';
8
8
  import { DateRangePopupComponent } from './date-range-popup.component';
9
9
  import { DateRangeService } from './date-range.service';
10
+ import { Keys } from '@progress/kendo-angular-common';
10
11
  import * as i0 from "@angular/core";
11
- import * as i1 from "./date-range-popup.component";
12
- import * as i2 from "@angular/common";
12
+ import * as i1 from "./date-range.service";
13
+ import * as i2 from "./date-range-popup.component";
14
+ import * as i3 from "@angular/common";
13
15
  /**
14
16
  * Represents the Kendo UI DateRange component for Angular.
15
17
  *
@@ -30,7 +32,8 @@ import * as i2 from "@angular/common";
30
32
  * ```
31
33
  */
32
34
  export class DateRangeComponent {
33
- constructor() {
35
+ constructor(dateRangeService) {
36
+ this.dateRangeService = dateRangeService;
34
37
  this.wrapperClass = true;
35
38
  /**
36
39
  * @hidden
@@ -38,6 +41,19 @@ export class DateRangeComponent {
38
41
  this.showDefault = false;
39
42
  validatePackage(packageMetadata);
40
43
  }
44
+ /**
45
+ * @hidden
46
+ */
47
+ keydown(event) {
48
+ const shouldOpenPopup = event.keyCode === Keys.ArrowDown && event.altKey;
49
+ if (shouldOpenPopup) {
50
+ this.dateRangeService.activatePopup();
51
+ }
52
+ const shouldClosePopup = (event.keyCode === Keys.ArrowUp && event.altKey) || event.keyCode === Keys.Escape;
53
+ if (shouldClosePopup) {
54
+ this.dateRangeService.deactivatePopup();
55
+ }
56
+ }
41
57
  get hasContentPopup() {
42
58
  return this.contentPopup.length > 0;
43
59
  }
@@ -48,16 +64,15 @@ export class DateRangeComponent {
48
64
  });
49
65
  }
50
66
  ngOnDestroy() {
51
- if (this.subscription) {
52
- this.subscription.unsubscribe();
53
- }
67
+ var _a;
68
+ (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
54
69
  }
55
70
  }
56
- DateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
57
- DateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DateRangeComponent, selector: "kendo-daterange", host: { properties: { "class.k-daterangepicker": "this.wrapperClass" } }, providers: [DateRangeService], queries: [{ propertyName: "contentPopup", predicate: DateRangePopupComponent }], ngImport: i0, template: `
71
+ DateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangeComponent, deps: [{ token: i1.DateRangeService }], target: i0.ɵɵFactoryTarget.Component });
72
+ DateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DateRangeComponent, selector: "kendo-daterange", host: { listeners: { "keydown": "keydown($event)" }, properties: { "class.k-daterangepicker": "this.wrapperClass" } }, providers: [DateRangeService], queries: [{ propertyName: "contentPopup", predicate: DateRangePopupComponent }], ngImport: i0, template: `
58
73
  <ng-content></ng-content>
59
74
  <kendo-daterange-popup *ngIf="showDefault"></kendo-daterange-popup>
60
- `, isInline: true, components: [{ type: i1.DateRangePopupComponent, selector: "kendo-daterange-popup", inputs: ["animate", "anchor", "anchorAlign", "appendTo", "collision", "popupAlign", "margin"], outputs: ["open", "close", "blur", "focus", "cancel"], exportAs: ["kendo-daterange-popup"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
75
+ `, isInline: true, components: [{ type: i2.DateRangePopupComponent, selector: "kendo-daterange-popup", inputs: ["animate", "anchor", "anchorAlign", "appendTo", "collision", "popupAlign", "margin"], outputs: ["open", "close", "blur", "focus", "cancel"], exportAs: ["kendo-daterange-popup"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
61
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangeComponent, decorators: [{
62
77
  type: Component,
63
78
  args: [{
@@ -68,7 +83,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
68
83
  <kendo-daterange-popup *ngIf="showDefault"></kendo-daterange-popup>
69
84
  `
70
85
  }]
71
- }], ctorParameters: function () { return []; }, propDecorators: { wrapperClass: [{
86
+ }], ctorParameters: function () { return [{ type: i1.DateRangeService }]; }, propDecorators: { keydown: [{
87
+ type: HostListener,
88
+ args: ['keydown', ['$event']]
89
+ }], wrapperClass: [{
72
90
  type: HostBinding,
73
91
  args: ['class.k-daterangepicker']
74
92
  }], contentPopup: [{
@@ -2,10 +2,12 @@
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 { Injectable } from '@angular/core';
5
+ import { Injectable, Optional } from '@angular/core';
6
6
  import { BehaviorSubject } from 'rxjs';
7
7
  import { EMPTY_SELECTIONRANGE } from '../calendar/models/selection-range.interface';
8
8
  import { isEqual } from '@progress/kendo-date-math';
9
+ import { Subscription } from 'rxjs';
10
+ import { attributeNames } from '../common/utils';
9
11
  import * as i0 from "@angular/core";
10
12
  const isActive = (cmp) => (cmp && cmp.isActive) || false;
11
13
  const hasActiveContent = (popup) => popup && popup.hasActiveContent();
@@ -15,7 +17,10 @@ const hasActiveContent = (popup) => popup && popup.hasActiveContent();
15
17
  */
16
18
  export class DateRangeService {
17
19
  /** @hidden */
18
- constructor() {
20
+ constructor(renderer) {
21
+ this.renderer = renderer;
22
+ /** @hidden */
23
+ this.focusedCellChange = new Subscription();
19
24
  /**
20
25
  * An Observable instance that notifies when the `activeRangeEnd` state is changed.
21
26
  */
@@ -80,10 +85,19 @@ export class DateRangeService {
80
85
  * The method opens the popup and focuses the calendar.
81
86
  */
82
87
  activatePopup() {
88
+ var _a;
83
89
  const dateRangePopup = this.dateRangePopup$.value;
84
90
  if (!dateRangePopup) {
85
91
  return;
86
92
  }
93
+ if (this.startInput$.value) {
94
+ const inputElement = this.startInput$.value.dateInput.nativeElement;
95
+ this.renderer.setAttribute(inputElement, attributeNames.ariaControls, dateRangePopup.popupUID);
96
+ this.renderer.setAttribute(inputElement, attributeNames.ariaExpanded, 'true');
97
+ this.focusedCellChange = (_a = dateRangePopup.viewCalendar.first) === null || _a === void 0 ? void 0 : _a.viewList.focusedCellChange.subscribe((id) => {
98
+ this.renderer.setAttribute(inputElement, attributeNames.ariaActiveDescendant, id);
99
+ });
100
+ }
87
101
  dateRangePopup.activate();
88
102
  }
89
103
  /**
@@ -91,10 +105,18 @@ export class DateRangeService {
91
105
  * The method closes the popup.
92
106
  */
93
107
  deactivatePopup() {
108
+ var _a;
94
109
  const dateRangePopup = this.dateRangePopup$.value;
95
110
  if (!(dateRangePopup && dateRangePopup.show)) {
96
111
  return;
97
112
  }
113
+ if (this.startInput$.value) {
114
+ const inputElement = this.startInput$.value.dateInput.nativeElement;
115
+ this.renderer.removeAttribute(inputElement, attributeNames.ariaControls);
116
+ this.renderer.setAttribute(inputElement, attributeNames.ariaExpanded, 'false');
117
+ (_a = this.focusedCellChange) === null || _a === void 0 ? void 0 : _a.unsubscribe();
118
+ this.renderer.removeAttribute(inputElement, attributeNames.ariaActiveDescendant);
119
+ }
98
120
  dateRangePopup.show = false;
99
121
  }
100
122
  /**
@@ -178,8 +200,10 @@ export class DateRangeService {
178
200
  this.range$.next(range);
179
201
  }
180
202
  }
181
- DateRangeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
203
+ DateRangeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangeService, deps: [{ token: i0.Renderer2, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
182
204
  DateRangeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangeService });
183
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateRangeService, decorators: [{
184
206
  type: Injectable
185
- }], ctorParameters: function () { return []; } });
207
+ }], ctorParameters: function () { return [{ type: i0.Renderer2, decorators: [{
208
+ type: Optional
209
+ }] }]; } });
@@ -7,13 +7,13 @@ import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
7
7
  import { Subscription, fromEvent } from 'rxjs';
8
8
  import { tap } from 'rxjs/operators';
9
9
  import { cloneDate, isEqual, getDate } from '@progress/kendo-date-math';
10
- import { hasObservers, KendoInput, Keys, guid } from '@progress/kendo-angular-common';
10
+ import { hasObservers, KendoInput, Keys } from '@progress/kendo-angular-common';
11
11
  import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
12
12
  import { validatePackage } from '@progress/kendo-licensing';
13
13
  import { packageMetadata } from '../package-metadata';
14
14
  import { PickerService } from '../common/picker.service';
15
15
  import { DisabledDatesService } from '../calendar/services/disabled-dates.service';
16
- import { isPresent } from '../common/utils';
16
+ import { attributeNames, isPresent } from '../common/utils';
17
17
  import { mergeDateAndTime, noop, lastMillisecondOfDate, isInRange, isValidRange, isWindowAvailable, getFillModeClass, getRoundedClass, getSizeClass, DEFAULT_FILL_MODE, DEFAULT_ROUNDED, DEFAULT_SIZE } from '../util';
18
18
  import { PreventableEvent } from '../preventable-event';
19
19
  import { minValidator } from '../validators/min.validator';
@@ -78,10 +78,6 @@ export class DateTimePickerComponent {
78
78
  * will be assumed to be 20xx, while 69 and larger will be assumed to be 19xx.
79
79
  */
80
80
  this.twoDigitYearMax = TWO_DIGIT_YEAR_MAX;
81
- /**
82
- * @hidden
83
- */
84
- this.focusableId = `k-${guid()}`;
85
81
  /**
86
82
  * Sets the title of the input element of the DateTimePicker.
87
83
  */
@@ -245,6 +241,12 @@ export class DateTimePickerComponent {
245
241
  get input() {
246
242
  return this.pickerService.input;
247
243
  }
244
+ /**
245
+ * @hidden
246
+ */
247
+ get inputElement() {
248
+ return this.wrapper.nativeElement.querySelector('input');
249
+ }
248
250
  /**
249
251
  * @hidden
250
252
  */
@@ -483,12 +485,6 @@ export class DateTimePickerComponent {
483
485
  get disableCalendar() {
484
486
  return this.activeTab !== 'date' && !this.calendar.isActive;
485
487
  }
486
- /**
487
- * @hidden
488
- */
489
- get inputRole() {
490
- return this.readOnlyInput ? 'listbox' : 'spinbutton';
491
- }
492
488
  /**
493
489
  * @hidden
494
490
  *
@@ -514,6 +510,11 @@ export class DateTimePickerComponent {
514
510
  }
515
511
  return appendTo === 'component' ? this.container : appendTo;
516
512
  }
513
+ get popupUID() {
514
+ var _a;
515
+ return (_a = this.calendar) === null || _a === void 0 ? void 0 : _a.id;
516
+ }
517
+ ;
517
518
  ngOnInit() {
518
519
  this.subscriptions.add(this.pickerService.onFocus
519
520
  // detect popup changes to disable the inactive view mark-up when the popup is open
@@ -713,6 +714,9 @@ export class DateTimePickerComponent {
713
714
  if (event.target !== dateTimeSelector) {
714
715
  return;
715
716
  }
717
+ if (this.activeTab === 'time') {
718
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
719
+ }
716
720
  this.activeTabComponent.focus();
717
721
  }
718
722
  /**
@@ -922,12 +926,28 @@ export class DateTimePickerComponent {
922
926
  anchorAlign: { vertical: 'bottom', horizontal: direction },
923
927
  popupAlign: { vertical: 'top', horizontal: direction }
924
928
  });
929
+ this.popupRef.popupElement.setAttribute('id', this.popupUID);
930
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
931
+ if (this.activeTab === 'date') {
932
+ if (this.calendar.type === 'infinite') {
933
+ this.subscriptions.add(this.calendar.monthView.focusedCellChange.subscribe((id) => {
934
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaActiveDescendant, id);
935
+ }));
936
+ }
937
+ else {
938
+ this.subscriptions.add(this.calendar.multiViewCalendar.viewList.focusedCellChange.subscribe((id) => {
939
+ this.renderer.setAttribute(this.inputElement, attributeNames.ariaActiveDescendant, id);
940
+ }));
941
+ }
942
+ }
925
943
  this.popupRef.popupAnchorViewportLeave.subscribe(() => this.handleCancel());
926
944
  }
927
945
  closePopup() {
928
946
  if (!this.isOpen) {
929
947
  return;
930
948
  }
949
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
950
+ this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
931
951
  this.popupRef.close();
932
952
  this.popupRef = null;
933
953
  }
@@ -1003,7 +1023,7 @@ export class DateTimePickerComponent {
1003
1023
  }
1004
1024
  }
1005
1025
  DateTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateTimePickerComponent, deps: [{ token: i1.PopupService }, { token: i2.IntlService }, { token: i0.ChangeDetectorRef }, { token: i3.PickerService }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: TOUCH_ENABLED }, { token: i4.LocalizationService }, { token: i5.DisabledDatesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
1006
- DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DateTimePickerComponent, selector: "kendo-datetimepicker", inputs: { value: "value", format: "format", twoDigitYearMax: "twoDigitYearMax", tabindex: "tabindex", disabledDates: "disabledDates", popupSettings: "popupSettings", focusableId: "focusableId", title: "title", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", cancelButton: "cancelButton", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", steps: "steps", focusedDate: "focusedDate", calendarType: "calendarType", animateCalendarNavigation: "animateCalendarNavigation", weekNumber: "weekNumber", min: "min", max: "max", rangeValidation: "rangeValidation", disabledDatesValidation: "disabledDatesValidation", incompleteDateValidation: "incompleteDateValidation", defaultTab: "defaultTab", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", open: "open", close: "close", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-datetimepicker": "this.hostClasses", "class.k-input": "this.hostClasses", "class.k-disabled": "this.disabledClass" } }, providers: [
1026
+ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DateTimePickerComponent, selector: "kendo-datetimepicker", inputs: { value: "value", format: "format", twoDigitYearMax: "twoDigitYearMax", tabindex: "tabindex", disabledDates: "disabledDates", popupSettings: "popupSettings", title: "title", disabled: "disabled", readonly: "readonly", readOnlyInput: "readOnlyInput", cancelButton: "cancelButton", formatPlaceholder: "formatPlaceholder", placeholder: "placeholder", steps: "steps", focusedDate: "focusedDate", calendarType: "calendarType", animateCalendarNavigation: "animateCalendarNavigation", weekNumber: "weekNumber", min: "min", max: "max", rangeValidation: "rangeValidation", disabledDatesValidation: "disabledDatesValidation", incompleteDateValidation: "incompleteDateValidation", defaultTab: "defaultTab", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", open: "open", close: "close", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-datetimepicker": "this.hostClasses", "class.k-input": "this.hostClasses", "class.k-disabled": "this.disabledClass" } }, providers: [
1007
1027
  PickerService,
1008
1028
  LocalizationService,
1009
1029
  DisabledDatesService,
@@ -1070,12 +1090,12 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
1070
1090
  [placeholder]="placeholder"
1071
1091
  [disabled]="disabled"
1072
1092
  [readonly]="readonly || readOnlyInput"
1073
- [role]="inputRole"
1093
+ [role]="'combobox'"
1074
1094
  [ariaReadOnly]="readonly"
1075
1095
  [steps]="steps"
1076
1096
  [tabindex]="tabindex"
1077
1097
  [title]="title"
1078
- [focusableId]="focusableId"
1098
+ pickerType="datetimepicker"
1079
1099
  [hasPopup]="true"
1080
1100
  [isPopupOpen]="isOpen"
1081
1101
  (valueChange)="handleInputValueChange($event)"
@@ -1254,7 +1274,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
1254
1274
  </div>
1255
1275
  </div>
1256
1276
  </ng-template>
1257
- `, isInline: true, components: [{ type: i6.DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "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: i7.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: i8.CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { type: i9.TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "steps", "value"], outputs: ["valueChange", "valueReject"], exportAs: ["kendo-timeselector"] }, { type: i10.TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: i11.LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { type: i12.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1277
+ `, isInline: true, components: [{ type: i6.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: i7.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: i8.CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { type: i9.TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "steps", "value"], outputs: ["valueChange", "valueReject"], exportAs: ["kendo-timeselector"] }, { type: i10.TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: i11.LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { type: i12.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1258
1278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DateTimePickerComponent, decorators: [{
1259
1279
  type: Component,
1260
1280
  args: [{
@@ -1329,12 +1349,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1329
1349
  [placeholder]="placeholder"
1330
1350
  [disabled]="disabled"
1331
1351
  [readonly]="readonly || readOnlyInput"
1332
- [role]="inputRole"
1352
+ [role]="'combobox'"
1333
1353
  [ariaReadOnly]="readonly"
1334
1354
  [steps]="steps"
1335
1355
  [tabindex]="tabindex"
1336
1356
  [title]="title"
1337
- [focusableId]="focusableId"
1357
+ pickerType="datetimepicker"
1338
1358
  [hasPopup]="true"
1339
1359
  [isPopupOpen]="isOpen"
1340
1360
  (valueChange)="handleInputValueChange($event)"
@@ -1542,8 +1562,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1542
1562
  type: Input
1543
1563
  }], popupSettings: [{
1544
1564
  type: Input
1545
- }], focusableId: [{
1546
- type: Input
1547
1565
  }], title: [{
1548
1566
  type: Input
1549
1567
  }], disabled: [{
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-dateinputs',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1665567991,
12
+ publishDate: 1666767725,
13
13
  version: '',
14
14
  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'
15
15
  };
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  export class TimePickerMessages extends ComponentMessages {
12
12
  }
13
13
  TimePickerMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TimePickerMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
14
- TimePickerMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TimePickerMessages, selector: "kendo-timepicker-messages-base", inputs: { accept: "accept", acceptLabel: "acceptLabel", cancel: "cancel", cancelLabel: "cancelLabel", now: "now", nowLabel: "nowLabel", toggle: "toggle" }, usesInheritance: true, ngImport: i0 });
14
+ TimePickerMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TimePickerMessages, selector: "kendo-timepicker-messages-base", inputs: { accept: "accept", acceptLabel: "acceptLabel", cancel: "cancel", cancelLabel: "cancelLabel", now: "now", nowLabel: "nowLabel", toggle: "toggle", hour: "hour", minute: "minute", second: "second", millisecond: "millisecond", dayperiod: "dayperiod" }, usesInheritance: true, ngImport: i0 });
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TimePickerMessages, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
@@ -32,4 +32,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
32
32
  type: Input
33
33
  }], toggle: [{
34
34
  type: Input
35
+ }], hour: [{
36
+ type: Input
37
+ }], minute: [{
38
+ type: Input
39
+ }], second: [{
40
+ type: Input
41
+ }], millisecond: [{
42
+ type: Input
43
+ }], dayperiod: [{
44
+ type: Input
35
45
  }] } });