@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.
- package/calendar/calendar.component.d.ts +42 -8
- package/calendar/horizontal-view-list.component.d.ts +4 -3
- package/calendar/models/cell-context.interface.d.ts +4 -0
- package/calendar/models/selection-range.interface.d.ts +2 -2
- package/calendar/models/selection.d.ts +11 -1
- package/calendar/multiview-calendar.component.d.ts +40 -8
- package/calendar/view-list.component.d.ts +7 -1
- package/calendar/view.component.d.ts +2 -1
- package/common/utils.d.ts +4 -0
- package/daterange/date-range-popup.component.d.ts +15 -2
- package/datetimepicker/datetimepicker.component.d.ts +5 -0
- package/esm2020/calendar/calendar.component.mjs +233 -45
- package/esm2020/calendar/horizontal-view-list.component.mjs +9 -5
- package/esm2020/calendar/models/selection.mjs +34 -1
- package/esm2020/calendar/multiview-calendar.component.mjs +226 -45
- package/esm2020/calendar/services/century-view.service.mjs +26 -5
- package/esm2020/calendar/services/decade-view.service.mjs +26 -5
- package/esm2020/calendar/services/month-view.service.mjs +26 -5
- package/esm2020/calendar/services/year-view.service.mjs +26 -5
- package/esm2020/calendar/view-list.component.mjs +20 -3
- package/esm2020/calendar/view.component.mjs +6 -3
- package/esm2020/common/utils.mjs +4 -0
- package/esm2020/datepicker/datepicker.component.mjs +1 -1
- package/esm2020/daterange/date-range-popup.component.mjs +64 -11
- package/esm2020/daterange/date-range.component.mjs +1 -1
- package/esm2020/datetimepicker/datetimepicker.component.mjs +14 -2
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/timepicker/timepicker.component.mjs +1 -1
- package/esm2020/timepicker/timeselector.component.mjs +22 -7
- package/fesm2015/progress-kendo-angular-dateinputs.mjs +748 -142
- package/fesm2020/progress-kendo-angular-dateinputs.mjs +736 -141
- package/package.json +8 -8
- package/timepicker/timeselector.component.d.ts +2 -1
|
@@ -9,7 +9,7 @@ import * as i1$1 from '@progress/kendo-angular-l10n';
|
|
|
9
9
|
import { ComponentMessages, LocalizationService, L10N_PREFIX, RTL } from '@progress/kendo-angular-l10n';
|
|
10
10
|
import { cloneDate, MS_PER_HOUR, MS_PER_MINUTE, addDays, getDate, isEqual, addDecades, addCenturies, firstDecadeOfCentury, lastDecadeOfCentury, firstYearOfDecade, createDate, lastYearOfDecade, lastMonthOfYear, lastDayOfMonth, durationInCenturies, addYears, durationInDecades, addWeeks, addMonths, firstDayOfMonth, dayOfWeek, durationInMonths, firstMonthOfYear, durationInYears, weekInYear } from '@progress/kendo-date-math';
|
|
11
11
|
import * as i12 from '@progress/kendo-angular-common';
|
|
12
|
-
import { isDocumentAvailable, guid, Keys as Keys$1, hasObservers, KendoInput, isObjectPresent, removeHTMLAttributes, parseAttributes, isControlRequired, setHTMLAttributes, EventsModule, ResizeSensorModule, ToggleButtonTabStopModule } from '@progress/kendo-angular-common';
|
|
12
|
+
import { isDocumentAvailable, guid, Keys as Keys$1, hasObservers, isObject, KendoInput, isObjectPresent, removeHTMLAttributes, parseAttributes, isControlRequired, setHTMLAttributes, EventsModule, ResizeSensorModule, ToggleButtonTabStopModule } from '@progress/kendo-angular-common';
|
|
13
13
|
export { ToggleButtonTabStopDirective } from '@progress/kendo-angular-common';
|
|
14
14
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
15
15
|
import * as i1 from '@progress/kendo-angular-intl';
|
|
@@ -38,8 +38,8 @@ const packageMetadata = {
|
|
|
38
38
|
name: '@progress/kendo-angular-dateinputs',
|
|
39
39
|
productName: 'Kendo UI for Angular',
|
|
40
40
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
41
|
-
publishDate:
|
|
42
|
-
version: '16.0.0-develop.
|
|
41
|
+
publishDate: 1715100988,
|
|
42
|
+
version: '16.0.0-develop.14',
|
|
43
43
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
44
44
|
};
|
|
45
45
|
|
|
@@ -103,6 +103,10 @@ const currentFocusTarget = (blurArgs) => blurArgs.relatedTarget || document.acti
|
|
|
103
103
|
* @hidden
|
|
104
104
|
*/
|
|
105
105
|
const isPresent = (value) => value !== undefined && value !== null;
|
|
106
|
+
/**
|
|
107
|
+
* @hidden
|
|
108
|
+
*/
|
|
109
|
+
const isNullOrDate = (value) => value === null || value instanceof Date;
|
|
106
110
|
/**
|
|
107
111
|
* @hidden
|
|
108
112
|
*/
|
|
@@ -630,7 +634,7 @@ class CenturyViewService {
|
|
|
630
634
|
return range(0, count).map(i => addCenturies(start, i));
|
|
631
635
|
}
|
|
632
636
|
data(options) {
|
|
633
|
-
const { cellUID, focusedDate, isActiveView, max, min, selectedDates, selectionRange = EMPTY_SELECTIONRANGE, viewDate } = options;
|
|
637
|
+
const { cellUID, focusedDate, isActiveView, max, min, selectedDates, selectionRange = EMPTY_SELECTIONRANGE, viewDate, allowReverse } = options;
|
|
634
638
|
if (!viewDate) {
|
|
635
639
|
return EMPTY_DATA$3;
|
|
636
640
|
}
|
|
@@ -646,10 +650,30 @@ class CenturyViewService {
|
|
|
646
650
|
if (!this.isInRange(cellDate, min, max) || nextCentury) {
|
|
647
651
|
return null;
|
|
648
652
|
}
|
|
649
|
-
|
|
650
|
-
|
|
653
|
+
let isRangeStart = false;
|
|
654
|
+
let isRangeEnd = false;
|
|
655
|
+
if (allowReverse) {
|
|
656
|
+
if ((this.isEqual(cellDate, selectionRange.start) && selectionRange.start <= selectionRange.end) ||
|
|
657
|
+
(this.isEqual(cellDate, selectionRange.end) && selectionRange.end <= selectionRange.start)) {
|
|
658
|
+
isRangeStart = true;
|
|
659
|
+
}
|
|
660
|
+
if ((this.isEqual(cellDate, selectionRange.start) && selectionRange.start >= selectionRange.end) ||
|
|
661
|
+
(this.isEqual(cellDate, selectionRange.end) && selectionRange.end >= selectionRange.start)) {
|
|
662
|
+
isRangeEnd = true;
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
else {
|
|
666
|
+
isRangeStart = this.isEqual(cellDate, selectionRange.start);
|
|
667
|
+
isRangeEnd = this.isEqual(cellDate, selectionRange.end);
|
|
668
|
+
}
|
|
651
669
|
const isInMiddle = !isRangeStart && !isRangeEnd;
|
|
652
|
-
|
|
670
|
+
let isRangeMid;
|
|
671
|
+
if (allowReverse) {
|
|
672
|
+
isRangeMid = isInMiddle && (isInSelectionRange(cellDate, selectionRange) || isInSelectionRange(cellDate, { start: selectionRange.end, end: selectionRange.start }));
|
|
673
|
+
}
|
|
674
|
+
else {
|
|
675
|
+
isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);
|
|
676
|
+
}
|
|
653
677
|
return {
|
|
654
678
|
formattedValue: this.value(cellDate),
|
|
655
679
|
id: `${cellUID}${cellDate.getTime()}`,
|
|
@@ -663,7 +687,8 @@ class CenturyViewService {
|
|
|
663
687
|
isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstDate),
|
|
664
688
|
isToday: this.isEqual(cellDate, today),
|
|
665
689
|
title: this.cellTitle(cellDate),
|
|
666
|
-
value: cellDate
|
|
690
|
+
value: cellDate,
|
|
691
|
+
allowReverse: allowReverse
|
|
667
692
|
};
|
|
668
693
|
});
|
|
669
694
|
});
|
|
@@ -816,7 +841,7 @@ class DecadeViewService {
|
|
|
816
841
|
return range(0, count).map(i => addDecades(start, i));
|
|
817
842
|
}
|
|
818
843
|
data(options) {
|
|
819
|
-
const { cellUID, focusedDate, isActiveView, max, min, selectedDates, selectionRange = EMPTY_SELECTIONRANGE, viewDate } = options;
|
|
844
|
+
const { cellUID, focusedDate, isActiveView, max, min, selectedDates, selectionRange = EMPTY_SELECTIONRANGE, viewDate, allowReverse } = options;
|
|
820
845
|
if (!viewDate) {
|
|
821
846
|
return EMPTY_DATA$2;
|
|
822
847
|
}
|
|
@@ -832,10 +857,30 @@ class DecadeViewService {
|
|
|
832
857
|
if (!this.isInRange(cellDate, min, max) || nextDecade) {
|
|
833
858
|
return null;
|
|
834
859
|
}
|
|
835
|
-
|
|
836
|
-
|
|
860
|
+
let isRangeStart = false;
|
|
861
|
+
let isRangeEnd = false;
|
|
862
|
+
if (allowReverse) {
|
|
863
|
+
if ((this.isEqual(cellDate, selectionRange.start) && selectionRange.start <= selectionRange.end) ||
|
|
864
|
+
(this.isEqual(cellDate, selectionRange.end) && selectionRange.end <= selectionRange.start)) {
|
|
865
|
+
isRangeStart = true;
|
|
866
|
+
}
|
|
867
|
+
if ((this.isEqual(cellDate, selectionRange.start) && selectionRange.start >= selectionRange.end) ||
|
|
868
|
+
(this.isEqual(cellDate, selectionRange.end) && selectionRange.end >= selectionRange.start)) {
|
|
869
|
+
isRangeEnd = true;
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
else {
|
|
873
|
+
isRangeStart = this.isEqual(cellDate, selectionRange.start);
|
|
874
|
+
isRangeEnd = this.isEqual(cellDate, selectionRange.end);
|
|
875
|
+
}
|
|
837
876
|
const isInMiddle = !isRangeStart && !isRangeEnd;
|
|
838
|
-
|
|
877
|
+
let isRangeMid;
|
|
878
|
+
if (allowReverse) {
|
|
879
|
+
isRangeMid = isInMiddle && (isInSelectionRange(cellDate, selectionRange) || isInSelectionRange(cellDate, { start: selectionRange.end, end: selectionRange.start }));
|
|
880
|
+
}
|
|
881
|
+
else {
|
|
882
|
+
isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);
|
|
883
|
+
}
|
|
839
884
|
return {
|
|
840
885
|
formattedValue: this.value(cellDate),
|
|
841
886
|
id: `${cellUID}${cellDate.getTime()}`,
|
|
@@ -849,7 +894,8 @@ class DecadeViewService {
|
|
|
849
894
|
isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstDate),
|
|
850
895
|
isToday: this.isEqual(cellDate, today),
|
|
851
896
|
title: this.cellTitle(cellDate),
|
|
852
|
-
value: cellDate
|
|
897
|
+
value: cellDate,
|
|
898
|
+
allowReverse: allowReverse
|
|
853
899
|
};
|
|
854
900
|
});
|
|
855
901
|
});
|
|
@@ -982,7 +1028,7 @@ class MonthViewService {
|
|
|
982
1028
|
return range(0, count).map(i => addMonths(start, i));
|
|
983
1029
|
}
|
|
984
1030
|
data(options) {
|
|
985
|
-
const { cellUID, focusedDate, isActiveView, max, min, selectedDates, selectionRange = EMPTY_SELECTIONRANGE, viewDate, isDateDisabled = () => false } = options;
|
|
1031
|
+
const { cellUID, focusedDate, isActiveView, max, min, selectedDates, selectionRange = EMPTY_SELECTIONRANGE, viewDate, isDateDisabled = () => false, allowReverse } = options;
|
|
986
1032
|
if (!viewDate) {
|
|
987
1033
|
return EMPTY_DATA$1;
|
|
988
1034
|
}
|
|
@@ -1004,10 +1050,30 @@ class MonthViewService {
|
|
|
1004
1050
|
if (outOfRange) {
|
|
1005
1051
|
return null;
|
|
1006
1052
|
}
|
|
1007
|
-
|
|
1008
|
-
|
|
1053
|
+
let isRangeStart = false;
|
|
1054
|
+
let isRangeEnd = false;
|
|
1055
|
+
if (allowReverse) {
|
|
1056
|
+
if ((this.isEqual(cellDate, selectionRange.start) && selectionRange.start <= selectionRange.end) ||
|
|
1057
|
+
(this.isEqual(cellDate, selectionRange.end) && selectionRange.end <= selectionRange.start)) {
|
|
1058
|
+
isRangeStart = true;
|
|
1059
|
+
}
|
|
1060
|
+
if ((this.isEqual(cellDate, selectionRange.start) && selectionRange.start >= selectionRange.end) ||
|
|
1061
|
+
(this.isEqual(cellDate, selectionRange.end) && selectionRange.end >= selectionRange.start)) {
|
|
1062
|
+
isRangeEnd = true;
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
else {
|
|
1066
|
+
isRangeStart = this.isEqual(cellDate, selectionRange.start);
|
|
1067
|
+
isRangeEnd = this.isEqual(cellDate, selectionRange.end);
|
|
1068
|
+
}
|
|
1009
1069
|
const isInMiddle = !isRangeStart && !isRangeEnd;
|
|
1010
|
-
|
|
1070
|
+
let isRangeMid;
|
|
1071
|
+
if (allowReverse) {
|
|
1072
|
+
isRangeMid = isInMiddle && (isInSelectionRange(cellDate, selectionRange) || isInSelectionRange(cellDate, { start: selectionRange.end, end: selectionRange.start }));
|
|
1073
|
+
}
|
|
1074
|
+
else {
|
|
1075
|
+
isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);
|
|
1076
|
+
}
|
|
1011
1077
|
return {
|
|
1012
1078
|
formattedValue: this.value(cellDate),
|
|
1013
1079
|
id: `${cellUID}${otherMonth ? cellDate.getTime() + '1' : cellDate.getTime()}`,
|
|
@@ -1023,7 +1089,8 @@ class MonthViewService {
|
|
|
1023
1089
|
title: this.cellTitle(cellDate),
|
|
1024
1090
|
value: cellDate,
|
|
1025
1091
|
isDisabled: isDateDisabled(cellDate),
|
|
1026
|
-
isOtherMonth: otherMonth
|
|
1092
|
+
isOtherMonth: otherMonth,
|
|
1093
|
+
allowReverse: allowReverse
|
|
1027
1094
|
};
|
|
1028
1095
|
});
|
|
1029
1096
|
});
|
|
@@ -1168,7 +1235,7 @@ class YearViewService {
|
|
|
1168
1235
|
return range(0, count).map(i => addYears(start, i));
|
|
1169
1236
|
}
|
|
1170
1237
|
data(options) {
|
|
1171
|
-
const { cellUID, focusedDate, isActiveView, max, min, selectedDates, selectionRange = EMPTY_SELECTIONRANGE, viewDate } = options;
|
|
1238
|
+
const { cellUID, focusedDate, isActiveView, max, min, selectedDates, selectionRange = EMPTY_SELECTIONRANGE, viewDate, allowReverse } = options;
|
|
1172
1239
|
if (!viewDate) {
|
|
1173
1240
|
return EMPTY_DATA;
|
|
1174
1241
|
}
|
|
@@ -1186,10 +1253,30 @@ class YearViewService {
|
|
|
1186
1253
|
if (!this.isInRange(cellDate, min, max) || changedYear) {
|
|
1187
1254
|
return null;
|
|
1188
1255
|
}
|
|
1189
|
-
|
|
1190
|
-
|
|
1256
|
+
let isRangeStart = false;
|
|
1257
|
+
let isRangeEnd = false;
|
|
1258
|
+
if (allowReverse) {
|
|
1259
|
+
if ((this.isEqual(cellDate, selectionRange.start) && selectionRange.start <= selectionRange.end) ||
|
|
1260
|
+
(this.isEqual(cellDate, selectionRange.end) && selectionRange.end <= selectionRange.start)) {
|
|
1261
|
+
isRangeStart = true;
|
|
1262
|
+
}
|
|
1263
|
+
if ((this.isEqual(cellDate, selectionRange.start) && selectionRange.start >= selectionRange.end) ||
|
|
1264
|
+
(this.isEqual(cellDate, selectionRange.end) && selectionRange.end >= selectionRange.start)) {
|
|
1265
|
+
isRangeEnd = true;
|
|
1266
|
+
}
|
|
1267
|
+
}
|
|
1268
|
+
else {
|
|
1269
|
+
isRangeStart = this.isEqual(cellDate, selectionRange.start);
|
|
1270
|
+
isRangeEnd = this.isEqual(cellDate, selectionRange.end);
|
|
1271
|
+
}
|
|
1191
1272
|
const isInMiddle = !isRangeStart && !isRangeEnd;
|
|
1192
|
-
|
|
1273
|
+
let isRangeMid;
|
|
1274
|
+
if (allowReverse) {
|
|
1275
|
+
isRangeMid = isInMiddle && (isInSelectionRange(cellDate, selectionRange) || isInSelectionRange(cellDate, { start: selectionRange.end, end: selectionRange.start }));
|
|
1276
|
+
}
|
|
1277
|
+
else {
|
|
1278
|
+
isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);
|
|
1279
|
+
}
|
|
1193
1280
|
return {
|
|
1194
1281
|
formattedValue: months[cellDate.getMonth()],
|
|
1195
1282
|
id: `${cellUID}${cellDate.getTime()}`,
|
|
@@ -1203,7 +1290,8 @@ class YearViewService {
|
|
|
1203
1290
|
isRangeSplitStart: isRangeMid && this.isEqual(cellDate, firstDate),
|
|
1204
1291
|
isToday: this.isEqual(cellDate, today),
|
|
1205
1292
|
title: this.cellTitle(cellDate),
|
|
1206
|
-
value: cellDate
|
|
1293
|
+
value: cellDate,
|
|
1294
|
+
allowReverse: allowReverse
|
|
1207
1295
|
};
|
|
1208
1296
|
});
|
|
1209
1297
|
});
|
|
@@ -1727,7 +1815,8 @@ class ViewComponent {
|
|
|
1727
1815
|
selectionRange: this.selectionRange,
|
|
1728
1816
|
viewDate: viewDate,
|
|
1729
1817
|
isDateDisabled: this.disabledDatesService.isDateDisabled,
|
|
1730
|
-
direction: this.direction
|
|
1818
|
+
direction: this.direction,
|
|
1819
|
+
allowReverse: this.allowReverse
|
|
1731
1820
|
});
|
|
1732
1821
|
}
|
|
1733
1822
|
intlChange() {
|
|
@@ -1793,7 +1882,7 @@ class ViewComponent {
|
|
|
1793
1882
|
}
|
|
1794
1883
|
}
|
|
1795
1884
|
ViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ViewComponent, deps: [{ token: BusViewService }, { token: i1.IntlService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: DisabledDatesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1796
|
-
ViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ViewComponent, selector: "[kendoCalendarView]", inputs: { 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" }, outputs: { cellClick: "cellClick", weekNumberCellClick: "weekNumberCellClick", cellEnter: "cellEnter", cellLeave: "cellLeave", focusedCellId: "focusedCellId" }, usesOnChanges: true, ngImport: i0, template: `
|
|
1885
|
+
ViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ViewComponent, selector: "[kendoCalendarView]", inputs: { 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" }, outputs: { cellClick: "cellClick", weekNumberCellClick: "weekNumberCellClick", cellEnter: "cellEnter", cellLeave: "cellLeave", focusedCellId: "focusedCellId" }, usesOnChanges: true, ngImport: i0, template: `
|
|
1797
1886
|
<ng-template #emptyCell><td class="k-empty k-calendar-td" role="gridcell"> </td></ng-template>
|
|
1798
1887
|
<tr *ngIf="!isHorizontal()" class="k-calendar-tr" role="row" [attr.aria-hidden]="ariaHidden"><th class="k-calendar-caption" scope="col" [colSpan]="colSpan">{{title}}</th></tr>
|
|
1799
1888
|
<tr *kFor="let row of data; let rowIndex = index" class="k-calendar-tr" role="row">
|
|
@@ -1895,7 +1984,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
1895
1984
|
</tr>
|
|
1896
1985
|
`
|
|
1897
1986
|
}]
|
|
1898
|
-
}], ctorParameters: function () { return [{ type: BusViewService }, { type: i1.IntlService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: DisabledDatesService }]; }, propDecorators: {
|
|
1987
|
+
}], ctorParameters: function () { return [{ type: BusViewService }, { type: i1.IntlService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: DisabledDatesService }]; }, propDecorators: { allowReverse: [{
|
|
1988
|
+
type: Input
|
|
1989
|
+
}], showOtherMonthDays: [{
|
|
1899
1990
|
type: Input
|
|
1900
1991
|
}], direction: [{
|
|
1901
1992
|
type: Input
|
|
@@ -2202,7 +2293,7 @@ class HorizontalViewListComponent {
|
|
|
2202
2293
|
}
|
|
2203
2294
|
}
|
|
2204
2295
|
HorizontalViewListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HorizontalViewListComponent, deps: [{ token: BusViewService }, { token: i1.IntlService }, { token: WeekNamesService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
2205
|
-
HorizontalViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: HorizontalViewListComponent, selector: "kendo-calendar-horizontal", inputs: { 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" }, outputs: { cellClick: "cellClick", weekNumberCellClick: "weekNumberCellClick", cellEnter: "cellEnter", cellLeave: "cellLeave", activeDateChange: "activeDateChange", focusCalendar: "focusCalendar", blurCalendar: "blurCalendar", focusedCellChange: "focusedCellChange" }, host: { listeners: { "focus": "handleMultiViewCalendarFocus()", "blur": "handleMultiViewCalendarBlur($event)" }, properties: { "class.k-calendar-view": "this.getComponentClass", "class.k-align-items-start": "this.getComponentClass", "class.k-justify-content-center": "this.getComponentClass", "class.k-hstack": "this.horizontalHostClass", "class.k-vstack": "this.verticalHostClass", "class.k-calendar-monthview": "this.getComponentMonthClass", "class.k-calendar-yearview": "this.getComponentYearClass", "class.k-calendar-decadeview": "this.getComponentDecadeClass", "class.k-calendar-centuryview": "this.getComponentCenturyClass", "attr.role": "this.role", "attr.tabindex": "this.tabindex" } }, usesOnChanges: true, ngImport: i0, template: `
|
|
2296
|
+
HorizontalViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: HorizontalViewListComponent, selector: "kendo-calendar-horizontal", inputs: { 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" }, outputs: { cellClick: "cellClick", weekNumberCellClick: "weekNumberCellClick", cellEnter: "cellEnter", cellLeave: "cellLeave", activeDateChange: "activeDateChange", focusCalendar: "focusCalendar", blurCalendar: "blurCalendar", focusedCellChange: "focusedCellChange" }, host: { listeners: { "focus": "handleMultiViewCalendarFocus()", "blur": "handleMultiViewCalendarBlur($event)" }, properties: { "class.k-calendar-view": "this.getComponentClass", "class.k-align-items-start": "this.getComponentClass", "class.k-justify-content-center": "this.getComponentClass", "class.k-hstack": "this.horizontalHostClass", "class.k-vstack": "this.verticalHostClass", "class.k-calendar-monthview": "this.getComponentMonthClass", "class.k-calendar-yearview": "this.getComponentYearClass", "class.k-calendar-decadeview": "this.getComponentDecadeClass", "class.k-calendar-centuryview": "this.getComponentCenturyClass", "attr.role": "this.role", "attr.tabindex": "this.tabindex" } }, usesOnChanges: true, ngImport: i0, template: `
|
|
2206
2297
|
<ng-template #tableTemplate let-date="date" let-class="className">
|
|
2207
2298
|
<table
|
|
2208
2299
|
[attr.role]="views >= 2 ? 'none' : 'grid'"
|
|
@@ -2228,6 +2319,7 @@ HorizontalViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
|
|
|
2228
2319
|
<tbody
|
|
2229
2320
|
class="k-calendar-tbody"
|
|
2230
2321
|
kendoCalendarView
|
|
2322
|
+
[allowReverse]="allowReverse"
|
|
2231
2323
|
[showOtherMonthDays]="showOtherMonthDays"
|
|
2232
2324
|
role="rowgroup"
|
|
2233
2325
|
direction="horizontal"
|
|
@@ -2284,7 +2376,7 @@ HorizontalViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
|
|
|
2284
2376
|
}"
|
|
2285
2377
|
>
|
|
2286
2378
|
</ng-template>
|
|
2287
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: KForOf, selector: "[kFor][kForOf]", inputs: ["kForOf", "kForTrackBy", "kForTemplate"] }, { kind: "component", type: ViewComponent, selector: "[kendoCalendarView]", inputs: ["showOtherMonthDays", "direction", "isActive", "activeView", "cellUID", "focusedDate", "viewDate", "activeRangeEnd", "selectionRange", "min", "max", "selectedDates", "weekNumber", "viewIndex", "templateRef", "weekNumberTemplateRef", "headerTitle"], outputs: ["cellClick", "weekNumberCellClick", "cellEnter", "cellLeave", "focusedCellId"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2379
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: KForOf, selector: "[kFor][kForOf]", inputs: ["kForOf", "kForTrackBy", "kForTemplate"] }, { kind: "component", type: ViewComponent, selector: "[kendoCalendarView]", inputs: ["allowReverse", "showOtherMonthDays", "direction", "isActive", "activeView", "cellUID", "focusedDate", "viewDate", "activeRangeEnd", "selectionRange", "min", "max", "selectedDates", "weekNumber", "viewIndex", "templateRef", "weekNumberTemplateRef", "headerTitle"], outputs: ["cellClick", "weekNumberCellClick", "cellEnter", "cellLeave", "focusedCellId"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2288
2380
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HorizontalViewListComponent, decorators: [{
|
|
2289
2381
|
type: Component,
|
|
2290
2382
|
args: [{
|
|
@@ -2316,6 +2408,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
2316
2408
|
<tbody
|
|
2317
2409
|
class="k-calendar-tbody"
|
|
2318
2410
|
kendoCalendarView
|
|
2411
|
+
[allowReverse]="allowReverse"
|
|
2319
2412
|
[showOtherMonthDays]="showOtherMonthDays"
|
|
2320
2413
|
role="rowgroup"
|
|
2321
2414
|
direction="horizontal"
|
|
@@ -2374,18 +2467,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
2374
2467
|
</ng-template>
|
|
2375
2468
|
`
|
|
2376
2469
|
}]
|
|
2377
|
-
}], ctorParameters: function () { return [{ type: BusViewService }, { type: i1.IntlService }, { type: WeekNamesService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: {
|
|
2378
|
-
type: Input
|
|
2379
|
-
}], handleMultiViewCalendarFocus: [{
|
|
2470
|
+
}], ctorParameters: function () { return [{ type: BusViewService }, { type: i1.IntlService }, { type: WeekNamesService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { handleMultiViewCalendarFocus: [{
|
|
2380
2471
|
type: HostListener,
|
|
2381
2472
|
args: ["focus"]
|
|
2382
2473
|
}], handleMultiViewCalendarBlur: [{
|
|
2383
2474
|
type: HostListener,
|
|
2384
2475
|
args: ["blur", ['$event']]
|
|
2476
|
+
}], showOtherMonthDays: [{
|
|
2477
|
+
type: Input
|
|
2385
2478
|
}], cellTemplateRef: [{
|
|
2386
2479
|
type: Input
|
|
2387
2480
|
}], weekNumberTemplateRef: [{
|
|
2388
2481
|
type: Input
|
|
2482
|
+
}], allowReverse: [{
|
|
2483
|
+
type: Input
|
|
2389
2484
|
}], activeRangeEnd: [{
|
|
2390
2485
|
type: Input
|
|
2391
2486
|
}], activeView: [{
|
|
@@ -3101,6 +3196,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
3101
3196
|
}]
|
|
3102
3197
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
3103
3198
|
|
|
3199
|
+
/**
|
|
3200
|
+
* @hidden
|
|
3201
|
+
*/
|
|
3202
|
+
function handleRangeSelection(date, selectionRange, activeRangeEnd, allowReverse = false) {
|
|
3203
|
+
if ((activeRangeEnd === 'start' && selectionRange.start?.getTime() === date?.getTime() && ((allowReverse && !selectionRange.end) || !allowReverse)) ||
|
|
3204
|
+
(activeRangeEnd === 'end' && selectionRange.end?.getTime() === date?.getTime())) {
|
|
3205
|
+
return { activeRangeEnd: activeRangeEnd, selectionRange: selectionRange };
|
|
3206
|
+
}
|
|
3207
|
+
if (allowReverse) {
|
|
3208
|
+
if (activeRangeEnd === 'start') {
|
|
3209
|
+
selectionRange.start = date;
|
|
3210
|
+
activeRangeEnd = 'end';
|
|
3211
|
+
}
|
|
3212
|
+
else if (activeRangeEnd === 'end') {
|
|
3213
|
+
selectionRange.end = date;
|
|
3214
|
+
activeRangeEnd = 'start';
|
|
3215
|
+
}
|
|
3216
|
+
}
|
|
3217
|
+
if (!allowReverse) {
|
|
3218
|
+
if (activeRangeEnd === 'start' && date > selectionRange.end ||
|
|
3219
|
+
activeRangeEnd === 'end' && date < selectionRange.start) {
|
|
3220
|
+
selectionRange = { start: date, end: null };
|
|
3221
|
+
}
|
|
3222
|
+
else if (activeRangeEnd === 'start' && date <= selectionRange.end) {
|
|
3223
|
+
selectionRange.start = date;
|
|
3224
|
+
activeRangeEnd = 'end';
|
|
3225
|
+
}
|
|
3226
|
+
else if (activeRangeEnd === 'end' && date >= selectionRange.start) {
|
|
3227
|
+
selectionRange.end = date;
|
|
3228
|
+
activeRangeEnd = 'start';
|
|
3229
|
+
}
|
|
3230
|
+
}
|
|
3231
|
+
return { activeRangeEnd: activeRangeEnd, selectionRange: selectionRange };
|
|
3232
|
+
}
|
|
3233
|
+
|
|
3104
3234
|
/**
|
|
3105
3235
|
* @hidden
|
|
3106
3236
|
*/
|
|
@@ -3462,15 +3592,14 @@ class MultiViewCalendarComponent {
|
|
|
3462
3592
|
* ([see example]({% slug disabled_dates_multiviewcalendar %}#toc-validation)).
|
|
3463
3593
|
*/
|
|
3464
3594
|
this.disabledDatesRangeValidation = false;
|
|
3595
|
+
this._selection = 'single';
|
|
3465
3596
|
/**
|
|
3466
|
-
*
|
|
3467
|
-
*
|
|
3597
|
+
* Allows reverse selection when using `range` selection.
|
|
3598
|
+
* If `allowReverse` is set to `true`, the component skips the validation of whether the start date is after the end date.
|
|
3468
3599
|
*
|
|
3469
|
-
*
|
|
3470
|
-
* * `single` (default)
|
|
3471
|
-
* * `multiple`
|
|
3600
|
+
* @default false
|
|
3472
3601
|
*/
|
|
3473
|
-
this.
|
|
3602
|
+
this.allowReverse = false;
|
|
3474
3603
|
/**
|
|
3475
3604
|
* Sets or gets the `disabled` property of the Calendar and
|
|
3476
3605
|
* determines whether the component is active
|
|
@@ -3565,6 +3694,11 @@ class MultiViewCalendarComponent {
|
|
|
3565
3694
|
* ([see example](slug:events_multiviewcalendar)).
|
|
3566
3695
|
*/
|
|
3567
3696
|
this.valueChange = new EventEmitter();
|
|
3697
|
+
/**
|
|
3698
|
+
* @hidden
|
|
3699
|
+
* Fires when the range selection changes.
|
|
3700
|
+
*/
|
|
3701
|
+
this.rangeSelectionChange = new EventEmitter();
|
|
3568
3702
|
/**
|
|
3569
3703
|
* Fires each time the MultiViewCalendar gets blurred
|
|
3570
3704
|
* ([see example](slug:events_multiviewcalendar)).
|
|
@@ -3598,9 +3732,15 @@ class MultiViewCalendarComponent {
|
|
|
3598
3732
|
this.prevView = Action.PrevView;
|
|
3599
3733
|
this.nextView = Action.NextView;
|
|
3600
3734
|
this.selectedDates = [];
|
|
3735
|
+
this.shouldHoverWhenNoStart = false;
|
|
3736
|
+
this.canHover = false;
|
|
3737
|
+
this.changes = {};
|
|
3738
|
+
this.valueSetter = false;
|
|
3739
|
+
this.selectionSetter = false;
|
|
3601
3740
|
this._min = new Date(MIN_DATE);
|
|
3602
3741
|
this._max = new Date(MAX_DATE);
|
|
3603
3742
|
this._focusedDate = getToday();
|
|
3743
|
+
this._selectionRange = { start: null, end: null };
|
|
3604
3744
|
this.resolvedPromise = Promise.resolve();
|
|
3605
3745
|
this.onControlChange = noop$2;
|
|
3606
3746
|
this.onControlTouched = noop$2;
|
|
@@ -3665,29 +3805,37 @@ class MultiViewCalendarComponent {
|
|
|
3665
3805
|
get max() {
|
|
3666
3806
|
return this._max;
|
|
3667
3807
|
}
|
|
3808
|
+
/**
|
|
3809
|
+
* Sets the Calendar selection mode
|
|
3810
|
+
* ([see example]({% slug multiple_selection_multiviewcalendar %})).
|
|
3811
|
+
*
|
|
3812
|
+
* The available values are:
|
|
3813
|
+
* * `single` (default)
|
|
3814
|
+
* * `multiple`
|
|
3815
|
+
* * `range`
|
|
3816
|
+
*/
|
|
3817
|
+
set selection(_selection) {
|
|
3818
|
+
this.selectionSetter = true;
|
|
3819
|
+
this._selection = _selection;
|
|
3820
|
+
}
|
|
3821
|
+
get selection() {
|
|
3822
|
+
return this._selection;
|
|
3823
|
+
}
|
|
3668
3824
|
/**
|
|
3669
3825
|
* Sets or gets the `value` property of the Calendar and defines the selected value of the component.
|
|
3670
3826
|
*
|
|
3671
3827
|
* > The `value` has to be a valid
|
|
3672
3828
|
* [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date)
|
|
3673
|
-
* instance when in `single` selection mode
|
|
3829
|
+
* instance when in `single` selection mode, an array of valid JavaScript Date instances when in `multiple` selection mode, or
|
|
3830
|
+
* an object of type `SelectionRange` when in `range` selection mode.
|
|
3674
3831
|
*/
|
|
3832
|
+
set value(candidate) {
|
|
3833
|
+
this.valueSetter = true;
|
|
3834
|
+
this._value = candidate;
|
|
3835
|
+
}
|
|
3675
3836
|
get value() {
|
|
3676
3837
|
return this._value;
|
|
3677
3838
|
}
|
|
3678
|
-
set value(candidate) {
|
|
3679
|
-
this.verifyValue(candidate);
|
|
3680
|
-
this._value = Array.isArray(candidate) ?
|
|
3681
|
-
candidate.filter(date => isPresent(date)).map(element => cloneDate(element)) :
|
|
3682
|
-
cloneDate(candidate);
|
|
3683
|
-
const selection = [].concat(candidate).filter(date => isPresent(date)).map(date => cloneDate(date));
|
|
3684
|
-
if (!areDatesEqual(selection, this.selectedDates)) {
|
|
3685
|
-
const lastSelected = last(selection);
|
|
3686
|
-
this.rangePivot = cloneDate(lastSelected);
|
|
3687
|
-
this.focusedDate = cloneDate(lastSelected) || this.focusedDate;
|
|
3688
|
-
this.selectedDates = selection;
|
|
3689
|
-
}
|
|
3690
|
-
}
|
|
3691
3839
|
/**
|
|
3692
3840
|
* @hidden
|
|
3693
3841
|
*/
|
|
@@ -3704,10 +3852,23 @@ class MultiViewCalendarComponent {
|
|
|
3704
3852
|
set disabledDates(value) {
|
|
3705
3853
|
this.disabledDatesService.initialize(value);
|
|
3706
3854
|
}
|
|
3855
|
+
/**
|
|
3856
|
+
* Specify, which end of the defined selection range should be marked as active.
|
|
3857
|
+
*
|
|
3858
|
+
* > Value will be ignored if the selection range is undefined.
|
|
3859
|
+
* > If range selection is used then the default value is 'start'.
|
|
3860
|
+
*/
|
|
3861
|
+
set activeRangeEnd(_activeRangeEnd) {
|
|
3862
|
+
this._activeRangeEnd = _activeRangeEnd;
|
|
3863
|
+
}
|
|
3864
|
+
get activeRangeEnd() {
|
|
3865
|
+
return (this.selection === 'range' && !this._activeRangeEnd) ? 'start' : this._activeRangeEnd;
|
|
3866
|
+
}
|
|
3707
3867
|
/**
|
|
3708
3868
|
* Sets or gets the `selectionRange` property of the Calendar and
|
|
3709
3869
|
* defines the selection range of the component
|
|
3710
3870
|
* ([see example]({% slug dates_multiviewcalendar %}#toc-selection-range)).
|
|
3871
|
+
* > We recommend using the `value` property as it now supports `range` selection.
|
|
3711
3872
|
*/
|
|
3712
3873
|
set selectionRange(range) {
|
|
3713
3874
|
this._selectionRange = range;
|
|
@@ -3931,8 +4092,13 @@ class MultiViewCalendarComponent {
|
|
|
3931
4092
|
return;
|
|
3932
4093
|
}
|
|
3933
4094
|
else if (onEnterKeyPress) {
|
|
3934
|
-
this.
|
|
3935
|
-
|
|
4095
|
+
if (this.selection !== 'range') {
|
|
4096
|
+
this.selectionService.lastClicked = this.focusedDate;
|
|
4097
|
+
this.performSelection(this.focusedDate, event);
|
|
4098
|
+
}
|
|
4099
|
+
else {
|
|
4100
|
+
this.performRangeSelection(this.focusedDate);
|
|
4101
|
+
}
|
|
3936
4102
|
}
|
|
3937
4103
|
if (this.views >= 2) {
|
|
3938
4104
|
if ((escKey || (altKey && onArrowUpPress))) {
|
|
@@ -3955,7 +4121,7 @@ class MultiViewCalendarComponent {
|
|
|
3955
4121
|
if (!isSameView) {
|
|
3956
4122
|
this.emitNavigate(this.focusedDate);
|
|
3957
4123
|
}
|
|
3958
|
-
if (isArrowWithShiftPressed(event)) {
|
|
4124
|
+
if (isArrowWithShiftPressed(event) && this.selection !== 'range') {
|
|
3959
4125
|
event['anyArrow'] = true;
|
|
3960
4126
|
this.performSelection(this.focusedDate, event);
|
|
3961
4127
|
}
|
|
@@ -3969,21 +4135,30 @@ class MultiViewCalendarComponent {
|
|
|
3969
4135
|
}));
|
|
3970
4136
|
}
|
|
3971
4137
|
ngOnChanges(changes) {
|
|
4138
|
+
this.changes = changes;
|
|
3972
4139
|
this.verifyChanges();
|
|
3973
4140
|
this.bus.configure(this.bottomViewEnum, this.topViewEnum);
|
|
3974
|
-
|
|
3975
|
-
|
|
4141
|
+
}
|
|
4142
|
+
ngDoCheck() {
|
|
4143
|
+
if (this.valueSetter || this.selectionSetter) {
|
|
4144
|
+
this.setValue(this.value);
|
|
4145
|
+
this.valueSetter = false;
|
|
4146
|
+
this.selectionSetter = false;
|
|
4147
|
+
}
|
|
4148
|
+
if (hasExistingValue(this.changes, 'focusedDate')) {
|
|
4149
|
+
const focusedDate = this.changes.focusedDate.currentValue;
|
|
3976
4150
|
this.focusedDate = dateInRange(focusedDate, this.min, this.max);
|
|
3977
4151
|
}
|
|
3978
|
-
if (changes.min || changes.max || changes.rangeValidation || changes.disabledDates || changes.disabledDatesRangeValidation) {
|
|
4152
|
+
if (this.changes.min || this.changes.max || this.changes.rangeValidation || this.changes.disabledDates || this.changes.disabledDatesRangeValidation) {
|
|
3979
4153
|
this.minValidateFn = this.rangeValidation ? minValidator(this.min) : noop$2;
|
|
3980
4154
|
this.maxValidateFn = this.rangeValidation ? maxValidator(this.max) : noop$2;
|
|
3981
4155
|
this.disabledDatesRangeValidateFn = this.disabledDatesRangeValidation ? disabledDatesRangeValidator(this.disabledDatesService.isDateDisabled) : noop$2;
|
|
3982
4156
|
this.onValidatorChange();
|
|
3983
4157
|
}
|
|
3984
|
-
if (changes.min || changes.max || changes.focusedDate || changes.activeView) {
|
|
4158
|
+
if (this.changes.min || this.changes.max || this.changes.focusedDate || this.changes.activeView) {
|
|
3985
4159
|
this.updateButtonState();
|
|
3986
4160
|
}
|
|
4161
|
+
this.changes = {};
|
|
3987
4162
|
}
|
|
3988
4163
|
ngOnDestroy() {
|
|
3989
4164
|
this.subscriptions.unsubscribe();
|
|
@@ -4042,11 +4217,48 @@ class MultiViewCalendarComponent {
|
|
|
4042
4217
|
if (this.disabledDatesService.isDateDisabled(this.focusedDate)) {
|
|
4043
4218
|
return;
|
|
4044
4219
|
}
|
|
4220
|
+
if (this.selection === 'range') {
|
|
4221
|
+
return;
|
|
4222
|
+
}
|
|
4045
4223
|
this.selectedDates = availableDates.map(date => cloneDate(date));
|
|
4046
4224
|
this.value = this.parseSelectionToValue(availableDates);
|
|
4047
4225
|
this.onControlChange(this.parseSelectionToValue(availableDates));
|
|
4048
4226
|
this.valueChange.emit(this.parseSelectionToValue(availableDates));
|
|
4049
4227
|
}
|
|
4228
|
+
/**
|
|
4229
|
+
* @hidden
|
|
4230
|
+
*/
|
|
4231
|
+
onCellEnter(cellEnter, date) {
|
|
4232
|
+
this.emitCellEvent(cellEnter, date);
|
|
4233
|
+
if (this.selection === 'range' && (this.canHover || this.shouldHoverWhenNoStart)) {
|
|
4234
|
+
this.zone.run(() => {
|
|
4235
|
+
if (this.canHover && !this.shouldHoverWhenNoStart) {
|
|
4236
|
+
if (this.allowReverse) {
|
|
4237
|
+
if (this.activeRangeEnd === 'end' && this.selectionRange.start) {
|
|
4238
|
+
this.selectionRange = { start: this.selectionRange.start, end: date };
|
|
4239
|
+
}
|
|
4240
|
+
if (this.activeRangeEnd === 'start' && this.selectionRange.end) {
|
|
4241
|
+
this.selectionRange = { start: date, end: this.selectionRange.end };
|
|
4242
|
+
}
|
|
4243
|
+
}
|
|
4244
|
+
else {
|
|
4245
|
+
if (this.activeRangeEnd === 'end' && this.selectionRange.start && date >= this.selectionRange.start) {
|
|
4246
|
+
this.selectionRange = { start: this.selectionRange.start, end: date };
|
|
4247
|
+
}
|
|
4248
|
+
if (this.selectionRange.start && date < this.selectionRange.start) {
|
|
4249
|
+
this.selectionRange = { start: this.selectionRange.start, end: null };
|
|
4250
|
+
}
|
|
4251
|
+
}
|
|
4252
|
+
}
|
|
4253
|
+
else if (this.shouldHoverWhenNoStart && date <= this.selectionRange.end) {
|
|
4254
|
+
this.selectionRange = { start: date, end: this.selectionRange.end };
|
|
4255
|
+
}
|
|
4256
|
+
else {
|
|
4257
|
+
this.selectionRange = { start: null, end: this.selectionRange.end };
|
|
4258
|
+
}
|
|
4259
|
+
});
|
|
4260
|
+
}
|
|
4261
|
+
}
|
|
4050
4262
|
/**
|
|
4051
4263
|
* @hidden
|
|
4052
4264
|
*/
|
|
@@ -4151,8 +4363,13 @@ class MultiViewCalendarComponent {
|
|
|
4151
4363
|
* @hidden
|
|
4152
4364
|
*/
|
|
4153
4365
|
handleCellClick({ date, modifiers }) {
|
|
4154
|
-
this.
|
|
4155
|
-
|
|
4366
|
+
if (this.selection === 'range') {
|
|
4367
|
+
this.performRangeSelection(date);
|
|
4368
|
+
}
|
|
4369
|
+
else {
|
|
4370
|
+
this.selectionService.lastClicked = date;
|
|
4371
|
+
this.performSelection(date, modifiers);
|
|
4372
|
+
}
|
|
4156
4373
|
const isSameView = this.bus.service(this.activeViewEnum).isInArray(this.focusedDate, this.viewList.dates);
|
|
4157
4374
|
if (!isSameView) {
|
|
4158
4375
|
this.emitNavigate(this.focusedDate);
|
|
@@ -4166,10 +4383,23 @@ class MultiViewCalendarComponent {
|
|
|
4166
4383
|
return;
|
|
4167
4384
|
}
|
|
4168
4385
|
this.zone.run(() => {
|
|
4169
|
-
this.
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4386
|
+
if (this.selection === 'multiple') {
|
|
4387
|
+
this.handleDateChange({
|
|
4388
|
+
selectedDates: dates,
|
|
4389
|
+
focusedDate: last(dates),
|
|
4390
|
+
});
|
|
4391
|
+
}
|
|
4392
|
+
if (this.selection === 'range') {
|
|
4393
|
+
this.activeRangeEnd = 'start';
|
|
4394
|
+
const shouldEmitValueChange = this.selectionRange.start?.getTime() !== dates[0].getTime() ||
|
|
4395
|
+
this.selectionRange.end?.getTime() !== last(dates).getTime();
|
|
4396
|
+
this.selectionRange.start = dates[0];
|
|
4397
|
+
this.selectionRange.end = last(dates);
|
|
4398
|
+
this.value = this.selectionRange;
|
|
4399
|
+
if (shouldEmitValueChange) {
|
|
4400
|
+
this.valueChange.emit(this.value);
|
|
4401
|
+
}
|
|
4402
|
+
}
|
|
4173
4403
|
});
|
|
4174
4404
|
}
|
|
4175
4405
|
setClasses(element) {
|
|
@@ -4192,15 +4422,23 @@ class MultiViewCalendarComponent {
|
|
|
4192
4422
|
if (!isDevMode()) {
|
|
4193
4423
|
return;
|
|
4194
4424
|
}
|
|
4195
|
-
if (this.selection === 'single' && candidate && !(candidate
|
|
4196
|
-
throw new Error(`
|
|
4425
|
+
if (this.selection === 'single' && candidate && !(isNullOrDate(candidate))) {
|
|
4426
|
+
throw new Error(`When using 'single' selection the 'value' should be a valid JavaScript Date instance. Check ${VALUE_DOC_LINK$5} for possible resolution.`);
|
|
4197
4427
|
}
|
|
4198
|
-
else if (this.selection === 'multiple' && candidate
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4428
|
+
else if (this.selection === 'multiple' && candidate) {
|
|
4429
|
+
if (Array.isArray(candidate)) {
|
|
4430
|
+
const onlyDates = candidate.every(value => value instanceof Date);
|
|
4431
|
+
if (!onlyDates) {
|
|
4432
|
+
throw new Error(`When using 'multiple' selection the 'value' should be an array of valid JavaScript Date instances. Check ${VALUE_DOC_LINK$5} for possible resolution.`);
|
|
4433
|
+
}
|
|
4434
|
+
}
|
|
4435
|
+
if (Object.keys(candidate).find(k => k === 'start') && Object.keys(candidate).find(k => k === 'end')) {
|
|
4436
|
+
throw new Error(`When using 'multiple' selection the 'value' should be an array of valid JavaScript Date instances. Check ${VALUE_DOC_LINK$5} for possible resolution.`);
|
|
4202
4437
|
}
|
|
4203
4438
|
}
|
|
4439
|
+
else if (this.selection === 'range' && candidate && !(isNullOrDate(candidate['start']) && isNullOrDate(candidate['end']))) {
|
|
4440
|
+
throw new Error(`The 'value' should be an object with start and end dates. Check ${VALUE_DOC_LINK$5} for possible resolution.`);
|
|
4441
|
+
}
|
|
4204
4442
|
}
|
|
4205
4443
|
updateButtonState() {
|
|
4206
4444
|
this.resolvedPromise.then(() => {
|
|
@@ -4213,6 +4451,72 @@ class MultiViewCalendarComponent {
|
|
|
4213
4451
|
selection = selection || [];
|
|
4214
4452
|
return this.selection === 'single' ? cloneDate(last(selection)) : selection.map(date => cloneDate(date));
|
|
4215
4453
|
}
|
|
4454
|
+
setValue(candidate) {
|
|
4455
|
+
this.verifyValue(candidate);
|
|
4456
|
+
if (candidate === null) {
|
|
4457
|
+
this._value = null;
|
|
4458
|
+
this.selectedDates = [];
|
|
4459
|
+
}
|
|
4460
|
+
else if (Array.isArray(candidate)) {
|
|
4461
|
+
this.selectionRange = { start: null, end: null };
|
|
4462
|
+
this._value = candidate.filter(date => isPresent(date)).map(element => cloneDate(element));
|
|
4463
|
+
}
|
|
4464
|
+
else if (isObject(candidate) && Object.keys(candidate).find(k => k === 'start') && Object.keys(candidate).find(k => k === 'end')) {
|
|
4465
|
+
this.selectedDates = [];
|
|
4466
|
+
this.selectionRange = { start: null, end: null };
|
|
4467
|
+
this._value = { start: null, end: null };
|
|
4468
|
+
this._value.start = candidate.start instanceof Date ? cloneDate(candidate.start) : null;
|
|
4469
|
+
this._value.end = candidate.end instanceof Date ? cloneDate(candidate.end) : null;
|
|
4470
|
+
this.selectionRange = Object.assign({}, this._value);
|
|
4471
|
+
if (this._value?.start && !this._value?.end) {
|
|
4472
|
+
this.activeRangeEnd = 'end';
|
|
4473
|
+
this.canHover = true;
|
|
4474
|
+
}
|
|
4475
|
+
if (this._value?.end && !this._value?.start) {
|
|
4476
|
+
this.activeRangeEnd = 'start';
|
|
4477
|
+
this.canHover = true;
|
|
4478
|
+
}
|
|
4479
|
+
if (this.activeRangeEnd === 'end') {
|
|
4480
|
+
this.focusedDate = this.selectionRange.start || this.selectionRange.end || getToday();
|
|
4481
|
+
}
|
|
4482
|
+
else {
|
|
4483
|
+
this.focusedDate = this.selectionRange.end || this.selectionRange.start || getToday();
|
|
4484
|
+
}
|
|
4485
|
+
}
|
|
4486
|
+
else {
|
|
4487
|
+
this.selectionRange = { start: null, end: null };
|
|
4488
|
+
this._value = cloneDate(candidate);
|
|
4489
|
+
}
|
|
4490
|
+
if (this.selection !== 'range') {
|
|
4491
|
+
const selection = [].concat(candidate).filter(date => isPresent(date)).map(date => cloneDate(date));
|
|
4492
|
+
if (!areDatesEqual(selection, this.selectedDates)) {
|
|
4493
|
+
const lastSelected = last(selection);
|
|
4494
|
+
this.rangePivot = cloneDate(lastSelected);
|
|
4495
|
+
this.focusedDate = cloneDate(lastSelected) || this.focusedDate;
|
|
4496
|
+
this.selectedDates = selection;
|
|
4497
|
+
}
|
|
4498
|
+
}
|
|
4499
|
+
}
|
|
4500
|
+
performRangeSelection(date) {
|
|
4501
|
+
const clonedRangeSelection = Object.assign({}, this.selectionRange);
|
|
4502
|
+
const emitValueChange = (this.activeRangeEnd === 'start' && this.value?.start?.getTime() !== date?.getTime()) ||
|
|
4503
|
+
(this.activeRangeEnd === 'end' && this.value?.end?.getTime() !== date?.getTime());
|
|
4504
|
+
this.zone.run(() => {
|
|
4505
|
+
const rangeSelection = handleRangeSelection(date, clonedRangeSelection, this.activeRangeEnd, this.allowReverse);
|
|
4506
|
+
this.activeRangeEnd = rangeSelection.activeRangeEnd;
|
|
4507
|
+
if (this.canHover && rangeSelection.activeRangeEnd === 'end' && rangeSelection.selectionRange.end?.getTime() === date.getTime()) {
|
|
4508
|
+
this.activeRangeEnd = 'start';
|
|
4509
|
+
}
|
|
4510
|
+
this.canHover = this.activeRangeEnd === 'end' && rangeSelection.selectionRange.start && !rangeSelection.selectionRange.end;
|
|
4511
|
+
if (emitValueChange && (this.value?.start?.getTime() !== rangeSelection.selectionRange?.start?.getTime() ||
|
|
4512
|
+
this.value?.end?.getTime() !== rangeSelection.selectionRange?.end?.getTime())) {
|
|
4513
|
+
this.value = rangeSelection.selectionRange;
|
|
4514
|
+
this.valueChange.emit(this.value);
|
|
4515
|
+
this.rangeSelectionChange.emit(rangeSelection);
|
|
4516
|
+
}
|
|
4517
|
+
this.cdr.markForCheck();
|
|
4518
|
+
});
|
|
4519
|
+
}
|
|
4216
4520
|
performSelection(date, selectionModifiers) {
|
|
4217
4521
|
const selection = this.selectionService.performSelection({
|
|
4218
4522
|
date: date,
|
|
@@ -4230,7 +4534,7 @@ class MultiViewCalendarComponent {
|
|
|
4230
4534
|
}
|
|
4231
4535
|
}
|
|
4232
4536
|
MultiViewCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MultiViewCalendarComponent, deps: [{ token: BusViewService }, { token: i0.ElementRef }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: DisabledDatesService }, { token: SelectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4233
|
-
MultiViewCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: { 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", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], footerTemplateRef: ["footerTemplate", "footerTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"], headerTemplateRef: ["headerTemplate", "headerTemplateRef"] }, outputs: { activeViewChange: "activeViewChange", navigate: "navigate", cellEnter: "cellEnter", cellLeave: "cellLeave", valueChange: "valueChange", blurEvent: "blur", focusEvent: "focus", focusCalendar: "focusCalendar", onClosePopup: "onClosePopup", onTabPress: "onTabPress", onShiftTabPress: "onShiftTabPress" }, host: { listeners: { "mouseenter": "handleMouseEnter()", "mouseleave": "handleMouseLeave()", "mousedown": "handleMousedown($event)", "click": "handleClick()", "keydown": "keydown($event)" }, properties: { "attr.id": "this.widgetId", "attr.aria-disabled": "this.ariaDisabled", "class.k-disabled": "this.ariaDisabled" } }, providers: [
|
|
4537
|
+
MultiViewCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: { 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", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], footerTemplateRef: ["footerTemplate", "footerTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"], headerTemplateRef: ["headerTemplate", "headerTemplateRef"] }, outputs: { activeViewChange: "activeViewChange", navigate: "navigate", cellEnter: "cellEnter", cellLeave: "cellLeave", valueChange: "valueChange", rangeSelectionChange: "rangeSelectionChange", blurEvent: "blur", focusEvent: "focus", focusCalendar: "focusCalendar", onClosePopup: "onClosePopup", onTabPress: "onTabPress", onShiftTabPress: "onShiftTabPress" }, host: { listeners: { "mouseenter": "handleMouseEnter()", "mouseleave": "handleMouseLeave()", "mousedown": "handleMousedown($event)", "click": "handleClick()", "keydown": "keydown($event)" }, properties: { "attr.id": "this.widgetId", "attr.aria-disabled": "this.ariaDisabled", "class.k-disabled": "this.ariaDisabled" } }, providers: [
|
|
4234
4538
|
BusViewService,
|
|
4235
4539
|
RANGE_CALENDAR_VALUE_ACCESSOR,
|
|
4236
4540
|
RANGE_CALENDAR_RANGE_VALIDATORS,
|
|
@@ -4278,6 +4582,7 @@ MultiViewCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
|
|
|
4278
4582
|
</kendo-calendar-header>
|
|
4279
4583
|
<kendo-calendar-horizontal
|
|
4280
4584
|
[showOtherMonthDays]="showOtherMonthDays"
|
|
4585
|
+
[allowReverse]="allowReverse"
|
|
4281
4586
|
[id]="calendarHeaderIdLabel"
|
|
4282
4587
|
[attr.aria-labelledby]="multiViewCalendarHeaderIdLabel"
|
|
4283
4588
|
[activeView]="activeViewEnum"
|
|
@@ -4302,7 +4607,7 @@ MultiViewCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
|
|
|
4302
4607
|
[disabled]="disabled"
|
|
4303
4608
|
(cellClick)="handleCellClick($event)"
|
|
4304
4609
|
(weekNumberCellClick)="handleWeekNumberClick($event)"
|
|
4305
|
-
(cellEnter)="
|
|
4610
|
+
(cellEnter)="onCellEnter(cellEnter, $event)"
|
|
4306
4611
|
(cellLeave)="emitCellEvent(cellLeave, $event)"
|
|
4307
4612
|
(activeDateChange)="setActiveDate($event)"
|
|
4308
4613
|
(focusCalendar)="handleFocus()"
|
|
@@ -4315,7 +4620,7 @@ MultiViewCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
|
|
|
4315
4620
|
[activeViewValue]="activeView"
|
|
4316
4621
|
[currentDate]="activeDate">
|
|
4317
4622
|
</kendo-calendar-footer>
|
|
4318
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: HeaderComponent, selector: "kendo-calendar-header", inputs: ["activeView", "currentDate", "min", "max", "rangeLength", "titleTemplateRef", "headerTemplateRef", "isPrevDisabled", "isNextDisabled", "showNavigationButtons", "orientation", "id"], outputs: ["todayButtonClick", "prevButtonClick", "nextButtonClick"] }, { kind: "component", type: FooterComponent, selector: "kendo-calendar-footer", inputs: ["footerTemplateRef", "activeViewValue", "currentDate"] }, { kind: "component", type: HorizontalViewListComponent, selector: "kendo-calendar-horizontal", inputs: ["showOtherMonthDays", "cellTemplateRef", "weekNumberTemplateRef", "activeRangeEnd", "activeView", "cellUID", "focusedDate", "isActive", "min", "max", "selectionRange", "selectedDates", "views", "showViewHeader", "animateNavigation", "orientation", "activeDescendant", "tabIndex", "disabled", "id", "weekDaysFormat", "weekNumber"], outputs: ["cellClick", "weekNumberCellClick", "cellEnter", "cellLeave", "activeDateChange", "focusCalendar", "blurCalendar", "focusedCellChange"] }, { kind: "directive", type: MultiViewCalendarLocalizedMessagesDirective, selector: "[kendoMultiViewCalendarLocalizedMessages]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4623
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: HeaderComponent, selector: "kendo-calendar-header", inputs: ["activeView", "currentDate", "min", "max", "rangeLength", "titleTemplateRef", "headerTemplateRef", "isPrevDisabled", "isNextDisabled", "showNavigationButtons", "orientation", "id"], outputs: ["todayButtonClick", "prevButtonClick", "nextButtonClick"] }, { kind: "component", type: FooterComponent, selector: "kendo-calendar-footer", inputs: ["footerTemplateRef", "activeViewValue", "currentDate"] }, { kind: "component", type: HorizontalViewListComponent, selector: "kendo-calendar-horizontal", inputs: ["showOtherMonthDays", "cellTemplateRef", "weekNumberTemplateRef", "allowReverse", "activeRangeEnd", "activeView", "cellUID", "focusedDate", "isActive", "min", "max", "selectionRange", "selectedDates", "views", "showViewHeader", "animateNavigation", "orientation", "activeDescendant", "tabIndex", "disabled", "id", "weekDaysFormat", "weekNumber"], outputs: ["cellClick", "weekNumberCellClick", "cellEnter", "cellLeave", "activeDateChange", "focusCalendar", "blurCalendar", "focusedCellChange"] }, { kind: "directive", type: MultiViewCalendarLocalizedMessagesDirective, selector: "[kendoMultiViewCalendarLocalizedMessages]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4319
4624
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MultiViewCalendarComponent, decorators: [{
|
|
4320
4625
|
type: Component,
|
|
4321
4626
|
args: [{
|
|
@@ -4371,6 +4676,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
4371
4676
|
</kendo-calendar-header>
|
|
4372
4677
|
<kendo-calendar-horizontal
|
|
4373
4678
|
[showOtherMonthDays]="showOtherMonthDays"
|
|
4679
|
+
[allowReverse]="allowReverse"
|
|
4374
4680
|
[id]="calendarHeaderIdLabel"
|
|
4375
4681
|
[attr.aria-labelledby]="multiViewCalendarHeaderIdLabel"
|
|
4376
4682
|
[activeView]="activeViewEnum"
|
|
@@ -4395,7 +4701,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
4395
4701
|
[disabled]="disabled"
|
|
4396
4702
|
(cellClick)="handleCellClick($event)"
|
|
4397
4703
|
(weekNumberCellClick)="handleWeekNumberClick($event)"
|
|
4398
|
-
(cellEnter)="
|
|
4704
|
+
(cellEnter)="onCellEnter(cellEnter, $event)"
|
|
4399
4705
|
(cellLeave)="emitCellEvent(cellLeave, $event)"
|
|
4400
4706
|
(activeDateChange)="setActiveDate($event)"
|
|
4401
4707
|
(focusCalendar)="handleFocus()"
|
|
@@ -4430,6 +4736,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
4430
4736
|
type: Input
|
|
4431
4737
|
}], selection: [{
|
|
4432
4738
|
type: Input
|
|
4739
|
+
}], allowReverse: [{
|
|
4740
|
+
type: Input
|
|
4433
4741
|
}], value: [{
|
|
4434
4742
|
type: Input
|
|
4435
4743
|
}], disabled: [{
|
|
@@ -4474,6 +4782,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
4474
4782
|
type: Output
|
|
4475
4783
|
}], valueChange: [{
|
|
4476
4784
|
type: Output
|
|
4785
|
+
}], rangeSelectionChange: [{
|
|
4786
|
+
type: Output
|
|
4477
4787
|
}], blurEvent: [{
|
|
4478
4788
|
type: Output,
|
|
4479
4789
|
args: ['blur']
|
|
@@ -5401,6 +5711,7 @@ class ViewListComponent {
|
|
|
5401
5711
|
this.disabled = false;
|
|
5402
5712
|
this.showFooter = false;
|
|
5403
5713
|
this.weekDaysFormat = 'short';
|
|
5714
|
+
this.cellEnter = new EventEmitter();
|
|
5404
5715
|
this.cellClick = new EventEmitter();
|
|
5405
5716
|
this.weekNumberCellClick = new EventEmitter();
|
|
5406
5717
|
this.activeDateChange = new EventEmitter();
|
|
@@ -5550,7 +5861,7 @@ class ViewListComponent {
|
|
|
5550
5861
|
}
|
|
5551
5862
|
}
|
|
5552
5863
|
ViewListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ViewListComponent, deps: [{ token: BusViewService }, { token: i0.ChangeDetectorRef }, { token: i1.IntlService }, { token: CalendarDOMService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
5553
|
-
ViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ViewListComponent, selector: "kendo-calendar-viewlist", inputs: { 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" }, outputs: { cellClick: "cellClick", weekNumberCellClick: "weekNumberCellClick", activeDateChange: "activeDateChange", todayButtonClick: "todayButtonClick", pageChange: "pageChange", focusCalendar: "focusCalendar", blurCalendar: "blurCalendar", focusedCellChange: "focusedCellChange" }, host: { properties: { "class.k-vstack": "this.getComponentClass", "class.k-calendar-view": "this.getComponentClass", "class.k-calendar-monthview": "this.getComponentMonthClass", "class.k-calendar-yearview": "this.getComponentYearClass", "class.k-calendar-decadeview": "this.getComponentDecadeClass", "class.k-calendar-centuryview": "this.getComponentCenturyClass" } }, viewQueries: [{ propertyName: "virtualization", first: true, predicate: VirtualizationComponent, descendants: true }, { propertyName: "headerComponent", first: true, predicate: HeaderComponent, descendants: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
5864
|
+
ViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ViewListComponent, selector: "kendo-calendar-viewlist", inputs: { 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" }, outputs: { cellEnter: "cellEnter", cellClick: "cellClick", weekNumberCellClick: "weekNumberCellClick", activeDateChange: "activeDateChange", todayButtonClick: "todayButtonClick", pageChange: "pageChange", focusCalendar: "focusCalendar", blurCalendar: "blurCalendar", focusedCellChange: "focusedCellChange" }, host: { properties: { "class.k-vstack": "this.getComponentClass", "class.k-calendar-view": "this.getComponentClass", "class.k-calendar-monthview": "this.getComponentMonthClass", "class.k-calendar-yearview": "this.getComponentYearClass", "class.k-calendar-decadeview": "this.getComponentDecadeClass", "class.k-calendar-centuryview": "this.getComponentCenturyClass" } }, viewQueries: [{ propertyName: "virtualization", first: true, predicate: VirtualizationComponent, descendants: true }, { propertyName: "headerComponent", first: true, predicate: HeaderComponent, descendants: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
5554
5865
|
<kendo-calendar-header
|
|
5555
5866
|
[currentDate]="activeDate"
|
|
5556
5867
|
[min]="min"
|
|
@@ -5597,6 +5908,9 @@ ViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
5597
5908
|
<tbody class="k-calendar-tbody"
|
|
5598
5909
|
*kFor="let date of dates"
|
|
5599
5910
|
kendoCalendarView
|
|
5911
|
+
[allowReverse]="allowReverse"
|
|
5912
|
+
[activeRangeEnd]="activeRangeEnd"
|
|
5913
|
+
[selectionRange]="selectionRange"
|
|
5600
5914
|
[showOtherMonthDays]="showOtherMonthDays"
|
|
5601
5915
|
[headerTitle]="headerTitle"
|
|
5602
5916
|
role="rowgroup"
|
|
@@ -5613,6 +5927,7 @@ ViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
5613
5927
|
(cellClick)="cellClick.emit($event)"
|
|
5614
5928
|
(weekNumberCellClick)="weekNumberCellClick.emit($event)"
|
|
5615
5929
|
(focusedCellId)="focusedCellChange.emit($event)"
|
|
5930
|
+
(cellEnter)="cellEnter.emit($event)"
|
|
5616
5931
|
></tbody>
|
|
5617
5932
|
</table>
|
|
5618
5933
|
</kendo-virtualization>
|
|
@@ -5622,7 +5937,7 @@ ViewListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
5622
5937
|
[activeViewValue]="activeViewValue"
|
|
5623
5938
|
[currentDate]="activeDate">
|
|
5624
5939
|
</kendo-calendar-footer>
|
|
5625
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: KForOf, selector: "[kFor][kForOf]", inputs: ["kForOf", "kForTrackBy", "kForTemplate"] }, { kind: "component", type: HeaderComponent, selector: "kendo-calendar-header", inputs: ["activeView", "currentDate", "min", "max", "rangeLength", "titleTemplateRef", "headerTemplateRef", "isPrevDisabled", "isNextDisabled", "showNavigationButtons", "orientation", "id"], outputs: ["todayButtonClick", "prevButtonClick", "nextButtonClick"] }, { kind: "component", type: FooterComponent, selector: "kendo-calendar-footer", inputs: ["footerTemplateRef", "activeViewValue", "currentDate"] }, { kind: "component", type: ViewComponent, selector: "[kendoCalendarView]", inputs: ["showOtherMonthDays", "direction", "isActive", "activeView", "cellUID", "focusedDate", "viewDate", "activeRangeEnd", "selectionRange", "min", "max", "selectedDates", "weekNumber", "viewIndex", "templateRef", "weekNumberTemplateRef", "headerTitle"], outputs: ["cellClick", "weekNumberCellClick", "cellEnter", "cellLeave", "focusedCellId"] }, { kind: "component", type: VirtualizationComponent, selector: "kendo-virtualization", inputs: ["direction", "itemHeight", "itemWidth", "topOffset", "bottomOffset", "maxScrollDifference", "scrollOffsetSize", "scrollDuration", "skip", "take", "total"], outputs: ["activeIndexChange", "pageChange", "scrollChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5940
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: KForOf, selector: "[kFor][kForOf]", inputs: ["kForOf", "kForTrackBy", "kForTemplate"] }, { kind: "component", type: HeaderComponent, selector: "kendo-calendar-header", inputs: ["activeView", "currentDate", "min", "max", "rangeLength", "titleTemplateRef", "headerTemplateRef", "isPrevDisabled", "isNextDisabled", "showNavigationButtons", "orientation", "id"], outputs: ["todayButtonClick", "prevButtonClick", "nextButtonClick"] }, { kind: "component", type: FooterComponent, selector: "kendo-calendar-footer", inputs: ["footerTemplateRef", "activeViewValue", "currentDate"] }, { kind: "component", type: ViewComponent, selector: "[kendoCalendarView]", inputs: ["allowReverse", "showOtherMonthDays", "direction", "isActive", "activeView", "cellUID", "focusedDate", "viewDate", "activeRangeEnd", "selectionRange", "min", "max", "selectedDates", "weekNumber", "viewIndex", "templateRef", "weekNumberTemplateRef", "headerTitle"], outputs: ["cellClick", "weekNumberCellClick", "cellEnter", "cellLeave", "focusedCellId"] }, { kind: "component", type: VirtualizationComponent, selector: "kendo-virtualization", inputs: ["direction", "itemHeight", "itemWidth", "topOffset", "bottomOffset", "maxScrollDifference", "scrollOffsetSize", "scrollDuration", "skip", "take", "total"], outputs: ["activeIndexChange", "pageChange", "scrollChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5626
5941
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ViewListComponent, decorators: [{
|
|
5627
5942
|
type: Component,
|
|
5628
5943
|
args: [{
|
|
@@ -5675,6 +5990,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
5675
5990
|
<tbody class="k-calendar-tbody"
|
|
5676
5991
|
*kFor="let date of dates"
|
|
5677
5992
|
kendoCalendarView
|
|
5993
|
+
[allowReverse]="allowReverse"
|
|
5994
|
+
[activeRangeEnd]="activeRangeEnd"
|
|
5995
|
+
[selectionRange]="selectionRange"
|
|
5678
5996
|
[showOtherMonthDays]="showOtherMonthDays"
|
|
5679
5997
|
[headerTitle]="headerTitle"
|
|
5680
5998
|
role="rowgroup"
|
|
@@ -5691,6 +6009,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
5691
6009
|
(cellClick)="cellClick.emit($event)"
|
|
5692
6010
|
(weekNumberCellClick)="weekNumberCellClick.emit($event)"
|
|
5693
6011
|
(focusedCellId)="focusedCellChange.emit($event)"
|
|
6012
|
+
(cellEnter)="cellEnter.emit($event)"
|
|
5694
6013
|
></tbody>
|
|
5695
6014
|
</table>
|
|
5696
6015
|
</kendo-virtualization>
|
|
@@ -5702,7 +6021,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
5702
6021
|
</kendo-calendar-footer>
|
|
5703
6022
|
`
|
|
5704
6023
|
}]
|
|
5705
|
-
}], ctorParameters: function () { return [{ type: BusViewService }, { type: i0.ChangeDetectorRef }, { type: i1.IntlService }, { type: CalendarDOMService }, { type: i0.Renderer2 }]; }, propDecorators: {
|
|
6024
|
+
}], ctorParameters: function () { return [{ type: BusViewService }, { type: i0.ChangeDetectorRef }, { type: i1.IntlService }, { type: CalendarDOMService }, { type: i0.Renderer2 }]; }, propDecorators: { allowReverse: [{
|
|
6025
|
+
type: Input
|
|
6026
|
+
}], cellTemplateRef: [{
|
|
5706
6027
|
type: Input
|
|
5707
6028
|
}], weekNumberTemplateRef: [{
|
|
5708
6029
|
type: Input
|
|
@@ -5738,8 +6059,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
5738
6059
|
type: Input
|
|
5739
6060
|
}], weekDaysFormat: [{
|
|
5740
6061
|
type: Input
|
|
6062
|
+
}], activeRangeEnd: [{
|
|
6063
|
+
type: Input
|
|
6064
|
+
}], selectionRange: [{
|
|
6065
|
+
type: Input
|
|
5741
6066
|
}], weekNumber: [{
|
|
5742
6067
|
type: Input
|
|
6068
|
+
}], cellEnter: [{
|
|
6069
|
+
type: Output
|
|
5743
6070
|
}], cellClick: [{
|
|
5744
6071
|
type: Output
|
|
5745
6072
|
}], weekNumberCellClick: [{
|
|
@@ -6067,15 +6394,14 @@ class CalendarComponent {
|
|
|
6067
6394
|
* @default false
|
|
6068
6395
|
*/
|
|
6069
6396
|
this.footer = false;
|
|
6397
|
+
this._selection = 'single';
|
|
6070
6398
|
/**
|
|
6071
|
-
*
|
|
6072
|
-
*
|
|
6399
|
+
* Allows reverse selection when using `range` selection.
|
|
6400
|
+
* If `allowReverse` is set to `true`, the component skips the validation of whether the start date is after the end date.
|
|
6073
6401
|
*
|
|
6074
|
-
*
|
|
6075
|
-
* * `single` (default)
|
|
6076
|
-
* * `multiple`
|
|
6402
|
+
* @default false
|
|
6077
6403
|
*/
|
|
6078
|
-
this.
|
|
6404
|
+
this.allowReverse = false;
|
|
6079
6405
|
/**
|
|
6080
6406
|
* Sets or gets the `disabled` property of the Calendar and
|
|
6081
6407
|
* determines whether the component is active
|
|
@@ -6160,8 +6486,10 @@ class CalendarComponent {
|
|
|
6160
6486
|
*/
|
|
6161
6487
|
this.valueChange = new EventEmitter();
|
|
6162
6488
|
this._size = DEFAULT_SIZE;
|
|
6489
|
+
this._activeRangeEnd = 'start';
|
|
6163
6490
|
this.isActive = false;
|
|
6164
6491
|
this.cellUID = guid();
|
|
6492
|
+
this.selectionRange = { start: null, end: null };
|
|
6165
6493
|
this.selectedDates = [];
|
|
6166
6494
|
this._min = new Date(MIN_DATE);
|
|
6167
6495
|
this._max = new Date(MAX_DATE);
|
|
@@ -6171,11 +6499,15 @@ class CalendarComponent {
|
|
|
6171
6499
|
this.onValidatorChange = noop$2;
|
|
6172
6500
|
this.minValidateFn = noop$2;
|
|
6173
6501
|
this.maxValidateFn = noop$2;
|
|
6502
|
+
this.changes = {};
|
|
6503
|
+
this.valueSetter = false;
|
|
6504
|
+
this.selectionSetter = false;
|
|
6174
6505
|
this.syncNavigation = true;
|
|
6175
6506
|
this._type = 'infinite';
|
|
6176
6507
|
this.domEvents = [];
|
|
6177
6508
|
this.resolvedPromise = Promise.resolve(null);
|
|
6178
6509
|
this.destroyed = false;
|
|
6510
|
+
this.canHover = false;
|
|
6179
6511
|
validatePackage(packageMetadata);
|
|
6180
6512
|
this.id = `kendo-calendarid-${this.bus.calendarId}`;
|
|
6181
6513
|
this.setClasses(element.nativeElement);
|
|
@@ -6262,29 +6594,37 @@ class CalendarComponent {
|
|
|
6262
6594
|
get max() {
|
|
6263
6595
|
return this._max;
|
|
6264
6596
|
}
|
|
6597
|
+
/**
|
|
6598
|
+
* Sets the Calendar selection mode
|
|
6599
|
+
* ([see example]({% slug multiple_selection_calendar %})).
|
|
6600
|
+
*
|
|
6601
|
+
* The available values are:
|
|
6602
|
+
* * `single` (default)
|
|
6603
|
+
* * `multiple`
|
|
6604
|
+
* * `range`
|
|
6605
|
+
*/
|
|
6606
|
+
set selection(_selection) {
|
|
6607
|
+
this._selection = _selection;
|
|
6608
|
+
this.selectionSetter = true;
|
|
6609
|
+
}
|
|
6610
|
+
get selection() {
|
|
6611
|
+
return this._selection;
|
|
6612
|
+
}
|
|
6265
6613
|
/**
|
|
6266
6614
|
* Sets or gets the `value` property of the Calendar and defines the selected value of the component.
|
|
6267
6615
|
*
|
|
6268
6616
|
* > The `value` has to be a valid
|
|
6269
6617
|
* [JavaScript `Date`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date)
|
|
6270
|
-
* instance when in `single` selection mode
|
|
6618
|
+
* instance when in `single` selection mode, an array of valid JavaScript Date instances when in `multiple` selection mode, or
|
|
6619
|
+
* an object of type `SelectionRange` when in `range` selection mode.
|
|
6271
6620
|
*/
|
|
6621
|
+
set value(candidate) {
|
|
6622
|
+
this.valueSetter = true;
|
|
6623
|
+
this._value = candidate;
|
|
6624
|
+
}
|
|
6272
6625
|
get value() {
|
|
6273
6626
|
return this._value;
|
|
6274
6627
|
}
|
|
6275
|
-
set value(candidate) {
|
|
6276
|
-
this.verifyValue(candidate);
|
|
6277
|
-
this._value = Array.isArray(candidate) ?
|
|
6278
|
-
candidate.filter(date => isPresent(date)).map(element => cloneDate(element)) :
|
|
6279
|
-
cloneDate(candidate);
|
|
6280
|
-
const selection = [].concat(candidate).filter(date => isPresent(date)).map(date => cloneDate(date));
|
|
6281
|
-
if (!areDatesEqual(selection, this.selectedDates)) {
|
|
6282
|
-
const lastSelected = last(selection);
|
|
6283
|
-
this.rangePivot = cloneDate(lastSelected);
|
|
6284
|
-
this.focusedDate = cloneDate(lastSelected) || this.focusedDate;
|
|
6285
|
-
this.selectedDates = selection;
|
|
6286
|
-
}
|
|
6287
|
-
}
|
|
6288
6628
|
/**
|
|
6289
6629
|
* @hidden
|
|
6290
6630
|
*/
|
|
@@ -6465,6 +6805,18 @@ class CalendarComponent {
|
|
|
6465
6805
|
get size() {
|
|
6466
6806
|
return this._size;
|
|
6467
6807
|
}
|
|
6808
|
+
/**
|
|
6809
|
+
* Specify, which end of the defined selection range should be marked as active.
|
|
6810
|
+
*
|
|
6811
|
+
* > Value will be ignored if the selection range is undefined.
|
|
6812
|
+
* > If range selection is used then the default value is 'start'.
|
|
6813
|
+
*/
|
|
6814
|
+
set activeRangeEnd(_activeRangeEnd) {
|
|
6815
|
+
this._activeRangeEnd = _activeRangeEnd;
|
|
6816
|
+
}
|
|
6817
|
+
get activeRangeEnd() {
|
|
6818
|
+
return this._activeRangeEnd;
|
|
6819
|
+
}
|
|
6468
6820
|
get activeViewEnum() {
|
|
6469
6821
|
const activeView = CalendarViewEnum[this.activeView];
|
|
6470
6822
|
return activeView < this.bottomViewEnum ? this.bottomViewEnum : activeView;
|
|
@@ -6497,21 +6849,30 @@ class CalendarComponent {
|
|
|
6497
6849
|
}
|
|
6498
6850
|
}
|
|
6499
6851
|
ngOnChanges(changes) {
|
|
6852
|
+
this.changes = changes;
|
|
6500
6853
|
this.verifyChanges();
|
|
6501
6854
|
this.bus.configure(this.bottomViewEnum, this.topViewEnum);
|
|
6502
6855
|
this.scrollSyncService.configure(this.activeViewEnum);
|
|
6503
|
-
|
|
6504
|
-
|
|
6856
|
+
}
|
|
6857
|
+
ngDoCheck() {
|
|
6858
|
+
if (this.valueSetter || this.selectionSetter) {
|
|
6859
|
+
this.setValue(this.value);
|
|
6860
|
+
this.valueSetter = false;
|
|
6861
|
+
this.selectionSetter = false;
|
|
6862
|
+
}
|
|
6863
|
+
if (hasExistingValue(this.changes, 'focusedDate')) {
|
|
6864
|
+
const focusedDate = this.changes.focusedDate.currentValue;
|
|
6505
6865
|
this.focusedDate = dateInRange(focusedDate, this.min, this.max);
|
|
6506
6866
|
}
|
|
6507
|
-
if (changes.navigation) {
|
|
6867
|
+
if (this.changes.navigation) {
|
|
6508
6868
|
this.syncNavigation = true;
|
|
6509
6869
|
}
|
|
6510
|
-
if (changes.min || changes.max || changes.rangeValidation) {
|
|
6870
|
+
if (this.changes.min || this.changes.max || this.changes.rangeValidation) {
|
|
6511
6871
|
this.minValidateFn = this.rangeValidation ? minValidator(this.min) : noop$2;
|
|
6512
6872
|
this.maxValidateFn = this.rangeValidation ? maxValidator(this.max) : noop$2;
|
|
6513
6873
|
this.onValidatorChange();
|
|
6514
6874
|
}
|
|
6875
|
+
this.changes = {};
|
|
6515
6876
|
}
|
|
6516
6877
|
ngAfterViewInit() {
|
|
6517
6878
|
this.setAriaActivedescendant();
|
|
@@ -6544,6 +6905,31 @@ class CalendarComponent {
|
|
|
6544
6905
|
}
|
|
6545
6906
|
this.destroyed = true;
|
|
6546
6907
|
}
|
|
6908
|
+
/**
|
|
6909
|
+
* @hidden
|
|
6910
|
+
*/
|
|
6911
|
+
onCellEnter(date) {
|
|
6912
|
+
if (this.selection === 'range' && this.canHover) {
|
|
6913
|
+
this.ngZone.run(() => {
|
|
6914
|
+
if (this.allowReverse) {
|
|
6915
|
+
if (this.activeRangeEnd === 'end' && this.selectionRange.start) {
|
|
6916
|
+
this.selectionRange = { start: this.selectionRange.start, end: date };
|
|
6917
|
+
}
|
|
6918
|
+
if (this.activeRangeEnd === 'start' && this.selectionRange.end) {
|
|
6919
|
+
this.selectionRange = { start: date, end: this.selectionRange.end };
|
|
6920
|
+
}
|
|
6921
|
+
}
|
|
6922
|
+
else {
|
|
6923
|
+
if (this.activeRangeEnd === 'end' && this.selectionRange.start && date >= this.selectionRange.start) {
|
|
6924
|
+
this.selectionRange = { start: this.selectionRange.start, end: date };
|
|
6925
|
+
}
|
|
6926
|
+
if (this.selectionRange.start && date < this.selectionRange.start) {
|
|
6927
|
+
this.selectionRange = { start: this.selectionRange.start, end: null };
|
|
6928
|
+
}
|
|
6929
|
+
}
|
|
6930
|
+
});
|
|
6931
|
+
}
|
|
6932
|
+
}
|
|
6547
6933
|
/**
|
|
6548
6934
|
* @hidden
|
|
6549
6935
|
*/
|
|
@@ -6617,9 +7003,14 @@ class CalendarComponent {
|
|
|
6617
7003
|
/**
|
|
6618
7004
|
* @hidden
|
|
6619
7005
|
*/
|
|
6620
|
-
handleMultiViewCalendarValueChange(
|
|
6621
|
-
|
|
6622
|
-
|
|
7006
|
+
handleMultiViewCalendarValueChange(value, focusedDate) {
|
|
7007
|
+
if (this.selection === 'range') {
|
|
7008
|
+
this.valueChange.emit(value);
|
|
7009
|
+
}
|
|
7010
|
+
else {
|
|
7011
|
+
const selectedDates = (Array.isArray(value) ? value : [value]);
|
|
7012
|
+
this.handleDateChange({ selectedDates, focusedDate });
|
|
7013
|
+
}
|
|
6623
7014
|
}
|
|
6624
7015
|
/**
|
|
6625
7016
|
* @hidden
|
|
@@ -6643,6 +7034,9 @@ class CalendarComponent {
|
|
|
6643
7034
|
if (this.disabledDatesService.isDateDisabled(this.focusedDate)) {
|
|
6644
7035
|
return;
|
|
6645
7036
|
}
|
|
7037
|
+
if (this.selection === 'range') {
|
|
7038
|
+
return;
|
|
7039
|
+
}
|
|
6646
7040
|
this.ngZone.run(() => {
|
|
6647
7041
|
this.selectedDates = availableDates.map(date => cloneDate(date));
|
|
6648
7042
|
this.value = this.parseSelectionToValue(availableDates);
|
|
@@ -6755,8 +7149,13 @@ class CalendarComponent {
|
|
|
6755
7149
|
*/
|
|
6756
7150
|
handleCellClick({ date, modifiers }) {
|
|
6757
7151
|
this.focus();
|
|
6758
|
-
this.
|
|
6759
|
-
|
|
7152
|
+
if (this.selection === 'range') {
|
|
7153
|
+
this.performRangeSelection(date);
|
|
7154
|
+
}
|
|
7155
|
+
else {
|
|
7156
|
+
this.selectionService.lastClicked = date;
|
|
7157
|
+
this.performSelection(date, modifiers);
|
|
7158
|
+
}
|
|
6760
7159
|
}
|
|
6761
7160
|
/**
|
|
6762
7161
|
* @hidden
|
|
@@ -6766,10 +7165,22 @@ class CalendarComponent {
|
|
|
6766
7165
|
return;
|
|
6767
7166
|
}
|
|
6768
7167
|
this.ngZone.run(() => {
|
|
6769
|
-
this.
|
|
6770
|
-
|
|
6771
|
-
|
|
6772
|
-
|
|
7168
|
+
if (this.selection === 'multiple') {
|
|
7169
|
+
this.handleDateChange({
|
|
7170
|
+
selectedDates: dates,
|
|
7171
|
+
focusedDate: last(dates),
|
|
7172
|
+
});
|
|
7173
|
+
}
|
|
7174
|
+
if (this.selection === 'range') {
|
|
7175
|
+
this.canHover = false;
|
|
7176
|
+
this.activeRangeEnd = 'start';
|
|
7177
|
+
const shouldEmitValueChange = this.selectionRange.start?.getTime() !== dates[0].getTime() ||
|
|
7178
|
+
this.selectionRange.end?.getTime() !== last(dates).getTime();
|
|
7179
|
+
this.value = { start: dates[0], end: last(dates) };
|
|
7180
|
+
if (shouldEmitValueChange) {
|
|
7181
|
+
this.valueChange.emit(this.value);
|
|
7182
|
+
}
|
|
7183
|
+
}
|
|
6773
7184
|
});
|
|
6774
7185
|
}
|
|
6775
7186
|
/**
|
|
@@ -6833,14 +7244,22 @@ class CalendarComponent {
|
|
|
6833
7244
|
if (!isDevMode()) {
|
|
6834
7245
|
return;
|
|
6835
7246
|
}
|
|
6836
|
-
if (this.selection === 'single' && candidate && !(candidate
|
|
6837
|
-
throw new Error(`
|
|
7247
|
+
if (this.selection === 'single' && candidate && !(isNullOrDate(candidate))) {
|
|
7248
|
+
throw new Error(`When using 'single' selection the 'value' should be a valid JavaScript Date instance. Check ${VALUE_DOC_LINK$4} for possible resolution.`);
|
|
6838
7249
|
}
|
|
6839
|
-
else if (this.selection === 'multiple' && candidate
|
|
6840
|
-
|
|
6841
|
-
|
|
6842
|
-
|
|
7250
|
+
else if (this.selection === 'multiple' && candidate) {
|
|
7251
|
+
if (Array.isArray(candidate)) {
|
|
7252
|
+
const onlyDates = candidate.every(value => value instanceof Date);
|
|
7253
|
+
if (!onlyDates) {
|
|
7254
|
+
throw new Error(`When using 'multiple' selection the 'value' should be an array of valid JavaScript Date instances. Check ${VALUE_DOC_LINK$4} for possible resolution.`);
|
|
7255
|
+
}
|
|
6843
7256
|
}
|
|
7257
|
+
if (Object.keys(candidate).find(k => k === 'start') && Object.keys(candidate).find(k => k === 'end')) {
|
|
7258
|
+
throw new Error(`When using 'multiple' selection the 'value' should be an array of valid JavaScript Date instances. Check ${VALUE_DOC_LINK$4} for possible resolution.`);
|
|
7259
|
+
}
|
|
7260
|
+
}
|
|
7261
|
+
else if (this.selection === 'range' && candidate && !(isNullOrDate(candidate['start']) && isNullOrDate(candidate['end']))) {
|
|
7262
|
+
throw new Error(`The 'value' should be an object with start and end dates. Check ${VALUE_DOC_LINK$4} for possible resolution.`);
|
|
6844
7263
|
}
|
|
6845
7264
|
}
|
|
6846
7265
|
bindEvents() {
|
|
@@ -6893,12 +7312,17 @@ class CalendarComponent {
|
|
|
6893
7312
|
}
|
|
6894
7313
|
if (args.keyCode === Keys$1.Enter) {
|
|
6895
7314
|
this.selectionService.lastClicked = this.focusedDate;
|
|
6896
|
-
|
|
7315
|
+
if (this.selection !== 'range') {
|
|
7316
|
+
this.performSelection(this.focusedDate, args);
|
|
7317
|
+
}
|
|
7318
|
+
else {
|
|
7319
|
+
this.performRangeSelection(this.focusedDate);
|
|
7320
|
+
}
|
|
6897
7321
|
}
|
|
6898
7322
|
if (args.keyCode === Keys$1.KeyT) {
|
|
6899
7323
|
this.focusToday();
|
|
6900
7324
|
}
|
|
6901
|
-
if (isArrowWithShiftPressed(args)) {
|
|
7325
|
+
if (isArrowWithShiftPressed(args) && this.selection !== 'range') {
|
|
6902
7326
|
args.anyArrow = true;
|
|
6903
7327
|
this.performSelection(this.focusedDate, args);
|
|
6904
7328
|
}
|
|
@@ -6937,6 +7361,78 @@ class CalendarComponent {
|
|
|
6937
7361
|
selection = selection || [];
|
|
6938
7362
|
return this.selection === 'single' ? cloneDate(last(selection)) : selection.map(date => cloneDate(date));
|
|
6939
7363
|
}
|
|
7364
|
+
setValue(candidate) {
|
|
7365
|
+
this.verifyValue(candidate);
|
|
7366
|
+
if (candidate === null) {
|
|
7367
|
+
this._value = null;
|
|
7368
|
+
this.selectedDates = [];
|
|
7369
|
+
this.selectionRange = { start: null, end: null };
|
|
7370
|
+
}
|
|
7371
|
+
else if (Array.isArray(candidate)) {
|
|
7372
|
+
this.selectionRange = { start: null, end: null };
|
|
7373
|
+
this._value = candidate.filter(date => isPresent(date)).map(element => cloneDate(element));
|
|
7374
|
+
}
|
|
7375
|
+
else if (isObject(candidate) && Object.keys(candidate).find(k => k === 'start') && Object.keys(candidate).find(k => k === 'end')) {
|
|
7376
|
+
this.selectedDates = [];
|
|
7377
|
+
this.selectionRange = { start: null, end: null };
|
|
7378
|
+
this._value = { start: null, end: null };
|
|
7379
|
+
this._value.start = candidate.start instanceof Date ? cloneDate(candidate.start) : null;
|
|
7380
|
+
this._value.end = candidate.end instanceof Date ? cloneDate(candidate.end) : null;
|
|
7381
|
+
this.selectionRange = Object.assign({}, this._value);
|
|
7382
|
+
if (this._value?.start && !this._value?.end) {
|
|
7383
|
+
this.activeRangeEnd = 'end';
|
|
7384
|
+
this.canHover = true;
|
|
7385
|
+
}
|
|
7386
|
+
if (this._value?.end && !this._value?.start) {
|
|
7387
|
+
this.activeRangeEnd = 'start';
|
|
7388
|
+
this.canHover = true;
|
|
7389
|
+
}
|
|
7390
|
+
if (this.activeRangeEnd === 'end') {
|
|
7391
|
+
this.focusedDate = this.selectionRange.start || this.selectionRange.end || getToday();
|
|
7392
|
+
}
|
|
7393
|
+
else {
|
|
7394
|
+
this.focusedDate = this.selectionRange.end || this.selectionRange.start || getToday();
|
|
7395
|
+
}
|
|
7396
|
+
}
|
|
7397
|
+
else {
|
|
7398
|
+
this.selectionRange = { start: null, end: null };
|
|
7399
|
+
this._value = cloneDate(candidate);
|
|
7400
|
+
}
|
|
7401
|
+
if (this.selection !== 'range') {
|
|
7402
|
+
const selection = [].concat(candidate).filter(date => isPresent(date)).map(date => cloneDate(date));
|
|
7403
|
+
if (!areDatesEqual(selection, this.selectedDates)) {
|
|
7404
|
+
const lastSelected = last(selection);
|
|
7405
|
+
this.rangePivot = cloneDate(lastSelected);
|
|
7406
|
+
this.focusedDate = cloneDate(lastSelected) || this.focusedDate;
|
|
7407
|
+
this.selectedDates = selection;
|
|
7408
|
+
}
|
|
7409
|
+
}
|
|
7410
|
+
}
|
|
7411
|
+
performRangeSelection(date) {
|
|
7412
|
+
const clonedRangeSelection = Object.assign({}, this.selectionRange);
|
|
7413
|
+
const emitValueChange = (this.activeRangeEnd === 'start' && this.value?.start?.getTime() !== date?.getTime()) ||
|
|
7414
|
+
(this.activeRangeEnd === 'end' && this.value?.end?.getTime() !== date?.getTime());
|
|
7415
|
+
this.ngZone.run(() => {
|
|
7416
|
+
const rangeSelection = handleRangeSelection(date, clonedRangeSelection, this.activeRangeEnd, this.allowReverse);
|
|
7417
|
+
this.activeRangeEnd = rangeSelection.activeRangeEnd;
|
|
7418
|
+
if (this.canHover && rangeSelection.activeRangeEnd === 'end' && rangeSelection.selectionRange.end?.getTime() === date.getTime()) {
|
|
7419
|
+
this.activeRangeEnd = 'start';
|
|
7420
|
+
}
|
|
7421
|
+
if ((this.activeRangeEnd === 'end' && rangeSelection.selectionRange.start) ||
|
|
7422
|
+
(this.activeRangeEnd === 'start' && rangeSelection.selectionRange.end)) {
|
|
7423
|
+
this.canHover = true;
|
|
7424
|
+
}
|
|
7425
|
+
else {
|
|
7426
|
+
this.canHover = false;
|
|
7427
|
+
}
|
|
7428
|
+
if (emitValueChange && (this.value?.start?.getTime() !== rangeSelection.selectionRange?.start?.getTime() ||
|
|
7429
|
+
this.value?.end?.getTime() !== rangeSelection.selectionRange?.end?.getTime())) {
|
|
7430
|
+
this.value = rangeSelection.selectionRange;
|
|
7431
|
+
this.valueChange.emit(this.value);
|
|
7432
|
+
}
|
|
7433
|
+
this.cdr.markForCheck();
|
|
7434
|
+
});
|
|
7435
|
+
}
|
|
6940
7436
|
performSelection(date, selectionModifiers) {
|
|
6941
7437
|
const selection = this.selectionService.performSelection({
|
|
6942
7438
|
date: date,
|
|
@@ -6954,7 +7450,7 @@ class CalendarComponent {
|
|
|
6954
7450
|
}
|
|
6955
7451
|
}
|
|
6956
7452
|
CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CalendarComponent, deps: [{ token: BusViewService }, { token: CalendarDOMService }, { token: i0.ElementRef }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Injector }, { token: ScrollSyncService }, { token: DisabledDatesService }, { token: i1$1.LocalizationService }, { token: SelectionService }, { token: PickerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
6957
|
-
CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CalendarComponent, selector: "kendo-calendar", inputs: { 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", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"], headerTemplateRef: ["headerTemplate", "headerTemplateRef"], footerTemplateRef: ["footerTemplate", "footerTemplateRef"], navigationItemTemplateRef: ["navigationItemTemplate", "navigationItemTemplateRef"], size: "size" }, outputs: { activeViewChange: "activeViewChange", navigate: "navigate", activeViewDateChange: "activeViewDateChange", onBlur: "blur", onFocus: "focus", valueChange: "valueChange" }, host: { properties: { "class.k-week-number": "this.weekNumber", "attr.id": "this.widgetId", "attr.aria-disabled": "this.ariaDisabled", "class.k-disabled": "this.ariaDisabled" } }, providers: [
|
|
7453
|
+
CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CalendarComponent, selector: "kendo-calendar", inputs: { 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", "cellTemplateRef"], monthCellTemplateRef: ["monthCellTemplate", "monthCellTemplateRef"], yearCellTemplateRef: ["yearCellTemplate", "yearCellTemplateRef"], decadeCellTemplateRef: ["decadeCellTemplate", "decadeCellTemplateRef"], centuryCellTemplateRef: ["centuryCellTemplate", "centuryCellTemplateRef"], weekNumberTemplateRef: ["weekNumberTemplate", "weekNumberTemplateRef"], headerTitleTemplateRef: ["headerTitleTemplate", "headerTitleTemplateRef"], headerTemplateRef: ["headerTemplate", "headerTemplateRef"], footerTemplateRef: ["footerTemplate", "footerTemplateRef"], navigationItemTemplateRef: ["navigationItemTemplate", "navigationItemTemplateRef"], size: "size", activeRangeEnd: "activeRangeEnd" }, outputs: { activeViewChange: "activeViewChange", navigate: "navigate", activeViewDateChange: "activeViewDateChange", onBlur: "blur", onFocus: "focus", valueChange: "valueChange" }, host: { properties: { "class.k-week-number": "this.weekNumber", "attr.id": "this.widgetId", "attr.aria-disabled": "this.ariaDisabled", "class.k-disabled": "this.ariaDisabled" } }, providers: [
|
|
6958
7454
|
BusViewService,
|
|
6959
7455
|
CALENDAR_VALUE_ACCESSOR,
|
|
6960
7456
|
CALENDAR_RANGE_VALIDATORS,
|
|
@@ -6997,7 +7493,10 @@ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
6997
7493
|
</kendo-calendar-navigation>
|
|
6998
7494
|
<kendo-calendar-viewlist
|
|
6999
7495
|
[activeView]="activeViewEnum"
|
|
7496
|
+
[allowReverse]="allowReverse"
|
|
7000
7497
|
[showOtherMonthDays]="showOtherMonthDays"
|
|
7498
|
+
[activeRangeEnd]="activeRangeEnd"
|
|
7499
|
+
[selectionRange]="selectionRange"
|
|
7001
7500
|
[isActive]="isActive"
|
|
7002
7501
|
[id]="headerId"
|
|
7003
7502
|
[weekDaysFormat]="weekDaysFormat"
|
|
@@ -7025,6 +7524,7 @@ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
7025
7524
|
(pageChange)="onPageChange()"
|
|
7026
7525
|
(focusCalendar)="handleFocus()"
|
|
7027
7526
|
(blurCalendar)="handleBlur($event)"
|
|
7527
|
+
(cellEnter)="onCellEnter($event)"
|
|
7028
7528
|
>
|
|
7029
7529
|
</kendo-calendar-viewlist>
|
|
7030
7530
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
@@ -7036,6 +7536,9 @@ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
7036
7536
|
[min]="min"
|
|
7037
7537
|
[max]="max"
|
|
7038
7538
|
[id]="id"
|
|
7539
|
+
[activeRangeEnd]="activeRangeEnd"
|
|
7540
|
+
[selectionRange]="selectionRange"
|
|
7541
|
+
[allowReverse]="allowReverse"
|
|
7039
7542
|
[disabled]="disabled"
|
|
7040
7543
|
[isActive]="isActive"
|
|
7041
7544
|
[showOtherMonthDays]="showOtherMonthDays"
|
|
@@ -7077,7 +7580,7 @@ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
7077
7580
|
</kendo-multiviewcalendar-messages>
|
|
7078
7581
|
</kendo-multiviewcalendar>
|
|
7079
7582
|
</ng-container>
|
|
7080
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MultiViewCalendarCustomMessagesComponent, selector: "kendo-multiviewcalendar-messages" }, { kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "component", type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: NavigationComponent, selector: "kendo-calendar-navigation", inputs: ["activeView", "min", "max", "focusedDate", "templateRef"], outputs: ["valueChange", "pageChange"] }, { kind: "directive", type: CalendarLocalizedMessagesDirective, selector: "[kendoCalendarLocalizedMessages]" }, { kind: "component", type: ViewListComponent, selector: "kendo-calendar-viewlist", inputs: ["cellTemplateRef", "weekNumberTemplateRef", "headerTitleTemplateRef", "headerTemplateRef", "footerTemplateRef", "showOtherMonthDays", "activeView", "cellUID", "focusedDate", "isActive", "min", "max", "selectedDates", "tabIndex", "disabled", "id", "showFooter", "weekDaysFormat", "weekNumber"], outputs: ["cellClick", "weekNumberCellClick", "activeDateChange", "todayButtonClick", "pageChange", "focusCalendar", "blurCalendar", "focusedCellChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7583
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MultiViewCalendarCustomMessagesComponent, selector: "kendo-multiviewcalendar-messages" }, { kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "component", type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: NavigationComponent, selector: "kendo-calendar-navigation", inputs: ["activeView", "min", "max", "focusedDate", "templateRef"], outputs: ["valueChange", "pageChange"] }, { kind: "directive", type: CalendarLocalizedMessagesDirective, selector: "[kendoCalendarLocalizedMessages]" }, { kind: "component", type: ViewListComponent, selector: "kendo-calendar-viewlist", inputs: ["allowReverse", "cellTemplateRef", "weekNumberTemplateRef", "headerTitleTemplateRef", "headerTemplateRef", "footerTemplateRef", "showOtherMonthDays", "activeView", "cellUID", "focusedDate", "isActive", "min", "max", "selectedDates", "tabIndex", "disabled", "id", "showFooter", "weekDaysFormat", "activeRangeEnd", "selectionRange", "weekNumber"], outputs: ["cellEnter", "cellClick", "weekNumberCellClick", "activeDateChange", "todayButtonClick", "pageChange", "focusCalendar", "blurCalendar", "focusedCellChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7081
7584
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CalendarComponent, decorators: [{
|
|
7082
7585
|
type: Component,
|
|
7083
7586
|
args: [{
|
|
@@ -7128,7 +7631,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
7128
7631
|
</kendo-calendar-navigation>
|
|
7129
7632
|
<kendo-calendar-viewlist
|
|
7130
7633
|
[activeView]="activeViewEnum"
|
|
7634
|
+
[allowReverse]="allowReverse"
|
|
7131
7635
|
[showOtherMonthDays]="showOtherMonthDays"
|
|
7636
|
+
[activeRangeEnd]="activeRangeEnd"
|
|
7637
|
+
[selectionRange]="selectionRange"
|
|
7132
7638
|
[isActive]="isActive"
|
|
7133
7639
|
[id]="headerId"
|
|
7134
7640
|
[weekDaysFormat]="weekDaysFormat"
|
|
@@ -7156,6 +7662,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
7156
7662
|
(pageChange)="onPageChange()"
|
|
7157
7663
|
(focusCalendar)="handleFocus()"
|
|
7158
7664
|
(blurCalendar)="handleBlur($event)"
|
|
7665
|
+
(cellEnter)="onCellEnter($event)"
|
|
7159
7666
|
>
|
|
7160
7667
|
</kendo-calendar-viewlist>
|
|
7161
7668
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
@@ -7167,6 +7674,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
7167
7674
|
[min]="min"
|
|
7168
7675
|
[max]="max"
|
|
7169
7676
|
[id]="id"
|
|
7677
|
+
[activeRangeEnd]="activeRangeEnd"
|
|
7678
|
+
[selectionRange]="selectionRange"
|
|
7679
|
+
[allowReverse]="allowReverse"
|
|
7170
7680
|
[disabled]="disabled"
|
|
7171
7681
|
[isActive]="isActive"
|
|
7172
7682
|
[showOtherMonthDays]="showOtherMonthDays"
|
|
@@ -7230,6 +7740,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
7230
7740
|
type: Input
|
|
7231
7741
|
}], selection: [{
|
|
7232
7742
|
type: Input
|
|
7743
|
+
}], allowReverse: [{
|
|
7744
|
+
type: Input
|
|
7233
7745
|
}], value: [{
|
|
7234
7746
|
type: Input
|
|
7235
7747
|
}], disabled: [{
|
|
@@ -7333,6 +7845,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
7333
7845
|
args: ['navigationItemTemplate']
|
|
7334
7846
|
}], size: [{
|
|
7335
7847
|
type: Input
|
|
7848
|
+
}], activeRangeEnd: [{
|
|
7849
|
+
type: Input
|
|
7336
7850
|
}], navigationView: [{
|
|
7337
7851
|
type: ViewChild,
|
|
7338
7852
|
args: [NavigationComponent, { static: false }]
|
|
@@ -9860,7 +10374,7 @@ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
9860
10374
|
</kendo-calendar-messages>
|
|
9861
10375
|
</kendo-calendar>
|
|
9862
10376
|
</ng-template>
|
|
9863
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "directive", type: i12.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: i11.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: i11.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: DatePickerLocalizedMessagesDirective, selector: "[kendoDatePickerLocalizedMessages]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10377
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size", "activeRangeEnd"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "directive", type: i12.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: i11.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: i11.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: DatePickerLocalizedMessagesDirective, selector: "[kendoDatePickerLocalizedMessages]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
9864
10378
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
9865
10379
|
type: Component,
|
|
9866
10380
|
args: [{
|
|
@@ -11500,6 +12014,7 @@ class TimeSelectorComponent {
|
|
|
11500
12014
|
*/
|
|
11501
12015
|
this.valueReject = new EventEmitter();
|
|
11502
12016
|
this.tabOutLastPart = new EventEmitter();
|
|
12017
|
+
this.tabOutNow = new EventEmitter();
|
|
11503
12018
|
this.isActive = false;
|
|
11504
12019
|
this.showNowButton = true;
|
|
11505
12020
|
this._activeListIndex = -1;
|
|
@@ -11595,7 +12110,7 @@ class TimeSelectorComponent {
|
|
|
11595
12110
|
if (keyCode === Keys$1.Tab && shiftKey) {
|
|
11596
12111
|
event.preventDefault();
|
|
11597
12112
|
this.renderer.removeClass(this.timeListWrappers.first.nativeElement, 'k-focus');
|
|
11598
|
-
this.
|
|
12113
|
+
this.now ? this.now.nativeElement.focus() : this.cancel.nativeElement.focus();
|
|
11599
12114
|
}
|
|
11600
12115
|
}));
|
|
11601
12116
|
this.subscriptions.add(fromEvent(this.timeListWrappers.last.nativeElement, 'keydown').subscribe((event) => {
|
|
@@ -11714,13 +12229,23 @@ class TimeSelectorComponent {
|
|
|
11714
12229
|
*/
|
|
11715
12230
|
handleTabOut(event) {
|
|
11716
12231
|
const { keyCode, shiftKey } = event;
|
|
11717
|
-
if (keyCode === Keys$1.Tab &&
|
|
12232
|
+
if (event.target === this.now?.nativeElement && keyCode === Keys$1.Tab && shiftKey) {
|
|
12233
|
+
event.preventDefault();
|
|
12234
|
+
if (this.isDateTimePicker) {
|
|
12235
|
+
this.tabOutNow.emit();
|
|
12236
|
+
}
|
|
12237
|
+
else {
|
|
12238
|
+
this.cancel ? this.cancel.nativeElement.focus() : this.accept.nativeElement.focus();
|
|
12239
|
+
}
|
|
12240
|
+
return;
|
|
12241
|
+
}
|
|
12242
|
+
if (keyCode === Keys$1.Tab && !shiftKey && event.target !== this.now?.nativeElement) {
|
|
11718
12243
|
event.preventDefault();
|
|
11719
12244
|
if (document.activeElement === this.accept.nativeElement) {
|
|
11720
|
-
this.cancel ? this.cancel.nativeElement.focus() : this.
|
|
12245
|
+
this.cancel ? this.cancel.nativeElement.focus() : this.now?.nativeElement.focus();
|
|
11721
12246
|
}
|
|
11722
12247
|
else {
|
|
11723
|
-
this.timeLists.first.focus();
|
|
12248
|
+
this.now ? this.now.nativeElement.focus() : this.timeLists.first.focus();
|
|
11724
12249
|
}
|
|
11725
12250
|
}
|
|
11726
12251
|
}
|
|
@@ -11811,7 +12336,7 @@ class TimeSelectorComponent {
|
|
|
11811
12336
|
}
|
|
11812
12337
|
}
|
|
11813
12338
|
TimeSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimeSelectorComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.IntlService }, { token: TimePickerDOMService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: PickerService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
11814
|
-
TimeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: { format: "format", min: "min", max: "max", cancelButton: "cancelButton", setButton: "setButton", nowButton: "nowButton", disabled: "disabled", isAdaptiveEnabled: "isAdaptiveEnabled", isDateTimePicker: "isDateTimePicker", steps: "steps", value: "value" }, outputs: { valueChange: "valueChange", valueReject: "valueReject", tabOutLastPart: "tabOutLastPart" }, host: { properties: { "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
12339
|
+
TimeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: { format: "format", min: "min", max: "max", cancelButton: "cancelButton", setButton: "setButton", nowButton: "nowButton", disabled: "disabled", isAdaptiveEnabled: "isAdaptiveEnabled", isDateTimePicker: "isDateTimePicker", steps: "steps", value: "value" }, outputs: { valueChange: "valueChange", valueReject: "valueReject", tabOutLastPart: "tabOutLastPart", tabOutNow: "tabOutNow" }, host: { properties: { "class.k-disabled": "this.disabledClass" } }, providers: [
|
|
11815
12340
|
LocalizationService,
|
|
11816
12341
|
{
|
|
11817
12342
|
provide: L10N_PREFIX,
|
|
@@ -11852,7 +12377,8 @@ TimeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
11852
12377
|
[kendoEventsOutsideAngular]="{
|
|
11853
12378
|
click: handleNow,
|
|
11854
12379
|
focus: handleFocus,
|
|
11855
|
-
blur: handleBlur
|
|
12380
|
+
blur: handleBlur,
|
|
12381
|
+
keydown: handleTabOut
|
|
11856
12382
|
}"
|
|
11857
12383
|
[scope]="this"
|
|
11858
12384
|
[disabled]="disabled"
|
|
@@ -11973,7 +12499,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
11973
12499
|
[kendoEventsOutsideAngular]="{
|
|
11974
12500
|
click: handleNow,
|
|
11975
12501
|
focus: handleFocus,
|
|
11976
|
-
blur: handleBlur
|
|
12502
|
+
blur: handleBlur,
|
|
12503
|
+
keydown: handleTabOut
|
|
11977
12504
|
}"
|
|
11978
12505
|
[scope]="this"
|
|
11979
12506
|
[disabled]="disabled"
|
|
@@ -12095,6 +12622,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
12095
12622
|
type: Output
|
|
12096
12623
|
}], tabOutLastPart: [{
|
|
12097
12624
|
type: Output
|
|
12625
|
+
}], tabOutNow: [{
|
|
12626
|
+
type: Output
|
|
12098
12627
|
}] } });
|
|
12099
12628
|
|
|
12100
12629
|
const VALUE_DOC_LINK$1 = 'https://www.telerik.com/kendo-angular-ui/components/dateinputs/timepicker/#toc-integration-with-json';
|
|
@@ -13226,7 +13755,7 @@ TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
13226
13755
|
</kendo-timeselector-messages>
|
|
13227
13756
|
</kendo-timeselector>
|
|
13228
13757
|
</ng-template>
|
|
13229
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "directive", type: i12.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: i11.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: i11.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart"], exportAs: ["kendo-timeselector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13758
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "directive", type: i12.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: i11.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: i11.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: TimePickerLocalizedMessagesDirective, selector: "[kendoTimePickerLocalizedMessages]" }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart", "tabOutNow"], exportAs: ["kendo-timeselector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13230
13759
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
13231
13760
|
type: Component,
|
|
13232
13761
|
args: [{
|
|
@@ -13640,6 +14169,7 @@ const TWO_DIGIT_YEAR_MAX = 68;
|
|
|
13640
14169
|
const ACCEPT_BUTTON_SELECTOR = '.k-button.k-time-accept';
|
|
13641
14170
|
const CANCEL_BUTTON_SELECOTR = '.k-button.k-time-cancel';
|
|
13642
14171
|
const DATE_TAB_BUTTON_SELECTOR = '.k-button.k-date-tab';
|
|
14172
|
+
const TIME_TAB_BUTTON_SELECTOR = '.k-button.k-time-tab';
|
|
13643
14173
|
/**
|
|
13644
14174
|
* Represents the [Kendo UI DateTimePicker component for Angular]({% slug overview_datetimepicker %}).
|
|
13645
14175
|
*/
|
|
@@ -14236,6 +14766,9 @@ class DateTimePickerComponent {
|
|
|
14236
14766
|
get dateTabButton() {
|
|
14237
14767
|
return this.popupRef?.popup.instance.container.nativeElement.querySelector(DATE_TAB_BUTTON_SELECTOR);
|
|
14238
14768
|
}
|
|
14769
|
+
get timeTabButton() {
|
|
14770
|
+
return this.popupRef?.popup.instance.container.nativeElement.querySelector(TIME_TAB_BUTTON_SELECTOR);
|
|
14771
|
+
}
|
|
14239
14772
|
/**
|
|
14240
14773
|
* @hidden
|
|
14241
14774
|
*/
|
|
@@ -14482,6 +15015,12 @@ class DateTimePickerComponent {
|
|
|
14482
15015
|
this.dateTabButton.focus();
|
|
14483
15016
|
}
|
|
14484
15017
|
}
|
|
15018
|
+
/**
|
|
15019
|
+
* @hidden
|
|
15020
|
+
*/
|
|
15021
|
+
onTabOutNow() {
|
|
15022
|
+
this.timeTabButton.focus();
|
|
15023
|
+
}
|
|
14485
15024
|
/**
|
|
14486
15025
|
* @hidden
|
|
14487
15026
|
*/
|
|
@@ -14605,7 +15144,7 @@ class DateTimePickerComponent {
|
|
|
14605
15144
|
this.calendar.monthView.list.nativeElement.focus();
|
|
14606
15145
|
}
|
|
14607
15146
|
else {
|
|
14608
|
-
this.timeSelector.focus();
|
|
15147
|
+
this.timeSelector.timeLists.last.focus();
|
|
14609
15148
|
}
|
|
14610
15149
|
}
|
|
14611
15150
|
break;
|
|
@@ -15221,6 +15760,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
15221
15760
|
[isAdaptiveEnabled]="isAdaptiveModeEnabled"
|
|
15222
15761
|
[isDateTimePicker]="true"
|
|
15223
15762
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
15763
|
+
(tabOutNow)="onTabOutNow()"
|
|
15224
15764
|
>
|
|
15225
15765
|
<kendo-timeselector-messages
|
|
15226
15766
|
[acceptLabel]="localization.get('acceptLabel')"
|
|
@@ -15281,7 +15821,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
15281
15821
|
</div>
|
|
15282
15822
|
</div>
|
|
15283
15823
|
</ng-template>
|
|
15284
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart"], exportAs: ["kendo-timeselector"] }, { kind: "directive", type: i12.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: i11.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: i11.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15824
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "pickerType", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "tabIndex", "isRequired", "format", "formatPlaceholder", "placeholder", "steps", "max", "min", "rangeValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "allowCaretMode", "autoFill", "incompleteDateValidation", "twoDigitYearMax", "enableMouseWheel", "value", "spinners", "isPopupOpen", "hasPopup", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }, { kind: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size", "activeRangeEnd"], outputs: ["activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "component", type: TimeSelectorCustomMessagesComponent, selector: "kendo-timeselector-messages" }, { kind: "component", type: TimeSelectorComponent, selector: "kendo-timeselector", inputs: ["format", "min", "max", "cancelButton", "setButton", "nowButton", "disabled", "isAdaptiveEnabled", "isDateTimePicker", "steps", "value"], outputs: ["valueChange", "valueReject", "tabOutLastPart", "tabOutNow"], exportAs: ["kendo-timeselector"] }, { kind: "directive", type: i12.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: i11.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: i11.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoDateTimePickerLocalizedMessages]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15285
15825
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateTimePickerComponent, decorators: [{
|
|
15286
15826
|
type: Component,
|
|
15287
15827
|
args: [{
|
|
@@ -15609,6 +16149,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
15609
16149
|
[isAdaptiveEnabled]="isAdaptiveModeEnabled"
|
|
15610
16150
|
[isDateTimePicker]="true"
|
|
15611
16151
|
(tabOutLastPart)="onTabOutLastPart()"
|
|
16152
|
+
(tabOutNow)="onTabOutNow()"
|
|
15612
16153
|
>
|
|
15613
16154
|
<kendo-timeselector-messages
|
|
15614
16155
|
[acceptLabel]="localization.get('acceptLabel')"
|
|
@@ -16339,6 +16880,13 @@ class DateRangePopupComponent {
|
|
|
16339
16880
|
this.localization = localization;
|
|
16340
16881
|
this.cdr = cdr;
|
|
16341
16882
|
this.rtl = rtl;
|
|
16883
|
+
/**
|
|
16884
|
+
* Allows reverse selection when using `range` selection.
|
|
16885
|
+
* If `allowReverse` is set to `true`, the component skips the validation of whether the start date is after the end date.
|
|
16886
|
+
*
|
|
16887
|
+
* @default false
|
|
16888
|
+
*/
|
|
16889
|
+
this.allowReverse = false;
|
|
16342
16890
|
/**
|
|
16343
16891
|
* Controls the popup animation.
|
|
16344
16892
|
* By default, the opening and closing animations are enabled.
|
|
@@ -16487,6 +17035,14 @@ class DateRangePopupComponent {
|
|
|
16487
17035
|
this.actionSheet.titleId = changes.first?.headerId;
|
|
16488
17036
|
this.cdr.detectChanges();
|
|
16489
17037
|
}));
|
|
17038
|
+
this.calendarSubscriptions.add(this.dateRangeService.startInput$?.value?.valueChange.subscribe((res) => {
|
|
17039
|
+
if (!res && this.dateRangeService.selectionRange.end) {
|
|
17040
|
+
this.calendar.shouldHoverWhenNoStart = true;
|
|
17041
|
+
}
|
|
17042
|
+
else {
|
|
17043
|
+
this.calendar.shouldHoverWhenNoStart = false;
|
|
17044
|
+
}
|
|
17045
|
+
}));
|
|
16490
17046
|
if (isWindowAvailable()) {
|
|
16491
17047
|
this.zone.runOutsideAngular(() => this.windowBlurSubscription = fromEvent(window, 'blur').subscribe(this.handleWindowBlur.bind(this)));
|
|
16492
17048
|
}
|
|
@@ -16510,6 +17066,19 @@ class DateRangePopupComponent {
|
|
|
16510
17066
|
this.windowBlurSubscription.unsubscribe();
|
|
16511
17067
|
}
|
|
16512
17068
|
}
|
|
17069
|
+
/**
|
|
17070
|
+
* @hidden
|
|
17071
|
+
*
|
|
17072
|
+
*/
|
|
17073
|
+
onRangeSelectionChange(rangeSelection) {
|
|
17074
|
+
this.dateRangeService.setActiveRangeEnd(rangeSelection.activeRangeEnd);
|
|
17075
|
+
if (!this.isAdaptive) {
|
|
17076
|
+
this.dateRangeService.setRange(rangeSelection.selectionRange);
|
|
17077
|
+
}
|
|
17078
|
+
else {
|
|
17079
|
+
this._rangeSelection = rangeSelection.selectionRange;
|
|
17080
|
+
}
|
|
17081
|
+
}
|
|
16513
17082
|
/**
|
|
16514
17083
|
* Opens the popup component and focuses the calendar.
|
|
16515
17084
|
*/
|
|
@@ -16577,7 +17146,7 @@ class DateRangePopupComponent {
|
|
|
16577
17146
|
* @hidden
|
|
16578
17147
|
*/
|
|
16579
17148
|
handleAccept() {
|
|
16580
|
-
this.
|
|
17149
|
+
this.dateRangeService.setRange(this._rangeSelection);
|
|
16581
17150
|
this.show = false;
|
|
16582
17151
|
}
|
|
16583
17152
|
/**
|
|
@@ -16757,7 +17326,7 @@ class DateRangePopupComponent {
|
|
|
16757
17326
|
}
|
|
16758
17327
|
}
|
|
16759
17328
|
DateRangePopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateRangePopupComponent, deps: [{ token: i1$2.PopupService }, { token: DateRangeService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: RTL, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
16760
|
-
DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DateRangePopupComponent, selector: "kendo-daterange-popup", inputs: { animate: "animate", anchor: "anchor", anchorAlign: "anchorAlign", appendTo: "appendTo", collision: "collision", popupAlign: "popupAlign", margin: "margin", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle" }, outputs: { open: "open", close: "close", onBlur: "blur", onFocus: "focus", cancel: "cancel" }, providers: [
|
|
17329
|
+
DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DateRangePopupComponent, selector: "kendo-daterange-popup", inputs: { allowReverse: "allowReverse", animate: "animate", anchor: "anchor", anchorAlign: "anchorAlign", appendTo: "appendTo", collision: "collision", popupAlign: "popupAlign", margin: "margin", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle" }, outputs: { open: "open", close: "close", onBlur: "blur", onFocus: "focus", cancel: "cancel" }, providers: [
|
|
16761
17330
|
LocalizationService,
|
|
16762
17331
|
{
|
|
16763
17332
|
provide: L10N_PREFIX,
|
|
@@ -16780,7 +17349,15 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
16780
17349
|
</ng-container>
|
|
16781
17350
|
<ng-container #container></ng-container>
|
|
16782
17351
|
<ng-template #defaultTemplate>
|
|
16783
|
-
<kendo-multiviewcalendar
|
|
17352
|
+
<kendo-multiviewcalendar
|
|
17353
|
+
[allowReverse]="allowReverse"
|
|
17354
|
+
selection="range"
|
|
17355
|
+
[value]="dateRangeService.selectionRange"
|
|
17356
|
+
(onClosePopup)="closePopup($event)"
|
|
17357
|
+
(onTabPress)="handleTab($event)"
|
|
17358
|
+
(onShiftTabPress)="handleShiftTab($event)"
|
|
17359
|
+
(rangeSelectionChange)="onRangeSelectionChange($event)"
|
|
17360
|
+
></kendo-multiviewcalendar>
|
|
16784
17361
|
</ng-template>
|
|
16785
17362
|
|
|
16786
17363
|
<kendo-actionsheet
|
|
@@ -16821,8 +17398,12 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
16821
17398
|
<kendo-multiviewcalendar
|
|
16822
17399
|
class="k-calendar-lg"
|
|
16823
17400
|
orientation="vertical"
|
|
16824
|
-
|
|
16825
|
-
[
|
|
17401
|
+
[allowReverse]="allowReverse"
|
|
17402
|
+
[focusedDate]="dateRangeService.focusedDate"
|
|
17403
|
+
[value]="dateRangeService.selectionRange"
|
|
17404
|
+
selection="range"
|
|
17405
|
+
(rangeSelectionChange)="onRangeSelectionChange($event)"
|
|
17406
|
+
>
|
|
16826
17407
|
</kendo-multiviewcalendar>
|
|
16827
17408
|
</div>
|
|
16828
17409
|
</div>
|
|
@@ -16850,7 +17431,7 @@ DateRangePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
16850
17431
|
</div>
|
|
16851
17432
|
</ng-template>
|
|
16852
17433
|
</kendo-actionsheet>
|
|
16853
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "component", type: i11.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: i11.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type:
|
|
17434
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "component", type: i11.ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["title", "subtitle", "items", "cssClass", "animation", "expanded", "titleId"], outputs: ["expandedChange", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: i11.ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: i12.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: DateRangePopupLocalizedMessagesDirective, selector: "[kendoDateRangePopupLocalizedMessages]" }] });
|
|
16854
17435
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateRangePopupComponent, decorators: [{
|
|
16855
17436
|
type: Component,
|
|
16856
17437
|
args: [{
|
|
@@ -16880,7 +17461,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
16880
17461
|
</ng-container>
|
|
16881
17462
|
<ng-container #container></ng-container>
|
|
16882
17463
|
<ng-template #defaultTemplate>
|
|
16883
|
-
<kendo-multiviewcalendar
|
|
17464
|
+
<kendo-multiviewcalendar
|
|
17465
|
+
[allowReverse]="allowReverse"
|
|
17466
|
+
selection="range"
|
|
17467
|
+
[value]="dateRangeService.selectionRange"
|
|
17468
|
+
(onClosePopup)="closePopup($event)"
|
|
17469
|
+
(onTabPress)="handleTab($event)"
|
|
17470
|
+
(onShiftTabPress)="handleShiftTab($event)"
|
|
17471
|
+
(rangeSelectionChange)="onRangeSelectionChange($event)"
|
|
17472
|
+
></kendo-multiviewcalendar>
|
|
16884
17473
|
</ng-template>
|
|
16885
17474
|
|
|
16886
17475
|
<kendo-actionsheet
|
|
@@ -16921,8 +17510,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
16921
17510
|
<kendo-multiviewcalendar
|
|
16922
17511
|
class="k-calendar-lg"
|
|
16923
17512
|
orientation="vertical"
|
|
16924
|
-
|
|
16925
|
-
[
|
|
17513
|
+
[allowReverse]="allowReverse"
|
|
17514
|
+
[focusedDate]="dateRangeService.focusedDate"
|
|
17515
|
+
[value]="dateRangeService.selectionRange"
|
|
17516
|
+
selection="range"
|
|
17517
|
+
(rangeSelectionChange)="onRangeSelectionChange($event)"
|
|
17518
|
+
>
|
|
16926
17519
|
</kendo-multiviewcalendar>
|
|
16927
17520
|
</div>
|
|
16928
17521
|
</div>
|
|
@@ -16978,6 +17571,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
16978
17571
|
}], contentCalendar: [{
|
|
16979
17572
|
type: ContentChildren,
|
|
16980
17573
|
args: [MultiViewCalendarComponent]
|
|
17574
|
+
}], allowReverse: [{
|
|
17575
|
+
type: Input
|
|
16981
17576
|
}], animate: [{
|
|
16982
17577
|
type: Input
|
|
16983
17578
|
}], anchor: [{
|
|
@@ -17071,7 +17666,7 @@ DateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
|
|
|
17071
17666
|
DateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DateRangeComponent, selector: "kendo-daterange", host: { listeners: { "keydown": "keydown($event)" }, properties: { "class.k-daterangepicker": "this.wrapperClass" } }, providers: [DateRangeService], queries: [{ propertyName: "contentPopup", predicate: DateRangePopupComponent }], ngImport: i0, template: `
|
|
17072
17667
|
<ng-content></ng-content>
|
|
17073
17668
|
<kendo-daterange-popup *ngIf="showDefault"></kendo-daterange-popup>
|
|
17074
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DateRangePopupComponent, selector: "kendo-daterange-popup", inputs: ["animate", "anchor", "anchorAlign", "appendTo", "collision", "popupAlign", "margin", "adaptiveMode", "title", "subtitle"], outputs: ["open", "close", "blur", "focus", "cancel"], exportAs: ["kendo-daterange-popup"] }] });
|
|
17669
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DateRangePopupComponent, selector: "kendo-daterange-popup", inputs: ["allowReverse", "animate", "anchor", "anchorAlign", "appendTo", "collision", "popupAlign", "margin", "adaptiveMode", "title", "subtitle"], outputs: ["open", "close", "blur", "focus", "cancel"], exportAs: ["kendo-daterange-popup"] }] });
|
|
17075
17670
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateRangeComponent, decorators: [{
|
|
17076
17671
|
type: Component,
|
|
17077
17672
|
args: [{
|