@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
@@ -93,8 +93,9 @@ var TimeListComponent = /** @class */ (function () {
93
93
  this.dom.ensureHeights();
94
94
  this.itemHeight = this.dom.itemHeight;
95
95
  this.listHeight = this.dom.timeListHeight;
96
- this.topOffset = (this.listHeight - this.itemHeight) / 2;
97
- this.bottomOffset = this.listHeight - this.itemHeight;
96
+ var titleHeight = this.dom.timeListTitleHeight;
97
+ this.topOffset = (this.listHeight - this.itemHeight - titleHeight) / 2;
98
+ this.bottomOffset = this.listHeight - this.itemHeight - titleHeight;
98
99
  this.topThreshold = this.itemHeight * SNAP_THRESHOLD;
99
100
  this.bottomThreshold = this.itemHeight * (1 - SNAP_THRESHOLD);
100
101
  var translate = "translateY(" + this.topOffset + "px)";
@@ -17,7 +17,7 @@ import { PickerService } from '../common/picker.service';
17
17
  import { requiresZoneOnBlur, currentFocusTarget } from '../common/utils';
18
18
  import { TIME_PART } from './models/time-part.default';
19
19
  import { PreventableEvent } from '../preventable-event';
20
- import { noop, setTime, isWindowAvailable } from '../util';
20
+ import { noop, setTime, isWindowAvailable, getFillModeClass, getSizeClass, getRoundedClass } from '../util';
21
21
  import { timeRangeValidator } from '../validators/time-range.validator';
22
22
  import { TOUCH_ENABLED } from '../touch-enabled';
23
23
  import { fromEvent } from 'rxjs';
@@ -29,12 +29,12 @@ var formatRegExp = new RegExp(TIME_PART.hour + "|" + TIME_PART.minute + "|" + TI
29
29
  * Represents the [Kendo UI TimePicker component for Angular]({% slug overview_timepicker %}#toc-basic-usage).
30
30
  */
31
31
  var TimePickerComponent = /** @class */ (function () {
32
- function TimePickerComponent(zone, localization, cdr, popupService, element, renderer, injector, pickerService, intl, touchEnabled) {
32
+ function TimePickerComponent(zone, localization, cdr, popupService, wrapper, renderer, injector, pickerService, intl, touchEnabled) {
33
33
  this.zone = zone;
34
34
  this.localization = localization;
35
35
  this.cdr = cdr;
36
36
  this.popupService = popupService;
37
- this.element = element;
37
+ this.wrapper = wrapper;
38
38
  this.renderer = renderer;
39
39
  this.injector = injector;
40
40
  this.pickerService = pickerService;
@@ -196,6 +196,9 @@ var TimePickerComponent = /** @class */ (function () {
196
196
  this._value = null;
197
197
  this._active = false;
198
198
  this.domEvents = [];
199
+ this._size = 'medium';
200
+ this._rounded = 'medium';
201
+ this._fillMode = 'solid';
199
202
  validatePackage(packageMetadata);
200
203
  this.pickerSubscriptions = this.pickerService.onFocus.subscribe(this.handleFocus.bind(this));
201
204
  this.pickerSubscriptions.add(this.pickerService.onBlur.subscribe(this.handleBlur.bind(this)));
@@ -306,6 +309,85 @@ var TimePickerComponent = /** @class */ (function () {
306
309
  enumerable: true,
307
310
  configurable: true
308
311
  });
312
+ Object.defineProperty(TimePickerComponent.prototype, "size", {
313
+ get: function () {
314
+ return this._size;
315
+ },
316
+ /**
317
+ * Sets the size of the component.
318
+ *
319
+ * The possible values are:
320
+ * * `'small'`
321
+ * * `'medium'` (Default)
322
+ * * `'large'`
323
+ * * `null`
324
+ *
325
+ */
326
+ set: function (size) {
327
+ this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
328
+ this.renderer.removeClass(this.toggleButton.nativeElement, getSizeClass('input', this.size));
329
+ if (size) {
330
+ this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));
331
+ this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('input', size));
332
+ }
333
+ this._size = size;
334
+ },
335
+ enumerable: true,
336
+ configurable: true
337
+ });
338
+ Object.defineProperty(TimePickerComponent.prototype, "rounded", {
339
+ get: function () {
340
+ return this._rounded;
341
+ },
342
+ /**
343
+ * Sets the border radius of the component.
344
+ *
345
+ * The possible values are:
346
+ * * `'small'`
347
+ * * `'medium'` (Default)
348
+ * * `'large'`
349
+ * * `'full'`
350
+ * * `null`
351
+ *
352
+ */
353
+ set: function (rounded) {
354
+ this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));
355
+ if (rounded) {
356
+ this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));
357
+ }
358
+ this._rounded = rounded;
359
+ },
360
+ enumerable: true,
361
+ configurable: true
362
+ });
363
+ Object.defineProperty(TimePickerComponent.prototype, "fillMode", {
364
+ get: function () {
365
+ return this._fillMode;
366
+ },
367
+ /**
368
+ * Sets the fillMode of the component.
369
+ *
370
+ * The possible values are:
371
+ * * `'solid'` (Default)
372
+ * * `'flat'`
373
+ * * `'outline'`
374
+ * * `null`
375
+ *
376
+ */
377
+ set: function (fillMode) {
378
+ this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
379
+ this.renderer.removeClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));
380
+ this.renderer.removeClass(this.toggleButton.nativeElement, "k-button-" + this.fillMode + "-base");
381
+ if (fillMode) {
382
+ this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));
383
+ this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));
384
+ this.renderer.addClass(this.toggleButton.nativeElement, "k-button-" + fillMode + "-base");
385
+ }
386
+ this._fillMode = fillMode;
387
+ },
388
+ enumerable: true,
389
+ configurable: true
390
+ });
309
391
  Object.defineProperty(TimePickerComponent.prototype, "disabledClass", {
310
392
  /**
311
393
  * @hidden
@@ -337,10 +419,10 @@ var TimePickerComponent = /** @class */ (function () {
337
419
  }
338
420
  var element = this.wrapper.nativeElement;
339
421
  if (value) {
340
- this.renderer.addClass(element, 'k-state-focused');
422
+ this.renderer.addClass(element, 'k-focus');
341
423
  }
342
424
  else {
343
- this.renderer.removeClass(element, 'k-state-focused');
425
+ this.renderer.removeClass(element, 'k-focus');
344
426
  }
345
427
  },
346
428
  enumerable: true,
@@ -397,13 +479,19 @@ var TimePickerComponent = /** @class */ (function () {
397
479
  this.localizationChangeSubscription = this.localization
398
480
  .changes.subscribe(function () { return _this.cdr.markForCheck(); });
399
481
  this.control = this.injector.get(NgControl, null);
400
- if (this.element) {
401
- this.renderer.removeAttribute(this.element.nativeElement, 'tabindex');
482
+ if (this.wrapper) {
483
+ this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');
402
484
  this.zone.runOutsideAngular(function () {
403
485
  _this.bindEvents();
404
486
  });
405
487
  }
406
488
  };
489
+ /**
490
+ * @hidden
491
+ */
492
+ TimePickerComponent.prototype.ngAfterViewInit = function () {
493
+ this.setComponentClasses();
494
+ };
407
495
  /**
408
496
  * @hidden
409
497
  */
@@ -716,7 +804,7 @@ var TimePickerComponent = /** @class */ (function () {
716
804
  }
717
805
  };
718
806
  TimePickerComponent.prototype.bindEvents = function () {
719
- var element = this.element.nativeElement;
807
+ var element = this.wrapper.nativeElement;
720
808
  this.domEvents.push(this.renderer.listen(element, 'keydown', this.handleKeydown.bind(this)));
721
809
  if (isWindowAvailable()) {
722
810
  this.windowBlurSubscription = fromEvent(window, 'blur').subscribe(this.handleWindowBlur.bind(this));
@@ -768,6 +856,20 @@ var TimePickerComponent = /** @class */ (function () {
768
856
  this.cdr.markForCheck();
769
857
  this.zone.run(function () { return _this.onValidatorChange(); });
770
858
  };
859
+ TimePickerComponent.prototype.setComponentClasses = function () {
860
+ if (this.size) {
861
+ this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));
862
+ this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', this.size));
863
+ }
864
+ if (this.rounded) {
865
+ this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));
866
+ }
867
+ if (this.fillMode) {
868
+ this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
869
+ this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));
870
+ this.renderer.addClass(this.toggleButton.nativeElement, "k-button-" + this.fillMode + "-base");
871
+ }
872
+ };
771
873
  var TimePickerComponent_1;
772
874
  tslib_1.__decorate([
773
875
  ViewChild('container', { read: ViewContainerRef, static: false }),
@@ -778,9 +880,9 @@ var TimePickerComponent = /** @class */ (function () {
778
880
  tslib_1.__metadata("design:type", TemplateRef)
779
881
  ], TimePickerComponent.prototype, "popupTemplate", void 0);
780
882
  tslib_1.__decorate([
781
- ViewChild('wrapper', { static: false }),
883
+ ViewChild('toggleButton', { static: true }),
782
884
  tslib_1.__metadata("design:type", ElementRef)
783
- ], TimePickerComponent.prototype, "wrapper", void 0);
885
+ ], TimePickerComponent.prototype, "toggleButton", void 0);
784
886
  tslib_1.__decorate([
785
887
  Input(),
786
888
  tslib_1.__metadata("design:type", String)
@@ -863,6 +965,21 @@ var TimePickerComponent = /** @class */ (function () {
863
965
  tslib_1.__metadata("design:type", Date),
864
966
  tslib_1.__metadata("design:paramtypes", [Date])
865
967
  ], TimePickerComponent.prototype, "value", null);
968
+ tslib_1.__decorate([
969
+ Input(),
970
+ tslib_1.__metadata("design:type", String),
971
+ tslib_1.__metadata("design:paramtypes", [String])
972
+ ], TimePickerComponent.prototype, "size", null);
973
+ tslib_1.__decorate([
974
+ Input(),
975
+ tslib_1.__metadata("design:type", String),
976
+ tslib_1.__metadata("design:paramtypes", [String])
977
+ ], TimePickerComponent.prototype, "rounded", null);
978
+ tslib_1.__decorate([
979
+ Input(),
980
+ tslib_1.__metadata("design:type", String),
981
+ tslib_1.__metadata("design:paramtypes", [String])
982
+ ], TimePickerComponent.prototype, "fillMode", null);
866
983
  tslib_1.__decorate([
867
984
  Output(),
868
985
  tslib_1.__metadata("design:type", EventEmitter)
@@ -884,12 +1001,12 @@ var TimePickerComponent = /** @class */ (function () {
884
1001
  tslib_1.__metadata("design:type", EventEmitter)
885
1002
  ], TimePickerComponent.prototype, "close", void 0);
886
1003
  tslib_1.__decorate([
887
- HostBinding('class.k-widget'),
888
1004
  HostBinding('class.k-timepicker'),
1005
+ HostBinding('class.k-input'),
889
1006
  tslib_1.__metadata("design:type", Boolean)
890
1007
  ], TimePickerComponent.prototype, "wrapperClasses", void 0);
891
1008
  tslib_1.__decorate([
892
- HostBinding('class.k-state-disabled'),
1009
+ HostBinding('class.k-disabled'),
893
1010
  tslib_1.__metadata("design:type", Boolean),
894
1011
  tslib_1.__metadata("design:paramtypes", [])
895
1012
  ], TimePickerComponent.prototype, "disabledClass", null);
@@ -909,7 +1026,7 @@ var TimePickerComponent = /** @class */ (function () {
909
1026
  PickerService
910
1027
  ],
911
1028
  selector: 'kendo-timepicker',
912
- 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 "
1029
+ 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 "
913
1030
  }),
914
1031
  tslib_1.__param(9, Optional()), tslib_1.__param(9, Inject(TOUCH_ENABLED)),
915
1032
  tslib_1.__metadata("design:paramtypes", [NgZone,
@@ -414,7 +414,7 @@ var TimeSelectorComponent = /** @class */ (function () {
414
414
  tslib_1.__metadata("design:type", Boolean)
415
415
  ], TimeSelectorComponent.prototype, "componentClass", void 0);
416
416
  tslib_1.__decorate([
417
- HostBinding('class.k-state-disabled'),
417
+ HostBinding('class.k-disabled'),
418
418
  tslib_1.__metadata("design:type", Boolean),
419
419
  tslib_1.__metadata("design:paramtypes", [])
420
420
  ], TimeSelectorComponent.prototype, "disabledClass", null);
@@ -475,7 +475,7 @@ var TimeSelectorComponent = /** @class */ (function () {
475
475
  }
476
476
  ],
477
477
  selector: 'kendo-timeselector',
478
- 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 "
478
+ 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 "
479
479
  }),
480
480
  tslib_1.__param(7, Optional()),
481
481
  tslib_1.__metadata("design:paramtypes", [LocalizationService,
package/dist/es/util.js CHANGED
@@ -355,4 +355,41 @@ export var isTabExitingCalendar = function (calendarType, focusedElement, shiftK
355
355
  (!shiftKey && focusedElement.classList.contains('k-next-view')) // exited on next button focused and regular tab
356
356
  );
357
357
  };
358
+ /**
359
+ * @hidden
360
+ * Returns the size class based on the component and size input.
361
+ */
362
+ export var getSizeClass = function (component, size) {
363
+ var SIZE_CLASSES = {
364
+ 'small': "k-" + component + "-sm",
365
+ 'medium': "k-" + component + "-md",
366
+ 'large': "k-" + component + "-lg"
367
+ };
368
+ return SIZE_CLASSES[size];
369
+ };
370
+ /**
371
+ * @hidden
372
+ * Returns the rounded class based on the rounded input.
373
+ */
374
+ export var getRoundedClass = function (rounded) {
375
+ var ROUNDED_CLASSES = {
376
+ 'small': 'k-rounded-sm',
377
+ 'medium': 'k-rounded-md',
378
+ 'large': 'k-rounded-lg',
379
+ 'full': 'k-rounded-full'
380
+ };
381
+ return ROUNDED_CLASSES[rounded];
382
+ };
383
+ /**
384
+ * @hidden
385
+ * Return the fillMode class based on the component and fillMode input.
386
+ */
387
+ export var getFillModeClass = function (component, fillMode) {
388
+ var FILLMODE_CLASSES = {
389
+ 'solid': "k-" + component + "-solid",
390
+ 'flat': "k-" + component + "-flat",
391
+ 'outline': "k-" + component + "-outline"
392
+ };
393
+ return FILLMODE_CLASSES[fillMode];
394
+ };
358
395
  export { ɵ0, ɵ1, ɵ2 };
@@ -388,6 +388,13 @@ export declare class CalendarComponent implements ControlValueAccessor, OnChange
388
388
  * @hidden
389
389
  */
390
390
  activeCellTemplate(): any;
391
+ /**
392
+ * @hidden
393
+ */
394
+ handleNavigate(event: {
395
+ focusedDate: Date;
396
+ activeView: CalendarView;
397
+ }): void;
391
398
  /**
392
399
  * @hidden
393
400
  */
@@ -600,6 +600,14 @@ let CalendarComponent = class CalendarComponent {
600
600
  return null;
601
601
  }
602
602
  }
603
+ /**
604
+ * @hidden
605
+ */
606
+ handleNavigate(event) {
607
+ this.focusedDate = event.focusedDate;
608
+ this.activeView = event.activeView;
609
+ this.emitNavigate(this.focusedDate);
610
+ }
603
611
  /**
604
612
  * @hidden
605
613
  */
@@ -738,6 +746,10 @@ let CalendarComponent = class CalendarComponent {
738
746
  }
739
747
  }
740
748
  handleKeydown(args) {
749
+ const headerActive = this.type === 'classic' && this.multiViewCalendar.isHeaderActive;
750
+ if (headerActive) {
751
+ return;
752
+ }
741
753
  // reserve the alt + arrow key commands for the picker
742
754
  const arrowKeyPressed = [Keys.ArrowUp, Keys.ArrowRight, Keys.ArrowDown, Keys.ArrowLeft].indexOf(args.keyCode) !== -1;
743
755
  if (isPresent(this.pickerService) && arrowKeyPressed && args.altKey) {
@@ -987,7 +999,7 @@ tslib_1.__decorate([
987
999
  ], CalendarComponent.prototype, "calendarTabIndex", null);
988
1000
  tslib_1.__decorate([
989
1001
  HostBinding('attr.aria-disabled'),
990
- HostBinding('class.k-state-disabled'),
1002
+ HostBinding('class.k-disabled'),
991
1003
  tslib_1.__metadata("design:type", Boolean),
992
1004
  tslib_1.__metadata("design:paramtypes", [])
993
1005
  ], CalendarComponent.prototype, "ariaDisabled", null);
@@ -1083,7 +1095,7 @@ CalendarComponent = tslib_1.__decorate([
1083
1095
  [value]="value"
1084
1096
  [disabledDates]="disabledDates"
1085
1097
  (activeViewChange)="handleActiveViewChange($event)"
1086
- (navigate)="navigate.emit($event)"
1098
+ (navigate)="handleNavigate($event)"
1087
1099
  (valueChange)="handleMultiViewCalendarValueChange($event, multiviewcalendar.focusedDate)"
1088
1100
  (focus)="handleFocus()"
1089
1101
  (blur)="handleBlur($event)"
@@ -159,7 +159,7 @@ HeaderComponent = tslib_1.__decorate([
159
159
  Component({
160
160
  selector: 'kendo-calendar-header',
161
161
  template: `
162
- <span class="k-button k-flat k-title k-calendar-title" [class.k-state-disabled]="!navigate"
162
+ <span class="k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-calendar-title" [class.k-disabled]="!navigate"
163
163
  [kendoEventsOutsideAngular]="{
164
164
  click: handleNavigation
165
165
  }"
@@ -175,7 +175,7 @@ HeaderComponent = tslib_1.__decorate([
175
175
  <span class="k-calendar-nav k-hstack">
176
176
  <button
177
177
  *ngIf="showNavigationButtons"
178
- class="k-button k-flat k-icon-button k-prev-view"
178
+ class="k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-icon-button k-prev-view"
179
179
  type="button"
180
180
  [attr.aria-disabled]="isPrevDisabled"
181
181
  [disabled]="isPrevDisabled"
@@ -186,7 +186,7 @@ HeaderComponent = tslib_1.__decorate([
186
186
  </button>
187
187
  <span
188
188
  class="k-today k-nav-today"
189
- [class.k-state-disabled]="!todayAvailable"
189
+ [class.k-disabled]="!todayAvailable"
190
190
  [kendoEventsOutsideAngular]="{
191
191
  click: handleTodayClick
192
192
  }"
@@ -196,7 +196,7 @@ HeaderComponent = tslib_1.__decorate([
196
196
  </span>
197
197
  <button
198
198
  *ngIf="showNavigationButtons"
199
- class="k-button k-flat k-icon-button k-next-view"
199
+ class="k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-icon-button k-next-view"
200
200
  type="button"
201
201
  [attr.aria-disabled]="isNextDisabled"
202
202
  [disabled]="isNextDisabled"
@@ -24,6 +24,7 @@ import { CalendarViewEnum } from './models/view.enum';
24
24
  import { SelectionRangeEnd } from './models/selection-range-end.type';
25
25
  import { SelectionRange } from './models/selection-range.interface';
26
26
  import { CalendarSelection } from './models/selection';
27
+ import { PickerService } from '../common/picker.service';
27
28
  /**
28
29
  * @hidden
29
30
  */
@@ -55,6 +56,7 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
55
56
  private zone;
56
57
  private disabledDatesService;
57
58
  private selectionService;
59
+ private pickerService?;
58
60
  /**
59
61
  * @hidden
60
62
  */
@@ -308,7 +310,7 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
308
310
  /**
309
311
  * @hidden
310
312
  */
311
- handleBlur(event: FocusEvent): void;
313
+ handleFocusout(event: any): void;
312
314
  /**
313
315
  * @hidden
314
316
  */
@@ -333,7 +335,7 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
333
335
  * @hidden
334
336
  */
335
337
  keydown(event: KeyDown): void;
336
- constructor(bus: BusViewService, element: ElementRef, navigator: NavigationService, renderer: Renderer2, cdr: ChangeDetectorRef, zone: NgZone, disabledDatesService: DisabledDatesService, selectionService: SelectionService);
338
+ constructor(bus: BusViewService, element: ElementRef, navigator: NavigationService, renderer: Renderer2, cdr: ChangeDetectorRef, zone: NgZone, disabledDatesService: DisabledDatesService, selectionService: SelectionService, pickerService?: PickerService);
337
339
  ngOnInit(): void;
338
340
  ngOnChanges(changes: any): void;
339
341
  ngOnDestroy(): void;
@@ -358,6 +360,10 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
358
360
  * Blurs the Calendar component.
359
361
  */
360
362
  blur(): void;
363
+ /**
364
+ * @hidden
365
+ */
366
+ handleHeaderFocus(): void;
361
367
  /**
362
368
  * @hidden
363
369
  */
@@ -3,8 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as tslib_1 from "tslib";
6
- /* tslint:disable:no-forward-ref */
7
- import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ContentChild, EventEmitter, ElementRef, Renderer2, isDevMode, forwardRef, HostBinding, HostListener, Input, Output, ViewChild, NgZone } from '@angular/core';
6
+ import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ContentChild, EventEmitter, ElementRef, Renderer2, isDevMode, forwardRef, HostBinding, HostListener, Input, Output, ViewChild, NgZone, Optional } from '@angular/core';
8
7
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
9
8
  import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
10
9
  import { cloneDate, isEqual } from '@progress/kendo-date-math';
@@ -31,6 +30,7 @@ import { MIN_DATE, MAX_DATE } from '../defaults';
31
30
  import { areDatesEqual, dateInRange, getToday, hasExistingValue, last, noop } from '../util';
32
31
  import { Subscription } from 'rxjs';
33
32
  import { isPresent } from '../common/utils';
33
+ import { PickerService } from '../common/picker.service';
34
34
  const BOTTOM_VIEW_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-bottomview';
35
35
  const TOP_VIEW_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-topview';
36
36
  const MIN_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-min';
@@ -67,7 +67,7 @@ export const RANGE_CALENDAR_RANGE_VALIDATORS = {
67
67
  * ```
68
68
  */
69
69
  let MultiViewCalendarComponent = class MultiViewCalendarComponent {
70
- constructor(bus, element, navigator, renderer, cdr, zone, disabledDatesService, selectionService) {
70
+ constructor(bus, element, navigator, renderer, cdr, zone, disabledDatesService, selectionService, pickerService) {
71
71
  this.bus = bus;
72
72
  this.element = element;
73
73
  this.navigator = navigator;
@@ -76,6 +76,7 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
76
76
  this.zone = zone;
77
77
  this.disabledDatesService = disabledDatesService;
78
78
  this.selectionService = selectionService;
79
+ this.pickerService = pickerService;
79
80
  /**
80
81
  * @hidden
81
82
  */
@@ -362,21 +363,22 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
362
363
  /**
363
364
  * @hidden
364
365
  */
365
- handleBlur(event) {
366
- const target = event.target;
367
- if (!this.element.nativeElement.contains(event.relatedTarget)) {
366
+ handleFocusout(event) {
367
+ const relatedTarget = event.relatedTarget;
368
+ if (!this.element.nativeElement.contains(relatedTarget)) {
368
369
  this.blurEvent.emit(event);
369
370
  this.onControlTouched();
370
371
  }
371
372
  this.isActive = false;
372
373
  this.isHovered = false; //ensure that hovered is also not active
373
- this.isHeaderActive = this.headerElement.nativeElement.contains(target);
374
+ this.isHeaderActive = this.headerElement.nativeElement.contains(relatedTarget);
374
375
  }
375
376
  /**
376
377
  * @hidden
377
378
  */
378
379
  handleFocus() {
379
380
  this.isActive = true;
381
+ this.isHeaderActive = false;
380
382
  }
381
383
  /**
382
384
  * @hidden
@@ -409,7 +411,13 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
409
411
  * @hidden
410
412
  */
411
413
  keydown(event) {
414
+ if (this.isHeaderActive) {
415
+ return;
416
+ }
412
417
  if (event.keyCode === Keys.Enter) {
418
+ if (isPresent(this.pickerService)) {
419
+ event.preventDefault(); // Don't submit form from Datepicker popup
420
+ }
413
421
  this.performSelection(this.focusedDate, event);
414
422
  }
415
423
  const candidate = dateInRange(this.navigator.move(this.focusedDate, this.navigator.action(event), this.activeViewEnum), this.min, this.max);
@@ -484,6 +492,12 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
484
492
  }
485
493
  this.element.nativeElement.blur();
486
494
  }
495
+ /**
496
+ * @hidden
497
+ */
498
+ handleHeaderFocus() {
499
+ this.isHeaderActive = true;
500
+ }
487
501
  /**
488
502
  * @hidden
489
503
  */
@@ -890,7 +904,7 @@ tslib_1.__decorate([
890
904
  ], MultiViewCalendarComponent.prototype, "calendarTabIndex", null);
891
905
  tslib_1.__decorate([
892
906
  HostBinding('attr.aria-disabled'),
893
- HostBinding('class.k-state-disabled'),
907
+ HostBinding('class.k-disabled'),
894
908
  tslib_1.__metadata("design:type", Boolean),
895
909
  tslib_1.__metadata("design:paramtypes", [])
896
910
  ], MultiViewCalendarComponent.prototype, "ariaDisabled", null);
@@ -902,9 +916,9 @@ tslib_1.__decorate([
902
916
  tslib_1.__decorate([
903
917
  HostListener('focusout', ['$event']),
904
918
  tslib_1.__metadata("design:type", Function),
905
- tslib_1.__metadata("design:paramtypes", [FocusEvent]),
919
+ tslib_1.__metadata("design:paramtypes", [Object]),
906
920
  tslib_1.__metadata("design:returntype", void 0)
907
- ], MultiViewCalendarComponent.prototype, "handleBlur", null);
921
+ ], MultiViewCalendarComponent.prototype, "handleFocusout", null);
908
922
  tslib_1.__decorate([
909
923
  HostListener("focus"),
910
924
  tslib_1.__metadata("design:type", Function),
@@ -984,6 +998,10 @@ MultiViewCalendarComponent = tslib_1.__decorate([
984
998
  (todayButtonClick)="handleTodayButtonClick({ selectedDates: [$event], focusedDate: $event })"
985
999
  (prevButtonClick)="navigateView(prevView)"
986
1000
  (nextButtonClick)="navigateView(nextView)"
1001
+ [kendoEventsOutsideAngular]="{
1002
+ focusin: handleHeaderFocus
1003
+ }"
1004
+ [scope]="this"
987
1005
  >
988
1006
  </kendo-calendar-header>
989
1007
  <kendo-calendar-horizontal
@@ -1012,6 +1030,7 @@ MultiViewCalendarComponent = tslib_1.__decorate([
1012
1030
  </kendo-calendar-horizontal>
1013
1031
  `
1014
1032
  }),
1033
+ tslib_1.__param(8, Optional()),
1015
1034
  tslib_1.__metadata("design:paramtypes", [BusViewService,
1016
1035
  ElementRef,
1017
1036
  NavigationService,
@@ -1019,6 +1038,7 @@ MultiViewCalendarComponent = tslib_1.__decorate([
1019
1038
  ChangeDetectorRef,
1020
1039
  NgZone,
1021
1040
  DisabledDatesService,
1022
- SelectionService])
1041
+ SelectionService,
1042
+ PickerService])
1023
1043
  ], MultiViewCalendarComponent);
1024
1044
  export { MultiViewCalendarComponent };
@@ -7,6 +7,7 @@ import { NgModule } from '@angular/core';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { IntlModule } from '@progress/kendo-angular-intl';
9
9
  import { PopupModule } from '@progress/kendo-angular-popup';
10
+ import { EventsModule } from '@progress/kendo-angular-common';
10
11
  import { CalendarCommonModule } from './calendar-common.module';
11
12
  import { TemplatesModule } from './templates.module';
12
13
  import { HorizontalViewListComponent } from './horizontal-view-list.component';
@@ -72,7 +73,14 @@ MultiViewCalendarModule = tslib_1.__decorate([
72
73
  CalendarCommonModule,
73
74
  TemplatesModule
74
75
  ],
75
- imports: [CommonModule, CalendarCommonModule, IntlModule, TemplatesModule, PopupModule],
76
+ imports: [
77
+ CommonModule,
78
+ CalendarCommonModule,
79
+ IntlModule,
80
+ TemplatesModule,
81
+ PopupModule,
82
+ EventsModule
83
+ ],
76
84
  providers: [
77
85
  NavigationService,
78
86
  CenturyViewService,