@progress/kendo-angular-dateinputs 13.0.0-develop.2 → 13.0.0-develop.21

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.
@@ -36,8 +36,8 @@ const packageMetadata = {
36
36
  name: '@progress/kendo-angular-dateinputs',
37
37
  productName: 'Kendo UI for Angular',
38
38
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
39
- publishDate: 1684846671,
40
- version: '13.0.0-develop.2',
39
+ publishDate: 1685972909,
40
+ version: '13.0.0-develop.21',
41
41
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
42
42
  };
43
43
 
@@ -1978,13 +1978,16 @@ class HorizontalViewListComponent {
1978
1978
  return this.activeView === CalendarViewEnum.century;
1979
1979
  }
1980
1980
  get role() {
1981
- return this.views === 2 ? 'grid' : null;
1981
+ return this.views >= 2 ? 'grid' : null;
1982
+ }
1983
+ get tabindex() {
1984
+ return this.views >= 2 ? '0' : null;
1982
1985
  }
1983
1986
  get getActiveDescendant() {
1984
1987
  return this.views === 1 ? this.activeDescendant : null;
1985
1988
  }
1986
1989
  get getTabIndex() {
1987
- return this.disabled || this.views === 2 ? null : this.tabIndex;
1990
+ return this.disabled || this.views >= 2 ? null : this.tabIndex;
1988
1991
  }
1989
1992
  ngOnChanges(changes) {
1990
1993
  this.initService();
@@ -2009,7 +2012,7 @@ class HorizontalViewListComponent {
2009
2012
  }
2010
2013
  this.setAriaActivedescendant();
2011
2014
  //set tabindex for MultiViewCalendar
2012
- if (this.views === 2) {
2015
+ if (this.views >= 2) {
2013
2016
  this.renderer.setAttribute(this.element.nativeElement, 'tabindex', this.tabIndex.toString());
2014
2017
  }
2015
2018
  }
@@ -2156,16 +2159,16 @@ class HorizontalViewListComponent {
2156
2159
  return Math.min(this.total - skip, this.views);
2157
2160
  }
2158
2161
  setAriaActivedescendant() {
2159
- if (this.views === 2) {
2162
+ if (this.views >= 2) {
2160
2163
  this.renderer.setAttribute(this.element.nativeElement, attributeNames.ariaActiveDescendant, this.activeDescendant);
2161
2164
  }
2162
2165
  }
2163
2166
  }
2164
2167
  HorizontalViewListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", 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 });
2165
- HorizontalViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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: `
2168
+ HorizontalViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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", "attr.tabindex": "this.tabindex" } }, usesOnChanges: true, ngImport: i0, template: `
2166
2169
  <ng-template #tableTemplate let-date="date" let-class="className">
2167
2170
  <table
2168
- [attr.role]="views === 2 ? 'none' : 'grid'"
2171
+ [attr.role]="views >= 2 ? 'none' : 'grid'"
2169
2172
  class="k-content k-calendar-table"
2170
2173
  [ngClass]="class"
2171
2174
  [attr.aria-labelledby]="id"
@@ -2252,7 +2255,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2252
2255
  template: `
2253
2256
  <ng-template #tableTemplate let-date="date" let-class="className">
2254
2257
  <table
2255
- [attr.role]="views === 2 ? 'none' : 'grid'"
2258
+ [attr.role]="views >= 2 ? 'none' : 'grid'"
2256
2259
  class="k-content k-calendar-table"
2257
2260
  [ngClass]="class"
2258
2261
  [attr.aria-labelledby]="id"
@@ -2424,6 +2427,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2424
2427
  }], role: [{
2425
2428
  type: HostBinding,
2426
2429
  args: ['attr.role']
2430
+ }], tabindex: [{
2431
+ type: HostBinding,
2432
+ args: ['attr.tabindex']
2427
2433
  }] } });
2428
2434
 
2429
2435
  /**
@@ -3356,6 +3362,18 @@ class MultiViewCalendarComponent {
3356
3362
  * @hidden
3357
3363
  */
3358
3364
  this.focusCalendar = new EventEmitter();
3365
+ /**
3366
+ * @hidden
3367
+ */
3368
+ this.onClosePopup = new EventEmitter();
3369
+ /**
3370
+ * @hidden
3371
+ */
3372
+ this.onTabPress = new EventEmitter();
3373
+ /**
3374
+ * @hidden
3375
+ */
3376
+ this.onShiftTabPress = new EventEmitter();
3359
3377
  this.cellUID = guid();
3360
3378
  this.isHovered = false;
3361
3379
  this.isPrevDisabled = true;
@@ -3400,7 +3418,7 @@ class MultiViewCalendarComponent {
3400
3418
  * @hidden
3401
3419
  */
3402
3420
  get multiViewCalendarHeaderIdLabel() {
3403
- return this.views === 2 ? this.id + 'header-' : null;
3421
+ return this.views >= 2 ? this.id + 'header-' : null;
3404
3422
  }
3405
3423
  /**
3406
3424
  * @hidden
@@ -3578,7 +3596,7 @@ class MultiViewCalendarComponent {
3578
3596
  return CalendarViewEnum[this.topView];
3579
3597
  }
3580
3598
  get widgetId() {
3581
- return this.views === 2 ? this.id : null;
3599
+ return this.views >= 2 ? this.id : null;
3582
3600
  }
3583
3601
  get ariaDisabled() {
3584
3602
  return this.disabled;
@@ -3648,6 +3666,11 @@ class MultiViewCalendarComponent {
3648
3666
  const onArrowLeftAndControl = event.keyCode === Keys$1.ArrowLeft && ctrlKey;
3649
3667
  const onTKeyPress = event.keyCode === Keys$1.KeyT;
3650
3668
  const onEnterKeyPress = event.keyCode === Keys$1.Enter;
3669
+ const onArrowUpPress = event.keyCode === Keys$1.ArrowUp;
3670
+ const altKey = event.altKey;
3671
+ const escKey = event.keyCode === Keys$1.Escape;
3672
+ const tabKeyPress = event.keyCode === Keys$1.Tab;
3673
+ const shiftKeyPress = event.shiftKey;
3651
3674
  if (onArrowRightAndControl) {
3652
3675
  event.preventDefault();
3653
3676
  this.navigateView(this.nextView);
@@ -3670,6 +3693,17 @@ class MultiViewCalendarComponent {
3670
3693
  this.selectionService.lastClicked = this.focusedDate;
3671
3694
  this.performSelection(this.focusedDate, event);
3672
3695
  }
3696
+ if (this.views >= 2) {
3697
+ if ((escKey || (altKey && onArrowUpPress))) {
3698
+ this.onClosePopup.emit(event);
3699
+ }
3700
+ else if ((tabKeyPress && shiftKeyPress)) {
3701
+ this.onShiftTabPress.emit(event);
3702
+ }
3703
+ else if ((tabKeyPress && !shiftKeyPress)) {
3704
+ this.onTabPress.emit(event);
3705
+ }
3706
+ }
3673
3707
  const candidate = dateInRange(this.navigator.move(this.focusedDate, this.navigator.action(event), this.activeViewEnum), this.min, this.max);
3674
3708
  if (isEqual(this.focusedDate, candidate)) {
3675
3709
  return;
@@ -3745,7 +3779,7 @@ class MultiViewCalendarComponent {
3745
3779
  if (!this.element) {
3746
3780
  return;
3747
3781
  }
3748
- const activeElement = this.views === 2 ? this.element.nativeElement.querySelector('.k-calendar-view') :
3782
+ const activeElement = this.views >= 2 ? this.element.nativeElement.querySelector('.k-calendar-view') :
3749
3783
  this.element.nativeElement.querySelector('.k-content.k-calendar-table');
3750
3784
  activeElement.blur();
3751
3785
  }
@@ -3955,7 +3989,7 @@ class MultiViewCalendarComponent {
3955
3989
  }
3956
3990
  }
3957
3991
  MultiViewCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", 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 });
3958
- MultiViewCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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: [
3992
+ MultiViewCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", 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", onClosePopup: "onClosePopup", onTabPress: "onTabPress", onShiftTabPress: "onShiftTabPress" }, 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: [
3959
3993
  BusViewService,
3960
3994
  RANGE_CALENDAR_VALUE_ACCESSOR,
3961
3995
  RANGE_CALENDAR_RANGE_VALIDATORS,
@@ -4179,6 +4213,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4179
4213
  args: ['focus']
4180
4214
  }], focusCalendar: [{
4181
4215
  type: Output
4216
+ }], onClosePopup: [{
4217
+ type: Output
4218
+ }], onTabPress: [{
4219
+ type: Output
4220
+ }], onShiftTabPress: [{
4221
+ type: Output
4182
4222
  }], cellTemplate: [{
4183
4223
  type: ContentChild,
4184
4224
  args: [CellTemplateDirective, { static: false }]
@@ -6659,7 +6699,7 @@ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
6659
6699
  </kendo-multiviewcalendar-messages>
6660
6700
  </kendo-multiviewcalendar>
6661
6701
  </ng-container>
6662
- `, 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: i8.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 });
6702
+ `, 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: i8.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", "onClosePopup", "onTabPress", "onShiftTabPress"], 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 });
6663
6703
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CalendarComponent, decorators: [{
6664
6704
  type: Component,
6665
6705
  args: [{
@@ -8462,7 +8502,7 @@ DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
8462
8502
  </kendo-icon-wrapper>
8463
8503
  </button>
8464
8504
  </span>
8465
- `, isInline: true, components: [{ type: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: DateInputLocalizedMessagesDirective, selector: "[kendoDateInputLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8505
+ `, isInline: true, components: [{ type: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: DateInputLocalizedMessagesDirective, selector: "[kendoDateInputLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8466
8506
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateInputComponent, decorators: [{
8467
8507
  type: Component,
8468
8508
  args: [{
@@ -9270,7 +9310,7 @@ class DatePickerComponent {
9270
9310
  * Used by the TextBoxContainer to determine if the component is empty.
9271
9311
  */
9272
9312
  isEmpty() {
9273
- return !this.value && this.input.isEmpty();
9313
+ return !this.value && this.dateInput.isEmpty();
9274
9314
  }
9275
9315
  /**
9276
9316
  * @hidden
@@ -9303,6 +9343,9 @@ class DatePickerComponent {
9303
9343
  this.incompleteValidator = this.incompleteDateValidation ? incompleteDateValidator() : noop$2;
9304
9344
  this.onValidatorChange();
9305
9345
  }
9346
+ if (!this.focusableId || changes.focusableId) {
9347
+ this.focusableId = this.dateInput?.focusableId;
9348
+ }
9306
9349
  }
9307
9350
  /**
9308
9351
  * @hidden
@@ -9332,9 +9375,9 @@ class DatePickerComponent {
9332
9375
  this.verifyValue(value);
9333
9376
  this.value = cloneDate(value);
9334
9377
  this.cdr.markForCheck();
9335
- if (!value && this.input) {
9336
- this.input.placeholder = this.placeholder;
9337
- this.input.writeValue(value);
9378
+ if (!value && this.dateInput) {
9379
+ this.dateInput.placeholder = this.placeholder;
9380
+ this.dateInput.writeValue(value);
9338
9381
  }
9339
9382
  }
9340
9383
  /**
@@ -9360,7 +9403,7 @@ class DatePickerComponent {
9360
9403
  * @hidden
9361
9404
  */
9362
9405
  validate(control) {
9363
- return this.minValidateFn(control) || this.maxValidateFn(control) || this.disabledDatesValidateFn(control) || this.incompleteValidator(control, this.input && this.input.isDateIncomplete);
9406
+ return this.minValidateFn(control) || this.maxValidateFn(control) || this.disabledDatesValidateFn(control) || this.incompleteValidator(control, this.dateInput && this.dateInput.isDateIncomplete);
9364
9407
  }
9365
9408
  /**
9366
9409
  * @hidden
@@ -9397,13 +9440,13 @@ class DatePickerComponent {
9397
9440
  * ```
9398
9441
  */
9399
9442
  focus() {
9400
- this.input.focus();
9443
+ this.dateInput.focus();
9401
9444
  }
9402
9445
  /**
9403
9446
  * Blurs the DatePicker component.
9404
9447
  */
9405
9448
  blur() {
9406
- (this.calendar || this.input)['blur']();
9449
+ (this.calendar || this.dateInput)['blur']();
9407
9450
  }
9408
9451
  /**
9409
9452
  * Toggles the visibility of the popup or actionSheet.
@@ -9465,7 +9508,7 @@ class DatePickerComponent {
9465
9508
  * @hidden
9466
9509
  */
9467
9510
  handleInputChange(value) {
9468
- this.handleChange(this.input.formatSections['time'] ? value : this.mergeTime(value));
9511
+ this.handleChange(this.dateInput.formatSections['time'] ? value : this.mergeTime(value));
9469
9512
  }
9470
9513
  /**
9471
9514
  * @hidden
@@ -9487,7 +9530,7 @@ class DatePickerComponent {
9487
9530
  }
9488
9531
  return appendTo === 'component' ? this.container : appendTo;
9489
9532
  }
9490
- get input() {
9533
+ get dateInput() {
9491
9534
  return this.pickerService.input;
9492
9535
  }
9493
9536
  get calendar() {
@@ -9544,7 +9587,7 @@ class DatePickerComponent {
9544
9587
  }
9545
9588
  }
9546
9589
  if (keyCode === Keys$1.Tab && this.show && this.calendar.isActive && isTabExitingCalendar(this.calendarType, target, shiftKey)) {
9547
- this.input.focus();
9590
+ this.dateInput.focus();
9548
9591
  this.show = false;
9549
9592
  }
9550
9593
  }
@@ -9577,7 +9620,7 @@ class DatePickerComponent {
9577
9620
  });
9578
9621
  this.setAriaActiveDescendant();
9579
9622
  this.popupRef.popupElement.setAttribute('id', this.popupUID);
9580
- this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
9623
+ this.renderer.setAttribute(this.dateInput?.inputElement, attributeNames.ariaControls, this.popupUID);
9581
9624
  this.subscription = this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);
9582
9625
  }
9583
9626
  else {
@@ -9585,8 +9628,8 @@ class DatePickerComponent {
9585
9628
  this.popupRef = null;
9586
9629
  this.subscription.unsubscribe();
9587
9630
  this.ariaActiveDescendantSubscription.unsubscribe();
9588
- this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
9589
- this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
9631
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaControls);
9632
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaActiveDescendant);
9590
9633
  this.cdr.detectChanges();
9591
9634
  }
9592
9635
  }
@@ -9599,13 +9642,13 @@ class DatePickerComponent {
9599
9642
  this.updateActionSheetAdaptiveAppearance();
9600
9643
  this.setAriaActiveDescendant();
9601
9644
  this.actionSheet.element.nativeElement.setAttribute('id', this.popupUID);
9602
- this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
9645
+ this.renderer.setAttribute(this.dateInput?.inputElement, attributeNames.ariaControls, this.popupUID);
9603
9646
  }
9604
9647
  else if (!show && this.isOpen) {
9605
9648
  this.actionSheet.toggle();
9606
9649
  this.ariaActiveDescendantSubscription.unsubscribe();
9607
- this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
9608
- this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
9650
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaActiveDescendant);
9651
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaControls);
9609
9652
  }
9610
9653
  this._show = show;
9611
9654
  }
@@ -9632,13 +9675,13 @@ class DatePickerComponent {
9632
9675
  const focusedCellChangeEvent = this.calendar.type === 'infinite' ?
9633
9676
  this.calendar.monthView.focusedCellChange :
9634
9677
  this.calendar.multiViewCalendar.viewList.focusedCellChange;
9635
- this.ariaActiveDescendantSubscription = focusedCellChangeEvent.subscribe((id) => this.renderer.setAttribute(this.inputElement, attributeNames.ariaActiveDescendant, id));
9678
+ this.ariaActiveDescendantSubscription = focusedCellChangeEvent.subscribe((id) => this.renderer.setAttribute(this.dateInput?.inputElement, attributeNames.ariaActiveDescendant, id));
9636
9679
  }
9637
9680
  focusInput() {
9638
9681
  if (this.touchEnabled) {
9639
9682
  return;
9640
9683
  }
9641
- this.input.focus();
9684
+ this.dateInput.focus();
9642
9685
  }
9643
9686
  toggleFocus() {
9644
9687
  if (!this.isActive) {
@@ -9653,9 +9696,9 @@ class DatePickerComponent {
9653
9696
  }
9654
9697
  }
9655
9698
  else if (!this.touchEnabled) {
9656
- this.input.focus();
9699
+ this.dateInput.focus();
9657
9700
  }
9658
- else if (!this.input.isActive) {
9701
+ else if (!this.dateInput.isActive) {
9659
9702
  this.handleBlur();
9660
9703
  }
9661
9704
  }
@@ -9703,7 +9746,7 @@ class DatePickerComponent {
9703
9746
  const currentTarget = args && currentFocusTarget(args);
9704
9747
  const target = args && args.target;
9705
9748
  const isInsideActionSheet = this.actionSheet && (this.actionSheet.element.nativeElement.contains(target) || this.actionSheet.element.nativeElement.contains(currentTarget));
9706
- if (currentTarget && (this.input.containsElement(currentTarget) ||
9749
+ if (currentTarget && (this.dateInput.containsElement(currentTarget) ||
9707
9750
  (this.calendar && this.calendar.containsElement(currentTarget)) || isInsideActionSheet)) {
9708
9751
  return;
9709
9752
  }
@@ -9838,6 +9881,7 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
9838
9881
  }"
9839
9882
  [scope]="this"
9840
9883
  (collapse)="handleActionSheetCollapse()"
9884
+ [titleId]="calendar?.headerId"
9841
9885
  >
9842
9886
  <ng-template kendoActionSheetTemplate>
9843
9887
  <div class="k-actionsheet-titlebar">
@@ -9906,7 +9950,7 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
9906
9950
  </kendo-calendar-messages>
9907
9951
  </kendo-calendar>
9908
9952
  </ng-template>
9909
- `, 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: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i10.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { 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", "size"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }], directives: [{ type: DatePickerLocalizedMessagesDirective, selector: "[kendoDatePickerLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9953
+ `, 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: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i10.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { 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", "size"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }], directives: [{ type: DatePickerLocalizedMessagesDirective, selector: "[kendoDatePickerLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9910
9954
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DatePickerComponent, decorators: [{
9911
9955
  type: Component,
9912
9956
  args: [{
@@ -10002,6 +10046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10002
10046
  }"
10003
10047
  [scope]="this"
10004
10048
  (collapse)="handleActionSheetCollapse()"
10049
+ [titleId]="calendar?.headerId"
10005
10050
  >
10006
10051
  <ng-template kendoActionSheetTemplate>
10007
10052
  <div class="k-actionsheet-titlebar">
@@ -11813,22 +11858,7 @@ TimeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
11813
11858
  </div>
11814
11859
  </ng-template>
11815
11860
  </div>
11816
- <div class="k-time-footer k-action-buttons k-actions k-actions-stretched" *ngIf="setButton || cancelButton">
11817
- <button
11818
- #cancel
11819
- *ngIf="cancelButton"
11820
- class="k-button k-time-cancel k-button-md k-rounded-md k-button-solid k-button-solid-base"
11821
- type="button"
11822
- [attr.title]="localization.get('cancelLabel')"
11823
- [attr.aria-label]="localization.get('cancelLabel')"
11824
- [kendoEventsOutsideAngular]="{
11825
- click: handleReject,
11826
- focus: handleFocus,
11827
- blur: handleBlur
11828
- }"
11829
- [scope]="this"
11830
- [disabled]="disabled"
11831
- >{{localization.get('cancel')}}</button>
11861
+ <div class="k-time-footer k-actions k-actions-stretched k-actions-horizontal" *ngIf="setButton || cancelButton">
11832
11862
  <button
11833
11863
  #accept
11834
11864
  *ngIf="setButton"
@@ -11845,6 +11875,21 @@ TimeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
11845
11875
  [scope]="this"
11846
11876
  [disabled]="disabled"
11847
11877
  >{{localization.get('accept')}}</button>
11878
+ <button
11879
+ #cancel
11880
+ *ngIf="cancelButton"
11881
+ class="k-button k-time-cancel k-button-md k-rounded-md k-button-solid k-button-solid-base"
11882
+ type="button"
11883
+ [attr.title]="localization.get('cancelLabel')"
11884
+ [attr.aria-label]="localization.get('cancelLabel')"
11885
+ [kendoEventsOutsideAngular]="{
11886
+ click: handleReject,
11887
+ focus: handleFocus,
11888
+ blur: handleBlur
11889
+ }"
11890
+ [scope]="this"
11891
+ [disabled]="disabled"
11892
+ >{{localization.get('cancel')}}</button>
11848
11893
  </div>
11849
11894
  `, isInline: true, components: [{ type: TimeListComponent, selector: "kendo-timelist", inputs: ["min", "max", "part", "step", "disabled", "value", "isLast"], outputs: ["valueChange", "tabOutLastPart"] }], directives: [{ type: TimeSelectorLocalizedMessagesDirective, selector: "[kendoTimeSelectorLocalizedMessages]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11850
11895
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimeSelectorComponent, decorators: [{
@@ -11933,22 +11978,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11933
11978
  </div>
11934
11979
  </ng-template>
11935
11980
  </div>
11936
- <div class="k-time-footer k-action-buttons k-actions k-actions-stretched" *ngIf="setButton || cancelButton">
11937
- <button
11938
- #cancel
11939
- *ngIf="cancelButton"
11940
- class="k-button k-time-cancel k-button-md k-rounded-md k-button-solid k-button-solid-base"
11941
- type="button"
11942
- [attr.title]="localization.get('cancelLabel')"
11943
- [attr.aria-label]="localization.get('cancelLabel')"
11944
- [kendoEventsOutsideAngular]="{
11945
- click: handleReject,
11946
- focus: handleFocus,
11947
- blur: handleBlur
11948
- }"
11949
- [scope]="this"
11950
- [disabled]="disabled"
11951
- >{{localization.get('cancel')}}</button>
11981
+ <div class="k-time-footer k-actions k-actions-stretched k-actions-horizontal" *ngIf="setButton || cancelButton">
11952
11982
  <button
11953
11983
  #accept
11954
11984
  *ngIf="setButton"
@@ -11965,6 +11995,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11965
11995
  [scope]="this"
11966
11996
  [disabled]="disabled"
11967
11997
  >{{localization.get('accept')}}</button>
11998
+ <button
11999
+ #cancel
12000
+ *ngIf="cancelButton"
12001
+ class="k-button k-time-cancel k-button-md k-rounded-md k-button-solid k-button-solid-base"
12002
+ type="button"
12003
+ [attr.title]="localization.get('cancelLabel')"
12004
+ [attr.aria-label]="localization.get('cancelLabel')"
12005
+ [kendoEventsOutsideAngular]="{
12006
+ click: handleReject,
12007
+ focus: handleFocus,
12008
+ blur: handleBlur
12009
+ }"
12010
+ [scope]="this"
12011
+ [disabled]="disabled"
12012
+ >{{localization.get('cancel')}}</button>
11968
12013
  </div>
11969
12014
  `
11970
12015
  }]
@@ -12486,7 +12531,7 @@ class TimePickerComponent {
12486
12531
  this.toggleTimeSelector(show);
12487
12532
  }
12488
12533
  }
12489
- get input() {
12534
+ get dateInput() {
12490
12535
  return this.pickerService.input;
12491
12536
  }
12492
12537
  get timeSelector() {
@@ -12500,7 +12545,7 @@ class TimePickerComponent {
12500
12545
  * Used by the TextBoxContainer to determine if the component is empty
12501
12546
  */
12502
12547
  isEmpty() {
12503
- return !this.value && this.input.isEmpty();
12548
+ return !this.value && this.dateInput.isEmpty();
12504
12549
  }
12505
12550
  /**
12506
12551
  * @hidden
@@ -12535,6 +12580,9 @@ class TimePickerComponent {
12535
12580
  if (changes.format) {
12536
12581
  this.verifyFormat();
12537
12582
  }
12583
+ if (!this.focusableId || changes.focusableId) {
12584
+ this.focusableId = this.dateInput?.focusableId;
12585
+ }
12538
12586
  }
12539
12587
  /**
12540
12588
  * @hidden
@@ -12580,9 +12628,9 @@ class TimePickerComponent {
12580
12628
  this.verifyValue(value);
12581
12629
  this.value = cloneDate(value);
12582
12630
  this.cdr.markForCheck();
12583
- if (!value && this.input) {
12584
- this.input.placeholder = this.placeholder;
12585
- this.input.writeValue(value);
12631
+ if (!value && this.dateInput) {
12632
+ this.dateInput.placeholder = this.placeholder;
12633
+ this.dateInput.writeValue(value);
12586
12634
  }
12587
12635
  }
12588
12636
  /**
@@ -12608,7 +12656,7 @@ class TimePickerComponent {
12608
12656
  * @hidden
12609
12657
  */
12610
12658
  validate(control) {
12611
- return this.timeRangeValidateFn(control) || this.incompleteValidator(control, this.input && this.input.isDateIncomplete);
12659
+ return this.timeRangeValidateFn(control) || this.incompleteValidator(control, this.dateInput && this.dateInput.isDateIncomplete);
12612
12660
  }
12613
12661
  /**
12614
12662
  * @hidden
@@ -12632,13 +12680,13 @@ class TimePickerComponent {
12632
12680
  * ```
12633
12681
  */
12634
12682
  focus() {
12635
- this.input.focus();
12683
+ this.dateInput.focus();
12636
12684
  }
12637
12685
  /**
12638
12686
  * Blurs the TimePicker component.
12639
12687
  */
12640
12688
  blur() {
12641
- (this.timeSelector || this.input)['blur']();
12689
+ (this.timeSelector || this.dateInput)['blur']();
12642
12690
  }
12643
12691
  /**
12644
12692
  * Toggles the visibility of the popup or actionSheet.
@@ -12711,7 +12759,7 @@ class TimePickerComponent {
12711
12759
  * @hidden
12712
12760
  */
12713
12761
  handleInputChange(value) {
12714
- const val = this.input.formatSections['date'] ? value : this.mergeTime(value);
12762
+ const val = this.dateInput.formatSections['date'] ? value : this.mergeTime(value);
12715
12763
  this.handleChange(val);
12716
12764
  }
12717
12765
  /**
@@ -12822,12 +12870,12 @@ class TimePickerComponent {
12822
12870
  this.actionSheet.toggle();
12823
12871
  this.updateActionSheetAdaptiveAppearance();
12824
12872
  this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
12825
- this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
12873
+ this.renderer.setAttribute(this.dateInput?.inputElement, attributeNames.ariaControls, this.popupUID);
12826
12874
  }
12827
12875
  else if (!show && this.isOpen) {
12828
12876
  // Need to disable the pointer events to avoid triggering focus on the timelist when acionsheet close down animation starts
12829
12877
  this.renderer.setStyle(this.timeSelector.element.nativeElement, 'pointer-events', 'none');
12830
- this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
12878
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaControls);
12831
12879
  this.actionSheet.toggle();
12832
12880
  }
12833
12881
  this._show = show;
@@ -12851,13 +12899,13 @@ class TimePickerComponent {
12851
12899
  positionMode: 'absolute'
12852
12900
  });
12853
12901
  this.popupRef.popupElement.setAttribute('id', this.popupUID);
12854
- this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
12902
+ this.renderer.setAttribute(this.dateInput?.inputElement, attributeNames.ariaControls, this.popupUID);
12855
12903
  this.popupRef.popupAnchorViewportLeave.subscribe(() => this.show = false);
12856
12904
  }
12857
12905
  else {
12858
12906
  this.popupRef.close();
12859
12907
  this.popupRef = null;
12860
- this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
12908
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaControls);
12861
12909
  }
12862
12910
  }
12863
12911
  updateActionSheetAdaptiveAppearance() {
@@ -12883,7 +12931,7 @@ class TimePickerComponent {
12883
12931
  if (this.touchEnabled) {
12884
12932
  return;
12885
12933
  }
12886
- this.input.focus();
12934
+ this.dateInput.focus();
12887
12935
  }
12888
12936
  toggleFocus() {
12889
12937
  if (!this.isActive) {
@@ -12898,9 +12946,9 @@ class TimePickerComponent {
12898
12946
  }
12899
12947
  }
12900
12948
  else if (!this.touchEnabled) {
12901
- this.input.focus();
12949
+ this.dateInput.focus();
12902
12950
  }
12903
- else if (!this.input.isActive) {
12951
+ else if (!this.dateInput.isActive) {
12904
12952
  this.handleBlur();
12905
12953
  }
12906
12954
  }
@@ -12949,7 +12997,7 @@ class TimePickerComponent {
12949
12997
  const currentTarget = args && currentFocusTarget(args); // relatedTarget || activeElement
12950
12998
  const target = args && args.target;
12951
12999
  const isInsideActionSheet = this.actionSheet && (this.actionSheet.element.nativeElement.contains(target) || this.actionSheet.element.nativeElement.contains(currentTarget));
12952
- if (currentTarget && (this.input.containsElement(currentTarget) ||
13000
+ if (currentTarget && (this.dateInput.containsElement(currentTarget) ||
12953
13001
  (this.timeSelector && this.timeSelector.containsElement(currentTarget)) || isInsideActionSheet)) {
12954
13002
  return;
12955
13003
  }
@@ -13096,6 +13144,7 @@ TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
13096
13144
  #actionSheet
13097
13145
  (overlayClick)="show=false"
13098
13146
  (collapse)="handleActionSheetCollapse()"
13147
+ [titleId]="focusableId"
13099
13148
  >
13100
13149
  <ng-template kendoActionSheetTemplate>
13101
13150
  <div class="k-actionsheet-titlebar">
@@ -13184,7 +13233,7 @@ TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
13184
13233
  </kendo-timeselector-messages>
13185
13234
  </kendo-timeselector>
13186
13235
  </ng-template>
13187
- `, 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: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i10.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart"], exportAs: ["kendo-timeselector"] }, { type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13236
+ `, 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: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i10.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart"], exportAs: ["kendo-timeselector"] }, { type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13188
13237
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TimePickerComponent, decorators: [{
13189
13238
  type: Component,
13190
13239
  args: [{
@@ -13298,6 +13347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13298
13347
  #actionSheet
13299
13348
  (overlayClick)="show=false"
13300
13349
  (collapse)="handleActionSheetCollapse()"
13350
+ [titleId]="focusableId"
13301
13351
  >
13302
13352
  <ng-template kendoActionSheetTemplate>
13303
13353
  <div class="k-actionsheet-titlebar">
@@ -13772,15 +13822,9 @@ class DateTimePickerComponent {
13772
13822
  /**
13773
13823
  * @hidden
13774
13824
  */
13775
- get input() {
13825
+ get dateInput() {
13776
13826
  return this.pickerService.input;
13777
13827
  }
13778
- /**
13779
- * @hidden
13780
- */
13781
- get inputElement() {
13782
- return this.wrapper.nativeElement.querySelector('input');
13783
- }
13784
13828
  /**
13785
13829
  * @hidden
13786
13830
  */
@@ -14133,6 +14177,9 @@ class DateTimePickerComponent {
14133
14177
  this.incompleteValidator = this.incompleteDateValidation ? incompleteDateValidator() : noop$2;
14134
14178
  this.onValidatorChange();
14135
14179
  }
14180
+ if (!this.focusableId || changes['focusableId']) {
14181
+ this.focusableId = this.dateInput?.focusableId;
14182
+ }
14136
14183
  }
14137
14184
  ngOnDestroy() {
14138
14185
  if (this.isOpen) {
@@ -14152,7 +14199,7 @@ class DateTimePickerComponent {
14152
14199
  this.activeTabComponent.focus();
14153
14200
  }
14154
14201
  else {
14155
- this.input.focus();
14202
+ this.dateInput.focus();
14156
14203
  }
14157
14204
  }
14158
14205
  /**
@@ -14163,7 +14210,7 @@ class DateTimePickerComponent {
14163
14210
  this.activeTabComponent.blur();
14164
14211
  }
14165
14212
  else {
14166
- this.input.blur();
14213
+ this.dateInput.blur();
14167
14214
  }
14168
14215
  }
14169
14216
  /**
@@ -14215,7 +14262,7 @@ class DateTimePickerComponent {
14215
14262
  * @hidden
14216
14263
  */
14217
14264
  validate(control) {
14218
- return this.minValidateFn(control) || this.maxValidateFn(control) || this.disabledDatesValidateFn(control) || this.incompleteValidator(control, this.input && this.input.isDateIncomplete);
14265
+ return this.minValidateFn(control) || this.maxValidateFn(control) || this.disabledDatesValidateFn(control) || this.incompleteValidator(control, this.dateInput && this.dateInput.isDateIncomplete);
14219
14266
  }
14220
14267
  /**
14221
14268
  * @hidden
@@ -14229,7 +14276,7 @@ class DateTimePickerComponent {
14229
14276
  * Used by the TextBoxContainer to determine if the floating label will render in the input.
14230
14277
  */
14231
14278
  isEmpty() {
14232
- return !isPresent(this.value) && this.input.isEmpty();
14279
+ return !isPresent(this.value) && this.dateInput.isEmpty();
14233
14280
  }
14234
14281
  /**
14235
14282
  * @hidden
@@ -14302,7 +14349,7 @@ class DateTimePickerComponent {
14302
14349
  return;
14303
14350
  }
14304
14351
  if (this.activeTab === 'time') {
14305
- this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
14352
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaActiveDescendant);
14306
14353
  }
14307
14354
  this.activeTabComponent.focus();
14308
14355
  }
@@ -14447,7 +14494,6 @@ class DateTimePickerComponent {
14447
14494
  this.cdr.markForCheck();
14448
14495
  // Reset tabs after actionsheet is collapsed, otherwise the tab change can be seen during the animation
14449
14496
  this.resetActiveTab();
14450
- this.input.focus();
14451
14497
  }
14452
14498
  /**
14453
14499
  * @hidden
@@ -14479,14 +14525,14 @@ class DateTimePickerComponent {
14479
14525
  this.actionSheet.toggle();
14480
14526
  this.updateActionSheetAdaptiveAppearance();
14481
14527
  this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
14482
- this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
14528
+ this.renderer.setAttribute(this.dateInput?.inputElement, attributeNames.ariaControls, this.popupUID);
14483
14529
  this.setAriaActiveDescendant();
14484
14530
  }
14485
14531
  else if (isPresent(show) && !show && this.isOpen) {
14486
14532
  this.actionSheet.toggle();
14487
14533
  this.ariaActiveDescendantSubscription.unsubscribe();
14488
- this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant);
14489
- this.renderer.removeAttribute(this.input.inputElement, attributeNames.ariaControls);
14534
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaActiveDescendant);
14535
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaControls);
14490
14536
  }
14491
14537
  }
14492
14538
  updateActionSheetAdaptiveAppearance() {
@@ -14601,9 +14647,9 @@ class DateTimePickerComponent {
14601
14647
  this.activeTabComponent.focus();
14602
14648
  }
14603
14649
  else if (!this.touchEnabled) {
14604
- this.input.focus();
14650
+ this.dateInput.focus();
14605
14651
  }
14606
- else if (!this.input.isActive) {
14652
+ else if (!this.dateInput.isActive) {
14607
14653
  this.handleBlur();
14608
14654
  }
14609
14655
  }
@@ -14622,7 +14668,7 @@ class DateTimePickerComponent {
14622
14668
  popupAlign: { vertical: 'top', horizontal: direction }
14623
14669
  });
14624
14670
  this.popupRef.popupElement.setAttribute('id', this.popupUID);
14625
- this.renderer.setAttribute(this.inputElement, attributeNames.ariaControls, this.popupUID);
14671
+ this.renderer.setAttribute(this.dateInput?.inputElement, attributeNames.ariaControls, this.popupUID);
14626
14672
  this.setAriaActiveDescendant();
14627
14673
  this.popupRef.popupAnchorViewportLeave.subscribe(() => this.handleCancel());
14628
14674
  if (this.calendar.type === 'infinite') {
@@ -14639,15 +14685,15 @@ class DateTimePickerComponent {
14639
14685
  const focusedCellChangeEvent = this.calendar.type === 'infinite' ?
14640
14686
  this.calendar.monthView.focusedCellChange :
14641
14687
  this.calendar.multiViewCalendar.viewList.focusedCellChange;
14642
- this.ariaActiveDescendantSubscription = focusedCellChangeEvent.subscribe((id) => this.renderer.setAttribute(this.input.inputElement, attributeNames.ariaActiveDescendant, id));
14688
+ this.ariaActiveDescendantSubscription = focusedCellChangeEvent.subscribe((id) => this.renderer.setAttribute(this.dateInput?.inputElement, attributeNames.ariaActiveDescendant, id));
14643
14689
  }
14644
14690
  closePopup() {
14645
14691
  if (!this.isOpen) {
14646
14692
  return;
14647
14693
  }
14648
14694
  this.ariaActiveDescendantSubscription.unsubscribe();
14649
- this.renderer.removeAttribute(this.inputElement, attributeNames.ariaControls);
14650
- this.renderer.removeAttribute(this.inputElement, attributeNames.ariaActiveDescendant);
14695
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaControls);
14696
+ this.renderer.removeAttribute(this.dateInput?.inputElement, attributeNames.ariaActiveDescendant);
14651
14697
  this.popupRef.close();
14652
14698
  this.popupRef = null;
14653
14699
  }
@@ -14867,6 +14913,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
14867
14913
  #actionSheet
14868
14914
  (overlayClick)="toggleDateTime(false)"
14869
14915
  (collapse)="handleActionSheetCollapse()"
14916
+ [titleId]="calendar?.headerId"
14870
14917
  >
14871
14918
  <ng-template kendoActionSheetTemplate>
14872
14919
  <div class="k-actionsheet-titlebar">
@@ -14976,6 +15023,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
14976
15023
  >
14977
15024
  <div class="k-datetime-calendar-wrap">
14978
15025
  <kendo-calendar
15026
+ #calendar
14979
15027
  [ngClass]="{'k-calendar-lg': isAdaptive}"
14980
15028
  [focusedDate]="focusedDate"
14981
15029
  [(value)]="calendarValue"
@@ -15038,7 +15086,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
15038
15086
  </div>
15039
15087
  <div
15040
15088
  *ngIf="!isAdaptive"
15041
- class="k-datetime-footer k-action-buttons k-actions k-hstack k-justify-content-stretch"
15089
+ class="k-datetime-footer k-actions k-actions-stretched k-actions-horizontal"
15042
15090
  [kendoEventsOutsideAngular]="{
15043
15091
  focusin: handleFocus,
15044
15092
  focusout: handleBlur
@@ -15046,39 +15094,39 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
15046
15094
  [scope]="this"
15047
15095
  >
15048
15096
  <button
15049
- *ngIf="cancelButton"
15050
15097
  type="button"
15051
- class="k-button k-time-cancel"
15052
- [ngClass]="popupButtonsClasses()"
15053
- [attr.title]="localization.get('cancelLabel')"
15054
- [attr.aria-label]="localization.get('cancelLabel')"
15098
+ class="k-button k-time-accept"
15099
+ [ngClass]="popupButtonsClasses('primary')"
15100
+ [attr.title]="localization.get('acceptLabel')"
15101
+ [attr.aria-label]="localization.get('acceptLabel')"
15102
+ [disabled]="!calendarValue"
15055
15103
  [kendoEventsOutsideAngular]="{
15056
- click: handleCancel,
15104
+ click: handleAccept,
15057
15105
  'keydown.tab': handleTab
15058
15106
  }"
15059
15107
  [scope]="this"
15060
15108
  >
15061
- {{localization.get('cancel')}}
15109
+ {{localization.get('accept')}}
15062
15110
  </button>
15063
15111
  <button
15112
+ *ngIf="cancelButton"
15064
15113
  type="button"
15065
- class="k-button k-time-accept"
15066
- [ngClass]="popupButtonsClasses('primary')"
15067
- [attr.title]="localization.get('acceptLabel')"
15068
- [attr.aria-label]="localization.get('acceptLabel')"
15069
- [disabled]="!calendarValue"
15114
+ class="k-button k-time-cancel"
15115
+ [ngClass]="popupButtonsClasses()"
15116
+ [attr.title]="localization.get('cancelLabel')"
15117
+ [attr.aria-label]="localization.get('cancelLabel')"
15070
15118
  [kendoEventsOutsideAngular]="{
15071
- click: handleAccept,
15119
+ click: handleCancel,
15072
15120
  'keydown.tab': handleTab
15073
15121
  }"
15074
15122
  [scope]="this"
15075
15123
  >
15076
- {{localization.get('accept')}}
15124
+ {{localization.get('cancel')}}
15077
15125
  </button>
15078
15126
  </div>
15079
15127
  </div>
15080
15128
  </ng-template>
15081
- `, 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: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i10.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { 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", "size"], 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", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart"], exportAs: ["kendo-timeselector"] }, { type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15129
+ `, 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: i7$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i10.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { 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", "size"], 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", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart"], exportAs: ["kendo-timeselector"] }, { type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }, { type: i8.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15082
15130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateTimePickerComponent, decorators: [{
15083
15131
  type: Component,
15084
15132
  args: [{
@@ -15229,6 +15277,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15229
15277
  #actionSheet
15230
15278
  (overlayClick)="toggleDateTime(false)"
15231
15279
  (collapse)="handleActionSheetCollapse()"
15280
+ [titleId]="calendar?.headerId"
15232
15281
  >
15233
15282
  <ng-template kendoActionSheetTemplate>
15234
15283
  <div class="k-actionsheet-titlebar">
@@ -15338,6 +15387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15338
15387
  >
15339
15388
  <div class="k-datetime-calendar-wrap">
15340
15389
  <kendo-calendar
15390
+ #calendar
15341
15391
  [ngClass]="{'k-calendar-lg': isAdaptive}"
15342
15392
  [focusedDate]="focusedDate"
15343
15393
  [(value)]="calendarValue"
@@ -15400,7 +15450,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15400
15450
  </div>
15401
15451
  <div
15402
15452
  *ngIf="!isAdaptive"
15403
- class="k-datetime-footer k-action-buttons k-actions k-hstack k-justify-content-stretch"
15453
+ class="k-datetime-footer k-actions k-actions-stretched k-actions-horizontal"
15404
15454
  [kendoEventsOutsideAngular]="{
15405
15455
  focusin: handleFocus,
15406
15456
  focusout: handleBlur
@@ -15408,34 +15458,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
15408
15458
  [scope]="this"
15409
15459
  >
15410
15460
  <button
15411
- *ngIf="cancelButton"
15412
15461
  type="button"
15413
- class="k-button k-time-cancel"
15414
- [ngClass]="popupButtonsClasses()"
15415
- [attr.title]="localization.get('cancelLabel')"
15416
- [attr.aria-label]="localization.get('cancelLabel')"
15462
+ class="k-button k-time-accept"
15463
+ [ngClass]="popupButtonsClasses('primary')"
15464
+ [attr.title]="localization.get('acceptLabel')"
15465
+ [attr.aria-label]="localization.get('acceptLabel')"
15466
+ [disabled]="!calendarValue"
15417
15467
  [kendoEventsOutsideAngular]="{
15418
- click: handleCancel,
15468
+ click: handleAccept,
15419
15469
  'keydown.tab': handleTab
15420
15470
  }"
15421
15471
  [scope]="this"
15422
15472
  >
15423
- {{localization.get('cancel')}}
15473
+ {{localization.get('accept')}}
15424
15474
  </button>
15425
15475
  <button
15476
+ *ngIf="cancelButton"
15426
15477
  type="button"
15427
- class="k-button k-time-accept"
15428
- [ngClass]="popupButtonsClasses('primary')"
15429
- [attr.title]="localization.get('acceptLabel')"
15430
- [attr.aria-label]="localization.get('acceptLabel')"
15431
- [disabled]="!calendarValue"
15478
+ class="k-button k-time-cancel"
15479
+ [ngClass]="popupButtonsClasses()"
15480
+ [attr.title]="localization.get('cancelLabel')"
15481
+ [attr.aria-label]="localization.get('cancelLabel')"
15432
15482
  [kendoEventsOutsideAngular]="{
15433
- click: handleAccept,
15483
+ click: handleCancel,
15434
15484
  'keydown.tab': handleTab
15435
15485
  }"
15436
15486
  [scope]="this"
15437
15487
  >
15438
- {{localization.get('accept')}}
15488
+ {{localization.get('cancel')}}
15439
15489
  </button>
15440
15490
  </div>
15441
15491
  </div>
@@ -15653,14 +15703,14 @@ class DateRangeService {
15653
15703
  * Gets the start input element.
15654
15704
  */
15655
15705
  get inputStartElement() {
15656
- return this.startInput$.value.dateInput.nativeElement;
15706
+ return this.startInput$.value.inputElement;
15657
15707
  }
15658
15708
  /**
15659
15709
  * @hidden
15660
15710
  * Gets the end input element.
15661
15711
  */
15662
15712
  get inputEndElement() {
15663
- return this.endInput$.value.dateInput.nativeElement;
15713
+ return this.endInput$.value.inputElement;
15664
15714
  }
15665
15715
  /**
15666
15716
  * Activates the registered `DateRangePopup` component.
@@ -16068,10 +16118,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16068
16118
  * ```
16069
16119
  */
16070
16120
  class DateRangePopupComponent {
16071
- constructor(popupService, dateRangeService, ref, zone, renderer, localization, cdr, rtl) {
16121
+ constructor(popupService, dateRangeService, zone, renderer, localization, cdr, rtl) {
16072
16122
  this.popupService = popupService;
16073
16123
  this.dateRangeService = dateRangeService;
16074
- this.ref = ref;
16075
16124
  this.zone = zone;
16076
16125
  this.renderer = renderer;
16077
16126
  this.localization = localization;
@@ -16214,8 +16263,16 @@ class DateRangePopupComponent {
16214
16263
  }
16215
16264
  }
16216
16265
  ngAfterViewInit() {
16217
- this.calendarSubscriptions.add(this.contentCalendar.changes.subscribe((changes) => this.calendar = changes.first));
16218
- this.calendarSubscriptions.add(this.viewCalendar.changes.subscribe((changes) => this.calendar = changes.first));
16266
+ this.calendarSubscriptions.add(this.contentCalendar.changes.subscribe((changes) => {
16267
+ this.calendar = changes.first;
16268
+ this.actionSheet.titleId = changes.first?.headerId;
16269
+ this.cdr.detectChanges();
16270
+ }));
16271
+ this.calendarSubscriptions.add(this.viewCalendar.changes.subscribe((changes) => {
16272
+ this.calendar = changes.first;
16273
+ this.actionSheet.titleId = changes.first?.headerId;
16274
+ this.cdr.detectChanges();
16275
+ }));
16219
16276
  if (isWindowAvailable()) {
16220
16277
  this.zone.runOutsideAngular(() => this.windowBlurSubscription = fromEvent(window, 'blur').subscribe(this.handleWindowBlur.bind(this)));
16221
16278
  }
@@ -16246,7 +16303,7 @@ class DateRangePopupComponent {
16246
16303
  this.activateSubscription.unsubscribe();
16247
16304
  }
16248
16305
  this.show = true;
16249
- this.ref.markForCheck();
16306
+ this.cdr.markForCheck();
16250
16307
  this.zone.runOutsideAngular(() => {
16251
16308
  this.activateSubscription = merge(this.contentCalendar.changes, this.viewCalendar.changes)
16252
16309
  .pipe(filter(changes => changes && changes.first), map(changes => changes.first))
@@ -16321,6 +16378,48 @@ class DateRangePopupComponent {
16321
16378
  }
16322
16379
  this.windowSize = windowSize();
16323
16380
  }
16381
+ /**
16382
+ * @hidden
16383
+ */
16384
+ closePopup(event) {
16385
+ event.preventDefault();
16386
+ event.stopPropagation();
16387
+ this.toggle(false);
16388
+ if (this.dateRangeService.activeRangeEnd === 'start' || !this.dateRangeService.activeRangeEnd) {
16389
+ this.dateRangeService.startInput$.value.focus();
16390
+ }
16391
+ else {
16392
+ this.dateRangeService.endInput$.value.focus();
16393
+ }
16394
+ ;
16395
+ }
16396
+ /**
16397
+ * @hidden
16398
+ */
16399
+ handleTab(event) {
16400
+ event.preventDefault();
16401
+ event.stopPropagation();
16402
+ if (this.dateRangeService.activeRangeEnd === 'start' || !this.dateRangeService.activeRangeEnd) {
16403
+ this.dateRangeService.setActiveRangeEnd('end');
16404
+ }
16405
+ else {
16406
+ this.dateRangeService.endInput$.value.focus();
16407
+ }
16408
+ }
16409
+ ;
16410
+ /**
16411
+ * @hidden
16412
+ */
16413
+ handleShiftTab(event) {
16414
+ event.preventDefault();
16415
+ event.stopPropagation();
16416
+ if (this.dateRangeService.activeRangeEnd === 'end') {
16417
+ this.dateRangeService.setActiveRangeEnd('start');
16418
+ }
16419
+ else {
16420
+ this.dateRangeService.startInput$.value.focus();
16421
+ }
16422
+ }
16324
16423
  handleWindowBlur() {
16325
16424
  if (!this.show || this.actionSheet.expanded) {
16326
16425
  return;
@@ -16441,7 +16540,7 @@ class DateRangePopupComponent {
16441
16540
  }
16442
16541
  }
16443
16542
  }
16444
- DateRangePopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateRangePopupComponent, deps: [{ token: i1$2.PopupService }, { token: DateRangeService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: RTL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
16543
+ DateRangePopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateRangePopupComponent, deps: [{ token: i1$2.PopupService }, { token: DateRangeService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: RTL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
16445
16544
  DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DateRangePopupComponent, selector: "kendo-daterange-popup", inputs: { animate: "animate", anchor: "anchor", anchorAlign: "anchorAlign", appendTo: "appendTo", collision: "collision", popupAlign: "popupAlign", margin: "margin", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle" }, outputs: { open: "open", close: "close", onBlur: "blur", onFocus: "focus", cancel: "cancel" }, providers: [
16446
16545
  LocalizationService,
16447
16546
  {
@@ -16465,10 +16564,10 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
16465
16564
  </ng-container>
16466
16565
  <ng-container #container></ng-container>
16467
16566
  <ng-template #defaultTemplate>
16468
- <kendo-multiviewcalendar kendoDateRangeSelection></kendo-multiviewcalendar>
16567
+ <kendo-multiviewcalendar kendoDateRangeSelection (onClosePopup)="closePopup($event)" (onTabPress)="handleTab($event)" (onShiftTabPress)="handleShiftTab($event)"></kendo-multiviewcalendar>
16469
16568
  </ng-template>
16470
16569
 
16471
- <kendo-actionsheet
16570
+ <kendo-actionsheet
16472
16571
  #actionSheet
16473
16572
  (overlayClick)="show=false"
16474
16573
  (collapse)="onBlur.emit()"
@@ -16505,7 +16604,6 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
16505
16604
  <kendo-multiviewcalendar
16506
16605
  class="k-calendar-lg"
16507
16606
  orientation="vertical"
16508
- #test
16509
16607
  kendoDateRangeSelection
16510
16608
  [shouldSetRange]="false">
16511
16609
  </kendo-multiviewcalendar>
@@ -16533,7 +16631,7 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
16533
16631
  </div>
16534
16632
  </ng-template>
16535
16633
  </kendo-actionsheet>
16536
- `, 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"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i10.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: DateRangePopupLocalizedMessagesDirective, selector: "[kendoDateRangePopupLocalizedMessages]" }, { type: DateRangeSelectionDirective, selector: "[kendoDateRangeSelection]", inputs: ["autoCorrectOn", "selectionRange", "activeRangeEnd", "shouldSetRange"], outputs: ["activeRangeEndChange", "selectionRangeChange"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
16634
+ `, 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", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { type: i9.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { type: i8.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i10.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: DateRangePopupLocalizedMessagesDirective, selector: "[kendoDateRangePopupLocalizedMessages]" }, { type: DateRangeSelectionDirective, selector: "[kendoDateRangeSelection]", inputs: ["autoCorrectOn", "selectionRange", "activeRangeEnd", "shouldSetRange"], outputs: ["activeRangeEndChange", "selectionRangeChange"] }, { type: i9.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
16537
16635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateRangePopupComponent, decorators: [{
16538
16636
  type: Component,
16539
16637
  args: [{
@@ -16563,10 +16661,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16563
16661
  </ng-container>
16564
16662
  <ng-container #container></ng-container>
16565
16663
  <ng-template #defaultTemplate>
16566
- <kendo-multiviewcalendar kendoDateRangeSelection></kendo-multiviewcalendar>
16664
+ <kendo-multiviewcalendar kendoDateRangeSelection (onClosePopup)="closePopup($event)" (onTabPress)="handleTab($event)" (onShiftTabPress)="handleShiftTab($event)"></kendo-multiviewcalendar>
16567
16665
  </ng-template>
16568
16666
 
16569
- <kendo-actionsheet
16667
+ <kendo-actionsheet
16570
16668
  #actionSheet
16571
16669
  (overlayClick)="show=false"
16572
16670
  (collapse)="onBlur.emit()"
@@ -16603,7 +16701,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16603
16701
  <kendo-multiviewcalendar
16604
16702
  class="k-calendar-lg"
16605
16703
  orientation="vertical"
16606
- #test
16607
16704
  kendoDateRangeSelection
16608
16705
  [shouldSetRange]="false">
16609
16706
  </kendo-multiviewcalendar>
@@ -16633,7 +16730,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
16633
16730
  </kendo-actionsheet>
16634
16731
  `
16635
16732
  }]
16636
- }], ctorParameters: function () { return [{ type: i1$2.PopupService }, { type: DateRangeService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
16733
+ }], ctorParameters: function () { return [{ type: i1$2.PopupService }, { type: DateRangeService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
16637
16734
  type: Optional
16638
16735
  }, {
16639
16736
  type: Inject,
@@ -16804,7 +16901,6 @@ class DateRangeInput {
16804
16901
  }
16805
16902
  [
16806
16903
  this.input.onBlur.subscribe(() => this.deactivate()),
16807
- this.input.onFocus.pipe(filter(() => !this.popupCalendarActivated)).subscribe(() => this.activate()),
16808
16904
  this.input.valueUpdate.subscribe(value => this.updateRange(value, 'change')),
16809
16905
  this.dateRangeService.activeRangeEnd$.subscribe(() => {
16810
16906
  if (this.navigateCalendarOnFocus) {