@progress/kendo-angular-dateinputs 16.0.0-develop.12 → 16.0.0-develop.14

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 (33) hide show
  1. package/calendar/calendar.component.d.ts +42 -8
  2. package/calendar/horizontal-view-list.component.d.ts +4 -3
  3. package/calendar/models/cell-context.interface.d.ts +4 -0
  4. package/calendar/models/selection-range.interface.d.ts +2 -2
  5. package/calendar/models/selection.d.ts +11 -1
  6. package/calendar/multiview-calendar.component.d.ts +40 -8
  7. package/calendar/view-list.component.d.ts +7 -1
  8. package/calendar/view.component.d.ts +2 -1
  9. package/common/utils.d.ts +4 -0
  10. package/daterange/date-range-popup.component.d.ts +15 -2
  11. package/datetimepicker/datetimepicker.component.d.ts +5 -0
  12. package/esm2020/calendar/calendar.component.mjs +233 -45
  13. package/esm2020/calendar/horizontal-view-list.component.mjs +9 -5
  14. package/esm2020/calendar/models/selection.mjs +34 -1
  15. package/esm2020/calendar/multiview-calendar.component.mjs +226 -45
  16. package/esm2020/calendar/services/century-view.service.mjs +26 -5
  17. package/esm2020/calendar/services/decade-view.service.mjs +26 -5
  18. package/esm2020/calendar/services/month-view.service.mjs +26 -5
  19. package/esm2020/calendar/services/year-view.service.mjs +26 -5
  20. package/esm2020/calendar/view-list.component.mjs +20 -3
  21. package/esm2020/calendar/view.component.mjs +6 -3
  22. package/esm2020/common/utils.mjs +4 -0
  23. package/esm2020/datepicker/datepicker.component.mjs +1 -1
  24. package/esm2020/daterange/date-range-popup.component.mjs +64 -11
  25. package/esm2020/daterange/date-range.component.mjs +1 -1
  26. package/esm2020/datetimepicker/datetimepicker.component.mjs +14 -2
  27. package/esm2020/package-metadata.mjs +2 -2
  28. package/esm2020/timepicker/timepicker.component.mjs +1 -1
  29. package/esm2020/timepicker/timeselector.component.mjs +22 -7
  30. package/fesm2015/progress-kendo-angular-dateinputs.mjs +748 -142
  31. package/fesm2020/progress-kendo-angular-dateinputs.mjs +736 -141
  32. package/package.json +8 -8
  33. package/timepicker/timeselector.component.d.ts +2 -1
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { ChangeDetectorRef, EventEmitter, ElementRef, Renderer2, AfterViewChecked, OnChanges, OnDestroy, NgZone, Injector, AfterViewInit } from '@angular/core';
5
+ import { ChangeDetectorRef, EventEmitter, ElementRef, Renderer2, AfterViewChecked, OnChanges, OnDestroy, NgZone, Injector, AfterViewInit, DoCheck } from '@angular/core';
6
6
  import { AbstractControl, ControlValueAccessor, Validator } from '@angular/forms';
7
7
  import { LocalizationService } from '@progress/kendo-angular-l10n';
8
8
  import { Day } from '@progress/kendo-date-math';
@@ -32,6 +32,8 @@ import { DateInputSize } from '../common/models/size';
32
32
  import { HeaderTemplateDirective } from './templates/header-template.directive';
33
33
  import { FooterTemplateDirective } from './templates/footer-template.directivе';
34
34
  import { WeekDaysFormat } from '../common/models/week-days-format';
35
+ import { SelectionRangeEnd } from './models/selection-range-end.type';
36
+ import { SelectionRange } from './models/selection-range.interface';
35
37
  import * as i0 from "@angular/core";
36
38
  /**
37
39
  * @hidden
@@ -59,7 +61,7 @@ export declare const KENDO_INPUT_PROVIDER: any;
59
61
  * export class AppComponent { }
60
62
  * ```
61
63
  */
62
- export declare class CalendarComponent implements ControlValueAccessor, OnChanges, OnDestroy, AfterViewChecked, AfterViewInit, Validator {
64
+ export declare class CalendarComponent implements ControlValueAccessor, OnChanges, DoCheck, OnDestroy, AfterViewChecked, AfterViewInit, Validator {
63
65
  private bus;
64
66
  dom: CalendarDOMService;
65
67
  private element;
@@ -140,17 +142,28 @@ export declare class CalendarComponent implements ControlValueAccessor, OnChange
140
142
  * The available values are:
141
143
  * * `single` (default)
142
144
  * * `multiple`
145
+ * * `range`
143
146
  */
144
- selection: CalendarSelection;
147
+ set selection(_selection: CalendarSelection);
148
+ get selection(): CalendarSelection;
149
+ private _selection;
150
+ /**
151
+ * Allows reverse selection when using `range` selection.
152
+ * If `allowReverse` is set to `true`, the component skips the validation of whether the start date is after the end date.
153
+ *
154
+ * @default false
155
+ */
156
+ allowReverse: boolean;
145
157
  /**
146
158
  * Sets or gets the `value` property of the Calendar and defines the selected value of the component.
147
159
  *
148
160
  * > The `value` has to be a valid
149
161
  * [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date)
150
- * instance when in `single` selection mode or an array of valid JavaScript Date instances when in `multiple` selection mode.
162
+ * instance when in `single` selection mode, an array of valid JavaScript Date instances when in `multiple` selection mode, or
163
+ * an object of type `SelectionRange` when in `range` selection mode.
151
164
  */
152
- get value(): any;
153
- set value(candidate: any);
165
+ set value(candidate: Date | Date[] | SelectionRange | null);
166
+ get value(): Date | Date[] | SelectionRange | null;
154
167
  /**
155
168
  * Sets or gets the `disabled` property of the Calendar and
156
169
  * determines whether the component is active
@@ -423,11 +436,21 @@ export declare class CalendarComponent implements ControlValueAccessor, OnChange
423
436
  set size(size: DateInputSize);
424
437
  get size(): DateInputSize;
425
438
  private _size;
439
+ /**
440
+ * Specify, which end of the defined selection range should be marked as active.
441
+ *
442
+ * > Value will be ignored if the selection range is undefined.
443
+ * > If range selection is used then the default value is 'start'.
444
+ */
445
+ set activeRangeEnd(_activeRangeEnd: SelectionRangeEnd);
446
+ get activeRangeEnd(): SelectionRangeEnd;
447
+ private _activeRangeEnd;
426
448
  navigationView: NavigationComponent;
427
449
  monthView: ViewListComponent;
428
450
  multiViewCalendar: MultiViewCalendarComponent;
429
451
  isActive: boolean;
430
452
  cellUID: string;
453
+ selectionRange: SelectionRange;
431
454
  selectedDates: Date[];
432
455
  rangePivot: Date;
433
456
  private _disabledDates;
@@ -440,6 +463,9 @@ export declare class CalendarComponent implements ControlValueAccessor, OnChange
440
463
  private onValidatorChange;
441
464
  private minValidateFn;
442
465
  private maxValidateFn;
466
+ private changes;
467
+ private valueSetter;
468
+ private selectionSetter;
443
469
  private syncNavigation;
444
470
  private viewChangeSubscription;
445
471
  private _type;
@@ -466,12 +492,18 @@ export declare class CalendarComponent implements ControlValueAccessor, OnChange
466
492
  private localizationChangeSubscription;
467
493
  private activeViewDate;
468
494
  private currentlyFocusedElement;
495
+ private canHover;
469
496
  constructor(bus: BusViewService, dom: CalendarDOMService, element: ElementRef, navigator: NavigationService, renderer: Renderer2, cdr: ChangeDetectorRef, ngZone: NgZone, injector: Injector, scrollSyncService: ScrollSyncService, disabledDatesService: DisabledDatesService, localization: LocalizationService, selectionService: SelectionService, pickerService?: PickerService);
470
497
  ngOnInit(): void;
471
498
  ngOnChanges(changes: any): void;
499
+ ngDoCheck(): void;
472
500
  ngAfterViewInit(): void;
473
501
  ngAfterViewChecked(): void;
474
502
  ngOnDestroy(): void;
503
+ /**
504
+ * @hidden
505
+ */
506
+ onCellEnter(date: Date): void;
475
507
  /**
476
508
  * @hidden
477
509
  */
@@ -511,7 +543,7 @@ export declare class CalendarComponent implements ControlValueAccessor, OnChange
511
543
  /**
512
544
  * @hidden
513
545
  */
514
- handleMultiViewCalendarValueChange(date: Date | Date[], focusedDate: Date): void;
546
+ handleMultiViewCalendarValueChange(value: Date | Date[] | SelectionRange, focusedDate: Date): void;
515
547
  /**
516
548
  * @hidden
517
549
  */
@@ -605,7 +637,9 @@ export declare class CalendarComponent implements ControlValueAccessor, OnChange
605
637
  private emitSameDate;
606
638
  private setAriaActivedescendant;
607
639
  private parseSelectionToValue;
640
+ private setValue;
641
+ private performRangeSelection;
608
642
  private performSelection;
609
643
  static ɵfac: i0.ɵɵFactoryDeclaration<CalendarComponent, [null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
610
- static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "kendo-calendar", ["kendo-calendar"], { "showOtherMonthDays": "showOtherMonthDays"; "id": "id"; "focusedDate": "focusedDate"; "min": "min"; "max": "max"; "rangeValidation": "rangeValidation"; "weekDaysFormat": "weekDaysFormat"; "footer": "footer"; "selection": "selection"; "value": "value"; "disabled": "disabled"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "disabledDates": "disabledDates"; "navigation": "navigation"; "activeView": "activeView"; "bottomView": "bottomView"; "topView": "topView"; "type": "type"; "animateNavigation": "animateNavigation"; "weekNumber": "weekNumber"; "cellTemplateRef": "cellTemplate"; "monthCellTemplateRef": "monthCellTemplate"; "yearCellTemplateRef": "yearCellTemplate"; "decadeCellTemplateRef": "decadeCellTemplate"; "centuryCellTemplateRef": "centuryCellTemplate"; "weekNumberTemplateRef": "weekNumberTemplate"; "headerTitleTemplateRef": "headerTitleTemplate"; "headerTemplateRef": "headerTemplate"; "footerTemplateRef": "footerTemplate"; "navigationItemTemplateRef": "navigationItemTemplate"; "size": "size"; }, { "activeViewChange": "activeViewChange"; "navigate": "navigate"; "activeViewDateChange": "activeViewDateChange"; "onBlur": "blur"; "onFocus": "focus"; "valueChange": "valueChange"; }, ["cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate"], never, false, never>;
644
+ static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "kendo-calendar", ["kendo-calendar"], { "showOtherMonthDays": "showOtherMonthDays"; "id": "id"; "focusedDate": "focusedDate"; "min": "min"; "max": "max"; "rangeValidation": "rangeValidation"; "weekDaysFormat": "weekDaysFormat"; "footer": "footer"; "selection": "selection"; "allowReverse": "allowReverse"; "value": "value"; "disabled": "disabled"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "disabledDates": "disabledDates"; "navigation": "navigation"; "activeView": "activeView"; "bottomView": "bottomView"; "topView": "topView"; "type": "type"; "animateNavigation": "animateNavigation"; "weekNumber": "weekNumber"; "cellTemplateRef": "cellTemplate"; "monthCellTemplateRef": "monthCellTemplate"; "yearCellTemplateRef": "yearCellTemplate"; "decadeCellTemplateRef": "decadeCellTemplate"; "centuryCellTemplateRef": "centuryCellTemplate"; "weekNumberTemplateRef": "weekNumberTemplate"; "headerTitleTemplateRef": "headerTitleTemplate"; "headerTemplateRef": "headerTemplate"; "footerTemplateRef": "footerTemplate"; "navigationItemTemplateRef": "navigationItemTemplate"; "size": "size"; "activeRangeEnd": "activeRangeEnd"; }, { "activeViewChange": "activeViewChange"; "navigate": "navigate"; "activeViewDateChange": "activeViewDateChange"; "onBlur": "blur"; "onFocus": "focus"; "valueChange": "valueChange"; }, ["cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate"], never, false, never>;
611
645
  }
@@ -24,14 +24,15 @@ export declare class HorizontalViewListComponent implements OnChanges, AfterView
24
24
  private cdr;
25
25
  private element;
26
26
  private renderer;
27
+ handleMultiViewCalendarFocus(): void;
28
+ handleMultiViewCalendarBlur(event: any): void;
27
29
  /**
28
30
  * Needed for the MultiViewCalendar used in the Scheduler Year view
29
31
  */
30
32
  showOtherMonthDays: boolean;
31
- handleMultiViewCalendarFocus(): void;
32
- handleMultiViewCalendarBlur(event: any): void;
33
33
  cellTemplateRef: TemplateRef<any>;
34
34
  weekNumberTemplateRef: TemplateRef<any>;
35
+ allowReverse: boolean;
35
36
  activeRangeEnd: SelectionRangeEnd;
36
37
  activeView: CalendarViewEnum;
37
38
  cellUID: string;
@@ -106,5 +107,5 @@ export declare class HorizontalViewListComponent implements OnChanges, AfterView
106
107
  private getTake;
107
108
  private setAriaActivedescendant;
108
109
  static ɵfac: i0.ɵɵFactoryDeclaration<HorizontalViewListComponent, never>;
109
- static ɵcmp: i0.ɵɵComponentDeclaration<HorizontalViewListComponent, "kendo-calendar-horizontal", never, { "showOtherMonthDays": "showOtherMonthDays"; "cellTemplateRef": "cellTemplateRef"; "weekNumberTemplateRef": "weekNumberTemplateRef"; "activeRangeEnd": "activeRangeEnd"; "activeView": "activeView"; "cellUID": "cellUID"; "focusedDate": "focusedDate"; "isActive": "isActive"; "min": "min"; "max": "max"; "selectionRange": "selectionRange"; "selectedDates": "selectedDates"; "views": "views"; "showViewHeader": "showViewHeader"; "animateNavigation": "animateNavigation"; "orientation": "orientation"; "activeDescendant": "activeDescendant"; "tabIndex": "tabIndex"; "disabled": "disabled"; "id": "id"; "weekDaysFormat": "weekDaysFormat"; "weekNumber": "weekNumber"; }, { "cellClick": "cellClick"; "weekNumberCellClick": "weekNumberCellClick"; "cellEnter": "cellEnter"; "cellLeave": "cellLeave"; "activeDateChange": "activeDateChange"; "focusCalendar": "focusCalendar"; "blurCalendar": "blurCalendar"; "focusedCellChange": "focusedCellChange"; }, never, never, false, never>;
110
+ static ɵcmp: i0.ɵɵComponentDeclaration<HorizontalViewListComponent, "kendo-calendar-horizontal", never, { "showOtherMonthDays": "showOtherMonthDays"; "cellTemplateRef": "cellTemplateRef"; "weekNumberTemplateRef": "weekNumberTemplateRef"; "allowReverse": "allowReverse"; "activeRangeEnd": "activeRangeEnd"; "activeView": "activeView"; "cellUID": "cellUID"; "focusedDate": "focusedDate"; "isActive": "isActive"; "min": "min"; "max": "max"; "selectionRange": "selectionRange"; "selectedDates": "selectedDates"; "views": "views"; "showViewHeader": "showViewHeader"; "animateNavigation": "animateNavigation"; "orientation": "orientation"; "activeDescendant": "activeDescendant"; "tabIndex": "tabIndex"; "disabled": "disabled"; "id": "id"; "weekDaysFormat": "weekDaysFormat"; "weekNumber": "weekNumber"; }, { "cellClick": "cellClick"; "weekNumberCellClick": "weekNumberCellClick"; "cellEnter": "cellEnter"; "cellLeave": "cellLeave"; "activeDateChange": "activeDateChange"; "focusCalendar": "focusCalendar"; "blurCalendar": "blurCalendar"; "focusedCellChange": "focusedCellChange"; }, never, never, false, never>;
110
111
  }
@@ -70,4 +70,8 @@ export interface CellContext {
70
70
  * @hidden
71
71
  */
72
72
  showOtherMonthDays?: boolean;
73
+ /**
74
+ * @hidden
75
+ */
76
+ allowReverse?: boolean;
73
77
  }
@@ -9,11 +9,11 @@ export interface SelectionRange {
9
9
  /**
10
10
  * The beginning of the selection range.
11
11
  */
12
- start: Date;
12
+ start: Date | null;
13
13
  /**
14
14
  * The end of the selection range.
15
15
  */
16
- end: Date;
16
+ end: Date | null;
17
17
  }
18
18
  /**
19
19
  * @hidden
@@ -2,12 +2,22 @@
2
2
  * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
+ import { SelectionRangeEnd } from "./selection-range-end.type";
6
+ import { SelectionRange } from "./selection-range.interface";
5
7
  /**
6
8
  * Sets the Calendar selection mode.
7
9
  *
8
10
  * The available values are:
9
11
  * * `single` (default)
10
12
  * * `multiple`
13
+ * * `range`
11
14
  *
12
15
  */
13
- export declare type CalendarSelection = 'single' | 'multiple';
16
+ export declare type CalendarSelection = 'single' | 'multiple' | 'range';
17
+ /**
18
+ * @hidden
19
+ */
20
+ export declare function handleRangeSelection(date: Date, selectionRange: SelectionRange, activeRangeEnd: SelectionRangeEnd, allowReverse?: boolean): {
21
+ activeRangeEnd: SelectionRangeEnd;
22
+ selectionRange: SelectionRange;
23
+ };
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { ChangeDetectorRef, EventEmitter, ElementRef, Renderer2, AfterViewInit, OnChanges, OnDestroy, NgZone } from '@angular/core';
5
+ import { ChangeDetectorRef, EventEmitter, ElementRef, Renderer2, AfterViewInit, OnChanges, OnDestroy, NgZone, DoCheck } from '@angular/core';
6
6
  import { AbstractControl, ControlValueAccessor, Validator } from '@angular/forms';
7
7
  import { Day } from '@progress/kendo-date-math';
8
8
  import { HorizontalViewListComponent } from './horizontal-view-list.component';
@@ -51,7 +51,7 @@ export declare const RANGE_CALENDAR_RANGE_VALIDATORS: any;
51
51
  * export class AppComponent { }
52
52
  * ```
53
53
  */
54
- export declare class MultiViewCalendarComponent implements AfterViewInit, ControlValueAccessor, OnChanges, OnDestroy, Validator {
54
+ export declare class MultiViewCalendarComponent implements AfterViewInit, ControlValueAccessor, OnChanges, DoCheck, OnDestroy, Validator {
55
55
  bus: BusViewService;
56
56
  element: ElementRef;
57
57
  private navigator;
@@ -132,17 +132,28 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
132
132
  * The available values are:
133
133
  * * `single` (default)
134
134
  * * `multiple`
135
+ * * `range`
135
136
  */
136
- selection: CalendarSelection;
137
+ set selection(_selection: CalendarSelection);
138
+ get selection(): CalendarSelection;
139
+ private _selection;
140
+ /**
141
+ * Allows reverse selection when using `range` selection.
142
+ * If `allowReverse` is set to `true`, the component skips the validation of whether the start date is after the end date.
143
+ *
144
+ * @default false
145
+ */
146
+ allowReverse: boolean;
137
147
  /**
138
148
  * Sets or gets the `value` property of the Calendar and defines the selected value of the component.
139
149
  *
140
150
  * > The `value` has to be a valid
141
151
  * [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date)
142
- * instance when in `single` selection mode or an array of valid JavaScript Date instances when in `multiple` selection mode.
152
+ * instance when in `single` selection mode, an array of valid JavaScript Date instances when in `multiple` selection mode, or
153
+ * an object of type `SelectionRange` when in `range` selection mode.
143
154
  */
144
- get value(): any;
145
- set value(candidate: any);
155
+ set value(candidate: Date | Date[] | SelectionRange | null);
156
+ get value(): Date | Date[] | SelectionRange | null;
146
157
  /**
147
158
  * Sets or gets the `disabled` property of the Calendar and
148
159
  * determines whether the component is active
@@ -213,12 +224,15 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
213
224
  * Specify, which end of the defined selection range should be marked as active.
214
225
  *
215
226
  * > Value will be ignored if the selection range is undefined.
227
+ * > If range selection is used then the default value is 'start'.
216
228
  */
217
- activeRangeEnd: SelectionRangeEnd;
229
+ set activeRangeEnd(_activeRangeEnd: SelectionRangeEnd);
230
+ get activeRangeEnd(): SelectionRangeEnd;
218
231
  /**
219
232
  * Sets or gets the `selectionRange` property of the Calendar and
220
233
  * defines the selection range of the component
221
234
  * ([see example]({% slug dates_multiviewcalendar %}#toc-selection-range)).
235
+ * > We recommend using the `value` property as it now supports `range` selection.
222
236
  */
223
237
  set selectionRange(range: SelectionRange);
224
238
  get selectionRange(): SelectionRange;
@@ -263,6 +277,11 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
263
277
  * ([see example](slug:events_multiviewcalendar)).
264
278
  */
265
279
  valueChange: EventEmitter<any>;
280
+ /**
281
+ * @hidden
282
+ * Fires when the range selection changes.
283
+ */
284
+ rangeSelectionChange: EventEmitter<any>;
266
285
  /**
267
286
  * Fires each time the MultiViewCalendar gets blurred
268
287
  * ([see example](slug:events_multiviewcalendar)).
@@ -433,11 +452,17 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
433
452
  nextView: Action;
434
453
  selectedDates: Date[];
435
454
  rangePivot: Date;
455
+ shouldHoverWhenNoStart: boolean;
456
+ private canHover;
457
+ private changes;
458
+ private valueSetter;
459
+ private selectionSetter;
436
460
  private _min;
437
461
  private _max;
438
462
  private _focusedDate;
439
463
  private _value;
440
464
  private _selectionRange;
465
+ private _activeRangeEnd;
441
466
  private resolvedPromise;
442
467
  private onControlChange;
443
468
  private onControlTouched;
@@ -495,6 +520,7 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
495
520
  constructor(bus: BusViewService, element: ElementRef, navigator: NavigationService, renderer: Renderer2, cdr: ChangeDetectorRef, zone: NgZone, disabledDatesService: DisabledDatesService, selectionService: SelectionService);
496
521
  ngOnInit(): void;
497
522
  ngOnChanges(changes: any): void;
523
+ ngDoCheck(): void;
498
524
  ngOnDestroy(): void;
499
525
  ngAfterViewInit(): void;
500
526
  /**
@@ -524,6 +550,10 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
524
550
  selectedDates: Date[];
525
551
  focusedDate: Date;
526
552
  }): void;
553
+ /**
554
+ * @hidden
555
+ */
556
+ onCellEnter(cellEnter: any, date: Date): void;
527
557
  /**
528
558
  * @hidden
529
559
  */
@@ -590,7 +620,9 @@ export declare class MultiViewCalendarComponent implements AfterViewInit, Contro
590
620
  private verifyValue;
591
621
  private updateButtonState;
592
622
  private parseSelectionToValue;
623
+ private setValue;
624
+ private performRangeSelection;
593
625
  private performSelection;
594
626
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiViewCalendarComponent, never>;
595
- static ɵcmp: i0.ɵɵComponentDeclaration<MultiViewCalendarComponent, "kendo-multiviewcalendar", ["kendo-multiviewcalendar"], { "showOtherMonthDays": "showOtherMonthDays"; "showCalendarHeader": "showCalendarHeader"; "id": "id"; "focusedDate": "focusedDate"; "footer": "footer"; "min": "min"; "max": "max"; "rangeValidation": "rangeValidation"; "disabledDatesRangeValidation": "disabledDatesRangeValidation"; "selection": "selection"; "value": "value"; "disabled": "disabled"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "weekDaysFormat": "weekDaysFormat"; "isActive": "isActive"; "disabledDates": "disabledDates"; "activeView": "activeView"; "bottomView": "bottomView"; "topView": "topView"; "showViewHeader": "showViewHeader"; "animateNavigation": "animateNavigation"; "weekNumber": "weekNumber"; "activeRangeEnd": "activeRangeEnd"; "selectionRange": "selectionRange"; "views": "views"; "orientation": "orientation"; "cellTemplateRef": "cellTemplate"; "monthCellTemplateRef": "monthCellTemplate"; "yearCellTemplateRef": "yearCellTemplate"; "decadeCellTemplateRef": "decadeCellTemplate"; "centuryCellTemplateRef": "centuryCellTemplate"; "weekNumberTemplateRef": "weekNumberTemplate"; "footerTemplateRef": "footerTemplate"; "headerTitleTemplateRef": "headerTitleTemplate"; "headerTemplateRef": "headerTemplate"; }, { "activeViewChange": "activeViewChange"; "navigate": "navigate"; "cellEnter": "cellEnter"; "cellLeave": "cellLeave"; "valueChange": "valueChange"; "blurEvent": "blur"; "focusEvent": "focus"; "focusCalendar": "focusCalendar"; "onClosePopup": "onClosePopup"; "onTabPress": "onTabPress"; "onShiftTabPress": "onShiftTabPress"; }, ["cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate"], never, false, never>;
627
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiViewCalendarComponent, "kendo-multiviewcalendar", ["kendo-multiviewcalendar"], { "showOtherMonthDays": "showOtherMonthDays"; "showCalendarHeader": "showCalendarHeader"; "id": "id"; "focusedDate": "focusedDate"; "footer": "footer"; "min": "min"; "max": "max"; "rangeValidation": "rangeValidation"; "disabledDatesRangeValidation": "disabledDatesRangeValidation"; "selection": "selection"; "allowReverse": "allowReverse"; "value": "value"; "disabled": "disabled"; "tabindex": "tabindex"; "tabIndex": "tabIndex"; "weekDaysFormat": "weekDaysFormat"; "isActive": "isActive"; "disabledDates": "disabledDates"; "activeView": "activeView"; "bottomView": "bottomView"; "topView": "topView"; "showViewHeader": "showViewHeader"; "animateNavigation": "animateNavigation"; "weekNumber": "weekNumber"; "activeRangeEnd": "activeRangeEnd"; "selectionRange": "selectionRange"; "views": "views"; "orientation": "orientation"; "cellTemplateRef": "cellTemplate"; "monthCellTemplateRef": "monthCellTemplate"; "yearCellTemplateRef": "yearCellTemplate"; "decadeCellTemplateRef": "decadeCellTemplate"; "centuryCellTemplateRef": "centuryCellTemplate"; "weekNumberTemplateRef": "weekNumberTemplate"; "footerTemplateRef": "footerTemplate"; "headerTitleTemplateRef": "headerTitleTemplate"; "headerTemplateRef": "headerTemplate"; }, { "activeViewChange": "activeViewChange"; "navigate": "navigate"; "cellEnter": "cellEnter"; "cellLeave": "cellLeave"; "valueChange": "valueChange"; "rangeSelectionChange": "rangeSelectionChange"; "blurEvent": "blur"; "focusEvent": "focus"; "focusCalendar": "focusCalendar"; "onClosePopup": "onClosePopup"; "onTabPress": "onTabPress"; "onShiftTabPress": "onShiftTabPress"; }, ["cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate"], never, false, never>;
596
628
  }
@@ -13,6 +13,8 @@ import { CalendarViewEnum } from './models/view.enum';
13
13
  import { HeaderComponent } from './header.component';
14
14
  import { WeekDaysFormat } from '../common/models/week-days-format';
15
15
  import { CalendarView } from './models/view.type';
16
+ import { SelectionRangeEnd } from './models/selection-range-end.type';
17
+ import { SelectionRange } from './models/selection-range.interface';
16
18
  import * as i0 from "@angular/core";
17
19
  /**
18
20
  * @hidden
@@ -23,6 +25,7 @@ export declare class ViewListComponent implements OnChanges, OnDestroy, AfterVie
23
25
  private intl;
24
26
  private dom;
25
27
  private renderer;
28
+ allowReverse: boolean;
26
29
  cellTemplateRef: TemplateRef<any>;
27
30
  weekNumberTemplateRef: TemplateRef<any>;
28
31
  headerTitleTemplateRef: TemplateRef<any>;
@@ -41,8 +44,11 @@ export declare class ViewListComponent implements OnChanges, OnDestroy, AfterVie
41
44
  id: string;
42
45
  showFooter: boolean;
43
46
  weekDaysFormat: WeekDaysFormat;
47
+ activeRangeEnd: SelectionRangeEnd;
48
+ selectionRange: SelectionRange;
44
49
  get weekNumber(): boolean;
45
50
  set weekNumber(showWeekNumbers: boolean);
51
+ cellEnter: EventEmitter<Date>;
46
52
  cellClick: EventEmitter<any>;
47
53
  weekNumberCellClick: EventEmitter<Date[]>;
48
54
  activeDateChange: EventEmitter<Date>;
@@ -96,5 +102,5 @@ export declare class ViewListComponent implements OnChanges, OnDestroy, AfterVie
96
102
  private getWeekNames;
97
103
  private intlChange;
98
104
  static ɵfac: i0.ɵɵFactoryDeclaration<ViewListComponent, never>;
99
- static ɵcmp: i0.ɵɵComponentDeclaration<ViewListComponent, "kendo-calendar-viewlist", never, { "cellTemplateRef": "cellTemplateRef"; "weekNumberTemplateRef": "weekNumberTemplateRef"; "headerTitleTemplateRef": "headerTitleTemplateRef"; "headerTemplateRef": "headerTemplateRef"; "footerTemplateRef": "footerTemplateRef"; "showOtherMonthDays": "showOtherMonthDays"; "activeView": "activeView"; "cellUID": "cellUID"; "focusedDate": "focusedDate"; "isActive": "isActive"; "min": "min"; "max": "max"; "selectedDates": "selectedDates"; "tabIndex": "tabIndex"; "disabled": "disabled"; "id": "id"; "showFooter": "showFooter"; "weekDaysFormat": "weekDaysFormat"; "weekNumber": "weekNumber"; }, { "cellClick": "cellClick"; "weekNumberCellClick": "weekNumberCellClick"; "activeDateChange": "activeDateChange"; "todayButtonClick": "todayButtonClick"; "pageChange": "pageChange"; "focusCalendar": "focusCalendar"; "blurCalendar": "blurCalendar"; "focusedCellChange": "focusedCellChange"; }, never, never, false, never>;
105
+ static ɵcmp: i0.ɵɵComponentDeclaration<ViewListComponent, "kendo-calendar-viewlist", never, { "allowReverse": "allowReverse"; "cellTemplateRef": "cellTemplateRef"; "weekNumberTemplateRef": "weekNumberTemplateRef"; "headerTitleTemplateRef": "headerTitleTemplateRef"; "headerTemplateRef": "headerTemplateRef"; "footerTemplateRef": "footerTemplateRef"; "showOtherMonthDays": "showOtherMonthDays"; "activeView": "activeView"; "cellUID": "cellUID"; "focusedDate": "focusedDate"; "isActive": "isActive"; "min": "min"; "max": "max"; "selectedDates": "selectedDates"; "tabIndex": "tabIndex"; "disabled": "disabled"; "id": "id"; "showFooter": "showFooter"; "weekDaysFormat": "weekDaysFormat"; "activeRangeEnd": "activeRangeEnd"; "selectionRange": "selectionRange"; "weekNumber": "weekNumber"; }, { "cellEnter": "cellEnter"; "cellClick": "cellClick"; "weekNumberCellClick": "weekNumberCellClick"; "activeDateChange": "activeDateChange"; "todayButtonClick": "todayButtonClick"; "pageChange": "pageChange"; "focusCalendar": "focusCalendar"; "blurCalendar": "blurCalendar"; "focusedCellChange": "focusedCellChange"; }, never, never, false, never>;
100
106
  }
@@ -23,6 +23,7 @@ export declare class ViewComponent implements OnChanges, OnDestroy {
23
23
  private zone;
24
24
  private renderer;
25
25
  private disabledDatesService;
26
+ allowReverse: boolean;
26
27
  showOtherMonthDays: boolean;
27
28
  direction: 'horizontal' | 'vertical';
28
29
  isActive: boolean;
@@ -81,5 +82,5 @@ export declare class ViewComponent implements OnChanges, OnDestroy {
81
82
  private emitCellLeave;
82
83
  private cellByIndex;
83
84
  static ɵfac: i0.ɵɵFactoryDeclaration<ViewComponent, never>;
84
- static ɵcmp: i0.ɵɵComponentDeclaration<ViewComponent, "[kendoCalendarView]", never, { "showOtherMonthDays": "showOtherMonthDays"; "direction": "direction"; "isActive": "isActive"; "activeView": "activeView"; "cellUID": "cellUID"; "focusedDate": "focusedDate"; "viewDate": "viewDate"; "activeRangeEnd": "activeRangeEnd"; "selectionRange": "selectionRange"; "min": "min"; "max": "max"; "selectedDates": "selectedDates"; "weekNumber": "weekNumber"; "viewIndex": "viewIndex"; "templateRef": "templateRef"; "weekNumberTemplateRef": "weekNumberTemplateRef"; "headerTitle": "headerTitle"; }, { "cellClick": "cellClick"; "weekNumberCellClick": "weekNumberCellClick"; "cellEnter": "cellEnter"; "cellLeave": "cellLeave"; "focusedCellId": "focusedCellId"; }, never, never, false, never>;
85
+ static ɵcmp: i0.ɵɵComponentDeclaration<ViewComponent, "[kendoCalendarView]", never, { "allowReverse": "allowReverse"; "showOtherMonthDays": "showOtherMonthDays"; "direction": "direction"; "isActive": "isActive"; "activeView": "activeView"; "cellUID": "cellUID"; "focusedDate": "focusedDate"; "viewDate": "viewDate"; "activeRangeEnd": "activeRangeEnd"; "selectionRange": "selectionRange"; "min": "min"; "max": "max"; "selectedDates": "selectedDates"; "weekNumber": "weekNumber"; "viewIndex": "viewIndex"; "templateRef": "templateRef"; "weekNumberTemplateRef": "weekNumberTemplateRef"; "headerTitle": "headerTitle"; }, { "cellClick": "cellClick"; "weekNumberCellClick": "weekNumberCellClick"; "cellEnter": "cellEnter"; "cellLeave": "cellLeave"; "focusedCellId": "focusedCellId"; }, never, never, false, never>;
85
86
  }
package/common/utils.d.ts CHANGED
@@ -18,6 +18,10 @@ export declare const currentFocusTarget: (blurArgs: any) => any;
18
18
  * @hidden
19
19
  */
20
20
  export declare const isPresent: (value: any) => boolean;
21
+ /**
22
+ * @hidden
23
+ */
24
+ export declare const isNullOrDate: (value: any) => boolean;
21
25
  /**
22
26
  * @hidden
23
27
  */
@@ -36,7 +36,7 @@ import * as i0 from "@angular/core";
36
36
  */
37
37
  export declare class DateRangePopupComponent implements OnInit, OnDestroy {
38
38
  private popupService;
39
- private dateRangeService;
39
+ dateRangeService: DateRangeService;
40
40
  private zone;
41
41
  private renderer;
42
42
  localization: LocalizationService;
@@ -49,6 +49,13 @@ export declare class DateRangePopupComponent implements OnInit, OnDestroy {
49
49
  dateRangeSelectionDirective: DateRangeSelectionDirective;
50
50
  viewCalendar: QueryList<MultiViewCalendarComponent>;
51
51
  contentCalendar: QueryList<MultiViewCalendarComponent>;
52
+ /**
53
+ * Allows reverse selection when using `range` selection.
54
+ * If `allowReverse` is set to `true`, the component skips the validation of whether the start date is after the end date.
55
+ *
56
+ * @default false
57
+ */
58
+ allowReverse: boolean;
52
59
  /**
53
60
  * Controls the popup animation.
54
61
  * By default, the opening and closing animations are enabled.
@@ -179,11 +186,17 @@ export declare class DateRangePopupComponent implements OnInit, OnDestroy {
179
186
  private resolvedPromise;
180
187
  private _calendar;
181
188
  private _show;
189
+ private _rangeSelection;
182
190
  private windowSize;
183
191
  constructor(popupService: PopupService, dateRangeService: DateRangeService, zone: NgZone, renderer: Renderer2, localization: LocalizationService, cdr: ChangeDetectorRef, rtl: boolean);
184
192
  ngOnInit(): void;
185
193
  ngAfterViewInit(): void;
186
194
  ngOnDestroy(): void;
195
+ /**
196
+ * @hidden
197
+ *
198
+ */
199
+ onRangeSelectionChange(rangeSelection: any): void;
187
200
  /**
188
201
  * Opens the popup component and focuses the calendar.
189
202
  */
@@ -244,5 +257,5 @@ export declare class DateRangePopupComponent implements OnInit, OnDestroy {
244
257
  private toggleActionSheet;
245
258
  private updateActionSheetAdaptiveAppearance;
246
259
  static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePopupComponent, [null, null, null, null, null, null, { optional: true; }]>;
247
- static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePopupComponent, "kendo-daterange-popup", ["kendo-daterange-popup"], { "animate": "animate"; "anchor": "anchor"; "anchorAlign": "anchorAlign"; "appendTo": "appendTo"; "collision": "collision"; "popupAlign": "popupAlign"; "margin": "margin"; "adaptiveMode": "adaptiveMode"; "title": "title"; "subtitle": "subtitle"; }, { "open": "open"; "close": "close"; "onBlur": "blur"; "onFocus": "focus"; "cancel": "cancel"; }, ["contentTemplate", "contentCalendar"], never, false, never>;
260
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePopupComponent, "kendo-daterange-popup", ["kendo-daterange-popup"], { "allowReverse": "allowReverse"; "animate": "animate"; "anchor": "anchor"; "anchorAlign": "anchorAlign"; "appendTo": "appendTo"; "collision": "collision"; "popupAlign": "popupAlign"; "margin": "margin"; "adaptiveMode": "adaptiveMode"; "title": "title"; "subtitle": "subtitle"; }, { "open": "open"; "close": "close"; "onBlur": "blur"; "onFocus": "focus"; "cancel": "cancel"; }, ["contentTemplate", "contentCalendar"], never, false, never>;
248
261
  }
@@ -514,6 +514,7 @@ export declare class DateTimePickerComponent implements OnInit, OnChanges, After
514
514
  private get acceptButton();
515
515
  private get cancelButtonElement();
516
516
  private get dateTabButton();
517
+ private get timeTabButton();
517
518
  /**
518
519
  * @hidden
519
520
  */
@@ -622,6 +623,10 @@ export declare class DateTimePickerComponent implements OnInit, OnChanges, After
622
623
  * @hidden
623
624
  */
624
625
  onTabOutLastPart(): void;
626
+ /**
627
+ * @hidden
628
+ */
629
+ onTabOutNow(): void;
625
630
  /**
626
631
  * @hidden
627
632
  */