@progress/kendo-vue-dateinputs 3.5.0 → 3.5.1-dev.202208100944
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/js/kendo-vue-dateinputs.js +1 -1
- package/dist/es/PopupSettings.js +1 -0
- package/dist/es/calendar/components/Header.js +1 -1
- package/dist/es/calendar/components/View.js +3 -3
- package/dist/es/calendar/components/interfaces/CalendarComputed.js +1 -0
- package/dist/es/calendar/components/interfaces/CalendarData.js +1 -0
- package/dist/es/calendar/components/interfaces/CalendarEventArguments.js +1 -0
- package/dist/es/calendar/components/interfaces/CalendarMethods.js +1 -0
- package/dist/es/calendar/components/interfaces/CalendarProps.js +1 -0
- package/dist/es/calendar/components/interfaces/CalendarState.js +1 -0
- package/dist/es/calendar/models/ActiveView.js +1 -0
- package/dist/es/calendar/models/CalendarMode.js +1 -0
- package/dist/es/calendar/models/CalendarSettings.js +1 -0
- package/dist/es/calendar/models/CellContext.js +1 -0
- package/dist/es/calendar/models/SelectionRangeEnd.js +1 -0
- package/dist/es/calendar/models/ViewService.js +1 -0
- package/dist/es/calendar/services/BusViewService.js +1 -1
- package/dist/es/calendar/services/CenturyViewService.js +2 -2
- package/dist/es/calendar/services/DOMService.js +6 -6
- package/dist/es/calendar/services/DecadeViewService.js +2 -2
- package/dist/es/calendar/services/MonthViewService.js +2 -2
- package/dist/es/calendar/services/NavigationService.js +1 -1
- package/dist/es/calendar/services/YearViewService.js +2 -2
- package/dist/es/dateinput/DateInput.js +1 -1
- package/dist/es/dateinput/interfaces/DateInputComputed.js +1 -0
- package/dist/es/dateinput/interfaces/DateInputData.js +1 -0
- package/dist/es/dateinput/interfaces/DateInputEventArguments.js +1 -0
- package/dist/es/dateinput/interfaces/DateInputMethods.js +1 -0
- package/dist/es/dateinput/interfaces/DateInputProps.js +1 -0
- package/dist/es/dateinput/interfaces/DateInputState.js +1 -0
- package/dist/es/dateinput/models/DateInputSettings.js +1 -0
- package/dist/es/dateinput/models/format-placeholder.js +1 -0
- package/dist/es/dateinput/models/incremental-steps.js +1 -0
- package/dist/es/dateinput/models/selection.js +1 -0
- package/dist/es/datepicker/DatePicker.js +3 -3
- package/dist/es/datepicker/ToggleButton.d.ts +1 -1
- package/dist/es/datepicker/interfaces/DatePickerComputed.js +1 -0
- package/dist/es/datepicker/interfaces/DatePickerData.js +1 -0
- package/dist/es/datepicker/interfaces/DatePickerEventArguments.js +1 -0
- package/dist/es/datepicker/interfaces/DatePickerMethods.js +1 -0
- package/dist/es/datepicker/interfaces/DatePickerProps.js +1 -0
- package/dist/es/datepicker/interfaces/DatePickerState.js +1 -0
- package/dist/es/datepicker/models/DatePickerSettings.js +1 -1
- package/dist/es/datepicker/models/index.js +1 -0
- package/dist/es/daterangepicker/DateRangePicker.js +1 -1
- package/dist/es/daterangepicker/models/DateRangePickerCalendarSettings.js +1 -0
- package/dist/es/daterangepicker/models/DateRangePickerDateInputSettings.js +1 -0
- package/dist/es/daterangepicker/models/DateRangePickerPopupSettings.js +1 -0
- package/dist/es/daterangepicker/models/DateRangePickerSettings.js +1 -0
- package/dist/es/daterangepicker/models/index.js +1 -0
- package/dist/es/datetimepicker/DateTimePicker.js +4 -4
- package/dist/es/datetimepicker/models/DateTimePickerSettings.js +1 -0
- package/dist/es/datetimepicker/models/index.js +1 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/timepicker/TimePart.js +1 -1
- package/dist/es/timepicker/TimePicker.js +4 -4
- package/dist/es/timepicker/models/IncrementalSteps.js +1 -0
- package/dist/es/timepicker/models/ListItem.js +1 -0
- package/dist/es/timepicker/models/ListService.js +1 -0
- package/dist/es/timepicker/models/ListServiceSettings.js +1 -0
- package/dist/es/timepicker/models/TimePickerSettings.js +1 -0
- package/dist/es/virtualization/Virtualization.js +4 -4
- package/dist/es/virtualization/services/RowHeightService.js +9 -7
- package/dist/esm/PopupSettings.d.ts +14 -0
- package/dist/esm/PopupSettings.js +1 -0
- package/dist/esm/additionalTypes.ts +21 -0
- package/dist/esm/calendar/components/Calendar.d.ts +24 -0
- package/dist/esm/calendar/components/Calendar.js +595 -0
- package/dist/esm/calendar/components/CalendarCell.d.ts +36 -0
- package/dist/esm/calendar/components/CalendarCell.js +168 -0
- package/dist/esm/calendar/components/CalendarHeaderTitle.d.ts +33 -0
- package/dist/esm/calendar/components/CalendarHeaderTitle.js +73 -0
- package/dist/esm/calendar/components/CalendarWeekCell.d.ts +27 -0
- package/dist/esm/calendar/components/CalendarWeekCell.js +59 -0
- package/dist/esm/calendar/components/Header.d.ts +73 -0
- package/dist/esm/calendar/components/Header.js +281 -0
- package/dist/esm/calendar/components/View.d.ts +110 -0
- package/dist/esm/calendar/components/View.js +344 -0
- package/dist/esm/calendar/components/ViewList.d.ts +116 -0
- package/dist/esm/calendar/components/ViewList.js +344 -0
- package/dist/esm/calendar/components/interfaces/CalendarComputed.d.ts +10 -0
- package/dist/esm/calendar/components/interfaces/CalendarComputed.js +1 -0
- package/dist/esm/calendar/components/interfaces/CalendarData.d.ts +10 -0
- package/dist/esm/calendar/components/interfaces/CalendarData.js +1 -0
- package/dist/esm/calendar/components/interfaces/CalendarEventArguments.d.ts +56 -0
- package/dist/esm/calendar/components/interfaces/CalendarEventArguments.js +1 -0
- package/dist/esm/calendar/components/interfaces/CalendarMethods.d.ts +33 -0
- package/dist/esm/calendar/components/interfaces/CalendarMethods.js +1 -0
- package/dist/esm/calendar/components/interfaces/CalendarProps.d.ts +55 -0
- package/dist/esm/calendar/components/interfaces/CalendarProps.js +2 -0
- package/dist/esm/calendar/components/interfaces/CalendarState.d.ts +26 -0
- package/dist/esm/calendar/components/interfaces/CalendarState.js +1 -0
- package/dist/esm/calendar/models/ActiveView.d.ts +4 -0
- package/dist/esm/calendar/models/ActiveView.js +1 -0
- package/dist/esm/calendar/models/CalendarMode.d.ts +9 -0
- package/dist/esm/calendar/models/CalendarMode.js +1 -0
- package/dist/esm/calendar/models/CalendarSettings.d.ts +82 -0
- package/dist/esm/calendar/models/CalendarSettings.js +1 -0
- package/dist/esm/calendar/models/CalendarViewEnum.d.ts +9 -0
- package/dist/esm/calendar/models/CalendarViewEnum.js +10 -0
- package/dist/esm/calendar/models/CellContext.d.ts +19 -0
- package/dist/esm/calendar/models/CellContext.js +1 -0
- package/dist/esm/calendar/models/NavigationAction.d.ts +15 -0
- package/dist/esm/calendar/models/NavigationAction.js +16 -0
- package/dist/esm/calendar/models/SelectionRange.d.ts +17 -0
- package/dist/esm/calendar/models/SelectionRange.js +4 -0
- package/dist/esm/calendar/models/SelectionRangeEnd.d.ts +4 -0
- package/dist/esm/calendar/models/SelectionRangeEnd.js +1 -0
- package/dist/esm/calendar/models/ViewService.d.ts +25 -0
- package/dist/esm/calendar/models/ViewService.js +1 -0
- package/dist/esm/calendar/models/index.d.ts +10 -0
- package/dist/esm/calendar/models/index.js +4 -0
- package/dist/esm/calendar/services/BusViewService.d.ts +21 -0
- package/dist/esm/calendar/services/BusViewService.js +69 -0
- package/dist/esm/calendar/services/CenturyViewService.d.ts +25 -0
- package/dist/esm/calendar/services/CenturyViewService.js +158 -0
- package/dist/esm/calendar/services/DOMService.d.ts +29 -0
- package/dist/esm/calendar/services/DOMService.js +166 -0
- package/dist/esm/calendar/services/DecadeViewService.d.ts +27 -0
- package/dist/esm/calendar/services/DecadeViewService.js +157 -0
- package/dist/esm/calendar/services/MonthViewService.d.ts +33 -0
- package/dist/esm/calendar/services/MonthViewService.js +169 -0
- package/dist/esm/calendar/services/NavigationService.d.ts +13 -0
- package/dist/esm/calendar/services/NavigationService.js +43 -0
- package/dist/esm/calendar/services/WeekNamesService.d.ts +9 -0
- package/dist/esm/calendar/services/WeekNamesService.js +16 -0
- package/dist/esm/calendar/services/YearViewService.d.ts +31 -0
- package/dist/esm/calendar/services/YearViewService.js +165 -0
- package/dist/esm/calendar/services/index.d.ts +9 -0
- package/dist/esm/calendar/services/index.js +9 -0
- package/dist/esm/calendar/utils/index.d.ts +26 -0
- package/dist/esm/calendar/utils/index.js +57 -0
- package/dist/esm/common/PickerWrap.d.ts +21 -0
- package/dist/esm/common/PickerWrap.js +40 -0
- package/dist/esm/dateinput/DateInput.d.ts +24 -0
- package/dist/esm/dateinput/DateInput.js +706 -0
- package/dist/esm/dateinput/interfaces/DateInputComputed.d.ts +8 -0
- package/dist/esm/dateinput/interfaces/DateInputComputed.js +1 -0
- package/dist/esm/dateinput/interfaces/DateInputData.d.ts +11 -0
- package/dist/esm/dateinput/interfaces/DateInputData.js +1 -0
- package/dist/esm/dateinput/interfaces/DateInputEventArguments.d.ts +10 -0
- package/dist/esm/dateinput/interfaces/DateInputEventArguments.js +1 -0
- package/dist/esm/dateinput/interfaces/DateInputMethods.d.ts +30 -0
- package/dist/esm/dateinput/interfaces/DateInputMethods.js +1 -0
- package/dist/esm/dateinput/interfaces/DateInputProps.d.ts +31 -0
- package/dist/esm/dateinput/interfaces/DateInputProps.js +3 -0
- package/dist/esm/dateinput/interfaces/DateInputState.d.ts +10 -0
- package/dist/esm/dateinput/interfaces/DateInputState.js +1 -0
- package/dist/esm/dateinput/models/DateInputSettings.d.ts +128 -0
- package/dist/esm/dateinput/models/DateInputSettings.js +2 -0
- package/dist/esm/dateinput/models/format-placeholder.d.ts +39 -0
- package/dist/esm/dateinput/models/format-placeholder.js +2 -0
- package/dist/esm/dateinput/models/incremental-steps.d.ts +11 -0
- package/dist/esm/dateinput/models/incremental-steps.js +1 -0
- package/dist/esm/dateinput/models/index.d.ts +7 -0
- package/dist/esm/dateinput/models/index.js +3 -0
- package/dist/esm/dateinput/models/kendo-date.d.ts +53 -0
- package/dist/esm/dateinput/models/kendo-date.js +338 -0
- package/dist/esm/dateinput/models/mask.d.ts +7 -0
- package/dist/esm/dateinput/models/mask.js +10 -0
- package/dist/esm/dateinput/models/selection.d.ts +7 -0
- package/dist/esm/dateinput/models/selection.js +1 -0
- package/dist/esm/dateinput/utils.d.ts +30 -0
- package/dist/esm/dateinput/utils.js +83 -0
- package/dist/esm/datepicker/DatePicker.d.ts +24 -0
- package/dist/esm/datepicker/DatePicker.js +648 -0
- package/dist/esm/datepicker/ToggleButton.d.ts +11 -0
- package/dist/esm/datepicker/ToggleButton.js +12 -0
- package/dist/esm/datepicker/interfaces/DatePickerComputed.d.ts +8 -0
- package/dist/esm/datepicker/interfaces/DatePickerComputed.js +1 -0
- package/dist/esm/datepicker/interfaces/DatePickerData.d.ts +8 -0
- package/dist/esm/datepicker/interfaces/DatePickerData.js +1 -0
- package/dist/esm/datepicker/interfaces/DatePickerEventArguments.d.ts +10 -0
- package/dist/esm/datepicker/interfaces/DatePickerEventArguments.js +1 -0
- package/dist/esm/datepicker/interfaces/DatePickerMethods.d.ts +27 -0
- package/dist/esm/datepicker/interfaces/DatePickerMethods.js +1 -0
- package/dist/esm/datepicker/interfaces/DatePickerProps.d.ts +42 -0
- package/dist/esm/datepicker/interfaces/DatePickerProps.js +3 -0
- package/dist/esm/datepicker/interfaces/DatePickerState.d.ts +17 -0
- package/dist/esm/datepicker/interfaces/DatePickerState.js +1 -0
- package/dist/esm/datepicker/models/DatePickerSettings.d.ts +145 -0
- package/dist/esm/datepicker/models/DatePickerSettings.js +1 -0
- package/dist/esm/datepicker/models/index.d.ts +2 -0
- package/dist/esm/datepicker/models/index.js +1 -0
- package/dist/esm/daterangepicker/DateRangePicker.d.ts +112 -0
- package/dist/esm/daterangepicker/DateRangePicker.js +654 -0
- package/dist/esm/daterangepicker/models/DateRangePickerCalendarSettings.d.ts +6 -0
- package/dist/esm/daterangepicker/models/DateRangePickerCalendarSettings.js +1 -0
- package/dist/esm/daterangepicker/models/DateRangePickerDateInputSettings.d.ts +6 -0
- package/dist/esm/daterangepicker/models/DateRangePickerDateInputSettings.js +1 -0
- package/dist/esm/daterangepicker/models/DateRangePickerPopupSettings.d.ts +6 -0
- package/dist/esm/daterangepicker/models/DateRangePickerPopupSettings.js +1 -0
- package/dist/esm/daterangepicker/models/DateRangePickerSettings.d.ts +150 -0
- package/dist/esm/daterangepicker/models/DateRangePickerSettings.js +2 -0
- package/dist/esm/daterangepicker/models/index.d.ts +5 -0
- package/dist/esm/daterangepicker/models/index.js +1 -0
- package/dist/esm/datetimepicker/DateTimePicker.d.ts +112 -0
- package/dist/esm/datetimepicker/DateTimePicker.js +673 -0
- package/dist/esm/datetimepicker/DateTimeSelector.d.ts +109 -0
- package/dist/esm/datetimepicker/DateTimeSelector.js +487 -0
- package/dist/esm/datetimepicker/models/DateTimePickerSettings.d.ts +187 -0
- package/dist/esm/datetimepicker/models/DateTimePickerSettings.js +1 -0
- package/dist/esm/datetimepicker/models/index.d.ts +2 -0
- package/dist/esm/datetimepicker/models/index.js +1 -0
- package/dist/esm/defaults.d.ts +20 -0
- package/dist/esm/defaults.js +20 -0
- package/dist/esm/main.d.ts +24 -0
- package/dist/esm/main.js +14 -0
- package/dist/esm/messages/index.d.ts +110 -0
- package/dist/esm/messages/index.js +111 -0
- package/dist/esm/package-metadata.d.ts +5 -0
- package/dist/esm/package-metadata.js +11 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/timepicker/TimeList.d.ts +87 -0
- package/dist/esm/timepicker/TimeList.js +356 -0
- package/dist/esm/timepicker/TimePart.d.ts +99 -0
- package/dist/esm/timepicker/TimePart.js +365 -0
- package/dist/esm/timepicker/TimePicker.d.ts +118 -0
- package/dist/esm/timepicker/TimePicker.js +685 -0
- package/dist/esm/timepicker/TimeSelector.d.ts +96 -0
- package/dist/esm/timepicker/TimeSelector.js +318 -0
- package/dist/esm/timepicker/models/IncrementalSteps.d.ts +8 -0
- package/dist/esm/timepicker/models/IncrementalSteps.js +1 -0
- package/dist/esm/timepicker/models/ListItem.d.ts +7 -0
- package/dist/esm/timepicker/models/ListItem.js +1 -0
- package/dist/esm/timepicker/models/ListService.d.ts +15 -0
- package/dist/esm/timepicker/models/ListService.js +1 -0
- package/dist/esm/timepicker/models/ListServiceSettings.d.ts +12 -0
- package/dist/esm/timepicker/models/ListServiceSettings.js +1 -0
- package/dist/esm/timepicker/models/TimePart.d.ts +10 -0
- package/dist/esm/timepicker/models/TimePart.js +10 -0
- package/dist/esm/timepicker/models/TimePickerSettings.d.ts +168 -0
- package/dist/esm/timepicker/models/TimePickerSettings.js +2 -0
- package/dist/esm/timepicker/models/index.d.ts +7 -0
- package/dist/esm/timepicker/models/index.js +2 -0
- package/dist/esm/timepicker/services/DOMService.d.ts +10 -0
- package/dist/esm/timepicker/services/DOMService.js +40 -0
- package/dist/esm/timepicker/services/DayPeriodService.d.ts +47 -0
- package/dist/esm/timepicker/services/DayPeriodService.js +113 -0
- package/dist/esm/timepicker/services/HoursService.d.ts +33 -0
- package/dist/esm/timepicker/services/HoursService.js +115 -0
- package/dist/esm/timepicker/services/MinutesService.d.ts +32 -0
- package/dist/esm/timepicker/services/MinutesService.js +113 -0
- package/dist/esm/timepicker/services/SecondsService.d.ts +32 -0
- package/dist/esm/timepicker/services/SecondsService.js +114 -0
- package/dist/esm/timepicker/services/index.d.ts +6 -0
- package/dist/esm/timepicker/services/index.js +6 -0
- package/dist/esm/timepicker/utils.d.ts +56 -0
- package/dist/esm/timepicker/utils.js +149 -0
- package/dist/esm/utils.d.ts +70 -0
- package/dist/esm/utils.js +131 -0
- package/dist/esm/virtualization/Virtualization.d.ts +114 -0
- package/dist/esm/virtualization/Virtualization.js +367 -0
- package/dist/esm/virtualization/services/RowHeightService.d.ts +18 -0
- package/dist/esm/virtualization/services/RowHeightService.js +68 -0
- package/dist/esm/virtualization/services/ScrollerService.d.ts +49 -0
- package/dist/esm/virtualization/services/ScrollerService.js +84 -0
- package/dist/esm/virtualization/services/index.d.ts +3 -0
- package/dist/esm/virtualization/services/index.js +3 -0
- package/dist/npm/calendar/components/Calendar.js +41 -41
- package/dist/npm/calendar/components/CalendarCell.js +1 -1
- package/dist/npm/calendar/components/CalendarHeaderTitle.js +1 -1
- package/dist/npm/calendar/components/CalendarWeekCell.js +1 -1
- package/dist/npm/calendar/components/Header.js +7 -7
- package/dist/npm/calendar/components/View.js +12 -12
- package/dist/npm/calendar/components/ViewList.js +6 -6
- package/dist/npm/calendar/services/BusViewService.js +1 -1
- package/dist/npm/calendar/services/CenturyViewService.js +37 -37
- package/dist/npm/calendar/services/DOMService.js +15 -15
- package/dist/npm/calendar/services/DecadeViewService.js +31 -31
- package/dist/npm/calendar/services/MonthViewService.js +36 -36
- package/dist/npm/calendar/services/NavigationService.js +1 -1
- package/dist/npm/calendar/services/WeekNamesService.js +1 -1
- package/dist/npm/calendar/services/YearViewService.js +33 -33
- package/dist/npm/calendar/utils/index.js +6 -6
- package/dist/npm/common/PickerWrap.js +1 -1
- package/dist/npm/dateinput/DateInput.js +15 -15
- package/dist/npm/dateinput/models/kendo-date.js +11 -11
- package/dist/npm/dateinput/utils.js +8 -4
- package/dist/npm/datepicker/DatePicker.js +25 -25
- package/dist/npm/datepicker/ToggleButton.d.ts +1 -1
- package/dist/npm/daterangepicker/DateRangePicker.js +14 -14
- package/dist/npm/datetimepicker/DateTimePicker.js +18 -18
- package/dist/npm/datetimepicker/DateTimeSelector.js +9 -9
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/timepicker/TimeList.js +3 -3
- package/dist/npm/timepicker/TimePart.js +9 -9
- package/dist/npm/timepicker/TimePicker.js +17 -17
- package/dist/npm/timepicker/TimeSelector.js +8 -8
- package/dist/npm/timepicker/services/DOMService.js +3 -3
- package/dist/npm/timepicker/services/DayPeriodService.js +1 -1
- package/dist/npm/timepicker/services/HoursService.js +7 -7
- package/dist/npm/timepicker/services/MinutesService.js +6 -6
- package/dist/npm/timepicker/services/SecondsService.js +6 -6
- package/dist/npm/timepicker/utils.js +29 -20
- package/dist/npm/utils.js +30 -18
- package/dist/npm/virtualization/Virtualization.js +7 -7
- package/dist/npm/virtualization/services/RowHeightService.js +9 -7
- package/package.json +7 -7
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { addDecades, addYears, cloneDate, durationInDecades, firstYearOfDecade, lastYearOfDecade } from '@progress/kendo-date-math';
|
|
3
|
+
import { Action } from '../models/NavigationAction.js';
|
|
4
|
+
import { EMPTY_SELECTIONRANGE } from '../models/SelectionRange.js';
|
|
5
|
+
import { getToday, isInRange, isInSelectionRange, range } from '../../utils.js';
|
|
6
|
+
var EMPTY_DATA = [[]];
|
|
7
|
+
var CELLS_LENGTH = 4;
|
|
8
|
+
var ROWS_LENGTH = 3;
|
|
9
|
+
var ACTIONS = (_a = {},
|
|
10
|
+
_a[Action.Left] = function (date) { return addYears(date, -1); },
|
|
11
|
+
_a[Action.Up] = function (date) { return addYears(date, -4); },
|
|
12
|
+
_a[Action.Right] = function (date) { return addYears(date, 1); },
|
|
13
|
+
_a[Action.Down] = function (date) { return addYears(date, 4); },
|
|
14
|
+
_a[Action.PrevView] = function (date) { return addDecades(date, -1); },
|
|
15
|
+
_a[Action.NextView] = function (date) { return addDecades(date, 1); },
|
|
16
|
+
_a[Action.FirstInView] = function (date) { return firstYearOfDecade(date); },
|
|
17
|
+
_a[Action.LastInView] = function (date) { return lastYearOfDecade(date); },
|
|
18
|
+
_a);
|
|
19
|
+
/**
|
|
20
|
+
* @hidden
|
|
21
|
+
*/
|
|
22
|
+
var DecadeViewService = /** @class */ (function () {
|
|
23
|
+
function DecadeViewService() {
|
|
24
|
+
}
|
|
25
|
+
DecadeViewService.prototype.addToDate = function (min, skip) {
|
|
26
|
+
return addDecades(min, skip);
|
|
27
|
+
};
|
|
28
|
+
DecadeViewService.prototype.datesList = function (start, count) {
|
|
29
|
+
return range(0, count).map(function (i) { return addDecades(firstYearOfDecade(start), i); });
|
|
30
|
+
};
|
|
31
|
+
DecadeViewService.prototype.data = function (options) {
|
|
32
|
+
var _this = this;
|
|
33
|
+
var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;
|
|
34
|
+
if (!viewDate) {
|
|
35
|
+
return EMPTY_DATA;
|
|
36
|
+
}
|
|
37
|
+
var cells = range(0, CELLS_LENGTH);
|
|
38
|
+
var firstDate = firstYearOfDecade(viewDate);
|
|
39
|
+
var lastDate = lastYearOfDecade(viewDate);
|
|
40
|
+
var today = getToday();
|
|
41
|
+
return range(0, ROWS_LENGTH).map(function (rowOffset) {
|
|
42
|
+
var baseDate = addYears(firstDate, rowOffset * CELLS_LENGTH);
|
|
43
|
+
return cells.map(function (cellOffset) {
|
|
44
|
+
var cellDate = _this.normalize(addYears(baseDate, cellOffset), min, max);
|
|
45
|
+
var changedDecade = !_this.isInSameView(cellDate, lastDate);
|
|
46
|
+
if (changedDecade) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
var isRangeStart = _this.isEqual(cellDate, selectionRange.start);
|
|
50
|
+
var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);
|
|
51
|
+
var isInMiddle = !isRangeStart && !isRangeEnd;
|
|
52
|
+
var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);
|
|
53
|
+
var isSelected = isActiveView && (!Array.isArray(selectedDate)
|
|
54
|
+
? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)
|
|
55
|
+
: _this.isSelectedFromArray(cellDate, selectedDate, min, max));
|
|
56
|
+
return {
|
|
57
|
+
formattedValue: _this.value(cellDate),
|
|
58
|
+
id: "".concat(cellUID).concat(cellDate.getTime()),
|
|
59
|
+
isFocused: _this.isEqual(cellDate, focusedDate),
|
|
60
|
+
isSelected: isSelected,
|
|
61
|
+
isWeekend: false,
|
|
62
|
+
isInRange: isInRange(cellDate, min, max),
|
|
63
|
+
isRangeStart: isRangeStart,
|
|
64
|
+
isRangeMid: isRangeMid,
|
|
65
|
+
isRangeEnd: isRangeEnd,
|
|
66
|
+
isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),
|
|
67
|
+
isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),
|
|
68
|
+
isToday: _this.isEqual(cellDate, today),
|
|
69
|
+
title: _this.cellTitle(cellDate),
|
|
70
|
+
value: cellDate
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
DecadeViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {
|
|
76
|
+
var _this = this;
|
|
77
|
+
var result = false;
|
|
78
|
+
dates.forEach(function (date) {
|
|
79
|
+
if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {
|
|
80
|
+
result = true;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
return result;
|
|
84
|
+
};
|
|
85
|
+
DecadeViewService.prototype.isEqual = function (candidate, expected) {
|
|
86
|
+
if (!candidate || !expected) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
return candidate.getFullYear() === expected.getFullYear();
|
|
90
|
+
};
|
|
91
|
+
DecadeViewService.prototype.isInArray = function (date, dates) {
|
|
92
|
+
if (!dates.length) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
var year = date.getFullYear();
|
|
96
|
+
return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 9);
|
|
97
|
+
};
|
|
98
|
+
DecadeViewService.prototype.isInRange = function (candidate, min, max) {
|
|
99
|
+
var year = candidate.getFullYear();
|
|
100
|
+
var aboveMin = !min || min.getFullYear() <= year;
|
|
101
|
+
var belowMax = !max || year <= max.getFullYear();
|
|
102
|
+
return aboveMin && belowMax;
|
|
103
|
+
};
|
|
104
|
+
DecadeViewService.prototype.isRangeStart = function (value) {
|
|
105
|
+
return value.getFullYear() % 100 === 0;
|
|
106
|
+
};
|
|
107
|
+
DecadeViewService.prototype.isInSameView = function (candidate, value) {
|
|
108
|
+
return durationInDecades(candidate, value) === 0;
|
|
109
|
+
};
|
|
110
|
+
DecadeViewService.prototype.move = function (value, action) {
|
|
111
|
+
var modifier = ACTIONS[action];
|
|
112
|
+
if (!modifier) {
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
return modifier(value);
|
|
116
|
+
};
|
|
117
|
+
DecadeViewService.prototype.cellTitle = function (value) {
|
|
118
|
+
return value.getFullYear().toString();
|
|
119
|
+
};
|
|
120
|
+
DecadeViewService.prototype.navigationTitle = function (value) {
|
|
121
|
+
return value ? firstYearOfDecade(value).getFullYear().toString() : '';
|
|
122
|
+
};
|
|
123
|
+
DecadeViewService.prototype.title = function (value) {
|
|
124
|
+
if (!value) {
|
|
125
|
+
return '';
|
|
126
|
+
}
|
|
127
|
+
return "".concat(firstYearOfDecade(value).getFullYear(), " - ").concat(lastYearOfDecade(value).getFullYear());
|
|
128
|
+
};
|
|
129
|
+
DecadeViewService.prototype.rowLength = function (_) {
|
|
130
|
+
return CELLS_LENGTH;
|
|
131
|
+
};
|
|
132
|
+
DecadeViewService.prototype.skip = function (value, min) {
|
|
133
|
+
return durationInDecades(min, value);
|
|
134
|
+
};
|
|
135
|
+
DecadeViewService.prototype.total = function (min, max) {
|
|
136
|
+
return durationInDecades(min, max) + 1;
|
|
137
|
+
};
|
|
138
|
+
DecadeViewService.prototype.value = function (current) {
|
|
139
|
+
return current ? current.getFullYear().toString() : '';
|
|
140
|
+
};
|
|
141
|
+
DecadeViewService.prototype.viewDate = function (date, max, border) {
|
|
142
|
+
if (border === void 0) { border = 1; }
|
|
143
|
+
var renderTwoViews = durationInDecades(date, max) < border;
|
|
144
|
+
return renderTwoViews ? addDecades(date, -1) : date;
|
|
145
|
+
};
|
|
146
|
+
DecadeViewService.prototype.normalize = function (cellDate, min, max) {
|
|
147
|
+
if (cellDate < min && this.isEqual(cellDate, min)) {
|
|
148
|
+
return cloneDate(min);
|
|
149
|
+
}
|
|
150
|
+
if (cellDate > max && this.isEqual(cellDate, max)) {
|
|
151
|
+
return cloneDate(max);
|
|
152
|
+
}
|
|
153
|
+
return cellDate;
|
|
154
|
+
};
|
|
155
|
+
return DecadeViewService;
|
|
156
|
+
}());
|
|
157
|
+
export { DecadeViewService };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IntlService } from '@progress/kendo-vue-intl';
|
|
2
|
+
import { Action } from '../models/NavigationAction';
|
|
3
|
+
import { CellContext } from '../models/CellContext';
|
|
4
|
+
import { ViewService } from '../models/ViewService';
|
|
5
|
+
/**
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export declare class MonthViewService implements ViewService {
|
|
9
|
+
private intl;
|
|
10
|
+
constructor(intl: IntlService);
|
|
11
|
+
addToDate(min: Date, skip: number): Date;
|
|
12
|
+
datesList(start: Date, count: number): Date[];
|
|
13
|
+
data(options: any): CellContext[][];
|
|
14
|
+
isEqual(candidate: Date | null, expected: Date | null): boolean;
|
|
15
|
+
isSelectedFromArray(candidate: Date, dates: Date[], min: Date, max: Date): boolean;
|
|
16
|
+
isInArray(date: Date, dates: Date[]): boolean;
|
|
17
|
+
isInRange(candidate: Date, min: Date, max: Date): boolean;
|
|
18
|
+
isInSameView(candidate: Date, value: Date): boolean;
|
|
19
|
+
isRangeStart(value: Date): boolean;
|
|
20
|
+
move(value: Date, action: Action): Date;
|
|
21
|
+
cellTitle(value: Date): string;
|
|
22
|
+
navigationTitle(value?: Date): string;
|
|
23
|
+
title(current: Date): string;
|
|
24
|
+
rowLength(prependCell?: boolean): number;
|
|
25
|
+
skip(value: Date, min: Date): number;
|
|
26
|
+
total(min: Date, max: Date): number;
|
|
27
|
+
value(current: Date): string;
|
|
28
|
+
viewDate(date: Date, max: Date, border?: number): Date;
|
|
29
|
+
isWeekend(date: Date): boolean;
|
|
30
|
+
private abbrMonthNames;
|
|
31
|
+
private normalize;
|
|
32
|
+
private wideMonthNames;
|
|
33
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { addDays, addWeeks, addMonths, dayOfWeek, durationInMonths, getDate, firstDayOfMonth, lastDayOfMonth } from '@progress/kendo-date-math';
|
|
3
|
+
import { Action } from '../models/NavigationAction.js';
|
|
4
|
+
import { EMPTY_SELECTIONRANGE } from '../models/SelectionRange.js';
|
|
5
|
+
import { getToday, isInRange, isInSelectionRange, range } from '../../utils.js';
|
|
6
|
+
var EMPTY_DATA = [[]];
|
|
7
|
+
var CELLS_LENGTH = 7;
|
|
8
|
+
var ROWS_LENGTH = 6;
|
|
9
|
+
var SATURDAY = 6;
|
|
10
|
+
var SUNDAY = 0;
|
|
11
|
+
var ACTIONS = (_a = {},
|
|
12
|
+
_a[Action.Left] = function (date) { return addDays(date, -1); },
|
|
13
|
+
_a[Action.Up] = function (date) { return addWeeks(date, -1); },
|
|
14
|
+
_a[Action.Right] = function (date) { return addDays(date, 1); },
|
|
15
|
+
_a[Action.Down] = function (date) { return addWeeks(date, 1); },
|
|
16
|
+
_a[Action.PrevView] = function (date) { return addMonths(date, -1); },
|
|
17
|
+
_a[Action.NextView] = function (date) { return addMonths(date, 1); },
|
|
18
|
+
_a[Action.FirstInView] = function (date) { return firstDayOfMonth(date); },
|
|
19
|
+
_a[Action.LastInView] = function (date) { return lastDayOfMonth(date); },
|
|
20
|
+
_a);
|
|
21
|
+
/**
|
|
22
|
+
* @hidden
|
|
23
|
+
*/
|
|
24
|
+
var MonthViewService = /** @class */ (function () {
|
|
25
|
+
function MonthViewService(intl) {
|
|
26
|
+
this.intl = intl;
|
|
27
|
+
}
|
|
28
|
+
MonthViewService.prototype.addToDate = function (min, skip) {
|
|
29
|
+
return addMonths(min, skip);
|
|
30
|
+
};
|
|
31
|
+
MonthViewService.prototype.datesList = function (start, count) {
|
|
32
|
+
return range(0, count).map(function (i) { return addMonths(start, i); });
|
|
33
|
+
};
|
|
34
|
+
MonthViewService.prototype.data = function (options) {
|
|
35
|
+
var _this = this;
|
|
36
|
+
var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;
|
|
37
|
+
if (!viewDate) {
|
|
38
|
+
return EMPTY_DATA;
|
|
39
|
+
}
|
|
40
|
+
var firstMonthDate = firstDayOfMonth(viewDate);
|
|
41
|
+
var lastMonthDate = lastDayOfMonth(viewDate);
|
|
42
|
+
var backward = -1;
|
|
43
|
+
var date = dayOfWeek(firstMonthDate, this.intl.firstDay(), backward);
|
|
44
|
+
var cells = range(0, CELLS_LENGTH);
|
|
45
|
+
var today = getToday();
|
|
46
|
+
return range(0, ROWS_LENGTH).map(function (rowOffset) {
|
|
47
|
+
var baseDate = addDays(date, rowOffset * CELLS_LENGTH);
|
|
48
|
+
return cells.map(function (cellOffset) {
|
|
49
|
+
var cellDate = _this.normalize(addDays(baseDate, cellOffset), min, max);
|
|
50
|
+
var otherMonth = cellDate < firstMonthDate || cellDate > lastMonthDate;
|
|
51
|
+
if (otherMonth) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
var isRangeStart = _this.isEqual(cellDate, selectionRange.start);
|
|
55
|
+
var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);
|
|
56
|
+
var isInMiddle = !isRangeStart && !isRangeEnd;
|
|
57
|
+
var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);
|
|
58
|
+
var isSelected = isActiveView && (!Array.isArray(selectedDate)
|
|
59
|
+
? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)
|
|
60
|
+
: _this.isSelectedFromArray(cellDate, selectedDate, min, max));
|
|
61
|
+
var cell = {
|
|
62
|
+
formattedValue: _this.value(cellDate),
|
|
63
|
+
id: "".concat(cellUID).concat(cellDate.getTime()),
|
|
64
|
+
isFocused: _this.isEqual(cellDate, focusedDate),
|
|
65
|
+
isSelected: isSelected,
|
|
66
|
+
isInRange: isInRange(cellDate, min, max),
|
|
67
|
+
isWeekend: _this.isWeekend(cellDate),
|
|
68
|
+
isRangeStart: isRangeStart,
|
|
69
|
+
isRangeMid: isRangeMid,
|
|
70
|
+
isRangeEnd: isRangeEnd,
|
|
71
|
+
isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstMonthDate),
|
|
72
|
+
isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastMonthDate),
|
|
73
|
+
isToday: _this.isEqual(cellDate, today),
|
|
74
|
+
title: _this.cellTitle(cellDate),
|
|
75
|
+
value: cellDate
|
|
76
|
+
};
|
|
77
|
+
return cell;
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
MonthViewService.prototype.isEqual = function (candidate, expected) {
|
|
82
|
+
if (!candidate || !expected) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
return getDate(candidate).getTime() === getDate(expected).getTime();
|
|
86
|
+
};
|
|
87
|
+
MonthViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {
|
|
88
|
+
var _this = this;
|
|
89
|
+
var result = false;
|
|
90
|
+
dates.forEach(function (date) {
|
|
91
|
+
if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {
|
|
92
|
+
result = true;
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return result;
|
|
96
|
+
};
|
|
97
|
+
MonthViewService.prototype.isInArray = function (date, dates) {
|
|
98
|
+
return !!dates.length && firstDayOfMonth(dates[0]) <= date && date <= lastDayOfMonth(dates[dates.length - 1]);
|
|
99
|
+
};
|
|
100
|
+
MonthViewService.prototype.isInRange = function (candidate, min, max) {
|
|
101
|
+
var value = getDate(candidate);
|
|
102
|
+
var aboveMin = !min || getDate(min) <= value;
|
|
103
|
+
var belowMax = !max || value <= getDate(max);
|
|
104
|
+
return aboveMin && belowMax;
|
|
105
|
+
};
|
|
106
|
+
MonthViewService.prototype.isInSameView = function (candidate, value) {
|
|
107
|
+
return durationInMonths(candidate, value) === 0;
|
|
108
|
+
};
|
|
109
|
+
MonthViewService.prototype.isRangeStart = function (value) {
|
|
110
|
+
return !value.getMonth();
|
|
111
|
+
};
|
|
112
|
+
MonthViewService.prototype.move = function (value, action) {
|
|
113
|
+
var modifier = ACTIONS[action];
|
|
114
|
+
if (!modifier) {
|
|
115
|
+
return value;
|
|
116
|
+
}
|
|
117
|
+
return modifier(value);
|
|
118
|
+
};
|
|
119
|
+
MonthViewService.prototype.cellTitle = function (value) {
|
|
120
|
+
return this.intl.formatDate(value, 'D');
|
|
121
|
+
};
|
|
122
|
+
MonthViewService.prototype.navigationTitle = function (value) {
|
|
123
|
+
if (!value) {
|
|
124
|
+
return '';
|
|
125
|
+
}
|
|
126
|
+
return this.isRangeStart(value) ? value.getFullYear().toString() : this.abbrMonthNames()[value.getMonth()];
|
|
127
|
+
};
|
|
128
|
+
MonthViewService.prototype.title = function (current) {
|
|
129
|
+
return "".concat(this.wideMonthNames()[current.getMonth()], " ").concat(current.getFullYear());
|
|
130
|
+
};
|
|
131
|
+
MonthViewService.prototype.rowLength = function (prependCell) {
|
|
132
|
+
return CELLS_LENGTH + (prependCell ? 1 : 0);
|
|
133
|
+
};
|
|
134
|
+
MonthViewService.prototype.skip = function (value, min) {
|
|
135
|
+
return durationInMonths(min, value);
|
|
136
|
+
};
|
|
137
|
+
MonthViewService.prototype.total = function (min, max) {
|
|
138
|
+
return durationInMonths(min, max) + 1;
|
|
139
|
+
};
|
|
140
|
+
MonthViewService.prototype.value = function (current) {
|
|
141
|
+
return current ? current.getDate().toString() : '';
|
|
142
|
+
};
|
|
143
|
+
MonthViewService.prototype.viewDate = function (date, max, border) {
|
|
144
|
+
if (border === void 0) { border = 1; }
|
|
145
|
+
var renderTwoViews = durationInMonths(date, max) < border;
|
|
146
|
+
return renderTwoViews ? addMonths(date, -1) : date;
|
|
147
|
+
};
|
|
148
|
+
MonthViewService.prototype.isWeekend = function (date) {
|
|
149
|
+
var day = date.getDay();
|
|
150
|
+
return day === SATURDAY || day === SUNDAY;
|
|
151
|
+
};
|
|
152
|
+
MonthViewService.prototype.abbrMonthNames = function () {
|
|
153
|
+
return this.intl.dateFormatNames({ nameType: 'abbreviated', type: 'months' });
|
|
154
|
+
};
|
|
155
|
+
MonthViewService.prototype.normalize = function (cellDate, min, max) {
|
|
156
|
+
if (cellDate < min && this.isEqual(cellDate, min)) {
|
|
157
|
+
return getDate(min);
|
|
158
|
+
}
|
|
159
|
+
if (cellDate > max && this.isEqual(cellDate, max)) {
|
|
160
|
+
return getDate(max);
|
|
161
|
+
}
|
|
162
|
+
return cellDate;
|
|
163
|
+
};
|
|
164
|
+
MonthViewService.prototype.wideMonthNames = function () {
|
|
165
|
+
return this.intl.dateFormatNames({ nameType: 'wide', type: 'months', standAlone: true });
|
|
166
|
+
};
|
|
167
|
+
return MonthViewService;
|
|
168
|
+
}());
|
|
169
|
+
export { MonthViewService };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Action } from '../models/NavigationAction';
|
|
2
|
+
import { CalendarViewEnum } from '../models/CalendarViewEnum';
|
|
3
|
+
import { BusViewService } from '../services/BusViewService';
|
|
4
|
+
import { ViewService } from '../models/ViewService';
|
|
5
|
+
/**
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export declare class NavigationService {
|
|
9
|
+
private bus;
|
|
10
|
+
constructor(bus: BusViewService);
|
|
11
|
+
action(event: any): Action;
|
|
12
|
+
move(value: Date, action: Action | null, activeView: CalendarViewEnum, service: ViewService, event?: any): Date;
|
|
13
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Action } from '../models/NavigationAction.js';
|
|
2
|
+
var KEY_TO_ACTION = {
|
|
3
|
+
'33': Action.PrevView,
|
|
4
|
+
'34': Action.NextView,
|
|
5
|
+
'35': Action.LastInView,
|
|
6
|
+
'36': Action.FirstInView,
|
|
7
|
+
'37': Action.Left,
|
|
8
|
+
'38': Action.Up,
|
|
9
|
+
'39': Action.Right,
|
|
10
|
+
'40': Action.Down,
|
|
11
|
+
'meta+38': Action.UpperView,
|
|
12
|
+
'meta+40': Action.LowerView,
|
|
13
|
+
'meta+37': Action.PrevView,
|
|
14
|
+
'meta+39': Action.NextView
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* @hidden
|
|
18
|
+
*/
|
|
19
|
+
var NavigationService = /** @class */ (function () {
|
|
20
|
+
function NavigationService(bus) {
|
|
21
|
+
this.bus = bus;
|
|
22
|
+
}
|
|
23
|
+
NavigationService.prototype.action = function (event) {
|
|
24
|
+
var action = "".concat(event.ctrlKey || event.metaKey ? 'meta+' : '').concat(event.keyCode);
|
|
25
|
+
return KEY_TO_ACTION[action];
|
|
26
|
+
};
|
|
27
|
+
NavigationService.prototype.move = function (value, action, activeView, service, event) {
|
|
28
|
+
if (!service) {
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
if (action === Action.UpperView && this.bus.canMoveUp(activeView)) {
|
|
32
|
+
this.bus.moveUp(activeView, event);
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
if (action === Action.LowerView && this.bus.canMoveDown(activeView)) {
|
|
36
|
+
this.bus.moveDown(activeView, event);
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
return service.move(value, action);
|
|
40
|
+
};
|
|
41
|
+
return NavigationService;
|
|
42
|
+
}());
|
|
43
|
+
export { NavigationService };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { shiftWeekNames } from '../../utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* @hidden
|
|
4
|
+
*/
|
|
5
|
+
var WeekNamesService = /** @class */ (function () {
|
|
6
|
+
function WeekNamesService(intl) {
|
|
7
|
+
this.intl = intl;
|
|
8
|
+
}
|
|
9
|
+
WeekNamesService.prototype.getWeekNames = function (includeWeekNumber) {
|
|
10
|
+
if (includeWeekNumber === void 0) { includeWeekNumber = false; }
|
|
11
|
+
var weekNames = shiftWeekNames(this.intl.dateFormatNames({ nameType: 'short', type: 'days' }), this.intl.firstDay());
|
|
12
|
+
return includeWeekNumber ? [''].concat(weekNames) : weekNames;
|
|
13
|
+
};
|
|
14
|
+
return WeekNamesService;
|
|
15
|
+
}());
|
|
16
|
+
export { WeekNamesService };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { IntlService } from '@progress/kendo-vue-intl';
|
|
2
|
+
import { Action } from '../models/NavigationAction';
|
|
3
|
+
import { CellContext } from '../models/CellContext';
|
|
4
|
+
import { ViewService } from '../models/ViewService';
|
|
5
|
+
/**
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export declare class YearViewService implements ViewService {
|
|
9
|
+
private _intl;
|
|
10
|
+
constructor(intl: IntlService);
|
|
11
|
+
addToDate(min: Date, skip: number): Date;
|
|
12
|
+
datesList(start: Date, count: number): Date[];
|
|
13
|
+
data(options: any): CellContext[][];
|
|
14
|
+
isSelectedFromArray(candidate: Date, dates: Date[], min: Date, max: Date): boolean;
|
|
15
|
+
isEqual(candidate: Date | null, expected: Date | null): boolean;
|
|
16
|
+
isInArray(date: Date, dates: Date[]): boolean;
|
|
17
|
+
isInRange(candidate: Date, min: Date | null, max: Date | null): boolean;
|
|
18
|
+
isInSameView(candidate: Date, value: Date): boolean;
|
|
19
|
+
isRangeStart(value: Date): boolean;
|
|
20
|
+
move(value: Date, action: Action): Date;
|
|
21
|
+
cellTitle(value: Date): string;
|
|
22
|
+
navigationTitle(value?: Date): string;
|
|
23
|
+
title(current?: Date): string;
|
|
24
|
+
rowLength(_?: boolean): number;
|
|
25
|
+
skip(value: Date, min: Date): number;
|
|
26
|
+
total(min: Date, max: Date): number;
|
|
27
|
+
value(current: Date): string;
|
|
28
|
+
viewDate(date: Date, max: Date, border?: number): Date;
|
|
29
|
+
private abbrMonthNames;
|
|
30
|
+
private normalize;
|
|
31
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { addMonths, addYears, createDate, durationInYears, firstMonthOfYear, lastMonthOfYear } from '@progress/kendo-date-math';
|
|
3
|
+
import { Action } from '../models/NavigationAction.js';
|
|
4
|
+
import { getToday, isInRange, isInSelectionRange, range } from '../../utils.js';
|
|
5
|
+
import { EMPTY_SELECTIONRANGE } from '../models/SelectionRange.js';
|
|
6
|
+
import { cloneDate } from '@progress/kendo-vue-common';
|
|
7
|
+
var EMPTY_DATA = [[]];
|
|
8
|
+
var CELLS_LENGTH = 4;
|
|
9
|
+
var ROWS_LENGTH = 3;
|
|
10
|
+
var ACTIONS = (_a = {},
|
|
11
|
+
_a[Action.Left] = function (date) { return addMonths(date, -1); },
|
|
12
|
+
_a[Action.Up] = function (date) { return addMonths(date, -4); },
|
|
13
|
+
_a[Action.Right] = function (date) { return addMonths(date, 1); },
|
|
14
|
+
_a[Action.Down] = function (date) { return addMonths(date, 4); },
|
|
15
|
+
_a[Action.PrevView] = function (date) { return addYears(date, -1); },
|
|
16
|
+
_a[Action.NextView] = function (date) { return addYears(date, 1); },
|
|
17
|
+
_a[Action.FirstInView] = function (date) { return firstMonthOfYear(date); },
|
|
18
|
+
_a[Action.LastInView] = function (date) { return lastMonthOfYear(date); },
|
|
19
|
+
_a);
|
|
20
|
+
/**
|
|
21
|
+
* @hidden
|
|
22
|
+
*/
|
|
23
|
+
var YearViewService = /** @class */ (function () {
|
|
24
|
+
function YearViewService(intl) {
|
|
25
|
+
this._intl = intl;
|
|
26
|
+
}
|
|
27
|
+
YearViewService.prototype.addToDate = function (min, skip) {
|
|
28
|
+
return addYears(min, skip);
|
|
29
|
+
};
|
|
30
|
+
YearViewService.prototype.datesList = function (start, count) {
|
|
31
|
+
return range(0, count).map(function (i) { return addYears(start, i); });
|
|
32
|
+
};
|
|
33
|
+
YearViewService.prototype.data = function (options) {
|
|
34
|
+
var _this = this;
|
|
35
|
+
var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;
|
|
36
|
+
if (!viewDate) {
|
|
37
|
+
return EMPTY_DATA;
|
|
38
|
+
}
|
|
39
|
+
var months = this.abbrMonthNames();
|
|
40
|
+
var firstDate = firstMonthOfYear(viewDate);
|
|
41
|
+
var lastDate = lastMonthOfYear(viewDate);
|
|
42
|
+
var currentYear = firstDate.getFullYear();
|
|
43
|
+
var cells = range(0, CELLS_LENGTH);
|
|
44
|
+
var today = getToday();
|
|
45
|
+
return range(0, ROWS_LENGTH).map(function (rowOffset) {
|
|
46
|
+
var baseDate = addMonths(firstDate, rowOffset * CELLS_LENGTH);
|
|
47
|
+
return cells.map(function (cellOffset) {
|
|
48
|
+
var cellDate = _this.normalize(addMonths(baseDate, cellOffset), min, max);
|
|
49
|
+
if (!cellDate) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
var changedYear = currentYear < cellDate.getFullYear();
|
|
53
|
+
if (changedYear) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
var isRangeStart = _this.isEqual(cellDate, selectionRange.start);
|
|
57
|
+
var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);
|
|
58
|
+
var isInMiddle = !isRangeStart && !isRangeEnd;
|
|
59
|
+
var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);
|
|
60
|
+
var isSelected = isActiveView && (!Array.isArray(selectedDate)
|
|
61
|
+
? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)
|
|
62
|
+
: _this.isSelectedFromArray(cellDate, selectedDate, min, max));
|
|
63
|
+
return {
|
|
64
|
+
formattedValue: months[cellDate.getMonth()],
|
|
65
|
+
id: "".concat(cellUID).concat(cellDate.getTime()),
|
|
66
|
+
isFocused: _this.isEqual(cellDate, focusedDate),
|
|
67
|
+
isSelected: isSelected,
|
|
68
|
+
isInRange: isInRange(cellDate, min, max),
|
|
69
|
+
isWeekend: false,
|
|
70
|
+
isRangeStart: isRangeStart,
|
|
71
|
+
isRangeMid: isRangeMid,
|
|
72
|
+
isRangeEnd: isRangeEnd,
|
|
73
|
+
isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),
|
|
74
|
+
isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),
|
|
75
|
+
isToday: _this.isEqual(cellDate, today),
|
|
76
|
+
title: _this.cellTitle(cellDate),
|
|
77
|
+
value: cellDate
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
YearViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {
|
|
83
|
+
var _this = this;
|
|
84
|
+
var result = false;
|
|
85
|
+
dates.forEach(function (date) {
|
|
86
|
+
if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {
|
|
87
|
+
result = true;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
return result;
|
|
91
|
+
};
|
|
92
|
+
YearViewService.prototype.isEqual = function (candidate, expected) {
|
|
93
|
+
if (!candidate || !expected) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
return candidate.getFullYear() === expected.getFullYear() &&
|
|
97
|
+
candidate.getMonth() === expected.getMonth();
|
|
98
|
+
};
|
|
99
|
+
YearViewService.prototype.isInArray = function (date, dates) {
|
|
100
|
+
if (!dates.length) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
var year = date.getFullYear();
|
|
104
|
+
return dates[0].getFullYear() <= year && year <= dates[dates.length - 1].getFullYear();
|
|
105
|
+
};
|
|
106
|
+
YearViewService.prototype.isInRange = function (candidate, min, max) {
|
|
107
|
+
var candidateValue = createDate(candidate.getFullYear(), candidate.getMonth(), 1);
|
|
108
|
+
var aboveMin = !min || createDate(min.getFullYear(), min.getMonth(), 1) <= candidateValue;
|
|
109
|
+
var belowMax = !max || candidateValue <= createDate(max.getFullYear(), max.getMonth(), 1);
|
|
110
|
+
return aboveMin && belowMax;
|
|
111
|
+
};
|
|
112
|
+
YearViewService.prototype.isInSameView = function (candidate, value) {
|
|
113
|
+
return durationInYears(candidate, value) === 0;
|
|
114
|
+
};
|
|
115
|
+
YearViewService.prototype.isRangeStart = function (value) {
|
|
116
|
+
return value.getFullYear() % 10 === 0;
|
|
117
|
+
};
|
|
118
|
+
YearViewService.prototype.move = function (value, action) {
|
|
119
|
+
var modifier = ACTIONS[action];
|
|
120
|
+
if (!modifier) {
|
|
121
|
+
return value;
|
|
122
|
+
}
|
|
123
|
+
return modifier(value);
|
|
124
|
+
};
|
|
125
|
+
YearViewService.prototype.cellTitle = function (value) {
|
|
126
|
+
return "".concat(value.getFullYear(), " ").concat(this.value(value));
|
|
127
|
+
};
|
|
128
|
+
YearViewService.prototype.navigationTitle = function (value) {
|
|
129
|
+
return this.title(value);
|
|
130
|
+
};
|
|
131
|
+
YearViewService.prototype.title = function (current) {
|
|
132
|
+
return current ? current.getFullYear().toString() : '';
|
|
133
|
+
};
|
|
134
|
+
YearViewService.prototype.rowLength = function (_) {
|
|
135
|
+
return CELLS_LENGTH;
|
|
136
|
+
};
|
|
137
|
+
YearViewService.prototype.skip = function (value, min) {
|
|
138
|
+
return durationInYears(min, value);
|
|
139
|
+
};
|
|
140
|
+
YearViewService.prototype.total = function (min, max) {
|
|
141
|
+
return durationInYears(min, max) + 1;
|
|
142
|
+
};
|
|
143
|
+
YearViewService.prototype.value = function (current) {
|
|
144
|
+
return current ? this.abbrMonthNames()[current.getMonth()] : '';
|
|
145
|
+
};
|
|
146
|
+
YearViewService.prototype.viewDate = function (date, max, border) {
|
|
147
|
+
if (border === void 0) { border = 1; }
|
|
148
|
+
var renderTwoViews = durationInYears(date, max) < border;
|
|
149
|
+
return renderTwoViews ? addYears(date, -1) : date;
|
|
150
|
+
};
|
|
151
|
+
YearViewService.prototype.abbrMonthNames = function () {
|
|
152
|
+
return this._intl.dateFormatNames({ nameType: 'abbreviated', type: 'months' });
|
|
153
|
+
};
|
|
154
|
+
YearViewService.prototype.normalize = function (cellDate, min, max) {
|
|
155
|
+
if (cellDate < min && this.isEqual(cellDate, min)) {
|
|
156
|
+
return cloneDate(min);
|
|
157
|
+
}
|
|
158
|
+
if (cellDate > max && this.isEqual(cellDate, max)) {
|
|
159
|
+
return cloneDate(max);
|
|
160
|
+
}
|
|
161
|
+
return cellDate;
|
|
162
|
+
};
|
|
163
|
+
return YearViewService;
|
|
164
|
+
}());
|
|
165
|
+
export { YearViewService };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BusViewService } from './BusViewService';
|
|
2
|
+
import { CenturyViewService } from './CenturyViewService';
|
|
3
|
+
import { DecadeViewService } from './DecadeViewService';
|
|
4
|
+
import { DOMService } from './DOMService';
|
|
5
|
+
import { MonthViewService } from './MonthViewService';
|
|
6
|
+
import { NavigationService } from './NavigationService';
|
|
7
|
+
import { WeekNamesService } from './WeekNamesService';
|
|
8
|
+
import { YearViewService } from './YearViewService';
|
|
9
|
+
export { BusViewService, CenturyViewService, DecadeViewService, DOMService, MonthViewService, NavigationService, WeekNamesService, YearViewService };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BusViewService } from './BusViewService.js';
|
|
2
|
+
import { CenturyViewService } from './CenturyViewService.js';
|
|
3
|
+
import { DecadeViewService } from './DecadeViewService.js';
|
|
4
|
+
import { DOMService } from './DOMService.js';
|
|
5
|
+
import { MonthViewService } from './MonthViewService.js';
|
|
6
|
+
import { NavigationService } from './NavigationService.js';
|
|
7
|
+
import { WeekNamesService } from './WeekNamesService.js';
|
|
8
|
+
import { YearViewService } from './YearViewService.js';
|
|
9
|
+
export { BusViewService, CenturyViewService, DecadeViewService, DOMService, MonthViewService, NavigationService, WeekNamesService, YearViewService };
|