@progress/kendo-angular-dateinputs 5.3.1-dev.202112011809 → 6.0.0-dev.202201181611

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 (78) hide show
  1. package/LICENSE.md +1 -1
  2. package/NOTICE.txt +119 -79
  3. package/README.md +1 -1
  4. package/dist/cdn/js/kendo-angular-dateinputs.js +2 -2
  5. package/dist/cdn/main.js +1 -1
  6. package/dist/es/calendar/calendar.component.js +14 -2
  7. package/dist/es/calendar/header.component.js +1 -1
  8. package/dist/es/calendar/multiview-calendar.component.js +28 -12
  9. package/dist/es/calendar/multiview-calendar.module.js +9 -1
  10. package/dist/es/calendar/services/dom.service.js +1 -1
  11. package/dist/es/calendar/view.component.js +1 -1
  12. package/dist/es/common/models/fillmode.js +4 -0
  13. package/dist/es/common/models/rounded.js +4 -0
  14. package/dist/es/common/models/size.js +4 -0
  15. package/dist/es/dateinput/dateinput.component.js +143 -18
  16. package/dist/es/datepicker/datepicker.component.js +130 -13
  17. package/dist/es/daterange/date-range-input.js +1 -1
  18. package/dist/es/datetimepicker/datetimepicker.component.js +147 -11
  19. package/dist/es/package-metadata.js +1 -1
  20. package/dist/es/timepicker/services/dom.service.js +12 -8
  21. package/dist/es/timepicker/timelist.component.js +3 -2
  22. package/dist/es/timepicker/timepicker.component.js +130 -13
  23. package/dist/es/timepicker/timeselector.component.js +2 -2
  24. package/dist/es/util.js +37 -0
  25. package/dist/es2015/calendar/calendar.component.d.ts +7 -0
  26. package/dist/es2015/calendar/calendar.component.js +14 -2
  27. package/dist/es2015/calendar/header.component.js +4 -4
  28. package/dist/es2015/calendar/multiview-calendar.component.d.ts +8 -2
  29. package/dist/es2015/calendar/multiview-calendar.component.js +31 -11
  30. package/dist/es2015/calendar/multiview-calendar.module.js +9 -1
  31. package/dist/es2015/calendar/services/dom.service.js +1 -1
  32. package/dist/es2015/calendar/view.component.js +1 -1
  33. package/dist/es2015/common/models/fillmode.d.ts +14 -0
  34. package/dist/es2015/common/models/fillmode.js +4 -0
  35. package/dist/es2015/common/models/rounded.d.ts +15 -0
  36. package/dist/es2015/common/models/rounded.js +4 -0
  37. package/dist/es2015/common/models/size.d.ts +14 -0
  38. package/dist/es2015/common/models/size.js +4 -0
  39. package/dist/es2015/dateinput/dateinput.component.d.ts +49 -8
  40. package/dist/es2015/dateinput/dateinput.component.js +183 -68
  41. package/dist/es2015/datepicker/datepicker.component.d.ts +47 -5
  42. package/dist/es2015/datepicker/datepicker.component.js +155 -49
  43. package/dist/es2015/daterange/date-range-input.js +1 -1
  44. package/dist/es2015/datetimepicker/datetimepicker.component.d.ts +56 -6
  45. package/dist/es2015/datetimepicker/datetimepicker.component.js +186 -63
  46. package/dist/es2015/index.metadata.json +1 -1
  47. package/dist/es2015/package-metadata.js +1 -1
  48. package/dist/es2015/timepicker/services/dom.service.d.ts +1 -0
  49. package/dist/es2015/timepicker/services/dom.service.js +12 -8
  50. package/dist/es2015/timepicker/timelist.component.js +3 -2
  51. package/dist/es2015/timepicker/timepicker.component.d.ts +50 -5
  52. package/dist/es2015/timepicker/timepicker.component.js +174 -69
  53. package/dist/es2015/timepicker/timeselector.component.js +7 -5
  54. package/dist/es2015/util.d.ts +18 -0
  55. package/dist/es2015/util.js +37 -0
  56. package/dist/fesm2015/index.js +821 -290
  57. package/dist/fesm5/index.js +663 -92
  58. package/dist/npm/calendar/calendar.component.js +14 -2
  59. package/dist/npm/calendar/header.component.js +1 -1
  60. package/dist/npm/calendar/multiview-calendar.component.js +27 -11
  61. package/dist/npm/calendar/multiview-calendar.module.js +9 -1
  62. package/dist/npm/calendar/services/dom.service.js +1 -1
  63. package/dist/npm/calendar/view.component.js +1 -1
  64. package/dist/npm/common/models/fillmode.js +6 -0
  65. package/dist/npm/common/models/rounded.js +6 -0
  66. package/dist/npm/common/models/size.js +6 -0
  67. package/dist/npm/dateinput/dateinput.component.js +142 -17
  68. package/dist/npm/datepicker/datepicker.component.js +129 -12
  69. package/dist/npm/daterange/date-range-input.js +1 -1
  70. package/dist/npm/datetimepicker/datetimepicker.component.js +146 -10
  71. package/dist/npm/package-metadata.js +1 -1
  72. package/dist/npm/timepicker/services/dom.service.js +15 -10
  73. package/dist/npm/timepicker/timelist.component.js +3 -2
  74. package/dist/npm/timepicker/timepicker.component.js +129 -12
  75. package/dist/npm/timepicker/timeselector.component.js +2 -2
  76. package/dist/npm/util.js +37 -0
  77. package/dist/systemjs/kendo-angular-dateinputs.js +1 -1
  78. package/package.json +2 -2
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { __decorate, __metadata, __param, __extends } from 'tslib';
6
- import { Injectable, Injector, EventEmitter, Input, TemplateRef, Output, HostBinding, Component, ChangeDetectionStrategy, ChangeDetectorRef, ElementRef, Renderer2, isDevMode, Directive, forwardRef, ContentChild, ViewChild, HostListener, NgZone, InjectionToken, Inject, Optional, ViewContainerRef, ViewChildren, QueryList, ContentChildren, IterableDiffers, NgModule } from '@angular/core';
6
+ import { Injectable, Injector, EventEmitter, Input, TemplateRef, Output, HostBinding, Component, ChangeDetectionStrategy, ChangeDetectorRef, ElementRef, Renderer2, isDevMode, Directive, forwardRef, ContentChild, ViewChild, HostListener, Optional, NgZone, InjectionToken, Inject, ViewContainerRef, ViewChildren, QueryList, ContentChildren, IterableDiffers, NgModule } from '@angular/core';
7
7
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, NgControl } from '@angular/forms';
8
8
  import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
9
9
  import { getDate, isEqual, cloneDate, addDays, addDecades, addCenturies, firstDecadeOfCentury, lastDecadeOfCentury, firstYearOfDecade, createDate, lastYearOfDecade, lastMonthOfYear, lastDayOfMonth, durationInCenturies, addYears, durationInDecades, addWeeks, addMonths, firstDayOfMonth, dayOfWeek, durationInMonths, firstMonthOfYear, durationInYears, weekInYear } from '@progress/kendo-date-math';
@@ -23,7 +23,7 @@ var packageMetadata = {
23
23
  name: '@progress/kendo-angular-dateinputs',
24
24
  productName: 'Kendo UI for Angular',
25
25
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
26
- publishDate: 1638381906,
26
+ publishDate: 1642521990,
27
27
  version: '',
28
28
  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'
29
29
  };
@@ -449,6 +449,43 @@ var isTabExitingCalendar = function (calendarType, focusedElement, shiftKey) {
449
449
  (!shiftKey && focusedElement.classList.contains('k-next-view')) // exited on next button focused and regular tab
450
450
  );
451
451
  };
452
+ /**
453
+ * @hidden
454
+ * Returns the size class based on the component and size input.
455
+ */
456
+ var getSizeClass = function (component, size) {
457
+ var SIZE_CLASSES = {
458
+ 'small': "k-" + component + "-sm",
459
+ 'medium': "k-" + component + "-md",
460
+ 'large': "k-" + component + "-lg"
461
+ };
462
+ return SIZE_CLASSES[size];
463
+ };
464
+ /**
465
+ * @hidden
466
+ * Returns the rounded class based on the rounded input.
467
+ */
468
+ var getRoundedClass = function (rounded) {
469
+ var ROUNDED_CLASSES = {
470
+ 'small': 'k-rounded-sm',
471
+ 'medium': 'k-rounded-md',
472
+ 'large': 'k-rounded-lg',
473
+ 'full': 'k-rounded-full'
474
+ };
475
+ return ROUNDED_CLASSES[rounded];
476
+ };
477
+ /**
478
+ * @hidden
479
+ * Return the fillMode class based on the component and fillMode input.
480
+ */
481
+ var getFillModeClass = function (component, fillMode) {
482
+ var FILLMODE_CLASSES = {
483
+ 'solid': "k-" + component + "-solid",
484
+ 'flat': "k-" + component + "-flat",
485
+ 'outline': "k-" + component + "-outline"
486
+ };
487
+ return FILLMODE_CLASSES[fillMode];
488
+ };
452
489
 
453
490
  var _a;
454
491
  var EMPTY_DATA = [[]];
@@ -1814,7 +1851,7 @@ var HeaderComponent = /** @class */ (function () {
1814
1851
  HeaderComponent = __decorate([
1815
1852
  Component({
1816
1853
  selector: 'kendo-calendar-header',
1817
- template: "\n <span class=\"k-button k-flat k-title k-calendar-title\" [class.k-state-disabled]=\"!navigate\"\n [kendoEventsOutsideAngular]=\"{\n click: handleNavigation\n }\"\n [scope]=\"this\">\n <ng-template [ngIf]=\"!templateRef\">{{title}}</ng-template>\n <ng-template\n [ngIf]=\"templateRef\"\n [ngTemplateOutlet]=\"templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: title, activeView: activeViewValue, date: currentDate }\"\n ></ng-template>\n </span>\n <span class=\"k-spacer\"></span>\n <span class=\"k-calendar-nav k-hstack\">\n <button\n *ngIf=\"showNavigationButtons\"\n class=\"k-button k-flat k-icon-button k-prev-view\"\n type=\"button\"\n [attr.aria-disabled]=\"isPrevDisabled\"\n [disabled]=\"isPrevDisabled\"\n [title]=\"prevButtonTitle\"\n (click)=\"prevButtonClick.emit()\"\n >\n <span class=\"k-icon k-i-arrow-60-left\"></span>\n </button>\n <span\n class=\"k-today k-nav-today\"\n [class.k-state-disabled]=\"!todayAvailable\"\n [kendoEventsOutsideAngular]=\"{\n click: handleTodayClick\n }\"\n [scope]=\"this\"\n >\n {{ todayMessage }}\n </span>\n <button\n *ngIf=\"showNavigationButtons\"\n class=\"k-button k-flat k-icon-button k-next-view\"\n type=\"button\"\n [attr.aria-disabled]=\"isNextDisabled\"\n [disabled]=\"isNextDisabled\"\n [title]=\"nextButtonTitle\"\n (click)=\"nextButtonClick.emit()\"\n >\n <span class=\"k-icon k-i-arrow-60-right\"></span>\n </button>\n </span>\n "
1854
+ template: "\n <span class=\"k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-calendar-title\" [class.k-disabled]=\"!navigate\"\n [kendoEventsOutsideAngular]=\"{\n click: handleNavigation\n }\"\n [scope]=\"this\">\n <ng-template [ngIf]=\"!templateRef\">{{title}}</ng-template>\n <ng-template\n [ngIf]=\"templateRef\"\n [ngTemplateOutlet]=\"templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: title, activeView: activeViewValue, date: currentDate }\"\n ></ng-template>\n </span>\n <span class=\"k-spacer\"></span>\n <span class=\"k-calendar-nav k-hstack\">\n <button\n *ngIf=\"showNavigationButtons\"\n class=\"k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-icon-button k-prev-view\"\n type=\"button\"\n [attr.aria-disabled]=\"isPrevDisabled\"\n [disabled]=\"isPrevDisabled\"\n [title]=\"prevButtonTitle\"\n (click)=\"prevButtonClick.emit()\"\n >\n <span class=\"k-icon k-i-arrow-60-left\"></span>\n </button>\n <span\n class=\"k-today k-nav-today\"\n [class.k-disabled]=\"!todayAvailable\"\n [kendoEventsOutsideAngular]=\"{\n click: handleTodayClick\n }\"\n [scope]=\"this\"\n >\n {{ todayMessage }}\n </span>\n <button\n *ngIf=\"showNavigationButtons\"\n class=\"k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-icon-button k-next-view\"\n type=\"button\"\n [attr.aria-disabled]=\"isNextDisabled\"\n [disabled]=\"isNextDisabled\"\n [title]=\"nextButtonTitle\"\n (click)=\"nextButtonClick.emit()\"\n >\n <span class=\"k-icon k-i-arrow-60-right\"></span>\n </button>\n </span>\n "
1818
1855
  }),
1819
1856
  __metadata("design:paramtypes", [BusViewService,
1820
1857
  ChangeDetectorRef,
@@ -2243,6 +2280,19 @@ var disabledDatesRangeValidator = function (isDateDisabled) {
2243
2280
  };
2244
2281
  };
2245
2282
 
2283
+ /**
2284
+ * @hidden
2285
+ */
2286
+ var PickerService = /** @class */ (function () {
2287
+ function PickerService() {
2288
+ this.onFocus = new EventEmitter();
2289
+ this.onBlur = new EventEmitter();
2290
+ this.sameDateSelected = new EventEmitter();
2291
+ this.dateCompletenessChange = new EventEmitter();
2292
+ }
2293
+ return PickerService;
2294
+ }());
2295
+
2246
2296
  var BOTTOM_VIEW_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-bottomview';
2247
2297
  var TOP_VIEW_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-topview';
2248
2298
  var MIN_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-min';
@@ -2279,7 +2329,7 @@ var RANGE_CALENDAR_RANGE_VALIDATORS = {
2279
2329
  * ```
2280
2330
  */
2281
2331
  var MultiViewCalendarComponent = /** @class */ (function () {
2282
- function MultiViewCalendarComponent(bus, element, navigator, renderer, cdr, zone, disabledDatesService, selectionService) {
2332
+ function MultiViewCalendarComponent(bus, element, navigator, renderer, cdr, zone, disabledDatesService, selectionService, pickerService) {
2283
2333
  this.bus = bus;
2284
2334
  this.element = element;
2285
2335
  this.navigator = navigator;
@@ -2288,6 +2338,7 @@ var MultiViewCalendarComponent = /** @class */ (function () {
2288
2338
  this.zone = zone;
2289
2339
  this.disabledDatesService = disabledDatesService;
2290
2340
  this.selectionService = selectionService;
2341
+ this.pickerService = pickerService;
2291
2342
  /**
2292
2343
  * @hidden
2293
2344
  */
@@ -2658,21 +2709,22 @@ var MultiViewCalendarComponent = /** @class */ (function () {
2658
2709
  /**
2659
2710
  * @hidden
2660
2711
  */
2661
- MultiViewCalendarComponent.prototype.handleBlur = function (event) {
2662
- var target = event.target;
2663
- if (!this.element.nativeElement.contains(event.relatedTarget)) {
2712
+ MultiViewCalendarComponent.prototype.handleFocusout = function (event) {
2713
+ var relatedTarget = event.relatedTarget;
2714
+ if (!this.element.nativeElement.contains(relatedTarget)) {
2664
2715
  this.blurEvent.emit(event);
2665
2716
  this.onControlTouched();
2666
2717
  }
2667
2718
  this.isActive = false;
2668
2719
  this.isHovered = false; //ensure that hovered is also not active
2669
- this.isHeaderActive = this.headerElement.nativeElement.contains(target);
2720
+ this.isHeaderActive = this.headerElement.nativeElement.contains(relatedTarget);
2670
2721
  };
2671
2722
  /**
2672
2723
  * @hidden
2673
2724
  */
2674
2725
  MultiViewCalendarComponent.prototype.handleFocus = function () {
2675
2726
  this.isActive = true;
2727
+ this.isHeaderActive = false;
2676
2728
  };
2677
2729
  /**
2678
2730
  * @hidden
@@ -2705,7 +2757,13 @@ var MultiViewCalendarComponent = /** @class */ (function () {
2705
2757
  * @hidden
2706
2758
  */
2707
2759
  MultiViewCalendarComponent.prototype.keydown = function (event) {
2760
+ if (this.isHeaderActive) {
2761
+ return;
2762
+ }
2708
2763
  if (event.keyCode === Keys.Enter) {
2764
+ if (isPresent(this.pickerService)) {
2765
+ event.preventDefault(); // Don't submit form from Datepicker popup
2766
+ }
2709
2767
  this.performSelection(this.focusedDate, event);
2710
2768
  }
2711
2769
  var candidate = dateInRange(this.navigator.move(this.focusedDate, this.navigator.action(event), this.activeViewEnum), this.min, this.max);
@@ -2782,6 +2840,12 @@ var MultiViewCalendarComponent = /** @class */ (function () {
2782
2840
  }
2783
2841
  this.element.nativeElement.blur();
2784
2842
  };
2843
+ /**
2844
+ * @hidden
2845
+ */
2846
+ MultiViewCalendarComponent.prototype.handleHeaderFocus = function () {
2847
+ this.isHeaderActive = true;
2848
+ };
2785
2849
  /**
2786
2850
  * @hidden
2787
2851
  */
@@ -3191,7 +3255,7 @@ var MultiViewCalendarComponent = /** @class */ (function () {
3191
3255
  ], MultiViewCalendarComponent.prototype, "calendarTabIndex", null);
3192
3256
  __decorate([
3193
3257
  HostBinding('attr.aria-disabled'),
3194
- HostBinding('class.k-state-disabled'),
3258
+ HostBinding('class.k-disabled'),
3195
3259
  __metadata("design:type", Boolean),
3196
3260
  __metadata("design:paramtypes", [])
3197
3261
  ], MultiViewCalendarComponent.prototype, "ariaDisabled", null);
@@ -3203,9 +3267,9 @@ var MultiViewCalendarComponent = /** @class */ (function () {
3203
3267
  __decorate([
3204
3268
  HostListener('focusout', ['$event']),
3205
3269
  __metadata("design:type", Function),
3206
- __metadata("design:paramtypes", [FocusEvent]),
3270
+ __metadata("design:paramtypes", [Object]),
3207
3271
  __metadata("design:returntype", void 0)
3208
- ], MultiViewCalendarComponent.prototype, "handleBlur", null);
3272
+ ], MultiViewCalendarComponent.prototype, "handleFocusout", null);
3209
3273
  __decorate([
3210
3274
  HostListener("focus"),
3211
3275
  __metadata("design:type", Function),
@@ -3260,8 +3324,9 @@ var MultiViewCalendarComponent = /** @class */ (function () {
3260
3324
  SelectionService
3261
3325
  ],
3262
3326
  selector: 'kendo-multiviewcalendar',
3263
- template: "\n <ng-container kendoMultiViewCalendarLocalizedMessages\n i18n-today=\"kendo.multiviewcalendar.today|The label for the today button in the calendar header\"\n today=\"Today\"\n\n i18n-prevButtonTitle=\"kendo.multiviewcalendar.prevButtonTitle|The label for the previous button in the Multiview calendar\"\n prevButtonTitle=\"Navigate to previous view\"\n\n i18n-nextButtonTitle=\"kendo.multiviewcalendar.nextButtonTitle|The label for the next button in the Multiview calendar\"\n nextButtonTitle=\"Navigate to next view\"\n >\n </ng-container>\n <kendo-calendar-header\n [activeView]=\"activeViewEnum\"\n [currentDate]=\"activeDate\"\n [min]=\"min\"\n [max]=\"max\"\n [rangeLength]=\"views\"\n [templateRef]=\"headerTitleTemplate?.templateRef\"\n [isPrevDisabled]=\"isPrevDisabled\"\n [isNextDisabled]=\"isNextDisabled\"\n [showNavigationButtons]=\"true\"\n (todayButtonClick)=\"handleTodayButtonClick({ selectedDates: [$event], focusedDate: $event })\"\n (prevButtonClick)=\"navigateView(prevView)\"\n (nextButtonClick)=\"navigateView(nextView)\"\n >\n </kendo-calendar-header>\n <kendo-calendar-horizontal\n [activeView]=\"activeViewEnum\"\n [isActive]=\"isActive || (isHovered && !isHeaderActive)\"\n [cellTemplateRef]=\"activeCellTemplate()?.templateRef\"\n [weekNumberTemplateRef]=\"weekNumberTemplate?.templateRef\"\n [cellUID]=\"cellUID\"\n [views]=\"views\"\n [min]=\"min\"\n [max]=\"max\"\n [focusedDate]=\"focusedDate\"\n [animateNavigation]=\"animateNavigation\"\n [showViewHeader]=\"showViewHeader\"\n [weekNumber]=\"weekNumber\"\n [activeRangeEnd]=\"activeRangeEnd\"\n [selectionRange]=\"selectionRange\"\n [selectedDates]=\"selectedDates\"\n (valueChange)=\"handleDateChange($event)\"\n (cellClick)=\"handleCellClick($event)\"\n (weekNumberCellClick)=\"handleWeekNumberClick($event)\"\n (cellEnter)=\"emitCellEvent(cellEnter, $event)\"\n (cellLeave)=\"emitCellEvent(cellLeave, $event)\"\n (activeDateChange)=\"setActiveDate($event)\"\n >\n </kendo-calendar-horizontal>\n "
3327
+ template: "\n <ng-container kendoMultiViewCalendarLocalizedMessages\n i18n-today=\"kendo.multiviewcalendar.today|The label for the today button in the calendar header\"\n today=\"Today\"\n\n i18n-prevButtonTitle=\"kendo.multiviewcalendar.prevButtonTitle|The label for the previous button in the Multiview calendar\"\n prevButtonTitle=\"Navigate to previous view\"\n\n i18n-nextButtonTitle=\"kendo.multiviewcalendar.nextButtonTitle|The label for the next button in the Multiview calendar\"\n nextButtonTitle=\"Navigate to next view\"\n >\n </ng-container>\n <kendo-calendar-header\n [activeView]=\"activeViewEnum\"\n [currentDate]=\"activeDate\"\n [min]=\"min\"\n [max]=\"max\"\n [rangeLength]=\"views\"\n [templateRef]=\"headerTitleTemplate?.templateRef\"\n [isPrevDisabled]=\"isPrevDisabled\"\n [isNextDisabled]=\"isNextDisabled\"\n [showNavigationButtons]=\"true\"\n (todayButtonClick)=\"handleTodayButtonClick({ selectedDates: [$event], focusedDate: $event })\"\n (prevButtonClick)=\"navigateView(prevView)\"\n (nextButtonClick)=\"navigateView(nextView)\"\n [kendoEventsOutsideAngular]=\"{\n focusin: handleHeaderFocus\n }\"\n [scope]=\"this\"\n >\n </kendo-calendar-header>\n <kendo-calendar-horizontal\n [activeView]=\"activeViewEnum\"\n [isActive]=\"isActive || (isHovered && !isHeaderActive)\"\n [cellTemplateRef]=\"activeCellTemplate()?.templateRef\"\n [weekNumberTemplateRef]=\"weekNumberTemplate?.templateRef\"\n [cellUID]=\"cellUID\"\n [views]=\"views\"\n [min]=\"min\"\n [max]=\"max\"\n [focusedDate]=\"focusedDate\"\n [animateNavigation]=\"animateNavigation\"\n [showViewHeader]=\"showViewHeader\"\n [weekNumber]=\"weekNumber\"\n [activeRangeEnd]=\"activeRangeEnd\"\n [selectionRange]=\"selectionRange\"\n [selectedDates]=\"selectedDates\"\n (valueChange)=\"handleDateChange($event)\"\n (cellClick)=\"handleCellClick($event)\"\n (weekNumberCellClick)=\"handleWeekNumberClick($event)\"\n (cellEnter)=\"emitCellEvent(cellEnter, $event)\"\n (cellLeave)=\"emitCellEvent(cellLeave, $event)\"\n (activeDateChange)=\"setActiveDate($event)\"\n >\n </kendo-calendar-horizontal>\n "
3264
3328
  }),
3329
+ __param(8, Optional()),
3265
3330
  __metadata("design:paramtypes", [BusViewService,
3266
3331
  ElementRef,
3267
3332
  NavigationService,
@@ -3269,7 +3334,8 @@ var MultiViewCalendarComponent = /** @class */ (function () {
3269
3334
  ChangeDetectorRef,
3270
3335
  NgZone,
3271
3336
  DisabledDatesService,
3272
- SelectionService])
3337
+ SelectionService,
3338
+ PickerService])
3273
3339
  ], MultiViewCalendarComponent);
3274
3340
  return MultiViewCalendarComponent;
3275
3341
  }());
@@ -3283,7 +3349,7 @@ var tr = domContainerFactory('tr');
3283
3349
  var tbody = domContainerFactory('tbody');
3284
3350
  var thead = domContainerFactory('thead');
3285
3351
  var table = domContainerFactory('table');
3286
- var monthHeader = function () { return (div("\n <span class=\"k-button k-flat k-title k-calendar-title\">March 2017</span>\n <span class=\"k-spacer\"></span>\n <span class=\"k-calendar-nav k-hstack\">\n <span class=\"k-today k-nav-today\">TODAY</span>\n </span>\n ", 'k-calendar-header k-hstack')); };
3352
+ var monthHeader = function () { return (div("\n <span class=\"k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-calendar-title\">March 2017</span>\n <span class=\"k-spacer\"></span>\n <span class=\"k-calendar-nav k-hstack\">\n <span class=\"k-today k-nav-today\">TODAY</span>\n </span>\n ", 'k-calendar-header k-hstack')); };
3287
3353
  var monthWeekHeader = function () { return (table([
3288
3354
  thead([
3289
3355
  tr([th('MO', 'k-calendar-th')], 'k-calendar-tr')
@@ -4516,19 +4582,6 @@ var NavigationItemTemplateDirective = /** @class */ (function () {
4516
4582
  return NavigationItemTemplateDirective;
4517
4583
  }());
4518
4584
 
4519
- /**
4520
- * @hidden
4521
- */
4522
- var PickerService = /** @class */ (function () {
4523
- function PickerService() {
4524
- this.onFocus = new EventEmitter();
4525
- this.onBlur = new EventEmitter();
4526
- this.sameDateSelected = new EventEmitter();
4527
- this.dateCompletenessChange = new EventEmitter();
4528
- }
4529
- return PickerService;
4530
- }());
4531
-
4532
4585
  var BOTTOM_VIEW_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-bottomview';
4533
4586
  var TOP_VIEW_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-topview';
4534
4587
  var MIN_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-min';
@@ -5182,6 +5235,14 @@ var CalendarComponent = /** @class */ (function () {
5182
5235
  return null;
5183
5236
  }
5184
5237
  };
5238
+ /**
5239
+ * @hidden
5240
+ */
5241
+ CalendarComponent.prototype.handleNavigate = function (event) {
5242
+ this.focusedDate = event.focusedDate;
5243
+ this.activeView = event.activeView;
5244
+ this.emitNavigate(this.focusedDate);
5245
+ };
5185
5246
  /**
5186
5247
  * @hidden
5187
5248
  */
@@ -5323,6 +5384,10 @@ var CalendarComponent = /** @class */ (function () {
5323
5384
  }
5324
5385
  };
5325
5386
  CalendarComponent.prototype.handleKeydown = function (args) {
5387
+ var headerActive = this.type === 'classic' && this.multiViewCalendar.isHeaderActive;
5388
+ if (headerActive) {
5389
+ return;
5390
+ }
5326
5391
  // reserve the alt + arrow key commands for the picker
5327
5392
  var arrowKeyPressed = [Keys.ArrowUp, Keys.ArrowRight, Keys.ArrowDown, Keys.ArrowLeft].indexOf(args.keyCode) !== -1;
5328
5393
  if (isPresent(this.pickerService) && arrowKeyPressed && args.altKey) {
@@ -5571,7 +5636,7 @@ var CalendarComponent = /** @class */ (function () {
5571
5636
  ], CalendarComponent.prototype, "calendarTabIndex", null);
5572
5637
  __decorate([
5573
5638
  HostBinding('attr.aria-disabled'),
5574
- HostBinding('class.k-state-disabled'),
5639
+ HostBinding('class.k-disabled'),
5575
5640
  __metadata("design:type", Boolean),
5576
5641
  __metadata("design:paramtypes", [])
5577
5642
  ], CalendarComponent.prototype, "ariaDisabled", null);
@@ -5595,7 +5660,7 @@ var CalendarComponent = /** @class */ (function () {
5595
5660
  SelectionService
5596
5661
  ],
5597
5662
  selector: 'kendo-calendar',
5598
- template: "\n <ng-container kendoCalendarLocalizedMessages\n i18n-today=\"kendo.calendar.today|The label for the today button in the calendar header\"\n today=\"Today\"\n\n i18n-prevButtonTitle=\"kendo.calendar.prevButtonTitle|The title of the previous button in the Classic calendar\"\n prevButtonTitle=\"Navigate to previous view\"\n\n i18n-nextButtonTitle=\"kendo.calendar.nextButtonTitle|The title of the next button in the Classic calendar\"\n nextButtonTitle=\"Navigate to next view\"\n >\n </ng-container>\n <ng-container *ngIf=\"type === 'infinite'\">\n <kendo-calendar-navigation\n *ngIf=\"navigation\"\n [activeView]=\"activeViewEnum\"\n [focusedDate]=\"focusedDate\"\n [min]=\"min\"\n [max]=\"max\"\n [templateRef]=\"navigationItemTemplate?.templateRef\"\n (valueChange)=\"handleNavigation($event)\"\n (pageChange)=\"onPageChange()\"\n >\n </kendo-calendar-navigation>\n <kendo-calendar-viewlist\n [activeView]=\"activeViewEnum\"\n [isActive]=\"isActive\"\n [cellTemplateRef]=\"activeCellTemplate()?.templateRef\"\n [headerTitleTemplateRef]=\"headerTitleTemplate?.templateRef\"\n [weekNumberTemplateRef]=\"weekNumberTemplate?.templateRef\"\n [cellUID]=\"cellUID\"\n [min]=\"min\"\n [max]=\"max\"\n [focusedDate]=\"focusedDate\"\n [weekNumber]=\"weekNumber\"\n [selectedDates]=\"selectedDates\"\n (todayButtonClick)=\"handleDateChange({\n selectedDates: [$event],\n focusedDate: $event\n })\"\n (cellClick)=\"handleCellClick($event)\"\n (weekNumberCellClick)=\"handleWeekNumberClick($event)\"\n (activeDateChange)=\"handleActiveDateChange($event)\"\n (pageChange)=\"onPageChange()\"\n >\n </kendo-calendar-viewlist>\n <kendo-resize-sensor (resize)=\"onResize()\"></kendo-resize-sensor>\n </ng-container>\n <ng-container *ngIf=\"type === 'classic'\">\n <kendo-multiviewcalendar\n #multiviewcalendar\n [views]=\"1\"\n [min]=\"min\"\n [max]=\"max\"\n [isActive]=\"isActive\"\n [activeView]=\"activeView\"\n [bottomView]=\"bottomView\"\n [topView]=\"topView\"\n [weekNumber]=\"weekNumber\"\n [animateNavigation]=\"animateNavigation\"\n [cellTemplate]=\"activeCellTemplate()\"\n [monthCellTemplate]=\"monthCellTemplate\"\n [yearCellTemplate]=\"yearCellTemplate\"\n [decadeCellTemplate]=\"decadeCellTemplate\"\n [centuryCellTemplate]=\"centuryCellTemplate\"\n [headerTitleTemplate]=\"headerTitleTemplate\"\n [weekNumberTemplate]=\"weekNumberTemplate\"\n [focusedDate]=\"focusedDate\"\n [selection]=\"selection\"\n [value]=\"value\"\n [disabledDates]=\"disabledDates\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n (navigate)=\"navigate.emit($event)\"\n (valueChange)=\"handleMultiViewCalendarValueChange($event, multiviewcalendar.focusedDate)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur($event)\"\n >\n <kendo-multiviewcalendar-messages\n [today]=\"localization.get('today')\"\n [prevButtonTitle]=\"localization.get('prevButtonTitle')\"\n [nextButtonTitle]=\"localization.get('nextButtonTitle')\"\n >\n </kendo-multiviewcalendar-messages>\n </kendo-multiviewcalendar>\n </ng-container>\n "
5663
+ template: "\n <ng-container kendoCalendarLocalizedMessages\n i18n-today=\"kendo.calendar.today|The label for the today button in the calendar header\"\n today=\"Today\"\n\n i18n-prevButtonTitle=\"kendo.calendar.prevButtonTitle|The title of the previous button in the Classic calendar\"\n prevButtonTitle=\"Navigate to previous view\"\n\n i18n-nextButtonTitle=\"kendo.calendar.nextButtonTitle|The title of the next button in the Classic calendar\"\n nextButtonTitle=\"Navigate to next view\"\n >\n </ng-container>\n <ng-container *ngIf=\"type === 'infinite'\">\n <kendo-calendar-navigation\n *ngIf=\"navigation\"\n [activeView]=\"activeViewEnum\"\n [focusedDate]=\"focusedDate\"\n [min]=\"min\"\n [max]=\"max\"\n [templateRef]=\"navigationItemTemplate?.templateRef\"\n (valueChange)=\"handleNavigation($event)\"\n (pageChange)=\"onPageChange()\"\n >\n </kendo-calendar-navigation>\n <kendo-calendar-viewlist\n [activeView]=\"activeViewEnum\"\n [isActive]=\"isActive\"\n [cellTemplateRef]=\"activeCellTemplate()?.templateRef\"\n [headerTitleTemplateRef]=\"headerTitleTemplate?.templateRef\"\n [weekNumberTemplateRef]=\"weekNumberTemplate?.templateRef\"\n [cellUID]=\"cellUID\"\n [min]=\"min\"\n [max]=\"max\"\n [focusedDate]=\"focusedDate\"\n [weekNumber]=\"weekNumber\"\n [selectedDates]=\"selectedDates\"\n (todayButtonClick)=\"handleDateChange({\n selectedDates: [$event],\n focusedDate: $event\n })\"\n (cellClick)=\"handleCellClick($event)\"\n (weekNumberCellClick)=\"handleWeekNumberClick($event)\"\n (activeDateChange)=\"handleActiveDateChange($event)\"\n (pageChange)=\"onPageChange()\"\n >\n </kendo-calendar-viewlist>\n <kendo-resize-sensor (resize)=\"onResize()\"></kendo-resize-sensor>\n </ng-container>\n <ng-container *ngIf=\"type === 'classic'\">\n <kendo-multiviewcalendar\n #multiviewcalendar\n [views]=\"1\"\n [min]=\"min\"\n [max]=\"max\"\n [isActive]=\"isActive\"\n [activeView]=\"activeView\"\n [bottomView]=\"bottomView\"\n [topView]=\"topView\"\n [weekNumber]=\"weekNumber\"\n [animateNavigation]=\"animateNavigation\"\n [cellTemplate]=\"activeCellTemplate()\"\n [monthCellTemplate]=\"monthCellTemplate\"\n [yearCellTemplate]=\"yearCellTemplate\"\n [decadeCellTemplate]=\"decadeCellTemplate\"\n [centuryCellTemplate]=\"centuryCellTemplate\"\n [headerTitleTemplate]=\"headerTitleTemplate\"\n [weekNumberTemplate]=\"weekNumberTemplate\"\n [focusedDate]=\"focusedDate\"\n [selection]=\"selection\"\n [value]=\"value\"\n [disabledDates]=\"disabledDates\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n (navigate)=\"handleNavigate($event)\"\n (valueChange)=\"handleMultiViewCalendarValueChange($event, multiviewcalendar.focusedDate)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur($event)\"\n >\n <kendo-multiviewcalendar-messages\n [today]=\"localization.get('today')\"\n [prevButtonTitle]=\"localization.get('prevButtonTitle')\"\n [nextButtonTitle]=\"localization.get('nextButtonTitle')\"\n >\n </kendo-multiviewcalendar-messages>\n </kendo-multiviewcalendar>\n </ng-container>\n "
5599
5664
  }),
5600
5665
  __param(12, Optional()),
5601
5666
  __metadata("design:paramtypes", [BusViewService,
@@ -6070,11 +6135,11 @@ var KendoDate = /** @class */ (function () {
6070
6135
  * Represents the [Kendo UI DateInput component for Angular]({% slug overview_dateinput %}#toc-basic-usage).
6071
6136
  */
6072
6137
  var DateInputComponent = /** @class */ (function () {
6073
- function DateInputComponent(cdr, intl, renderer, element, ngZone, injector, localization, pickerService) {
6138
+ function DateInputComponent(cdr, intl, renderer, wrapper, ngZone, injector, localization, pickerService) {
6074
6139
  this.cdr = cdr;
6075
6140
  this.intl = intl;
6076
6141
  this.renderer = renderer;
6077
- this.element = element;
6142
+ this.wrapper = wrapper;
6078
6143
  this.ngZone = ngZone;
6079
6144
  this.injector = injector;
6080
6145
  this.localization = localization;
@@ -6276,6 +6341,9 @@ var DateInputComponent = /** @class */ (function () {
6276
6341
  this.onControlChange = noop;
6277
6342
  this.onControlTouched = noop;
6278
6343
  this.onValidatorChange = noop;
6344
+ this._size = 'medium';
6345
+ this._rounded = 'medium';
6346
+ this._fillMode = 'solid';
6279
6347
  this.symbolsMap = this.dateSymbolMap();
6280
6348
  this.updateFormatSections();
6281
6349
  if (this.pickerService) {
@@ -6316,6 +6384,83 @@ var DateInputComponent = /** @class */ (function () {
6316
6384
  enumerable: true,
6317
6385
  configurable: true
6318
6386
  });
6387
+ Object.defineProperty(DateInputComponent.prototype, "size", {
6388
+ get: function () {
6389
+ return this._size;
6390
+ },
6391
+ /**
6392
+ * Sets the size of the component.
6393
+ *
6394
+ * The possible values are:
6395
+ * * `'small'`
6396
+ * * `'medium'` (Default)
6397
+ * * `'large'`
6398
+ * * `null`
6399
+ *
6400
+ */
6401
+ set: function (size) {
6402
+ this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
6403
+ if (size) {
6404
+ this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
6405
+ }
6406
+ this._size = size;
6407
+ },
6408
+ enumerable: true,
6409
+ configurable: true
6410
+ });
6411
+ Object.defineProperty(DateInputComponent.prototype, "rounded", {
6412
+ get: function () {
6413
+ return this._rounded;
6414
+ },
6415
+ /**
6416
+ * Sets the border radius of the component.
6417
+ *
6418
+ * The possible values are:
6419
+ * * `'small'`
6420
+ * * `'medium'` (Default)
6421
+ * * `'large'`
6422
+ * * `'full'`
6423
+ * * `null`
6424
+ *
6425
+ */
6426
+ set: function (rounded) {
6427
+ this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));
6428
+ if (rounded) {
6429
+ this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
6430
+ }
6431
+ this._rounded = rounded;
6432
+ },
6433
+ enumerable: true,
6434
+ configurable: true
6435
+ });
6436
+ Object.defineProperty(DateInputComponent.prototype, "fillMode", {
6437
+ get: function () {
6438
+ return this._fillMode;
6439
+ },
6440
+ /**
6441
+ * Sets the fillMode of the component.
6442
+ *
6443
+ * The possible values are:
6444
+ * * `'solid'` (Default)
6445
+ * * `'flat'`
6446
+ * * `'outline'`
6447
+ * * `null`
6448
+ *
6449
+ */
6450
+ set: function (fillMode) {
6451
+ this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
6452
+ if (fillMode) {
6453
+ this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
6454
+ if (this.spinners && this.spinup && this.spindown) {
6455
+ this.setSpinnerFill(this.spinup.nativeElement, fillMode, this.fillMode);
6456
+ this.setSpinnerFill(this.spindown.nativeElement, fillMode, this.fillMode);
6457
+ }
6458
+ }
6459
+ this._fillMode = fillMode;
6460
+ },
6461
+ enumerable: true,
6462
+ configurable: true
6463
+ });
6319
6464
  Object.defineProperty(DateInputComponent.prototype, "wrapperClass", {
6320
6465
  get: function () {
6321
6466
  return true;
@@ -6350,16 +6495,16 @@ var DateInputComponent = /** @class */ (function () {
6350
6495
  },
6351
6496
  set: function (value) {
6352
6497
  this._active = value;
6353
- if (!this.wrap) {
6498
+ if (!this.wrapper) {
6354
6499
  return;
6355
6500
  }
6356
6501
  if (!isPresent(this.pickerService)) {
6357
- var element = this.wrap.nativeElement;
6502
+ var element = this.wrapper.nativeElement;
6358
6503
  if (value) {
6359
- this.renderer.addClass(element, 'k-state-focused');
6504
+ this.renderer.addClass(element, 'k-focus');
6360
6505
  }
6361
6506
  else {
6362
- this.renderer.removeClass(element, 'k-state-focused');
6507
+ this.renderer.removeClass(element, 'k-focus');
6363
6508
  }
6364
6509
  }
6365
6510
  },
@@ -6408,7 +6553,7 @@ var DateInputComponent = /** @class */ (function () {
6408
6553
  */
6409
6554
  DateInputComponent.prototype.containsElement = function (element) {
6410
6555
  var _this = this;
6411
- return Boolean(closest(element, function (node) { return node === _this.element.nativeElement; }));
6556
+ return Boolean(closest(element, function (node) { return node === _this.wrapper.nativeElement; }));
6412
6557
  };
6413
6558
  /**
6414
6559
  * @hidden
@@ -6461,13 +6606,16 @@ var DateInputComponent = /** @class */ (function () {
6461
6606
  this.updateElementValue();
6462
6607
  this.intlSubscription = this.intl.changes.subscribe(this.intlChange.bind(this));
6463
6608
  this.ngControl = this.injector.get(NgControl, null);
6464
- if (this.element) {
6465
- this.renderer.removeAttribute(this.element.nativeElement, 'tabindex');
6609
+ if (this.wrapper) {
6610
+ this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');
6466
6611
  this.ngZone.runOutsideAngular(function () {
6467
6612
  _this.bindEvents();
6468
6613
  });
6469
6614
  }
6470
6615
  };
6616
+ DateInputComponent.prototype.ngAfterViewInit = function () {
6617
+ this.setComponentClasses();
6618
+ };
6471
6619
  /**
6472
6620
  * @hidden
6473
6621
  */
@@ -6821,7 +6969,7 @@ var DateInputComponent = /** @class */ (function () {
6821
6969
  }
6822
6970
  };
6823
6971
  DateInputComponent.prototype.bindEvents = function () {
6824
- var element = this.element.nativeElement;
6972
+ var element = this.wrapper.nativeElement;
6825
6973
  var mousewheelHandler = this.handleMouseWheel.bind(this);
6826
6974
  this.domEvents.push(this.renderer.listen(element, 'DOMMouseScroll', mousewheelHandler), this.renderer.listen(element, 'mousewheel', mousewheelHandler), this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)), this.renderer.listen(element, 'paste', this.handlePaste.bind(this)), this.renderer.listen(element, 'input', this.handleInput.bind(this)));
6827
6975
  };
@@ -6953,6 +7101,29 @@ var DateInputComponent = /** @class */ (function () {
6953
7101
  this.pickerService.dateCompletenessChange.emit();
6954
7102
  }
6955
7103
  };
7104
+ DateInputComponent.prototype.setSpinnerFill = function (spinner, fill, oldFill) {
7105
+ if (oldFill) {
7106
+ this.renderer.removeClass(spinner, "k-button-" + oldFill);
7107
+ this.renderer.removeClass(spinner, "k-button-" + oldFill + "-base");
7108
+ }
7109
+ this.renderer.addClass(spinner, "k-button-" + fill);
7110
+ this.renderer.addClass(spinner, "k-button-" + fill + "-base");
7111
+ };
7112
+ DateInputComponent.prototype.setComponentClasses = function () {
7113
+ if (this.size) {
7114
+ this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
7115
+ }
7116
+ if (this.rounded) {
7117
+ this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));
7118
+ }
7119
+ if (this.fillMode) {
7120
+ this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
7121
+ }
7122
+ if (this.spinners) {
7123
+ this.setSpinnerFill(this.spinup.nativeElement, this.fillMode);
7124
+ this.setSpinnerFill(this.spindown.nativeElement, this.fillMode);
7125
+ }
7126
+ };
6956
7127
  var DateInputComponent_1;
6957
7128
  __decorate([
6958
7129
  Input(),
@@ -7044,6 +7215,21 @@ var DateInputComponent = /** @class */ (function () {
7044
7215
  Input(),
7045
7216
  __metadata("design:type", Boolean)
7046
7217
  ], DateInputComponent.prototype, "hasPopup", void 0);
7218
+ __decorate([
7219
+ Input(),
7220
+ __metadata("design:type", String),
7221
+ __metadata("design:paramtypes", [String])
7222
+ ], DateInputComponent.prototype, "size", null);
7223
+ __decorate([
7224
+ Input(),
7225
+ __metadata("design:type", String),
7226
+ __metadata("design:paramtypes", [String])
7227
+ ], DateInputComponent.prototype, "rounded", null);
7228
+ __decorate([
7229
+ Input(),
7230
+ __metadata("design:type", String),
7231
+ __metadata("design:paramtypes", [String])
7232
+ ], DateInputComponent.prototype, "fillMode", null);
7047
7233
  __decorate([
7048
7234
  Output(),
7049
7235
  __metadata("design:type", EventEmitter)
@@ -7065,20 +7251,24 @@ var DateInputComponent = /** @class */ (function () {
7065
7251
  __metadata("design:type", ElementRef)
7066
7252
  ], DateInputComponent.prototype, "dateInput", void 0);
7067
7253
  __decorate([
7068
- ViewChild('wrap', { static: false }),
7069
- __metadata("design:type", ElementRef)
7070
- ], DateInputComponent.prototype, "wrap", void 0);
7071
- __decorate([
7072
- HostBinding('class.k-widget'),
7254
+ HostBinding('class.k-input'),
7073
7255
  HostBinding('class.k-dateinput'),
7074
7256
  __metadata("design:type", Boolean),
7075
7257
  __metadata("design:paramtypes", [])
7076
7258
  ], DateInputComponent.prototype, "wrapperClass", null);
7077
7259
  __decorate([
7078
- HostBinding('class.k-state-disabled'),
7260
+ HostBinding('class.k-disabled'),
7079
7261
  __metadata("design:type", Boolean),
7080
7262
  __metadata("design:paramtypes", [])
7081
7263
  ], DateInputComponent.prototype, "disabledClass", null);
7264
+ __decorate([
7265
+ ViewChild('spinup', { static: false }),
7266
+ __metadata("design:type", ElementRef)
7267
+ ], DateInputComponent.prototype, "spinup", void 0);
7268
+ __decorate([
7269
+ ViewChild('spindown', { static: false }),
7270
+ __metadata("design:type", ElementRef)
7271
+ ], DateInputComponent.prototype, "spindown", void 0);
7082
7272
  DateInputComponent = DateInputComponent_1 = __decorate([
7083
7273
  Component({
7084
7274
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -7091,7 +7281,7 @@ var DateInputComponent = /** @class */ (function () {
7091
7281
  LocalizationService
7092
7282
  ],
7093
7283
  selector: 'kendo-dateinput',
7094
- template: "\n <ng-container kendoDateInputLocalizedMessages\n i18n-increment=\"kendo.dateinput.increment|The label for the **Increment** button in the DateInput\"\n increment=\"Increase value\"\n\n i18n-decrement=\"kendo.dateinput.decrement|The label for the **Decrement** button in the DateInput\"\n decrement=\"Decrease value\"\n >\n </ng-container>\n <span class=\"k-dateinput-wrap\" #wrap>\n <input\n #dateInput\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n class=\"k-input\"\n [attr.role]=\"role\"\n [attr.aria-readonly]=\"ariaReadOnly\"\n [id]=\"focusableId\"\n [title]=\"title\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [attr.aria-expanded]=\"isPopupOpen\"\n [attr.aria-haspopup]=\"hasPopup\"\n [kendoEventsOutsideAngular]=\"{\n click: handleClick,\n focus: handleFocus,\n mousedown: handleMousedown,\n touchstart: handleMousedown,\n dragstart: handleDragAndDrop,\n drop: handleDragAndDrop,\n blur: handleBlur\n }\"\n [scope]=\"this\"\n />\n <span *ngIf=\"spinners\" class=\"k-select\" (mousedown)=\"$event.preventDefault()\">\n <span\n class=\"k-link k-link-increase\"\n [class.k-state-active]=\"arrowDirection === arrow.Up\"\n (mousedown)=\"arrowDirection = arrow.Up\"\n (mouseleave)=\"arrowDirection = arrow.None\"\n (click)=\"handleButtonClick(1)\"\n [title]=\"localization.get('increment')\"\n [attr.aria-label]=\"localization.get('increment')\">\n <span class=\"k-icon k-i-arrow-n\"></span>\n </span>\n <span\n class=\"k-link k-link-decrease\"\n (click)=\"handleButtonClick(-1)\"\n [class.k-state-active]=\"arrowDirection === arrow.Down\"\n (mousedown)=\"arrowDirection = arrow.Down\"\n (mouseleave)=\"arrowDirection = arrow.None\"\n [title]=\"localization.get('decrement')\"\n [attr.aria-label]=\"localization.get('decrement')\">\n <span class=\"k-icon k-i-arrow-s\"></span>\n </span>\n </span>\n </span>\n "
7284
+ template: "\n <ng-container kendoDateInputLocalizedMessages\n i18n-increment=\"kendo.dateinput.increment|The label for the **Increment** button in the DateInput\"\n increment=\"Increase value\"\n\n i18n-decrement=\"kendo.dateinput.decrement|The label for the **Decrement** button in the DateInput\"\n decrement=\"Decrease value\"\n >\n </ng-container>\n <input\n #dateInput\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n class=\"k-input-inner\"\n [attr.role]=\"role\"\n [attr.aria-readonly]=\"ariaReadOnly\"\n [id]=\"focusableId\"\n [title]=\"title\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [attr.aria-expanded]=\"isPopupOpen\"\n [attr.aria-haspopup]=\"hasPopup\"\n [kendoEventsOutsideAngular]=\"{\n click: handleClick,\n focus: handleFocus,\n mousedown: handleMousedown,\n touchstart: handleMousedown,\n dragstart: handleDragAndDrop,\n drop: handleDragAndDrop,\n blur: handleBlur\n }\"\n [scope]=\"this\"\n />\n <span *ngIf=\"spinners\" class=\"k-input-spinner k-spin-button\" (mousedown)=\"$event.preventDefault()\">\n <button\n #spinup\n tabindex=\"-1\"\n class=\"k-spinner-increase k-button k-icon-button\"\n [class.k-active]=\"arrowDirection === arrow.Up\"\n (mousedown)=\"arrowDirection = arrow.Up\"\n (mouseleave)=\"arrowDirection = arrow.None\"\n (click)=\"handleButtonClick(1)\"\n [title]=\"localization.get('increment')\"\n [attr.aria-label]=\"localization.get('increment')\">\n <span class=\"k-button-icon k-icon k-i-arrow-n\"></span>\n </button>\n <button\n #spindown\n tabindex=\"-1\"\n class=\"k-spinner-decrease k-button k-icon-button\"\n (click)=\"handleButtonClick(-1)\"\n [class.k-active]=\"arrowDirection === arrow.Down\"\n (mousedown)=\"arrowDirection = arrow.Down\"\n (mouseleave)=\"arrowDirection = arrow.None\"\n [title]=\"localization.get('decrement')\"\n [attr.aria-label]=\"localization.get('decrement')\">\n <span class=\"k-button-icon k-icon k-i-arrow-s\"></span>\n </button>\n </span>\n "
7095
7285
  }),
7096
7286
  __param(7, Optional()),
7097
7287
  __metadata("design:paramtypes", [ChangeDetectorRef,
@@ -7161,12 +7351,12 @@ var TWO_DIGIT_YEAR_MAX$1 = 68;
7161
7351
  * Represents the [Kendo UI DatePicker component for Angular]({% slug overview_datepicker %}#toc-basic-usage).
7162
7352
  */
7163
7353
  var DatePickerComponent = /** @class */ (function () {
7164
- function DatePickerComponent(zone, localization, cdr, popupService, element, renderer, injector, pickerService, disabledDatesService, touchEnabled$$1) {
7354
+ function DatePickerComponent(zone, localization, cdr, popupService, wrapper, renderer, injector, pickerService, disabledDatesService, touchEnabled$$1) {
7165
7355
  this.zone = zone;
7166
7356
  this.localization = localization;
7167
7357
  this.cdr = cdr;
7168
7358
  this.popupService = popupService;
7169
- this.element = element;
7359
+ this.wrapper = wrapper;
7170
7360
  this.renderer = renderer;
7171
7361
  this.injector = injector;
7172
7362
  this.pickerService = pickerService;
@@ -7392,6 +7582,9 @@ var DatePickerComponent = /** @class */ (function () {
7392
7582
  this.incompleteValidator = noop;
7393
7583
  this.resolvedPromise = Promise.resolve(null);
7394
7584
  this.domEvents = [];
7585
+ this._size = 'medium';
7586
+ this._rounded = 'medium';
7587
+ this._fillMode = 'solid';
7395
7588
  validatePackage(packageMetadata);
7396
7589
  this.pickerSubscriptions = this.pickerService.onFocus.subscribe(this.handleFocus.bind(this));
7397
7590
  this.pickerSubscriptions.add(this.pickerService.onBlur.subscribe(this.handleBlur.bind(this)));
@@ -7542,6 +7735,85 @@ var DatePickerComponent = /** @class */ (function () {
7542
7735
  enumerable: true,
7543
7736
  configurable: true
7544
7737
  });
7738
+ Object.defineProperty(DatePickerComponent.prototype, "size", {
7739
+ get: function () {
7740
+ return this._size;
7741
+ },
7742
+ /**
7743
+ * Sets the size of the component.
7744
+ *
7745
+ * The possible values are:
7746
+ * * `'small'`
7747
+ * * `'medium'` (Default)
7748
+ * * `'large'`
7749
+ * * `null`
7750
+ *
7751
+ */
7752
+ set: function (size) {
7753
+ this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
7754
+ this.renderer.removeClass(this.toggleButton.nativeElement, getSizeClass('input', this.size));
7755
+ if (size) {
7756
+ this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
7757
+ this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('input', size));
7758
+ }
7759
+ this._size = size;
7760
+ },
7761
+ enumerable: true,
7762
+ configurable: true
7763
+ });
7764
+ Object.defineProperty(DatePickerComponent.prototype, "rounded", {
7765
+ get: function () {
7766
+ return this._rounded;
7767
+ },
7768
+ /**
7769
+ * Sets the border radius of the component.
7770
+ *
7771
+ * The possible values are:
7772
+ * * `'small'`
7773
+ * * `'medium'` (Default)
7774
+ * * `'large'`
7775
+ * * `'full'`
7776
+ * * `null`
7777
+ *
7778
+ */
7779
+ set: function (rounded) {
7780
+ this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));
7781
+ if (rounded) {
7782
+ this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
7783
+ }
7784
+ this._rounded = rounded;
7785
+ },
7786
+ enumerable: true,
7787
+ configurable: true
7788
+ });
7789
+ Object.defineProperty(DatePickerComponent.prototype, "fillMode", {
7790
+ get: function () {
7791
+ return this._fillMode;
7792
+ },
7793
+ /**
7794
+ * Sets the fillMode of the component.
7795
+ *
7796
+ * The possible values are:
7797
+ * * `'solid'` (Default)
7798
+ * * `'flat'`
7799
+ * * `'outline'`
7800
+ * * `null`
7801
+ *
7802
+ */
7803
+ set: function (fillMode) {
7804
+ this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
7805
+ this.renderer.removeClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));
7806
+ this.renderer.removeClass(this.toggleButton.nativeElement, "k-button-" + this.fillMode + "-base");
7807
+ if (fillMode) {
7808
+ this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));
7809
+ this.renderer.addClass(this.toggleButton.nativeElement, "k-button-" + fillMode + "-base");
7810
+ this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
7811
+ }
7812
+ this._fillMode = fillMode;
7813
+ },
7814
+ enumerable: true,
7815
+ configurable: true
7816
+ });
7545
7817
  Object.defineProperty(DatePickerComponent.prototype, "disabledClass", {
7546
7818
  /**
7547
7819
  * @hidden
@@ -7573,10 +7845,10 @@ var DatePickerComponent = /** @class */ (function () {
7573
7845
  }
7574
7846
  var element = this.wrapper.nativeElement;
7575
7847
  if (value) {
7576
- this.renderer.addClass(element, 'k-state-focused');
7848
+ this.renderer.addClass(element, 'k-focus');
7577
7849
  }
7578
7850
  else {
7579
- this.renderer.removeClass(element, 'k-state-focused');
7851
+ this.renderer.removeClass(element, 'k-focus');
7580
7852
  }
7581
7853
  },
7582
7854
  enumerable: true,
@@ -7620,13 +7892,16 @@ var DatePickerComponent = /** @class */ (function () {
7620
7892
  .changes
7621
7893
  .subscribe(function () { return _this.cdr.markForCheck(); });
7622
7894
  this.control = this.injector.get(NgControl, null);
7623
- if (this.element) {
7624
- this.renderer.removeAttribute(this.element.nativeElement, 'tabindex');
7895
+ if (this.wrapper) {
7896
+ this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');
7625
7897
  this.zone.runOutsideAngular(function () {
7626
7898
  _this.bindEvents();
7627
7899
  });
7628
7900
  }
7629
7901
  };
7902
+ DatePickerComponent.prototype.ngAfterViewInit = function () {
7903
+ this.setComponentClasses();
7904
+ };
7630
7905
  /**
7631
7906
  * @hidden
7632
7907
  */
@@ -7849,6 +8124,9 @@ var DatePickerComponent = /** @class */ (function () {
7849
8124
  this.show = false;
7850
8125
  }
7851
8126
  }
8127
+ if (keyCode === Keys.Enter && target.classList.contains('k-calendar')) {
8128
+ e.preventDefault(); // Don't submit form on date selection in popup
8129
+ }
7852
8130
  if (keyCode === Keys.Tab && this.show && this.calendar.isActive && isTabExitingCalendar(this.calendarType, target, shiftKey)) {
7853
8131
  this.input.focus();
7854
8132
  this.show = false;
@@ -7937,7 +8215,7 @@ var DatePickerComponent = /** @class */ (function () {
7937
8215
  }
7938
8216
  };
7939
8217
  DatePickerComponent.prototype.bindEvents = function () {
7940
- var element = this.element.nativeElement;
8218
+ var element = this.wrapper.nativeElement;
7941
8219
  this.domEvents.push(this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)));
7942
8220
  if (isWindowAvailable()) {
7943
8221
  this.windowBlurSubscription = fromEvent(window, 'blur').subscribe(this.handleWindowBlur.bind(this));
@@ -7996,6 +8274,20 @@ var DatePickerComponent = /** @class */ (function () {
7996
8274
  this.cdr.markForCheck();
7997
8275
  this.zone.run(function () { return _this.onValidatorChange(); });
7998
8276
  };
8277
+ DatePickerComponent.prototype.setComponentClasses = function () {
8278
+ if (this.size) {
8279
+ this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
8280
+ this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', this.size));
8281
+ }
8282
+ if (this.rounded) {
8283
+ this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));
8284
+ }
8285
+ if (this.fillMode) {
8286
+ this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
8287
+ this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));
8288
+ this.renderer.addClass(this.toggleButton.nativeElement, "k-button-" + this.fillMode + "-base");
8289
+ }
8290
+ };
7999
8291
  var DatePickerComponent_1;
8000
8292
  __decorate([
8001
8293
  ViewChild('container', { read: ViewContainerRef, static: true }),
@@ -8006,9 +8298,9 @@ var DatePickerComponent = /** @class */ (function () {
8006
8298
  __metadata("design:type", TemplateRef)
8007
8299
  ], DatePickerComponent.prototype, "popupTemplate", void 0);
8008
8300
  __decorate([
8009
- ViewChild('wrapper', { static: false }),
8301
+ ViewChild('toggleButton', { static: true }),
8010
8302
  __metadata("design:type", ElementRef)
8011
- ], DatePickerComponent.prototype, "wrapper", void 0);
8303
+ ], DatePickerComponent.prototype, "toggleButton", void 0);
8012
8304
  __decorate([
8013
8305
  ContentChild(CellTemplateDirective, { static: false }),
8014
8306
  __metadata("design:type", CellTemplateDirective)
@@ -8193,6 +8485,21 @@ var DatePickerComponent = /** @class */ (function () {
8193
8485
  Input(),
8194
8486
  __metadata("design:type", Boolean)
8195
8487
  ], DatePickerComponent.prototype, "weekNumber", void 0);
8488
+ __decorate([
8489
+ Input(),
8490
+ __metadata("design:type", String),
8491
+ __metadata("design:paramtypes", [String])
8492
+ ], DatePickerComponent.prototype, "size", null);
8493
+ __decorate([
8494
+ Input(),
8495
+ __metadata("design:type", String),
8496
+ __metadata("design:paramtypes", [String])
8497
+ ], DatePickerComponent.prototype, "rounded", null);
8498
+ __decorate([
8499
+ Input(),
8500
+ __metadata("design:type", String),
8501
+ __metadata("design:paramtypes", [String])
8502
+ ], DatePickerComponent.prototype, "fillMode", null);
8196
8503
  __decorate([
8197
8504
  Output(),
8198
8505
  __metadata("design:type", EventEmitter)
@@ -8214,12 +8521,12 @@ var DatePickerComponent = /** @class */ (function () {
8214
8521
  __metadata("design:type", EventEmitter)
8215
8522
  ], DatePickerComponent.prototype, "close", void 0);
8216
8523
  __decorate([
8217
- HostBinding('class.k-widget'),
8218
8524
  HostBinding('class.k-datepicker'),
8525
+ HostBinding('class.k-input'),
8219
8526
  __metadata("design:type", Boolean)
8220
8527
  ], DatePickerComponent.prototype, "wrapperClasses", void 0);
8221
8528
  __decorate([
8222
- HostBinding('class.k-state-disabled'),
8529
+ HostBinding('class.k-disabled'),
8223
8530
  __metadata("design:type", Boolean),
8224
8531
  __metadata("design:paramtypes", [])
8225
8532
  ], DatePickerComponent.prototype, "disabledClass", null);
@@ -8240,7 +8547,7 @@ var DatePickerComponent = /** @class */ (function () {
8240
8547
  }
8241
8548
  ],
8242
8549
  selector: 'kendo-datepicker',
8243
- template: "\n <ng-container kendoDatePickerLocalizedMessages\n i18n-today=\"kendo.datepicker.today|The label for the today button in the calendar header\"\n today=\"Today\"\n\n i18n-toggle=\"kendo.datepicker.toggle|The title of the toggle button in the datepicker component\"\n toggle=\"Toggle calendar\"\n\n i18n-prevButtonTitle=\"kendo.datepicker.prevButtonTitle|The title of the previous button in the Classic calendar\"\n prevButtonTitle=\"Navigate to previous view\"\n\n i18n-nextButtonTitle=\"kendo.datepicker.nextButtonTitle|The title of the next button in the Classic calendar\"\n nextButtonTitle=\"Navigate to next view\"\n >\n </ng-container>\n <span #wrapper\n class=\"k-picker-wrap\"\n [class.k-state-disabled]=\"disabled\"\n >\n <kendo-dateinput\n #input\n [role]=\"inputRole\"\n [focusableId]=\"focusableId\"\n [hasPopup]=\"true\"\n [isPopupOpen]=\"show\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly || readOnlyInput\"\n [ariaReadOnly]=\"readonly\"\n [tabindex]=\"tabindex\"\n [title]=\"title\"\n [format]=\"format\"\n [twoDigitYearMax]=\"twoDigitYearMax\"\n [formatPlaceholder]=\"formatPlaceholder\"\n [placeholder]=\"placeholder\"\n [min]=\"min\"\n [max]=\"max\"\n [incompleteDateValidation]=\"incompleteDateValidation\"\n [value]=\"value\"\n (valueChange)=\"handleInputChange($event)\"\n ></kendo-dateinput>\n <span class=\"k-select\"\n role=\"button\"\n [attr.title]=\"localization.get('toggle')\"\n [attr.aria-label]=\"localization.get('toggle')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleIconClick,\n mousedown: handleMousedown\n }\"\n [scope]=\"this\"\n >\n <span class=\"k-icon k-i-calendar\"></span>\n </span>\n </span>\n <ng-container #container></ng-container>\n <ng-template #popupTemplate>\n <kendo-calendar\n #calendar\n [type]=\"calendarType\"\n [min]=\"min\"\n [max]=\"max\"\n [navigation]=\"navigation\"\n [animateNavigation]=\"animateCalendarNavigation\"\n [activeView]=\"activeView\"\n [bottomView]=\"bottomView\"\n [topView]=\"topView\"\n [weekNumber]=\"weekNumber\"\n [cellTemplate]=\"cellTemplate\"\n [monthCellTemplate]=\"monthCellTemplate\"\n [yearCellTemplate]=\"yearCellTemplate\"\n [decadeCellTemplate]=\"decadeCellTemplate\"\n [centuryCellTemplate]=\"centuryCellTemplate\"\n [weekNumberTemplate]=\"weekNumberTemplate\"\n [headerTitleTemplate]=\"headerTitleTemplate\"\n [navigationItemTemplate]=\"navigationItemTemplate\"\n [focusedDate]=\"focusedDate\"\n [value]=\"value\"\n (valueChange)=\"handleChange(mergeTime($event))\"\n [kendoEventsOutsideAngular]=\"{\n keydown: handleKeydown\n }\"\n [scope]=\"this\"\n [disabledDates]=\"disabledDates\"\n >\n <kendo-calendar-messages\n [today]=\"localization.get('today')\"\n [prevButtonTitle]=\"localization.get('prevButtonTitle')\"\n [nextButtonTitle]=\"localization.get('nextButtonTitle')\"\n >\n </kendo-calendar-messages>\n </kendo-calendar>\n <ng-template>\n "
8550
+ template: "\n <ng-container kendoDatePickerLocalizedMessages\n i18n-today=\"kendo.datepicker.today|The label for the today button in the calendar header\"\n today=\"Today\"\n\n i18n-toggle=\"kendo.datepicker.toggle|The title of the toggle button in the datepicker component\"\n toggle=\"Toggle calendar\"\n\n i18n-prevButtonTitle=\"kendo.datepicker.prevButtonTitle|The title of the previous button in the Classic calendar\"\n prevButtonTitle=\"Navigate to previous view\"\n\n i18n-nextButtonTitle=\"kendo.datepicker.nextButtonTitle|The title of the next button in the Classic calendar\"\n nextButtonTitle=\"Navigate to next view\"\n >\n </ng-container>\n <kendo-dateinput\n #input\n [role]=\"inputRole\"\n [focusableId]=\"focusableId\"\n [hasPopup]=\"true\"\n [isPopupOpen]=\"show\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly || readOnlyInput\"\n [ariaReadOnly]=\"readonly\"\n [tabindex]=\"tabindex\"\n [title]=\"title\"\n [format]=\"format\"\n [twoDigitYearMax]=\"twoDigitYearMax\"\n [formatPlaceholder]=\"formatPlaceholder\"\n [placeholder]=\"placeholder\"\n [min]=\"min\"\n [max]=\"max\"\n [incompleteDateValidation]=\"incompleteDateValidation\"\n [fillMode]=\"null\"\n [rounded]=\"null\"\n [size]=\"null\"\n [value]=\"value\"\n (valueChange)=\"handleInputChange($event)\"\n ></kendo-dateinput>\n <button\n #toggleButton\n type=\"button\"\n class=\"k-input-button k-button k-icon-button\"\n [tabindex]=\"-1\"\n [attr.title]=\"localization.get('toggle')\"\n [attr.aria-label]=\"localization.get('toggle')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleIconClick,\n mousedown: handleMousedown\n }\"\n [scope]=\"this\"\n >\n <span class=\"k-button-icon k-icon k-i-calendar\"></span>\n </button>\n <ng-container #container></ng-container>\n <ng-template #popupTemplate>\n <kendo-calendar\n #calendar\n [type]=\"calendarType\"\n [min]=\"min\"\n [max]=\"max\"\n [navigation]=\"navigation\"\n [animateNavigation]=\"animateCalendarNavigation\"\n [activeView]=\"activeView\"\n [bottomView]=\"bottomView\"\n [topView]=\"topView\"\n [weekNumber]=\"weekNumber\"\n [cellTemplate]=\"cellTemplate\"\n [monthCellTemplate]=\"monthCellTemplate\"\n [yearCellTemplate]=\"yearCellTemplate\"\n [decadeCellTemplate]=\"decadeCellTemplate\"\n [centuryCellTemplate]=\"centuryCellTemplate\"\n [weekNumberTemplate]=\"weekNumberTemplate\"\n [headerTitleTemplate]=\"headerTitleTemplate\"\n [navigationItemTemplate]=\"navigationItemTemplate\"\n [focusedDate]=\"focusedDate\"\n [value]=\"value\"\n (valueChange)=\"handleChange(mergeTime($event))\"\n [kendoEventsOutsideAngular]=\"{\n keydown: handleKeydown\n }\"\n [scope]=\"this\"\n [disabledDates]=\"disabledDates\"\n >\n <kendo-calendar-messages\n [today]=\"localization.get('today')\"\n [prevButtonTitle]=\"localization.get('prevButtonTitle')\"\n [nextButtonTitle]=\"localization.get('nextButtonTitle')\"\n >\n </kendo-calendar-messages>\n </kendo-calendar>\n <ng-template>\n "
8244
8551
  }),
8245
8552
  __param(9, Optional()), __param(9, Inject(TOUCH_ENABLED)),
8246
8553
  __metadata("design:paramtypes", [NgZone,
@@ -8293,12 +8600,12 @@ var formatRegExp = new RegExp(TIME_PART.hour + "|" + TIME_PART.minute + "|" + TI
8293
8600
  * Represents the [Kendo UI TimePicker component for Angular]({% slug overview_timepicker %}#toc-basic-usage).
8294
8601
  */
8295
8602
  var TimePickerComponent = /** @class */ (function () {
8296
- function TimePickerComponent(zone, localization, cdr, popupService, element, renderer, injector, pickerService, intl, touchEnabled$$1) {
8603
+ function TimePickerComponent(zone, localization, cdr, popupService, wrapper, renderer, injector, pickerService, intl, touchEnabled$$1) {
8297
8604
  this.zone = zone;
8298
8605
  this.localization = localization;
8299
8606
  this.cdr = cdr;
8300
8607
  this.popupService = popupService;
8301
- this.element = element;
8608
+ this.wrapper = wrapper;
8302
8609
  this.renderer = renderer;
8303
8610
  this.injector = injector;
8304
8611
  this.pickerService = pickerService;
@@ -8460,6 +8767,9 @@ var TimePickerComponent = /** @class */ (function () {
8460
8767
  this._value = null;
8461
8768
  this._active = false;
8462
8769
  this.domEvents = [];
8770
+ this._size = 'medium';
8771
+ this._rounded = 'medium';
8772
+ this._fillMode = 'solid';
8463
8773
  validatePackage(packageMetadata);
8464
8774
  this.pickerSubscriptions = this.pickerService.onFocus.subscribe(this.handleFocus.bind(this));
8465
8775
  this.pickerSubscriptions.add(this.pickerService.onBlur.subscribe(this.handleBlur.bind(this)));
@@ -8570,6 +8880,85 @@ var TimePickerComponent = /** @class */ (function () {
8570
8880
  enumerable: true,
8571
8881
  configurable: true
8572
8882
  });
8883
+ Object.defineProperty(TimePickerComponent.prototype, "size", {
8884
+ get: function () {
8885
+ return this._size;
8886
+ },
8887
+ /**
8888
+ * Sets the size of the component.
8889
+ *
8890
+ * The possible values are:
8891
+ * * `'small'`
8892
+ * * `'medium'` (Default)
8893
+ * * `'large'`
8894
+ * * `null`
8895
+ *
8896
+ */
8897
+ set: function (size) {
8898
+ this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
8899
+ this.renderer.removeClass(this.toggleButton.nativeElement, getSizeClass('input', this.size));
8900
+ if (size) {
8901
+ this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
8902
+ this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('input', size));
8903
+ }
8904
+ this._size = size;
8905
+ },
8906
+ enumerable: true,
8907
+ configurable: true
8908
+ });
8909
+ Object.defineProperty(TimePickerComponent.prototype, "rounded", {
8910
+ get: function () {
8911
+ return this._rounded;
8912
+ },
8913
+ /**
8914
+ * Sets the border radius of the component.
8915
+ *
8916
+ * The possible values are:
8917
+ * * `'small'`
8918
+ * * `'medium'` (Default)
8919
+ * * `'large'`
8920
+ * * `'full'`
8921
+ * * `null`
8922
+ *
8923
+ */
8924
+ set: function (rounded) {
8925
+ this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));
8926
+ if (rounded) {
8927
+ this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
8928
+ }
8929
+ this._rounded = rounded;
8930
+ },
8931
+ enumerable: true,
8932
+ configurable: true
8933
+ });
8934
+ Object.defineProperty(TimePickerComponent.prototype, "fillMode", {
8935
+ get: function () {
8936
+ return this._fillMode;
8937
+ },
8938
+ /**
8939
+ * Sets the fillMode of the component.
8940
+ *
8941
+ * The possible values are:
8942
+ * * `'solid'` (Default)
8943
+ * * `'flat'`
8944
+ * * `'outline'`
8945
+ * * `null`
8946
+ *
8947
+ */
8948
+ set: function (fillMode) {
8949
+ this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
8950
+ this.renderer.removeClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));
8951
+ this.renderer.removeClass(this.toggleButton.nativeElement, "k-button-" + this.fillMode + "-base");
8952
+ if (fillMode) {
8953
+ this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
8954
+ this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));
8955
+ this.renderer.addClass(this.toggleButton.nativeElement, "k-button-" + fillMode + "-base");
8956
+ }
8957
+ this._fillMode = fillMode;
8958
+ },
8959
+ enumerable: true,
8960
+ configurable: true
8961
+ });
8573
8962
  Object.defineProperty(TimePickerComponent.prototype, "disabledClass", {
8574
8963
  /**
8575
8964
  * @hidden
@@ -8601,10 +8990,10 @@ var TimePickerComponent = /** @class */ (function () {
8601
8990
  }
8602
8991
  var element = this.wrapper.nativeElement;
8603
8992
  if (value) {
8604
- this.renderer.addClass(element, 'k-state-focused');
8993
+ this.renderer.addClass(element, 'k-focus');
8605
8994
  }
8606
8995
  else {
8607
- this.renderer.removeClass(element, 'k-state-focused');
8996
+ this.renderer.removeClass(element, 'k-focus');
8608
8997
  }
8609
8998
  },
8610
8999
  enumerable: true,
@@ -8661,13 +9050,19 @@ var TimePickerComponent = /** @class */ (function () {
8661
9050
  this.localizationChangeSubscription = this.localization
8662
9051
  .changes.subscribe(function () { return _this.cdr.markForCheck(); });
8663
9052
  this.control = this.injector.get(NgControl, null);
8664
- if (this.element) {
8665
- this.renderer.removeAttribute(this.element.nativeElement, 'tabindex');
9053
+ if (this.wrapper) {
9054
+ this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');
8666
9055
  this.zone.runOutsideAngular(function () {
8667
9056
  _this.bindEvents();
8668
9057
  });
8669
9058
  }
8670
9059
  };
9060
+ /**
9061
+ * @hidden
9062
+ */
9063
+ TimePickerComponent.prototype.ngAfterViewInit = function () {
9064
+ this.setComponentClasses();
9065
+ };
8671
9066
  /**
8672
9067
  * @hidden
8673
9068
  */
@@ -8980,7 +9375,7 @@ var TimePickerComponent = /** @class */ (function () {
8980
9375
  }
8981
9376
  };
8982
9377
  TimePickerComponent.prototype.bindEvents = function () {
8983
- var element = this.element.nativeElement;
9378
+ var element = this.wrapper.nativeElement;
8984
9379
  this.domEvents.push(this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)));
8985
9380
  if (isWindowAvailable()) {
8986
9381
  this.windowBlurSubscription = fromEvent(window, 'blur').subscribe(this.handleWindowBlur.bind(this));
@@ -9032,6 +9427,20 @@ var TimePickerComponent = /** @class */ (function () {
9032
9427
  this.cdr.markForCheck();
9033
9428
  this.zone.run(function () { return _this.onValidatorChange(); });
9034
9429
  };
9430
+ TimePickerComponent.prototype.setComponentClasses = function () {
9431
+ if (this.size) {
9432
+ this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
9433
+ this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', this.size));
9434
+ }
9435
+ if (this.rounded) {
9436
+ this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));
9437
+ }
9438
+ if (this.fillMode) {
9439
+ this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
9440
+ this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));
9441
+ this.renderer.addClass(this.toggleButton.nativeElement, "k-button-" + this.fillMode + "-base");
9442
+ }
9443
+ };
9035
9444
  var TimePickerComponent_1;
9036
9445
  __decorate([
9037
9446
  ViewChild('container', { read: ViewContainerRef, static: false }),
@@ -9042,9 +9451,9 @@ var TimePickerComponent = /** @class */ (function () {
9042
9451
  __metadata("design:type", TemplateRef)
9043
9452
  ], TimePickerComponent.prototype, "popupTemplate", void 0);
9044
9453
  __decorate([
9045
- ViewChild('wrapper', { static: false }),
9454
+ ViewChild('toggleButton', { static: true }),
9046
9455
  __metadata("design:type", ElementRef)
9047
- ], TimePickerComponent.prototype, "wrapper", void 0);
9456
+ ], TimePickerComponent.prototype, "toggleButton", void 0);
9048
9457
  __decorate([
9049
9458
  Input(),
9050
9459
  __metadata("design:type", String)
@@ -9127,6 +9536,21 @@ var TimePickerComponent = /** @class */ (function () {
9127
9536
  __metadata("design:type", Date),
9128
9537
  __metadata("design:paramtypes", [Date])
9129
9538
  ], TimePickerComponent.prototype, "value", null);
9539
+ __decorate([
9540
+ Input(),
9541
+ __metadata("design:type", String),
9542
+ __metadata("design:paramtypes", [String])
9543
+ ], TimePickerComponent.prototype, "size", null);
9544
+ __decorate([
9545
+ Input(),
9546
+ __metadata("design:type", String),
9547
+ __metadata("design:paramtypes", [String])
9548
+ ], TimePickerComponent.prototype, "rounded", null);
9549
+ __decorate([
9550
+ Input(),
9551
+ __metadata("design:type", String),
9552
+ __metadata("design:paramtypes", [String])
9553
+ ], TimePickerComponent.prototype, "fillMode", null);
9130
9554
  __decorate([
9131
9555
  Output(),
9132
9556
  __metadata("design:type", EventEmitter)
@@ -9148,12 +9572,12 @@ var TimePickerComponent = /** @class */ (function () {
9148
9572
  __metadata("design:type", EventEmitter)
9149
9573
  ], TimePickerComponent.prototype, "close", void 0);
9150
9574
  __decorate([
9151
- HostBinding('class.k-widget'),
9152
9575
  HostBinding('class.k-timepicker'),
9576
+ HostBinding('class.k-input'),
9153
9577
  __metadata("design:type", Boolean)
9154
9578
  ], TimePickerComponent.prototype, "wrapperClasses", void 0);
9155
9579
  __decorate([
9156
- HostBinding('class.k-state-disabled'),
9580
+ HostBinding('class.k-disabled'),
9157
9581
  __metadata("design:type", Boolean),
9158
9582
  __metadata("design:paramtypes", [])
9159
9583
  ], TimePickerComponent.prototype, "disabledClass", null);
@@ -9173,7 +9597,7 @@ var TimePickerComponent = /** @class */ (function () {
9173
9597
  PickerService
9174
9598
  ],
9175
9599
  selector: 'kendo-timepicker',
9176
- template: "\n <ng-container kendoTimePickerLocalizedMessages\n i18n-accept=\"kendo.timepicker.accept|The Accept button text in the timepicker component\"\n accept=\"Set\"\n\n i18n-acceptLabel=\"kendo.timepicker.acceptLabel|The label for the Accept button in the timepicker component\"\n acceptLabel=\"Set time\"\n\n i18n-cancel=\"kendo.timepicker.cancel|The Cancel button text in the timepicker component\"\n cancel=\"Cancel\"\n\n i18n-cancelLabel=\"kendo.timepicker.cancelLabel|The label for the Cancel button in the timepicker component\"\n cancelLabel=\"Cancel changes\"\n\n i18n-now=\"kendo.timepicker.now|The Now button text in the timepicker component\"\n now=\"Now\"\n\n i18n-nowLabel=\"kendo.timepicker.nowLabel|The label for the Now button in the timepicker component\"\n nowLabel=\"Select now\"\n\n i18n-toggle=\"kendo.timepicker.toggle|The label for the toggle button in the timepicker component\"\n toggle=\"Toggle time list\"\n >\n </ng-container>\n <span #wrapper\n class=\"k-picker-wrap\"\n [class.k-state-disabled]=\"disabled\"\n >\n <kendo-dateinput\n #input\n [focusableId]=\"focusableId\"\n [hasPopup]=\"true\"\n [isPopupOpen]=\"show\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly || readOnlyInput\"\n [role]=\"inputRole\"\n [ariaReadOnly]=\"readonly\"\n [format]=\"format\"\n [formatPlaceholder]=\"formatPlaceholder\"\n [placeholder]=\"placeholder\"\n [min]=\"normalizeTime(min)\"\n [max]=\"normalizeTime(max)\"\n [incompleteDateValidation]=\"incompleteDateValidation\"\n [steps]=\"steps\"\n [tabindex]=\"!show ? tabindex : -1\"\n [title]=\"title\"\n [value]=\"value\"\n (valueChange)=\"handleInputChange($event)\"\n ></kendo-dateinput>\n <span class=\"k-select\"\n role=\"button\"\n [attr.title]=\"localization.get('toggle')\"\n [attr.aria-label]=\"localization.get('toggle')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleIconClick,\n mousedown: handleMousedown\n }\"\n [scope]=\"this\"\n >\n <span class=\"k-icon k-i-clock\"></span>\n </span>\n <ng-template #popupTemplate>\n <kendo-timeselector\n #timeSelector\n [cancelButton]=\"cancelButton\"\n [nowButton]=\"nowButton\"\n [format]=\"format\"\n [min]=\"min\"\n [max]=\"max\"\n [steps]=\"steps\"\n [value]=\"value\"\n [kendoEventsOutsideAngular]=\"{\n keydown: handleKeydown,\n mousedown: handleMousedown\n }\"\n [scope]=\"this\"\n (valueChange)=\"handleChange($event)\"\n (valueReject)=\"handleReject()\"\n >\n <kendo-timeselector-messages\n [acceptLabel]=\"localization.get('acceptLabel')\"\n [accept]=\"localization.get('accept')\"\n [cancelLabel]=\"localization.get('cancelLabel')\"\n [cancel]=\"localization.get('cancel')\"\n [nowLabel]=\"localization.get('nowLabel')\"\n [now]=\"localization.get('now')\"\n >\n </kendo-timeselector-messages>\n </kendo-timeselector>\n </ng-template>\n </span>\n <ng-container #container></ng-container>\n "
9600
+ template: "\n <ng-container kendoTimePickerLocalizedMessages\n i18n-accept=\"kendo.timepicker.accept|The Accept button text in the timepicker component\"\n accept=\"Set\"\n\n i18n-acceptLabel=\"kendo.timepicker.acceptLabel|The label for the Accept button in the timepicker component\"\n acceptLabel=\"Set time\"\n\n i18n-cancel=\"kendo.timepicker.cancel|The Cancel button text in the timepicker component\"\n cancel=\"Cancel\"\n\n i18n-cancelLabel=\"kendo.timepicker.cancelLabel|The label for the Cancel button in the timepicker component\"\n cancelLabel=\"Cancel changes\"\n\n i18n-now=\"kendo.timepicker.now|The Now button text in the timepicker component\"\n now=\"Now\"\n\n i18n-nowLabel=\"kendo.timepicker.nowLabel|The label for the Now button in the timepicker component\"\n nowLabel=\"Select now\"\n\n i18n-toggle=\"kendo.timepicker.toggle|The label for the toggle button in the timepicker component\"\n toggle=\"Toggle time list\"\n >\n </ng-container>\n <kendo-dateinput\n #input\n [focusableId]=\"focusableId\"\n [hasPopup]=\"true\"\n [isPopupOpen]=\"show\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly || readOnlyInput\"\n [role]=\"inputRole\"\n [ariaReadOnly]=\"readonly\"\n [format]=\"format\"\n [formatPlaceholder]=\"formatPlaceholder\"\n [placeholder]=\"placeholder\"\n [min]=\"normalizeTime(min)\"\n [max]=\"normalizeTime(max)\"\n [incompleteDateValidation]=\"incompleteDateValidation\"\n [fillMode]=\"fillMode\"\n [rounded]=\"rounded\"\n [size]=\"size\"\n [steps]=\"steps\"\n [tabindex]=\"!show ? tabindex : -1\"\n [title]=\"title\"\n [value]=\"value\"\n (valueChange)=\"handleInputChange($event)\"\n ></kendo-dateinput>\n <button\n #toggleButton\n type=\"button\"\n class=\"k-input-button k-button k-icon-button\"\n [attr.title]=\"localization.get('toggle')\"\n [attr.aria-label]=\"localization.get('toggle')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleIconClick,\n mousedown: handleMousedown\n }\"\n [scope]=\"this\"\n >\n <span class=\"k-button-icon k-icon k-i-clock\"></span>\n </button>\n <ng-template #popupTemplate>\n <kendo-timeselector\n #timeSelector\n [cancelButton]=\"cancelButton\"\n [nowButton]=\"nowButton\"\n [format]=\"format\"\n [min]=\"min\"\n [max]=\"max\"\n [steps]=\"steps\"\n [value]=\"value\"\n [kendoEventsOutsideAngular]=\"{\n keydown: handleKeydown,\n mousedown: handleMousedown\n }\"\n [scope]=\"this\"\n (valueChange)=\"handleChange($event)\"\n (valueReject)=\"handleReject()\"\n >\n <kendo-timeselector-messages\n [acceptLabel]=\"localization.get('acceptLabel')\"\n [accept]=\"localization.get('accept')\"\n [cancelLabel]=\"localization.get('cancelLabel')\"\n [cancel]=\"localization.get('cancel')\"\n [nowLabel]=\"localization.get('nowLabel')\"\n [now]=\"localization.get('now')\"\n >\n </kendo-timeselector-messages>\n </kendo-timeselector>\n </ng-template>\n <ng-container #container></ng-container>\n "
9177
9601
  }),
9178
9602
  __param(9, Optional()), __param(9, Inject(TOUCH_ENABLED)),
9179
9603
  __metadata("design:paramtypes", [NgZone,
@@ -9200,13 +9624,13 @@ var TWO_DIGIT_YEAR_MAX$2 = 68;
9200
9624
  * Represents the [Kendo UI DateTimePicker component for Angular]({% slug overview_datetimepicker %}).
9201
9625
  */
9202
9626
  var DateTimePickerComponent = /** @class */ (function () {
9203
- function DateTimePickerComponent(popupService, intl, cdr, pickerService, ngZone, host, touchEnabled$$1, localization, disabledDatesService, renderer) {
9627
+ function DateTimePickerComponent(popupService, intl, cdr, pickerService, ngZone, wrapper, touchEnabled$$1, localization, disabledDatesService, renderer) {
9204
9628
  this.popupService = popupService;
9205
9629
  this.intl = intl;
9206
9630
  this.cdr = cdr;
9207
9631
  this.pickerService = pickerService;
9208
9632
  this.ngZone = ngZone;
9209
- this.host = host;
9633
+ this.wrapper = wrapper;
9210
9634
  this.touchEnabled = touchEnabled$$1;
9211
9635
  this.localization = localization;
9212
9636
  this.disabledDatesService = disabledDatesService;
@@ -9373,9 +9797,22 @@ var DateTimePickerComponent = /** @class */ (function () {
9373
9797
  this.disabledDatesValidateFn = noop;
9374
9798
  this.incompleteValidator = noop;
9375
9799
  this.subscriptions = new Subscription();
9800
+ this._size = 'medium';
9801
+ this._rounded = 'medium';
9802
+ this._fillMode = 'solid';
9376
9803
  validatePackage(packageMetadata);
9377
9804
  }
9378
9805
  DateTimePickerComponent_1 = DateTimePickerComponent;
9806
+ Object.defineProperty(DateTimePickerComponent.prototype, "disabledClass", {
9807
+ /**
9808
+ * @hidden
9809
+ */
9810
+ get: function () {
9811
+ return this.disabled;
9812
+ },
9813
+ enumerable: true,
9814
+ configurable: true
9815
+ });
9379
9816
  Object.defineProperty(DateTimePickerComponent.prototype, "input", {
9380
9817
  /**
9381
9818
  * @hidden
@@ -9556,10 +9993,10 @@ var DateTimePickerComponent = /** @class */ (function () {
9556
9993
  },
9557
9994
  set: function (value) {
9558
9995
  if (value) {
9559
- this.renderer.addClass(this.wrapper.nativeElement, 'k-state-focused');
9996
+ this.renderer.addClass(this.wrapper.nativeElement, 'k-focus');
9560
9997
  }
9561
9998
  else {
9562
- this.renderer.removeClass(this.wrapper.nativeElement, 'k-state-focused');
9999
+ this.renderer.removeClass(this.wrapper.nativeElement, 'k-focus');
9563
10000
  }
9564
10001
  this._isActive = value;
9565
10002
  },
@@ -9581,6 +10018,85 @@ var DateTimePickerComponent = /** @class */ (function () {
9581
10018
  enumerable: true,
9582
10019
  configurable: true
9583
10020
  });
10021
+ Object.defineProperty(DateTimePickerComponent.prototype, "size", {
10022
+ get: function () {
10023
+ return this._size;
10024
+ },
10025
+ /**
10026
+ * Sets the size of the component.
10027
+ *
10028
+ * The possible values are:
10029
+ * * `'small'`
10030
+ * * `'medium'` (Default)
10031
+ * * `'large'`
10032
+ * * `null`
10033
+ *
10034
+ */
10035
+ set: function (size) {
10036
+ this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
10037
+ this.renderer.removeClass(this.toggleButton.nativeElement, getSizeClass('input', this.size));
10038
+ if (size) {
10039
+ this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
10040
+ this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('input', size));
10041
+ }
10042
+ this._size = size;
10043
+ },
10044
+ enumerable: true,
10045
+ configurable: true
10046
+ });
10047
+ Object.defineProperty(DateTimePickerComponent.prototype, "rounded", {
10048
+ get: function () {
10049
+ return this._rounded;
10050
+ },
10051
+ /**
10052
+ * Sets the border radius of the component.
10053
+ *
10054
+ * The possible values are:
10055
+ * * `'small'`
10056
+ * * `'medium'` (Default)
10057
+ * * `'large'`
10058
+ * * `'full'`
10059
+ * * `null`
10060
+ *
10061
+ */
10062
+ set: function (rounded) {
10063
+ this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));
10064
+ if (rounded) {
10065
+ this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
10066
+ }
10067
+ this._rounded = rounded;
10068
+ },
10069
+ enumerable: true,
10070
+ configurable: true
10071
+ });
10072
+ Object.defineProperty(DateTimePickerComponent.prototype, "fillMode", {
10073
+ get: function () {
10074
+ return this._fillMode;
10075
+ },
10076
+ /**
10077
+ * Sets the fillMode of the component.
10078
+ *
10079
+ * The possible values are:
10080
+ * * `'solid'` (Default)
10081
+ * * `'flat'`
10082
+ * * `'outline'`
10083
+ * * `null`
10084
+ *
10085
+ */
10086
+ set: function (fillMode) {
10087
+ this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
10088
+ this.renderer.removeClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));
10089
+ this.renderer.removeClass(this.toggleButton.nativeElement, "k-button-" + this.fillMode + "-base");
10090
+ if (fillMode) {
10091
+ this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
10092
+ this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));
10093
+ this.renderer.addClass(this.toggleButton.nativeElement, "k-button-" + fillMode + "-base");
10094
+ }
10095
+ this._fillMode = fillMode;
10096
+ },
10097
+ enumerable: true,
10098
+ configurable: true
10099
+ });
9584
10100
  Object.defineProperty(DateTimePickerComponent.prototype, "tabSwitchTransition", {
9585
10101
  /**
9586
10102
  * @hidden
@@ -9671,6 +10187,9 @@ var DateTimePickerComponent = /** @class */ (function () {
9671
10187
  this.subscriptions.add(this.ngZone.runOutsideAngular(function () { return fromEvent(window, 'blur').subscribe(_this.handleCancel.bind(_this)); }));
9672
10188
  }
9673
10189
  };
10190
+ DateTimePickerComponent.prototype.ngAfterViewInit = function () {
10191
+ this.setComponentClasses();
10192
+ };
9674
10193
  DateTimePickerComponent.prototype.ngOnChanges = function (changes) {
9675
10194
  if (isPresent(changes.min) || isPresent(changes.max)) {
9676
10195
  this.verifyMinMaxRange();
@@ -9825,7 +10344,7 @@ var DateTimePickerComponent = /** @class */ (function () {
9825
10344
  return;
9826
10345
  }
9827
10346
  this.isActive = false;
9828
- var isNgControlUntouched = this.host.nativeElement.classList.contains('ng-untouched');
10347
+ var isNgControlUntouched = this.wrapper.nativeElement.classList.contains('ng-untouched');
9829
10348
  var runInZone = isNgControlUntouched || hasObservers(this.onBlur) || (this.isOpen && hasObservers(this.close));
9830
10349
  this.run(runInZone, function () {
9831
10350
  _this.onBlur.emit();
@@ -9953,6 +10472,13 @@ var DateTimePickerComponent = /** @class */ (function () {
9953
10472
  this.input.focus();
9954
10473
  }
9955
10474
  };
10475
+ /**
10476
+ * @hidden
10477
+ */
10478
+ DateTimePickerComponent.prototype.popupButtonsClasses = function (type) {
10479
+ var buttonType = type ? type : 'base';
10480
+ return (this.size ? getSizeClass('button', this.size) : '') + " " + (this.rounded ? getRoundedClass(this.rounded) : '') + " " + (this.fillMode ? 'k-button-' + this.fillMode + ' ' + 'k-button-' + this.fillMode + '-' + buttonType : '');
10481
+ };
9956
10482
  /**
9957
10483
  * @hidden
9958
10484
  *
@@ -10077,7 +10603,7 @@ var DateTimePickerComponent = /** @class */ (function () {
10077
10603
  };
10078
10604
  /**
10079
10605
  * Indicates whether the focus target is part of this component,
10080
- * that is, whether the focus target is inside the component wrapper or in the popup.
10606
+ * that is, whether the focus target is inside the component or in the popup.
10081
10607
  */
10082
10608
  DateTimePickerComponent.prototype.focusTargetInComponent = function (event) {
10083
10609
  if (!isPresent(event)) {
@@ -10124,16 +10650,35 @@ var DateTimePickerComponent = /** @class */ (function () {
10124
10650
  this.cdr.markForCheck();
10125
10651
  this.ngZone.run(function () { return _this.onValidatorChange(); });
10126
10652
  };
10653
+ DateTimePickerComponent.prototype.setComponentClasses = function () {
10654
+ if (this.size) {
10655
+ this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
10656
+ this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', this.size));
10657
+ }
10658
+ if (this.rounded) {
10659
+ this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));
10660
+ }
10661
+ if (this.fillMode) {
10662
+ this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
10663
+ this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));
10664
+ this.renderer.addClass(this.toggleButton.nativeElement, "k-button-" + this.fillMode + "-base");
10665
+ }
10666
+ };
10127
10667
  var DateTimePickerComponent_1;
10128
10668
  __decorate([
10129
- HostBinding('class.k-widget'),
10130
10669
  HostBinding('class.k-datetimepicker'),
10670
+ HostBinding('class.k-input'),
10131
10671
  __metadata("design:type", Boolean)
10132
10672
  ], DateTimePickerComponent.prototype, "hostClasses", void 0);
10133
10673
  __decorate([
10134
- ViewChild('wrapper', { static: true }),
10674
+ HostBinding('class.k-disabled'),
10675
+ __metadata("design:type", Boolean),
10676
+ __metadata("design:paramtypes", [])
10677
+ ], DateTimePickerComponent.prototype, "disabledClass", null);
10678
+ __decorate([
10679
+ ViewChild('toggleButton', { static: true }),
10135
10680
  __metadata("design:type", ElementRef)
10136
- ], DateTimePickerComponent.prototype, "wrapper", void 0);
10681
+ ], DateTimePickerComponent.prototype, "toggleButton", void 0);
10137
10682
  __decorate([
10138
10683
  Input(),
10139
10684
  __metadata("design:type", Date),
@@ -10262,6 +10807,21 @@ var DateTimePickerComponent = /** @class */ (function () {
10262
10807
  __metadata("design:type", String),
10263
10808
  __metadata("design:paramtypes", [String])
10264
10809
  ], DateTimePickerComponent.prototype, "defaultTab", null);
10810
+ __decorate([
10811
+ Input(),
10812
+ __metadata("design:type", String),
10813
+ __metadata("design:paramtypes", [String])
10814
+ ], DateTimePickerComponent.prototype, "size", null);
10815
+ __decorate([
10816
+ Input(),
10817
+ __metadata("design:type", String),
10818
+ __metadata("design:paramtypes", [String])
10819
+ ], DateTimePickerComponent.prototype, "rounded", null);
10820
+ __decorate([
10821
+ Input(),
10822
+ __metadata("design:type", String),
10823
+ __metadata("design:paramtypes", [String])
10824
+ ], DateTimePickerComponent.prototype, "fillMode", null);
10265
10825
  __decorate([
10266
10826
  ContentChild(CellTemplateDirective, { static: false }),
10267
10827
  __metadata("design:type", CellTemplateDirective)
@@ -10312,7 +10872,7 @@ var DateTimePickerComponent = /** @class */ (function () {
10312
10872
  { provide: NG_VALIDATORS, useExisting: forwardRef(function () { return DateTimePickerComponent_1; }), multi: true },
10313
10873
  { provide: KendoInput, useExisting: forwardRef(function () { return DateTimePickerComponent_1; }) }
10314
10874
  ],
10315
- template: "\n <ng-container\n kendoDateTimePickerLocalizedMessages\n\n i18n-dateTab=\"kendo.datetimepicker.dateTab|The Date tab text in the datetimepicker popup header\"\n dateTab=\"Date\"\n\n i18n-dateTabLabel=\"kendo.datetimepicker.dateTabLabel|The label for the Date tab in the datetimepicker popup header\"\n dateTabLabel=\"Date tab\"\n\n i18n-timeTab=\"kendo.datetimepicker.timeTab|The Time tab text in the datetimepicker popup header\"\n timeTab=\"Time\"\n\n i18n-timeTabLabel=\"kendo.datetimepicker.timeTabLabel|The label for the Time tab in the datetimepicker popup header\"\n timeTabLabel=\"Time tab\"\n\n i18n-toggle=\"kendo.datetimepicker.toggle|The title of the toggle button in the datetimepicker component\"\n toggle=\"Toggle popup\"\n\n i18n-accept=\"kendo.datetimepicker.accept|The Accept button text in the datetimepicker component\"\n accept=\"Set\"\n\n i18n-acceptLabel=\"kendo.datetimepicker.acceptLabel|The label for the Accept button in the datetimepicker component\"\n acceptLabel=\"Set\"\n\n i18n-cancel=\"kendo.datetimepicker.cancel|The Cancel button text in the datetimepicker component\"\n cancel=\"Cancel\"\n\n i18n-cancelLabel=\"kendo.datetimepicker.cancelLabel|The label for the Cancel button in the datetimepicker component\"\n cancelLabel=\"Cancel\"\n\n i18n-now=\"kendo.datetimepicker.now|The Now button text in the timepicker component\"\n now=\"NOW\"\n\n i18n-nowLabel=\"kendo.datetimepicker.nowLabel|The label for the Now button in the timepicker component\"\n nowLabel=\"Select now\"\n\n i18n-today=\"kendo.datetimepicker.today|The label for the today button in the calendar header\"\n today=\"Today\"\n\n i18n-prevButtonTitle=\"kendo.datetimepicker.prevButtonTitle|The title of the previous button in the Classic calendar\"\n prevButtonTitle=\"Navigate to previous view\"\n\n i18n-nextButtonTitle=\"kendo.datetimepicker.nextButtonTitle|The title of the next button in the Classic calendar\"\n nextButtonTitle=\"Navigate to next view\"\n >\n </ng-container>\n\n <span\n #wrapper\n class=\"k-picker-wrap\"\n [class.k-state-disabled]=\"disabled\"\n >\n <kendo-dateinput\n [value]=\"value\"\n [format]=\"format\"\n [twoDigitYearMax]=\"twoDigitYearMax\"\n [min]=\"min\"\n [max]=\"max\"\n [incompleteDateValidation]=\"incompleteDateValidation\"\n [formatPlaceholder]=\"formatPlaceholder\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly || readOnlyInput\"\n [role]=\"inputRole\"\n [ariaReadOnly]=\"readonly\"\n [steps]=\"steps\"\n [tabindex]=\"tabindex\"\n [title]=\"title\"\n [focusableId]=\"focusableId\"\n [hasPopup]=\"true\"\n [isPopupOpen]=\"isOpen\"\n (valueChange)=\"handleInputValueChange($event)\"\n [kendoEventsOutsideAngular]=\"{\n keydown: handleKeyDown\n }\"\n [scope]=\"this\"\n >\n </kendo-dateinput>\n <span class=\"k-select\"\n [attr.title]=\"localization.get('toggle')\"\n [attr.aria-label]=\"localization.get('toggle')\"\n [kendoEventsOutsideAngular]=\"{\n mousedown: preventMouseDown,\n click: handleIconClick\n }\"\n [scope]=\"this\"\n >\n <span class=\"k-link k-link-date\">\n <span\n class=\"k-icon\"\n [class.k-i-calendar]=\"activeTab === 'date'\"\n [class.k-i-clock]=\"activeTab === 'time'\"\n >\n </span>\n </span>\n </span>\n </span>\n\n <ng-container #container></ng-container>\n\n <ng-template #popupTemplate>\n <div\n class=\"k-datetime-wrap k-{{activeTab}}-tab\"\n [kendoEventsOutsideAngular]=\"{\n mousedown: preventMouseDown,\n keydown: handleKeyDown\n }\"\n [scope]=\"this\"\n >\n <div class=\"k-datetime-buttongroup\"\n [kendoEventsOutsideAngular]=\"{\n focusin: handleFocus,\n focusout: handleBlur\n }\"\n [scope]=\"this\"\n >\n <div class=\"k-button-group k-button-group-stretched\">\n <button\n type=\"button\"\n class=\"k-button k-date-tab\"\n [class.k-state-active]=\"activeTab === 'date'\"\n [attr.title]=\"localization.get('dateTabLabel')\"\n [attr.aria-label]=\"localization.get('dateTabLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: changeActiveTab.bind(this, 'date'),\n keydown: handleBackTabOut\n }\"\n [scope]=\"this\"\n >\n {{localization.get('dateTab')}}\n </button>\n <button\n type=\"button\"\n class=\"k-button k-time-tab\"\n [class.k-state-active]=\"activeTab === 'time'\"\n [attr.title]=\"localization.get('timeTabLabel')\"\n [attr.aria-label]=\"localization.get('timeTabLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: changeActiveTab.bind(this, 'time')\n }\"\n >\n {{localization.get('timeTab')}}\n </button>\n </div>\n </div>\n <div\n #dateTimeSelector\n class=\"k-datetime-selector\"\n [style.transition]=\"tabSwitchTransition\"\n [kendoEventsOutsideAngular]=\"{\n transitionend: handleTabChangeTransitionEnd.bind(this, dateTimeSelector)\n }\"\n >\n <div class=\"k-datetime-calendar-wrap\">\n <kendo-calendar\n [(value)]=\"calendarValue\"\n [type]=\"calendarType\"\n [min]=\"calendarMin\"\n [max]=\"calendarMax\"\n [focusedDate]=\"focusedDate\"\n [weekNumber]=\"weekNumber\"\n [navigation]=\"false\"\n [animateNavigation]=\"animateCalendarNavigation\"\n [cellTemplate]=\"cellTemplate\"\n [monthCellTemplate]=\"monthCellTemplate\"\n [yearCellTemplate]=\"yearCellTemplate\"\n [decadeCellTemplate]=\"decadeCellTemplate\"\n [centuryCellTemplate]=\"centuryCellTemplate\"\n [weekNumberTemplate]=\"weekNumberTemplate\"\n [headerTitleTemplate]=\"headerTitleTemplate\"\n [disabled]=\"disableCalendar\"\n [disabledDates]=\"disabledDates\"\n (valueChange)=\"handleCalendarValueChange()\"\n >\n <kendo-calendar-messages\n [today]=\"localization.get('today')\"\n [prevButtonTitle]=\"localization.get('prevButtonTitle')\"\n [nextButtonTitle]=\"localization.get('nextButtonTitle')\"\n >\n </kendo-calendar-messages>\n </kendo-calendar>\n </div>\n <div class=\"k-datetime-time-wrap\">\n <kendo-timeselector\n [value]=\"value\"\n [format]=\"timeSelectorFormat\"\n [min]=\"timeSelectorMin\"\n [max]=\"timeSelectorMax\"\n [setButton]=\"false\"\n [cancelButton]=\"false\"\n [steps]=\"steps\"\n [disabled]=\"disableTimeSelector\"\n >\n <kendo-timeselector-messages\n [now]=\"localization.get('now')\"\n [nowLabel]=\"localization.get('nowLabel')\"\n >\n </kendo-timeselector-messages>\n </kendo-timeselector>\n </div>\n </div>\n <div\n class=\"k-datetime-footer k-action-buttons k-actions k-hstack k-justify-content-stretch\"\n [kendoEventsOutsideAngular]=\"{\n keydown: handleTabOut,\n focusin: handleFocus,\n focusout: handleBlur\n }\"\n [scope]=\"this\"\n >\n <button\n *ngIf=\"cancelButton\"\n type=\"button\"\n class=\"k-button k-time-cancel\"\n [attr.title]=\"localization.get('cancelLabel')\"\n [attr.aria-label]=\"localization.get('cancelLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleCancel\n }\"\n [scope]=\"this\"\n >\n {{localization.get('cancel')}}\n </button>\n <button\n type=\"button\"\n class=\"k-time-accept k-button k-primary\"\n [attr.title]=\"localization.get('acceptLabel')\"\n [attr.aria-label]=\"localization.get('acceptLabel')\"\n [disabled]=\"!calendarValue\"\n [kendoEventsOutsideAngular]=\"{\n click: handleAccept\n }\"\n [scope]=\"this\"\n >\n {{localization.get('accept')}}\n </button>\n </div>\n </div>\n </ng-template>\n "
10875
+ template: "\n <ng-container\n kendoDateTimePickerLocalizedMessages\n\n i18n-dateTab=\"kendo.datetimepicker.dateTab|The Date tab text in the datetimepicker popup header\"\n dateTab=\"Date\"\n\n i18n-dateTabLabel=\"kendo.datetimepicker.dateTabLabel|The label for the Date tab in the datetimepicker popup header\"\n dateTabLabel=\"Date tab\"\n\n i18n-timeTab=\"kendo.datetimepicker.timeTab|The Time tab text in the datetimepicker popup header\"\n timeTab=\"Time\"\n\n i18n-timeTabLabel=\"kendo.datetimepicker.timeTabLabel|The label for the Time tab in the datetimepicker popup header\"\n timeTabLabel=\"Time tab\"\n\n i18n-toggle=\"kendo.datetimepicker.toggle|The title of the toggle button in the datetimepicker component\"\n toggle=\"Toggle popup\"\n\n i18n-accept=\"kendo.datetimepicker.accept|The Accept button text in the datetimepicker component\"\n accept=\"Set\"\n\n i18n-acceptLabel=\"kendo.datetimepicker.acceptLabel|The label for the Accept button in the datetimepicker component\"\n acceptLabel=\"Set\"\n\n i18n-cancel=\"kendo.datetimepicker.cancel|The Cancel button text in the datetimepicker component\"\n cancel=\"Cancel\"\n\n i18n-cancelLabel=\"kendo.datetimepicker.cancelLabel|The label for the Cancel button in the datetimepicker component\"\n cancelLabel=\"Cancel\"\n\n i18n-now=\"kendo.datetimepicker.now|The Now button text in the timepicker component\"\n now=\"NOW\"\n\n i18n-nowLabel=\"kendo.datetimepicker.nowLabel|The label for the Now button in the timepicker component\"\n nowLabel=\"Select now\"\n\n i18n-today=\"kendo.datetimepicker.today|The label for the today button in the calendar header\"\n today=\"Today\"\n\n i18n-prevButtonTitle=\"kendo.datetimepicker.prevButtonTitle|The title of the previous button in the Classic calendar\"\n prevButtonTitle=\"Navigate to previous view\"\n\n i18n-nextButtonTitle=\"kendo.datetimepicker.nextButtonTitle|The title of the next button in the Classic calendar\"\n nextButtonTitle=\"Navigate to next view\"\n >\n </ng-container>\n\n <kendo-dateinput\n [value]=\"value\"\n [format]=\"format\"\n [twoDigitYearMax]=\"twoDigitYearMax\"\n [min]=\"min\"\n [max]=\"max\"\n [incompleteDateValidation]=\"incompleteDateValidation\"\n [formatPlaceholder]=\"formatPlaceholder\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly || readOnlyInput\"\n [role]=\"inputRole\"\n [ariaReadOnly]=\"readonly\"\n [steps]=\"steps\"\n [tabindex]=\"tabindex\"\n [title]=\"title\"\n [focusableId]=\"focusableId\"\n [hasPopup]=\"true\"\n [isPopupOpen]=\"isOpen\"\n (valueChange)=\"handleInputValueChange($event)\"\n [kendoEventsOutsideAngular]=\"{\n keydown: handleKeyDown\n }\"\n [scope]=\"this\"\n [fillMode]=\"fillMode\"\n [rounded]=\"rounded\"\n [size]=\"size\"\n >\n </kendo-dateinput>\n <button\n #toggleButton\n type=\"button\"\n class=\"k-input-button k-button k-icon-button\"\n [tabindex]=\"-1\"\n [attr.title]=\"localization.get('toggle')\"\n [attr.aria-label]=\"localization.get('toggle')\"\n [kendoEventsOutsideAngular]=\"{\n mousedown: preventMouseDown,\n click: handleIconClick\n }\"\n [scope]=\"this\"\n >\n <span class=\"k-button-icon k-icon\"\n [ngClass]=\"{\n 'k-i-calendar': activeTab === 'date',\n 'k-i-clock': activeTab === 'time'\n }\"\n ></span>\n </button>\n\n <ng-container #container></ng-container>\n\n <ng-template #popupTemplate>\n <div\n class=\"k-datetime-wrap k-{{activeTab}}-tab\"\n [kendoEventsOutsideAngular]=\"{\n mousedown: preventMouseDown,\n keydown: handleKeyDown\n }\"\n [scope]=\"this\"\n >\n <div class=\"k-datetime-buttongroup\"\n [kendoEventsOutsideAngular]=\"{\n focusin: handleFocus,\n focusout: handleBlur\n }\"\n [scope]=\"this\"\n >\n <div class=\"k-button-group k-button-group-stretched\">\n <button\n type=\"button\"\n class=\"k-button k-group-start k-date-tab\"\n [ngClass]=\"popupButtonsClasses()\"\n [class.k-active]=\"activeTab === 'date'\"\n [attr.title]=\"localization.get('dateTabLabel')\"\n [attr.aria-label]=\"localization.get('dateTabLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: changeActiveTab.bind(this, 'date'),\n keydown: handleBackTabOut\n }\"\n [scope]=\"this\"\n >\n {{localization.get('dateTab')}}\n </button>\n <button\n type=\"button\"\n class=\"k-button k-group-end k-time-tab\"\n [ngClass]=\"popupButtonsClasses()\"\n [class.k-active]=\"activeTab === 'time'\"\n [attr.title]=\"localization.get('timeTabLabel')\"\n [attr.aria-label]=\"localization.get('timeTabLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: changeActiveTab.bind(this, 'time')\n }\"\n >\n {{localization.get('timeTab')}}\n </button>\n </div>\n </div>\n <div\n #dateTimeSelector\n class=\"k-datetime-selector\"\n [style.transition]=\"tabSwitchTransition\"\n [kendoEventsOutsideAngular]=\"{\n transitionend: handleTabChangeTransitionEnd.bind(this, dateTimeSelector)\n }\"\n >\n <div class=\"k-datetime-calendar-wrap\">\n <kendo-calendar\n [(value)]=\"calendarValue\"\n [type]=\"calendarType\"\n [min]=\"calendarMin\"\n [max]=\"calendarMax\"\n [focusedDate]=\"focusedDate\"\n [weekNumber]=\"weekNumber\"\n [navigation]=\"false\"\n [animateNavigation]=\"animateCalendarNavigation\"\n [cellTemplate]=\"cellTemplate\"\n [monthCellTemplate]=\"monthCellTemplate\"\n [yearCellTemplate]=\"yearCellTemplate\"\n [decadeCellTemplate]=\"decadeCellTemplate\"\n [centuryCellTemplate]=\"centuryCellTemplate\"\n [weekNumberTemplate]=\"weekNumberTemplate\"\n [headerTitleTemplate]=\"headerTitleTemplate\"\n [disabled]=\"disableCalendar\"\n [disabledDates]=\"disabledDates\"\n (valueChange)=\"handleCalendarValueChange()\"\n >\n <kendo-calendar-messages\n [today]=\"localization.get('today')\"\n [prevButtonTitle]=\"localization.get('prevButtonTitle')\"\n [nextButtonTitle]=\"localization.get('nextButtonTitle')\"\n >\n </kendo-calendar-messages>\n </kendo-calendar>\n </div>\n <div class=\"k-datetime-time-wrap\">\n <kendo-timeselector\n [value]=\"value\"\n [format]=\"timeSelectorFormat\"\n [min]=\"timeSelectorMin\"\n [max]=\"timeSelectorMax\"\n [setButton]=\"false\"\n [cancelButton]=\"false\"\n [steps]=\"steps\"\n [disabled]=\"disableTimeSelector\"\n >\n <kendo-timeselector-messages\n [now]=\"localization.get('now')\"\n [nowLabel]=\"localization.get('nowLabel')\"\n >\n </kendo-timeselector-messages>\n </kendo-timeselector>\n </div>\n </div>\n <div\n class=\"k-datetime-footer k-action-buttons k-actions k-hstack k-justify-content-stretch\"\n [kendoEventsOutsideAngular]=\"{\n keydown: handleTabOut,\n focusin: handleFocus,\n focusout: handleBlur\n }\"\n [scope]=\"this\"\n >\n <button\n *ngIf=\"cancelButton\"\n type=\"button\"\n class=\"k-button k-time-cancel\"\n [ngClass]=\"popupButtonsClasses()\"\n [attr.title]=\"localization.get('cancelLabel')\"\n [attr.aria-label]=\"localization.get('cancelLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleCancel\n }\"\n [scope]=\"this\"\n >\n {{localization.get('cancel')}}\n </button>\n <button\n type=\"button\"\n class=\"k-button k-time-accept\"\n [ngClass]=\"popupButtonsClasses('primary')\"\n [attr.title]=\"localization.get('acceptLabel')\"\n [attr.aria-label]=\"localization.get('acceptLabel')\"\n [disabled]=\"!calendarValue\"\n [kendoEventsOutsideAngular]=\"{\n click: handleAccept\n }\"\n [scope]=\"this\"\n >\n {{localization.get('accept')}}\n </button>\n </div>\n </div>\n </ng-template>\n "
10316
10876
  }),
10317
10877
  __param(6, Inject(TOUCH_ENABLED)),
10318
10878
  __metadata("design:paramtypes", [PopupService,
@@ -11103,7 +11663,7 @@ var DateRangeInput = /** @class */ (function () {
11103
11663
  var action = show ? 'addClass' : 'removeClass';
11104
11664
  var nativeElement = this.element.nativeElement;
11105
11665
  if (nativeElement && nativeElement.querySelector) {
11106
- this.renderer[action](nativeElement.querySelector('.k-dateinput-wrap'), 'k-state-focused');
11666
+ this.renderer[action](nativeElement, 'k-focus');
11107
11667
  }
11108
11668
  };
11109
11669
  return DateRangeInput;
@@ -11732,7 +12292,7 @@ var ViewComponent = /** @class */ (function () {
11732
12292
  'k-state-selected': !context.isOtherMonth && (context.isSelected || isRangeStart || isRangeEnd),
11733
12293
  'k-today': !context.isOtherMonth && context.isToday,
11734
12294
  'k-weekend': context.isWeekend,
11735
- 'k-state-disabled': context.isDisabled,
12295
+ 'k-disabled': context.isDisabled,
11736
12296
  'k-other-month': context.isOtherMonth
11737
12297
  });
11738
12298
  };
@@ -12140,7 +12700,14 @@ var MultiViewCalendarModule = /** @class */ (function () {
12140
12700
  CalendarCommonModule,
12141
12701
  TemplatesModule
12142
12702
  ],
12143
- imports: [CommonModule, CalendarCommonModule, IntlModule, TemplatesModule, PopupModule],
12703
+ imports: [
12704
+ CommonModule,
12705
+ CalendarCommonModule,
12706
+ IntlModule,
12707
+ TemplatesModule,
12708
+ PopupModule,
12709
+ EventsModule
12710
+ ],
12144
12711
  providers: [
12145
12712
  NavigationService,
12146
12713
  CenturyViewService,
@@ -12697,14 +13264,16 @@ var DateRangeModule = /** @class */ (function () {
12697
13264
  var div$1 = domContainerFactory('div');
12698
13265
  var ul$1 = domContainerFactory('ul');
12699
13266
  var li$1 = domContainerFactory('li');
13267
+ var span = domContainerFactory('span');
13268
+ var listTitle = function () { return span('hour', 'k-title k-timeselector-title'); };
12700
13269
  var listItem = function () { return li$1('<span>02</span>', 'k-item'); };
12701
13270
  var list = function () { return ul$1([listItem()], 'k-reset'); };
12702
- var scrollable$1 = function () { return (div$1([list()], 'k-time-container k-content k-scrollable')); };
13271
+ var scrollable$1 = function () { return (div$1([list()], 'k-time-container k-flex k-content k-calendar-content k-scrollable')); };
12703
13272
  var timeListWrapper = function () {
12704
13273
  if (!isDocumentAvailable()) {
12705
13274
  return null;
12706
13275
  }
12707
- return div$1([div$1([scrollable$1()], 'k-time-list')], 'k-time-list-wrapper', { left: '-10000px', position: 'absolute' });
13276
+ return div$1([listTitle(), div$1([scrollable$1()], 'k-time-list')], 'k-time-list-wrapper', { left: '-10000px', position: 'absolute' });
12708
13277
  };
12709
13278
  var TIMELIST_WRAPPER = timeListWrapper();
12710
13279
  /**
@@ -12726,7 +13295,8 @@ var TimePickerDOMService = /** @class */ (function () {
12726
13295
  var listContainer = container && container.querySelector('.k-time-list-container');
12727
13296
  var hostContainer = listContainer || document.body;
12728
13297
  var wrapper = hostContainer.appendChild(TIMELIST_WRAPPER);
12729
- this.timeListHeight = wrapper.querySelector('.k-scrollable').getBoundingClientRect().height;
13298
+ this.timeListTitleHeight = wrapper.querySelector('.k-timeselector-title').getBoundingClientRect().height;
13299
+ this.timeListHeight = wrapper.getBoundingClientRect().height;
12730
13300
  this.itemHeight = wrapper.querySelector('li').getBoundingClientRect().height;
12731
13301
  hostContainer.removeChild(wrapper);
12732
13302
  };
@@ -13386,8 +13956,9 @@ var TimeListComponent = /** @class */ (function () {
13386
13956
  this.dom.ensureHeights();
13387
13957
  this.itemHeight = this.dom.itemHeight;
13388
13958
  this.listHeight = this.dom.timeListHeight;
13389
- this.topOffset = (this.listHeight - this.itemHeight) / 2;
13390
- this.bottomOffset = this.listHeight - this.itemHeight;
13959
+ var titleHeight = this.dom.timeListTitleHeight;
13960
+ this.topOffset = (this.listHeight - this.itemHeight - titleHeight) / 2;
13961
+ this.bottomOffset = this.listHeight - this.itemHeight - titleHeight;
13391
13962
  this.topThreshold = this.itemHeight * SNAP_THRESHOLD;
13392
13963
  this.bottomThreshold = this.itemHeight * (1 - SNAP_THRESHOLD);
13393
13964
  var translate = "translateY(" + this.topOffset + "px)";
@@ -13590,12 +14161,12 @@ var TimeListComponent = /** @class */ (function () {
13590
14161
  var isEqualTillMinute = function (value, min) { return value.getHours() === min.getHours() && value.getMinutes() === min.getMinutes(); };
13591
14162
  var isEqualTillSecond = function (value, min) { return isEqualTillMinute(value, min) && value.getSeconds() === min.getSeconds(); };
13592
14163
  var isEqualTillMillisecond = function (value, min) { return isEqualTillSecond(value, min) && value.getMilliseconds() === min.getMilliseconds(); };
13593
- var ɵ3$7 = function (value) { return value.getHours(); }, ɵ4$2 = function (_, min) { return min.getHours(); }, ɵ5$1 = function (value) { return value.getMinutes(); }, ɵ6$1 = function (value, min) { return isEqualTillMinute(value, min) ? min.getMinutes() : 0; }, ɵ7$1 = function (value) { return value.getSeconds(); }, ɵ8$1 = function (value, min) { return isEqualTillSecond(value, min) ? min.getSeconds() : 0; }, ɵ9$1 = function (value) { return value.getMilliseconds(); }, ɵ10$1 = function (value, min) { return isEqualTillMillisecond(value, min) ? min.getMilliseconds() : 0; };
14164
+ var ɵ3$7 = function (value) { return value.getHours(); }, ɵ4$3 = function (_, min) { return min.getHours(); }, ɵ5$1 = function (value) { return value.getMinutes(); }, ɵ6$1 = function (value, min) { return isEqualTillMinute(value, min) ? min.getMinutes() : 0; }, ɵ7$1 = function (value) { return value.getSeconds(); }, ɵ8$1 = function (value, min) { return isEqualTillSecond(value, min) ? min.getSeconds() : 0; }, ɵ9$1 = function (value) { return value.getMilliseconds(); }, ɵ10$1 = function (value, min) { return isEqualTillMillisecond(value, min) ? min.getMilliseconds() : 0; };
13594
14165
  var defaultGetters = [
13595
14166
  {
13596
14167
  type: TIME_PART.hour,
13597
14168
  getter: ɵ3$7,
13598
- minGetter: ɵ4$2
14169
+ minGetter: ɵ4$3
13599
14170
  }, {
13600
14171
  type: TIME_PART.minute,
13601
14172
  getter: ɵ5$1,
@@ -14050,7 +14621,7 @@ var TimeSelectorComponent = /** @class */ (function () {
14050
14621
  __metadata("design:type", Boolean)
14051
14622
  ], TimeSelectorComponent.prototype, "componentClass", void 0);
14052
14623
  __decorate([
14053
- HostBinding('class.k-state-disabled'),
14624
+ HostBinding('class.k-disabled'),
14054
14625
  __metadata("design:type", Boolean),
14055
14626
  __metadata("design:paramtypes", [])
14056
14627
  ], TimeSelectorComponent.prototype, "disabledClass", null);
@@ -14111,7 +14682,7 @@ var TimeSelectorComponent = /** @class */ (function () {
14111
14682
  }
14112
14683
  ],
14113
14684
  selector: 'kendo-timeselector',
14114
- template: "\n <ng-container kendoTimeSelectorLocalizedMessages\n i18n-accept=\"kendo.timeselector.accept|The Accept button text in the timeselector component\"\n accept=\"Set\"\n\n i18n-acceptLabel=\"kendo.timeselector.acceptLabel|The label for the Accept button in the timeselector component\"\n acceptLabel=\"Set time\"\n\n i18n-cancel=\"kendo.timeselector.cancel|The Cancel button text in the timeselector component\"\n cancel=\"Cancel\"\n\n i18n-cancelLabel=\"kendo.timeselector.cancelLabel|The label for the Cancel button in the timeselector component\"\n cancelLabel=\"Cancel changes\"\n\n i18n-now=\"kendo.timeselector.now|The Now button text in the timeselector component\"\n now=\"Now\"\n\n i18n-nowLabel=\"kendo.timeselector.nowLabel|The label for the Now button in the timeselector component\"\n nowLabel=\"Select now\"\n >\n </ng-container>\n <div class=\"k-time-header\">\n <span class=\"k-title k-timeselector-title\">\n {{ intl.formatDate(current, format) }}\n </span>\n <button\n #now\n *ngIf=\"showNowButton\"\n class=\"k-button k-flat k-time-now\" type=\"button\"\n [attr.title]=\"localization.get('nowLabel')\"\n [attr.aria-label]=\"localization.get('nowLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleNow,\n focus: handleFocus,\n blur: handleBlur\n }\"\n [scope]=\"this\"\n [disabled]=\"disabled\"\n >{{localization.get('now')}}</button>\n </div>\n <div class=\"k-time-list-container\">\n <span class=\"k-time-highlight\"></span>\n <ng-template ngFor [ngForOf]=\"dateFormatParts\" let-part let-idx=\"index\">\n <div\n #listWrapper\n class=\"k-time-list-wrapper\"\n role=\"presentation\" tabindex=\"-1\"\n *ngIf=\"part.type !== 'literal'\"\n >\n <span class=\"k-title k-timeselector-title\">{{intl.dateFieldName(part)}}</span>\n <kendo-timelist\n [min]=\"min\"\n [max]=\"max\"\n [part]=\"part\"\n [step]=\"partStep(part)\"\n [disabled]=\"disabled\"\n [(value)]=\"current\"\n [kendoEventsOutsideAngular]=\"{\n focus: handleListFocus,\n blur: handleBlur\n }\"\n [scope]=\"this\"\n [attr.data-timelist-index]=\"idx\"\n ></kendo-timelist>\n </div>\n <div class=\"k-time-separator\" *ngIf=\"part.type === 'literal'\">\n {{part.pattern}}\n </div>\n </ng-template>\n </div>\n <div class=\"k-time-footer k-action-buttons\" *ngIf=\"setButton || cancelButton\">\n <button\n #cancel\n *ngIf=\"cancelButton\"\n class=\"k-button k-time-cancel\" type=\"button\"\n [attr.title]=\"localization.get('cancelLabel')\"\n [attr.aria-label]=\"localization.get('cancelLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleReject,\n focus: handleFocus,\n blur: handleBlur\n }\"\n [scope]=\"this\"\n [disabled]=\"disabled\"\n >{{localization.get('cancel')}}</button>\n <button\n #accept\n *ngIf=\"setButton\"\n type=\"button\"\n class=\"k-time-accept k-button k-primary\"\n [attr.title]=\"localization.get('acceptLabel')\"\n [attr.aria-label]=\"localization.get('acceptLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleAccept,\n focus: handleFocus,\n blur: handleBlur\n }\"\n [scope]=\"this\"\n [disabled]=\"disabled\"\n >{{localization.get('accept')}}</button>\n </div>\n "
14685
+ template: "\n <ng-container kendoTimeSelectorLocalizedMessages\n i18n-accept=\"kendo.timeselector.accept|The Accept button text in the timeselector component\"\n accept=\"Set\"\n\n i18n-acceptLabel=\"kendo.timeselector.acceptLabel|The label for the Accept button in the timeselector component\"\n acceptLabel=\"Set time\"\n\n i18n-cancel=\"kendo.timeselector.cancel|The Cancel button text in the timeselector component\"\n cancel=\"Cancel\"\n\n i18n-cancelLabel=\"kendo.timeselector.cancelLabel|The label for the Cancel button in the timeselector component\"\n cancelLabel=\"Cancel changes\"\n\n i18n-now=\"kendo.timeselector.now|The Now button text in the timeselector component\"\n now=\"Now\"\n\n i18n-nowLabel=\"kendo.timeselector.nowLabel|The label for the Now button in the timeselector component\"\n nowLabel=\"Select now\"\n >\n </ng-container>\n <div class=\"k-time-header\">\n <span class=\"k-title k-timeselector-title\">\n {{ intl.formatDate(current, format) }}\n </span>\n <button\n #now\n *ngIf=\"showNowButton\"\n type=\"button\"\n class=\"k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-time-now\"\n [attr.title]=\"localization.get('nowLabel')\"\n [attr.aria-label]=\"localization.get('nowLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleNow,\n focus: handleFocus,\n blur: handleBlur\n }\"\n [scope]=\"this\"\n [disabled]=\"disabled\"\n >{{localization.get('now')}}</button>\n </div>\n <div class=\"k-time-list-container\">\n <span class=\"k-time-highlight\"></span>\n <ng-template ngFor [ngForOf]=\"dateFormatParts\" let-part let-idx=\"index\">\n <div\n #listWrapper\n class=\"k-time-list-wrapper\"\n role=\"presentation\" tabindex=\"-1\"\n *ngIf=\"part.type !== 'literal'\"\n >\n <span class=\"k-title k-timeselector-title\">{{intl.dateFieldName(part)}}</span>\n <kendo-timelist\n [min]=\"min\"\n [max]=\"max\"\n [part]=\"part\"\n [step]=\"partStep(part)\"\n [disabled]=\"disabled\"\n [(value)]=\"current\"\n [kendoEventsOutsideAngular]=\"{\n focus: handleListFocus,\n blur: handleBlur\n }\"\n [scope]=\"this\"\n [attr.data-timelist-index]=\"idx\"\n ></kendo-timelist>\n </div>\n <div class=\"k-time-separator\" *ngIf=\"part.type === 'literal'\">\n {{part.pattern}}\n </div>\n </ng-template>\n </div>\n <div class=\"k-time-footer k-action-buttons k-actions k-hstack k-justify-content-stretch\" *ngIf=\"setButton || cancelButton\">\n <button\n #cancel\n *ngIf=\"cancelButton\"\n class=\"k-button k-time-cancel k-button-md k-rounded-md k-button-solid k-button-solid-base\"\n type=\"button\"\n [attr.title]=\"localization.get('cancelLabel')\"\n [attr.aria-label]=\"localization.get('cancelLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleReject,\n focus: handleFocus,\n blur: handleBlur\n }\"\n [scope]=\"this\"\n [disabled]=\"disabled\"\n >{{localization.get('cancel')}}</button>\n <button\n #accept\n *ngIf=\"setButton\"\n type=\"button\"\n class=\"k-button k-time-accept k-button-md k-rounded-md k-button-solid k-button-solid-primary\"\n [attr.title]=\"localization.get('acceptLabel')\"\n [attr.aria-label]=\"localization.get('acceptLabel')\"\n [kendoEventsOutsideAngular]=\"{\n click: handleAccept,\n focus: handleFocus,\n blur: handleBlur\n }\"\n [scope]=\"this\"\n [disabled]=\"disabled\"\n >{{localization.get('accept')}}</button>\n </div>\n "
14115
14686
  }),
14116
14687
  __param(7, Optional()),
14117
14688
  __metadata("design:paramtypes", [LocalizationService,