@progress/kendo-angular-dateinputs 5.2.4-dev.202110081056 → 5.3.1-dev.202112011809
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.
- package/dist/cdn/js/kendo-angular-dateinputs.js +2 -2
- package/dist/cdn/main.js +1 -1
- package/dist/es/calendar/calendar.component.js +90 -46
- package/dist/es/calendar/header.component.js +3 -4
- package/dist/es/calendar/horizontal-view-list.component.js +1 -1
- package/dist/es/calendar/multiview-calendar.component.js +66 -19
- package/dist/es/calendar/services/century-view.service.js +7 -1
- package/dist/es/calendar/services/decade-view.service.js +6 -1
- package/dist/es/calendar/services/month-view.service.js +3 -0
- package/dist/es/calendar/services/year-view.service.js +5 -1
- package/dist/es/calendar/view-list.component.js +1 -1
- package/dist/es/datepicker/datepicker.component.js +5 -3
- package/dist/es/daterange/date-range-input.js +3 -3
- package/dist/es/daterange/date-range-popup.component.js +2 -2
- package/dist/es/daterange/date-range-selection.directive.js +1 -1
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/util.js +15 -0
- package/dist/es2015/calendar/calendar.component.d.ts +27 -3
- package/dist/es2015/calendar/calendar.component.js +92 -41
- package/dist/es2015/calendar/header.component.js +3 -4
- package/dist/es2015/calendar/horizontal-view-list.component.js +1 -0
- package/dist/es2015/calendar/models/view-service.interface.d.ts +1 -0
- package/dist/es2015/calendar/multiview-calendar.component.d.ts +30 -3
- package/dist/es2015/calendar/multiview-calendar.component.js +69 -18
- package/dist/es2015/calendar/services/century-view.service.d.ts +1 -0
- package/dist/es2015/calendar/services/century-view.service.js +7 -1
- package/dist/es2015/calendar/services/decade-view.service.d.ts +1 -0
- package/dist/es2015/calendar/services/decade-view.service.js +6 -1
- package/dist/es2015/calendar/services/month-view.service.d.ts +1 -0
- package/dist/es2015/calendar/services/month-view.service.js +3 -0
- package/dist/es2015/calendar/services/year-view.service.d.ts +1 -0
- package/dist/es2015/calendar/services/year-view.service.js +5 -1
- package/dist/es2015/calendar/view-list.component.js +5 -1
- package/dist/es2015/dateinput/dateinput.component.d.ts +2 -0
- package/dist/es2015/datepicker/datepicker.component.d.ts +2 -0
- package/dist/es2015/datepicker/datepicker.component.js +5 -3
- package/dist/es2015/daterange/date-range-input.js +3 -3
- package/dist/es2015/daterange/date-range-popup.component.js +2 -2
- package/dist/es2015/daterange/date-range-selection.directive.js +1 -1
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/es2015/util.d.ts +7 -0
- package/dist/es2015/util.js +15 -0
- package/dist/fesm2015/index.js +7223 -7084
- package/dist/fesm5/index.js +6794 -6671
- package/dist/npm/calendar/calendar.component.js +90 -46
- package/dist/npm/calendar/header.component.js +3 -4
- package/dist/npm/calendar/horizontal-view-list.component.js +1 -1
- package/dist/npm/calendar/multiview-calendar.component.js +66 -19
- package/dist/npm/calendar/services/century-view.service.js +6 -0
- package/dist/npm/calendar/services/decade-view.service.js +5 -0
- package/dist/npm/calendar/services/month-view.service.js +3 -0
- package/dist/npm/calendar/services/year-view.service.js +4 -0
- package/dist/npm/calendar/view-list.component.js +1 -1
- package/dist/npm/datepicker/datepicker.component.js +4 -2
- package/dist/npm/daterange/date-range-input.js +3 -3
- package/dist/npm/daterange/date-range-popup.component.js +2 -2
- package/dist/npm/daterange/date-range-selection.directive.js +1 -1
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/util.js +15 -0
- package/dist/systemjs/kendo-angular-dateinputs.js +1 -1
- package/package.json +5 -5
|
@@ -10,6 +10,7 @@ import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
|
|
|
10
10
|
import { cloneDate, isEqual } from '@progress/kendo-date-math';
|
|
11
11
|
import { hasObservers, guid, Keys } from '@progress/kendo-angular-common';
|
|
12
12
|
import { HorizontalViewListComponent } from './horizontal-view-list.component';
|
|
13
|
+
import { HeaderComponent } from './header.component';
|
|
13
14
|
import { BusViewService } from './services/bus-view.service';
|
|
14
15
|
import { NavigationService } from './services/navigation.service';
|
|
15
16
|
import { SelectionService } from './services/selection.service';
|
|
@@ -114,6 +115,10 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
|
|
|
114
115
|
* @hidden
|
|
115
116
|
*/
|
|
116
117
|
this.isActive = false;
|
|
118
|
+
/**
|
|
119
|
+
* @hidden
|
|
120
|
+
*/
|
|
121
|
+
this.isHeaderActive = false;
|
|
117
122
|
/**
|
|
118
123
|
* Defines the active view that the Calendar initially renders
|
|
119
124
|
* ([see example]({% slug activeview_multiviewcalendar %})).
|
|
@@ -158,6 +163,11 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
|
|
|
158
163
|
* ([more information and example]({% slug overview_multiviewcalendar %}#toc-events)).
|
|
159
164
|
*/
|
|
160
165
|
this.activeViewChange = new EventEmitter();
|
|
166
|
+
/**
|
|
167
|
+
* Fires when navigating in the currently active view
|
|
168
|
+
* ([more information and example]({% slug events_multiviewcalendar %})).
|
|
169
|
+
*/
|
|
170
|
+
this.navigate = new EventEmitter();
|
|
161
171
|
/**
|
|
162
172
|
* Fires when a view cell is entered
|
|
163
173
|
* ([more information and example]({% slug overview_multiviewcalendar %}#toc-events)).
|
|
@@ -173,6 +183,10 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
|
|
|
173
183
|
* ([more information and example]({% slug overview_multiviewcalendar %}#toc-events)).
|
|
174
184
|
*/
|
|
175
185
|
this.valueChange = new EventEmitter();
|
|
186
|
+
/**
|
|
187
|
+
* @hidden
|
|
188
|
+
*/
|
|
189
|
+
this.blurEvent = new EventEmitter();
|
|
176
190
|
this.cellUID = guid();
|
|
177
191
|
this.isHovered = false;
|
|
178
192
|
this.isPrevDisabled = true;
|
|
@@ -190,7 +204,7 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
|
|
|
190
204
|
this.minValidateFn = noop;
|
|
191
205
|
this.maxValidateFn = noop;
|
|
192
206
|
this.disabledDatesRangeValidateFn = noop;
|
|
193
|
-
this.subscriptions = new Subscription(
|
|
207
|
+
this.subscriptions = new Subscription();
|
|
194
208
|
this.setClasses(element.nativeElement);
|
|
195
209
|
}
|
|
196
210
|
/**
|
|
@@ -336,9 +350,6 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
|
|
|
336
350
|
get widgetId() {
|
|
337
351
|
return this.id;
|
|
338
352
|
}
|
|
339
|
-
get widgetRole() {
|
|
340
|
-
return 'grid';
|
|
341
|
-
}
|
|
342
353
|
get calendarTabIndex() {
|
|
343
354
|
return this.disabled ? undefined : this.tabIndex;
|
|
344
355
|
}
|
|
@@ -351,10 +362,15 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
|
|
|
351
362
|
/**
|
|
352
363
|
* @hidden
|
|
353
364
|
*/
|
|
354
|
-
handleBlur() {
|
|
355
|
-
|
|
365
|
+
handleBlur(event) {
|
|
366
|
+
const target = event.target;
|
|
367
|
+
if (!this.element.nativeElement.contains(event.relatedTarget)) {
|
|
368
|
+
this.blurEvent.emit(event);
|
|
369
|
+
this.onControlTouched();
|
|
370
|
+
}
|
|
356
371
|
this.isActive = false;
|
|
357
372
|
this.isHovered = false; //ensure that hovered is also not active
|
|
373
|
+
this.isHeaderActive = this.headerElement.nativeElement.contains(target);
|
|
358
374
|
}
|
|
359
375
|
/**
|
|
360
376
|
* @hidden
|
|
@@ -402,6 +418,10 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
|
|
|
402
418
|
}
|
|
403
419
|
this.focusedDate = candidate;
|
|
404
420
|
event.preventDefault();
|
|
421
|
+
const isSameView = this.bus.service(this.activeViewEnum).isInArray(this.focusedDate, this.viewList.dates);
|
|
422
|
+
if (!isSameView) {
|
|
423
|
+
this.emitNavigate(this.focusedDate);
|
|
424
|
+
}
|
|
405
425
|
}
|
|
406
426
|
ngOnInit() {
|
|
407
427
|
this.subscriptions.add(this.bus.viewChanged.subscribe(({ view }) => {
|
|
@@ -487,6 +507,18 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
|
|
|
487
507
|
this.onControlChange(this.parseSelectionToValue(availableDates));
|
|
488
508
|
this.valueChange.emit(this.parseSelectionToValue(availableDates));
|
|
489
509
|
}
|
|
510
|
+
/**
|
|
511
|
+
* @hidden
|
|
512
|
+
*/
|
|
513
|
+
handleTodayButtonClick(args) {
|
|
514
|
+
const todayDate = args.focusedDate;
|
|
515
|
+
const isSameView = this.bus.service(this.activeViewEnum).isInArray(todayDate, this.viewList.dates);
|
|
516
|
+
const isBottomView = !this.bus.canMoveDown(this.activeViewEnum);
|
|
517
|
+
if (!isSameView && isBottomView) {
|
|
518
|
+
this.emitNavigate(todayDate);
|
|
519
|
+
}
|
|
520
|
+
this.handleDateChange(args);
|
|
521
|
+
}
|
|
490
522
|
/**
|
|
491
523
|
* @hidden
|
|
492
524
|
*/
|
|
@@ -553,9 +585,17 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
|
|
|
553
585
|
/**
|
|
554
586
|
* @hidden
|
|
555
587
|
*/
|
|
556
|
-
|
|
588
|
+
navigateView(action) {
|
|
557
589
|
this.focusedDate = this.viewList.navigate(action);
|
|
558
590
|
this.updateButtonState();
|
|
591
|
+
this.emitNavigate(this.focusedDate);
|
|
592
|
+
}
|
|
593
|
+
/**
|
|
594
|
+
* @hidden
|
|
595
|
+
*/
|
|
596
|
+
emitNavigate(focusedDate) {
|
|
597
|
+
const activeView = CalendarViewEnum[this.activeViewEnum];
|
|
598
|
+
this.navigate.emit({ activeView, focusedDate });
|
|
559
599
|
}
|
|
560
600
|
/**
|
|
561
601
|
* @hidden
|
|
@@ -572,6 +612,10 @@ let MultiViewCalendarComponent = class MultiViewCalendarComponent {
|
|
|
572
612
|
*/
|
|
573
613
|
handleCellClick({ date, modifiers }) {
|
|
574
614
|
this.performSelection(date, modifiers);
|
|
615
|
+
const isSameView = this.bus.service(this.activeViewEnum).isInArray(this.focusedDate, this.viewList.dates);
|
|
616
|
+
if (!isSameView) {
|
|
617
|
+
this.emitNavigate(this.focusedDate);
|
|
618
|
+
}
|
|
575
619
|
}
|
|
576
620
|
/**
|
|
577
621
|
* @hidden
|
|
@@ -743,6 +787,10 @@ tslib_1.__decorate([
|
|
|
743
787
|
Output(),
|
|
744
788
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
745
789
|
], MultiViewCalendarComponent.prototype, "activeViewChange", void 0);
|
|
790
|
+
tslib_1.__decorate([
|
|
791
|
+
Output(),
|
|
792
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
793
|
+
], MultiViewCalendarComponent.prototype, "navigate", void 0);
|
|
746
794
|
tslib_1.__decorate([
|
|
747
795
|
Output(),
|
|
748
796
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
@@ -755,6 +803,10 @@ tslib_1.__decorate([
|
|
|
755
803
|
Output(),
|
|
756
804
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
757
805
|
], MultiViewCalendarComponent.prototype, "valueChange", void 0);
|
|
806
|
+
tslib_1.__decorate([
|
|
807
|
+
Output('blur'),
|
|
808
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
809
|
+
], MultiViewCalendarComponent.prototype, "blurEvent", void 0);
|
|
758
810
|
tslib_1.__decorate([
|
|
759
811
|
ContentChild(CellTemplateDirective, { static: true }),
|
|
760
812
|
tslib_1.__metadata("design:type", CellTemplateDirective)
|
|
@@ -818,6 +870,10 @@ tslib_1.__decorate([
|
|
|
818
870
|
tslib_1.__metadata("design:type", HeaderTitleTemplateDirective),
|
|
819
871
|
tslib_1.__metadata("design:paramtypes", [HeaderTitleTemplateDirective])
|
|
820
872
|
], MultiViewCalendarComponent.prototype, "headerTitleTemplateRef", null);
|
|
873
|
+
tslib_1.__decorate([
|
|
874
|
+
ViewChild(HeaderComponent, { static: false, read: ElementRef }),
|
|
875
|
+
tslib_1.__metadata("design:type", ElementRef)
|
|
876
|
+
], MultiViewCalendarComponent.prototype, "headerElement", void 0);
|
|
821
877
|
tslib_1.__decorate([
|
|
822
878
|
ViewChild(HorizontalViewListComponent, { static: false }),
|
|
823
879
|
tslib_1.__metadata("design:type", HorizontalViewListComponent)
|
|
@@ -827,11 +883,6 @@ tslib_1.__decorate([
|
|
|
827
883
|
tslib_1.__metadata("design:type", String),
|
|
828
884
|
tslib_1.__metadata("design:paramtypes", [])
|
|
829
885
|
], MultiViewCalendarComponent.prototype, "widgetId", null);
|
|
830
|
-
tslib_1.__decorate([
|
|
831
|
-
HostBinding('attr.role'),
|
|
832
|
-
tslib_1.__metadata("design:type", String),
|
|
833
|
-
tslib_1.__metadata("design:paramtypes", [])
|
|
834
|
-
], MultiViewCalendarComponent.prototype, "widgetRole", null);
|
|
835
886
|
tslib_1.__decorate([
|
|
836
887
|
HostBinding('attr.tabindex'),
|
|
837
888
|
tslib_1.__metadata("design:type", Number),
|
|
@@ -849,9 +900,9 @@ tslib_1.__decorate([
|
|
|
849
900
|
tslib_1.__metadata("design:paramtypes", [])
|
|
850
901
|
], MultiViewCalendarComponent.prototype, "ariaActivedescendant", null);
|
|
851
902
|
tslib_1.__decorate([
|
|
852
|
-
HostListener(
|
|
903
|
+
HostListener('focusout', ['$event']),
|
|
853
904
|
tslib_1.__metadata("design:type", Function),
|
|
854
|
-
tslib_1.__metadata("design:paramtypes", []),
|
|
905
|
+
tslib_1.__metadata("design:paramtypes", [FocusEvent]),
|
|
855
906
|
tslib_1.__metadata("design:returntype", void 0)
|
|
856
907
|
], MultiViewCalendarComponent.prototype, "handleBlur", null);
|
|
857
908
|
tslib_1.__decorate([
|
|
@@ -930,14 +981,14 @@ MultiViewCalendarComponent = tslib_1.__decorate([
|
|
|
930
981
|
[isPrevDisabled]="isPrevDisabled"
|
|
931
982
|
[isNextDisabled]="isNextDisabled"
|
|
932
983
|
[showNavigationButtons]="true"
|
|
933
|
-
(todayButtonClick)="
|
|
934
|
-
(prevButtonClick)="
|
|
935
|
-
(nextButtonClick)="
|
|
984
|
+
(todayButtonClick)="handleTodayButtonClick({ selectedDates: [$event], focusedDate: $event })"
|
|
985
|
+
(prevButtonClick)="navigateView(prevView)"
|
|
986
|
+
(nextButtonClick)="navigateView(nextView)"
|
|
936
987
|
>
|
|
937
988
|
</kendo-calendar-header>
|
|
938
989
|
<kendo-calendar-horizontal
|
|
939
990
|
[activeView]="activeViewEnum"
|
|
940
|
-
[isActive]="isActive || isHovered"
|
|
991
|
+
[isActive]="isActive || (isHovered && !isHeaderActive)"
|
|
941
992
|
[cellTemplateRef]="activeCellTemplate()?.templateRef"
|
|
942
993
|
[weekNumberTemplateRef]="weekNumberTemplate?.templateRef"
|
|
943
994
|
[cellUID]="cellUID"
|
|
@@ -16,6 +16,7 @@ export declare class CenturyViewService implements ViewService {
|
|
|
16
16
|
isInArray(date: Date, dates: Date[]): boolean;
|
|
17
17
|
isInRange(candidate: Date, min: Date, max: Date): boolean;
|
|
18
18
|
beginningOfPeriod(date: Date): Date;
|
|
19
|
+
lastDayOfPeriod(date: Date): Date;
|
|
19
20
|
isRangeStart(value: Date): boolean;
|
|
20
21
|
move(value: Date, action: Action): Date;
|
|
21
22
|
cellTitle(value: Date): string;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
/* tslint:disable:object-literal-sort-keys */
|
|
7
7
|
import { Injectable } from '@angular/core';
|
|
8
|
-
import { addDecades, addCenturies, cloneDate, durationInCenturies, firstYearOfDecade, firstDecadeOfCentury, lastDecadeOfCentury, createDate } from '@progress/kendo-date-math';
|
|
8
|
+
import { addDecades, addCenturies, cloneDate, durationInCenturies, firstYearOfDecade, firstDecadeOfCentury, lastDecadeOfCentury, createDate, lastYearOfDecade, lastMonthOfYear, lastDayOfMonth } from '@progress/kendo-date-math';
|
|
9
9
|
import { Action } from '../models/navigation-action.enum';
|
|
10
10
|
import { EMPTY_SELECTIONRANGE } from '../models/selection-range.interface';
|
|
11
11
|
import { getToday, isInSelectionRange, range } from '../../util';
|
|
@@ -115,6 +115,12 @@ let CenturyViewService = class CenturyViewService {
|
|
|
115
115
|
const firstYear = firstYearOfDecade(firstDecadeOfCentury(date));
|
|
116
116
|
return createDate(firstYear.getFullYear(), 0, 1);
|
|
117
117
|
}
|
|
118
|
+
lastDayOfPeriod(date) {
|
|
119
|
+
const decade = lastDecadeOfCentury(date);
|
|
120
|
+
const year = lastYearOfDecade(decade);
|
|
121
|
+
const month = lastMonthOfYear(year);
|
|
122
|
+
return lastDayOfMonth(month);
|
|
123
|
+
}
|
|
118
124
|
isRangeStart(value) {
|
|
119
125
|
return value.getFullYear() % 1000 === 0;
|
|
120
126
|
}
|
|
@@ -16,6 +16,7 @@ export declare class DecadeViewService implements ViewService {
|
|
|
16
16
|
isInArray(date: Date, dates: Date[]): boolean;
|
|
17
17
|
isInRange(candidate: Date, min: Date, max: Date): boolean;
|
|
18
18
|
beginningOfPeriod(date: Date): Date;
|
|
19
|
+
lastDayOfPeriod(date: Date): Date;
|
|
19
20
|
isRangeStart(value: Date): boolean;
|
|
20
21
|
move(value: Date, action: Action): Date;
|
|
21
22
|
cellTitle(value: Date): string;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
/* tslint:disable:object-literal-sort-keys */
|
|
7
7
|
import { Injectable } from '@angular/core';
|
|
8
|
-
import { addDecades, addYears, cloneDate, durationInDecades, firstYearOfDecade, lastYearOfDecade, createDate } from '@progress/kendo-date-math';
|
|
8
|
+
import { addDecades, addYears, cloneDate, durationInDecades, firstYearOfDecade, lastYearOfDecade, createDate, lastMonthOfYear, lastDayOfMonth } from '@progress/kendo-date-math';
|
|
9
9
|
import { Action } from '../models/navigation-action.enum';
|
|
10
10
|
import { EMPTY_SELECTIONRANGE } from '../models/selection-range.interface';
|
|
11
11
|
import { getToday, isInSelectionRange, range } from '../../util';
|
|
@@ -115,6 +115,11 @@ let DecadeViewService = class DecadeViewService {
|
|
|
115
115
|
const firstYear = firstYearOfDecade(date);
|
|
116
116
|
return createDate(firstYear.getFullYear(), 0, 1);
|
|
117
117
|
}
|
|
118
|
+
lastDayOfPeriod(date) {
|
|
119
|
+
const year = lastYearOfDecade(date);
|
|
120
|
+
const month = lastMonthOfYear(year);
|
|
121
|
+
return lastDayOfMonth(month);
|
|
122
|
+
}
|
|
118
123
|
isRangeStart(value) {
|
|
119
124
|
return value.getFullYear() % 100 === 0;
|
|
120
125
|
}
|
|
@@ -20,6 +20,7 @@ export declare class MonthViewService implements ViewService {
|
|
|
20
20
|
isInArray(date: Date, dates: Date[]): boolean;
|
|
21
21
|
isInRange(candidate: Date, min: Date, max: Date): boolean;
|
|
22
22
|
beginningOfPeriod(date: Date): Date;
|
|
23
|
+
lastDayOfPeriod(date: Date): Date;
|
|
23
24
|
isRangeStart(value: Date): boolean;
|
|
24
25
|
move(value: Date, action: Action): Date;
|
|
25
26
|
cellTitle(value: Date): string;
|
|
@@ -122,6 +122,9 @@ let MonthViewService = class MonthViewService {
|
|
|
122
122
|
}
|
|
123
123
|
return createDate(date.getFullYear(), date.getMonth(), 1);
|
|
124
124
|
}
|
|
125
|
+
lastDayOfPeriod(date) {
|
|
126
|
+
return lastDayOfMonth(date);
|
|
127
|
+
}
|
|
125
128
|
isRangeStart(value) {
|
|
126
129
|
return !value.getMonth();
|
|
127
130
|
}
|
|
@@ -19,6 +19,7 @@ export declare class YearViewService implements ViewService {
|
|
|
19
19
|
isInArray(date: Date, dates: Date[]): boolean;
|
|
20
20
|
isInRange(candidate: Date, min: Date, max: Date): boolean;
|
|
21
21
|
beginningOfPeriod(date: Date): Date;
|
|
22
|
+
lastDayOfPeriod(date: Date): Date;
|
|
22
23
|
isRangeStart(value: Date): boolean;
|
|
23
24
|
move(value: Date, action: Action): Date;
|
|
24
25
|
cellTitle(value: Date): string;
|
|
@@ -6,7 +6,7 @@ import * as tslib_1 from "tslib";
|
|
|
6
6
|
/* tslint:disable:object-literal-sort-keys */
|
|
7
7
|
import { Injectable } from '@angular/core';
|
|
8
8
|
import { IntlService } from '@progress/kendo-angular-intl';
|
|
9
|
-
import { addMonths, addYears, cloneDate, createDate, durationInYears, firstMonthOfYear, lastMonthOfYear } from '@progress/kendo-date-math';
|
|
9
|
+
import { addMonths, addYears, cloneDate, createDate, durationInYears, firstMonthOfYear, lastDayOfMonth, lastMonthOfYear } from '@progress/kendo-date-math';
|
|
10
10
|
import { Action } from '../models/navigation-action.enum';
|
|
11
11
|
import { EMPTY_SELECTIONRANGE } from '../models/selection-range.interface';
|
|
12
12
|
import { getToday, isInSelectionRange, range } from '../../util';
|
|
@@ -136,6 +136,10 @@ let YearViewService = class YearViewService {
|
|
|
136
136
|
}
|
|
137
137
|
return createDate(date.getFullYear(), 0, 1);
|
|
138
138
|
}
|
|
139
|
+
lastDayOfPeriod(date) {
|
|
140
|
+
const month = lastMonthOfYear(date);
|
|
141
|
+
return lastDayOfMonth(month);
|
|
142
|
+
}
|
|
139
143
|
isRangeStart(value) {
|
|
140
144
|
return value.getFullYear() % 10 === 0;
|
|
141
145
|
}
|
|
@@ -297,7 +297,11 @@ ViewListComponent = tslib_1.__decorate([
|
|
|
297
297
|
(scrollChange)="scrollChange($event)"
|
|
298
298
|
(activeIndexChange)="setActiveDate($event)"
|
|
299
299
|
>
|
|
300
|
-
<table
|
|
300
|
+
<table
|
|
301
|
+
#list
|
|
302
|
+
role="grid"
|
|
303
|
+
class="k-calendar-table"
|
|
304
|
+
>
|
|
301
305
|
<colgroup><col *ngFor="let _ of cols" /></colgroup>
|
|
302
306
|
|
|
303
307
|
<tbody class="k-calendar-tbody"
|
|
@@ -154,11 +154,13 @@ export declare class DateInputComponent implements OnInit, ControlValueAccessor,
|
|
|
154
154
|
/**
|
|
155
155
|
* Specifies the biggest date that is valid
|
|
156
156
|
* ([see example]({% slug dateranges_dateinput %})).
|
|
157
|
+
* By default, the `max` value is `2099-12-31`.
|
|
157
158
|
*/
|
|
158
159
|
max: Date;
|
|
159
160
|
/**
|
|
160
161
|
* Specifies the smallest date that is valid
|
|
161
162
|
* ([see example]({% slug dateranges_dateinput %})).
|
|
163
|
+
* By default, the `min` value is `1900-1-1`.
|
|
162
164
|
*/
|
|
163
165
|
min: Date;
|
|
164
166
|
/**
|
|
@@ -181,11 +181,13 @@ export declare class DatePickerComponent implements ControlValueAccessor, OnInit
|
|
|
181
181
|
/**
|
|
182
182
|
* Specifies the smallest valid date
|
|
183
183
|
* ([see example]({% slug dateranges_datepicker %})).
|
|
184
|
+
* By default, the `min` value is `1900-1-1`.
|
|
184
185
|
*/
|
|
185
186
|
min: Date;
|
|
186
187
|
/**
|
|
187
188
|
* Specifies the biggest valid date
|
|
188
189
|
* ([see example]({% slug dateranges_datepicker %})).
|
|
190
|
+
* By default, the `max` value is `2099-12-31`.
|
|
189
191
|
*/
|
|
190
192
|
max: Date;
|
|
191
193
|
/**
|
|
@@ -28,7 +28,7 @@ import { HeaderTitleTemplateDirective } from '../calendar/templates/header-title
|
|
|
28
28
|
import { NavigationItemTemplateDirective } from '../calendar/templates/navigation-item-template.directive';
|
|
29
29
|
import { PickerService } from '../common/picker.service';
|
|
30
30
|
import { DisabledDatesService } from '../calendar/services/disabled-dates.service';
|
|
31
|
-
import { noop, isValidRange, setTime, isWindowAvailable } from '../util';
|
|
31
|
+
import { noop, isValidRange, setTime, isWindowAvailable, isTabExitingCalendar } from '../util';
|
|
32
32
|
import { TOUCH_ENABLED } from '../touch-enabled';
|
|
33
33
|
import { requiresZoneOnBlur, currentFocusTarget } from '../common/utils';
|
|
34
34
|
import { fromEvent } from 'rxjs';
|
|
@@ -121,11 +121,13 @@ let DatePickerComponent = DatePickerComponent_1 = class DatePickerComponent {
|
|
|
121
121
|
/**
|
|
122
122
|
* Specifies the smallest valid date
|
|
123
123
|
* ([see example]({% slug dateranges_datepicker %})).
|
|
124
|
+
* By default, the `min` value is `1900-1-1`.
|
|
124
125
|
*/
|
|
125
126
|
this.min = cloneDate(MIN_DATE);
|
|
126
127
|
/**
|
|
127
128
|
* Specifies the biggest valid date
|
|
128
129
|
* ([see example]({% slug dateranges_datepicker %})).
|
|
130
|
+
* By default, the `max` value is `2099-12-31`.
|
|
129
131
|
*/
|
|
130
132
|
this.max = cloneDate(MAX_DATE);
|
|
131
133
|
/**
|
|
@@ -629,7 +631,7 @@ let DatePickerComponent = DatePickerComponent_1 = class DatePickerComponent {
|
|
|
629
631
|
* @hidden
|
|
630
632
|
*/
|
|
631
633
|
handleKeydown(e) {
|
|
632
|
-
const { altKey, keyCode } = e;
|
|
634
|
+
const { altKey, shiftKey, keyCode, target } = e;
|
|
633
635
|
if (keyCode === Keys.Escape) {
|
|
634
636
|
this.show = false;
|
|
635
637
|
}
|
|
@@ -641,7 +643,7 @@ let DatePickerComponent = DatePickerComponent_1 = class DatePickerComponent {
|
|
|
641
643
|
this.show = false;
|
|
642
644
|
}
|
|
643
645
|
}
|
|
644
|
-
if (keyCode === Keys.Tab && this.show && this.calendar.isActive) {
|
|
646
|
+
if (keyCode === Keys.Tab && this.show && this.calendar.isActive && isTabExitingCalendar(this.calendarType, target, shiftKey)) {
|
|
645
647
|
this.input.focus();
|
|
646
648
|
this.show = false;
|
|
647
649
|
}
|
|
@@ -19,8 +19,8 @@ export class DateRangeInput {
|
|
|
19
19
|
this.renderer = renderer;
|
|
20
20
|
this.zone = zone;
|
|
21
21
|
this.navigateCalendarOnFocus = false;
|
|
22
|
-
this.popupSubscriptions = new Subscription(
|
|
23
|
-
this.subscriptions = new Subscription(
|
|
22
|
+
this.popupSubscriptions = new Subscription();
|
|
23
|
+
this.subscriptions = new Subscription();
|
|
24
24
|
}
|
|
25
25
|
get isActiveEnd() {
|
|
26
26
|
return this.dateRangeService.activeRangeEnd === this.activeRangeEnd;
|
|
@@ -69,7 +69,7 @@ export class DateRangeInput {
|
|
|
69
69
|
}
|
|
70
70
|
unsubscribePopup() {
|
|
71
71
|
this.popupSubscriptions.unsubscribe();
|
|
72
|
-
this.popupSubscriptions = new Subscription(
|
|
72
|
+
this.popupSubscriptions = new Subscription();
|
|
73
73
|
}
|
|
74
74
|
activate() {
|
|
75
75
|
this.dateRangeService.setActiveRangeEnd(this.activeRangeEnd);
|
|
@@ -84,8 +84,8 @@ let DateRangePopupComponent = class DateRangePopupComponent {
|
|
|
84
84
|
* @hidden
|
|
85
85
|
*/
|
|
86
86
|
this.popupUID = guid();
|
|
87
|
-
this.calendarSubscriptions = new Subscription(
|
|
88
|
-
this.popupSubscriptions = new Subscription(
|
|
87
|
+
this.calendarSubscriptions = new Subscription();
|
|
88
|
+
this.popupSubscriptions = new Subscription();
|
|
89
89
|
this.resolvedPromise = Promise.resolve();
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
@@ -38,7 +38,7 @@ let DateRangeSelectionDirective = class DateRangeSelectionDirective {
|
|
|
38
38
|
* the section on [events]({% slug overview_multiviewcalendar %}#toc-events).
|
|
39
39
|
*/
|
|
40
40
|
this.selectionRangeChange = new EventEmitter();
|
|
41
|
-
this.calendarSubscriptions = new Subscription(
|
|
41
|
+
this.calendarSubscriptions = new Subscription();
|
|
42
42
|
this.dateRangeService = this.dateRangeService || new DateRangeService();
|
|
43
43
|
renderer.setAttribute(element.nativeElement, 'aria-multiselectable', 'true');
|
|
44
44
|
}
|