@snack-uikit/calendar 0.14.2-preview-02d918ac.0 → 0.14.2
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/CHANGELOG.md +9 -0
- package/dist/cjs/components/Calendar/Calendar.js +6 -5
- package/dist/cjs/components/TimePicker/TimePicker.js +43 -32
- package/dist/cjs/helperComponents/Button/Button.js +16 -19
- package/dist/cjs/helperComponents/CalendarBase/CalendarBase.js +70 -53
- package/dist/cjs/helperComponents/CalendarBase/hooks.js +7 -4
- package/dist/cjs/helperComponents/CalendarBody/CalendarBody.js +2 -3
- package/dist/cjs/helperComponents/CalendarNavigation/CalendarNavigation.js +12 -13
- package/dist/cjs/helperComponents/CalendarNavigation/hooks.js +6 -7
- package/dist/cjs/helperComponents/ColumnLabel/ColumnLabel.js +5 -8
- package/dist/cjs/helperComponents/ColumnLabels/ColumnLabels.js +5 -8
- package/dist/cjs/helperComponents/DecadeView/DecadeView.js +11 -12
- package/dist/cjs/helperComponents/DecadeView/utils.js +3 -4
- package/dist/cjs/helperComponents/Footer/Footer.js +30 -32
- package/dist/cjs/helperComponents/Footer/hooks.js +17 -19
- package/dist/cjs/helperComponents/Grid/Grid.js +2 -4
- package/dist/cjs/helperComponents/Item/Item.js +22 -27
- package/dist/cjs/helperComponents/Item/hooks.js +15 -13
- package/dist/cjs/helperComponents/MonthView/MonthView.js +13 -14
- package/dist/cjs/helperComponents/MonthView/utils.js +1 -3
- package/dist/cjs/helperComponents/PeriodPresetsList/PeriodPresetsList.js +10 -13
- package/dist/cjs/helperComponents/TimeList/TimeList.js +10 -13
- package/dist/cjs/helperComponents/TimePickerBase/TimePickerBase.js +18 -21
- package/dist/cjs/helperComponents/YearView/YearView.js +13 -14
- package/dist/cjs/helperComponents/YearView/utils.js +3 -4
- package/dist/cjs/hooks.js +57 -63
- package/dist/cjs/utils.js +14 -7
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 0.14.2 (2026-07-03)
|
|
7
|
+
|
|
8
|
+
### Only dependencies have been changed
|
|
9
|
+
* [@snack-uikit/list@0.33.3]($PUBLIC_PROJECT_URL/blob/master/packages/list/CHANGELOG.md)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
6
15
|
## 0.14.1 (2026-06-24)
|
|
7
16
|
|
|
8
17
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
3
5
|
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
4
6
|
var t = {};
|
|
5
7
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -18,14 +20,13 @@ const constants_1 = require("../../constants");
|
|
|
18
20
|
const CalendarBase_1 = require("../../helperComponents/CalendarBase");
|
|
19
21
|
const utils_1 = require("./utils");
|
|
20
22
|
function Calendar(props) {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
mode
|
|
24
|
-
} = props,
|
|
23
|
+
const onChangeValue = props.onChangeValue,
|
|
24
|
+
mode = props.mode,
|
|
25
25
|
rest = __rest(props, ["onChangeValue", "mode"]);
|
|
26
26
|
const changeValueHandler = (0, react_1.useCallback)(value => {
|
|
27
27
|
if (mode === constants_1.CALENDAR_MODE.Date || mode === constants_1.CALENDAR_MODE.Month || mode === constants_1.CALENDAR_MODE.Year || mode === constants_1.CALENDAR_MODE.DateTime) {
|
|
28
|
-
const
|
|
28
|
+
const _value = (0, _slicedToArray2.default)(value, 1),
|
|
29
|
+
date = _value[0];
|
|
29
30
|
onChangeValue === null || onChangeValue === void 0 ? void 0 : onChangeValue(date);
|
|
30
31
|
return;
|
|
31
32
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
3
5
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
4
6
|
return mod && mod.__esModule ? mod : {
|
|
5
7
|
"default": mod
|
|
@@ -25,24 +27,35 @@ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
|
25
27
|
const stubDate = new Date();
|
|
26
28
|
const stubFunc = () => {};
|
|
27
29
|
function TimePicker(_ref) {
|
|
28
|
-
let
|
|
29
|
-
|
|
30
|
-
size = constants_1.SIZE.M,
|
|
31
|
-
fitToContainer =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
30
|
+
let className = _ref.className,
|
|
31
|
+
_ref$size = _ref.size,
|
|
32
|
+
size = _ref$size === void 0 ? constants_1.SIZE.M : _ref$size,
|
|
33
|
+
_ref$fitToContainer = _ref.fitToContainer,
|
|
34
|
+
fitToContainer = _ref$fitToContainer === void 0 ? true : _ref$fitToContainer,
|
|
35
|
+
valueProp = _ref.value,
|
|
36
|
+
defaultValue = _ref.defaultValue,
|
|
37
|
+
onChangeValue = _ref.onChangeValue,
|
|
38
|
+
onFocusLeave = _ref.onFocusLeave,
|
|
39
|
+
testId = _ref['data-test-id'],
|
|
40
|
+
navigationStartRef = _ref.navigationStartRef,
|
|
41
|
+
_ref$showSeconds = _ref.showSeconds,
|
|
42
|
+
showSeconds = _ref$showSeconds === void 0 ? true : _ref$showSeconds,
|
|
43
|
+
todayProp = _ref.today,
|
|
44
|
+
_ref$footerMode = _ref.footerMode,
|
|
45
|
+
footerMode = _ref$footerMode === void 0 ? 'current-time-and-apply' : _ref$footerMode;
|
|
46
|
+
const _ref2 = (0, uncontrollable_1.useUncontrolledProp)(valueProp, defaultValue, onChangeValue),
|
|
47
|
+
_ref3 = (0, _slicedToArray2.default)(_ref2, 2),
|
|
48
|
+
value = _ref3[0],
|
|
49
|
+
setValueState = _ref3[1];
|
|
43
50
|
const setValueEventHandler = (0, utils_1.useEventHandler)(setValueState);
|
|
44
|
-
const
|
|
45
|
-
|
|
51
|
+
const _ref4 = (0, react_1.useState)(),
|
|
52
|
+
_ref5 = (0, _slicedToArray2.default)(_ref4, 2),
|
|
53
|
+
internalValue = _ref5[0],
|
|
54
|
+
setInternalValue = _ref5[1];
|
|
55
|
+
const _ref6 = (0, react_1.useState)(undefined),
|
|
56
|
+
_ref7 = (0, _slicedToArray2.default)(_ref6, 2),
|
|
57
|
+
focus = _ref7[0],
|
|
58
|
+
setFocus = _ref7[1];
|
|
46
59
|
const today = typeof todayProp === 'number' ? new Date(todayProp) : todayProp;
|
|
47
60
|
(0, react_1.useEffect)(() => {
|
|
48
61
|
var _a, _b, _c;
|
|
@@ -62,18 +75,17 @@ function TimePicker(_ref) {
|
|
|
62
75
|
const newDate = dates[0];
|
|
63
76
|
setInternalValue([newDate, newDate]);
|
|
64
77
|
}, []);
|
|
65
|
-
const {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
});
|
|
78
|
+
const _ref8 = (0, hooks_1.useDateAndTime)({
|
|
79
|
+
showSeconds,
|
|
80
|
+
value
|
|
81
|
+
}),
|
|
82
|
+
dateAndTime = _ref8.dateAndTime,
|
|
83
|
+
onTimeChange = _ref8.onTimeChange,
|
|
84
|
+
onDateChange = _ref8.onDateChange,
|
|
85
|
+
onDateAndTimeChange = _ref8.onDateAndTimeChange,
|
|
86
|
+
isDateFilled = _ref8.isDateFilled,
|
|
87
|
+
isTimeFilled = _ref8.isTimeFilled,
|
|
88
|
+
isDateAndTimeFilled = _ref8.isDateAndTimeFilled;
|
|
77
89
|
const applyButtonRef = (0, react_1.useRef)(null);
|
|
78
90
|
const currentButtonRef = (0, react_1.useRef)(null);
|
|
79
91
|
const hoursKeyboardNavigationRef = (0, react_1.useRef)({
|
|
@@ -86,9 +98,8 @@ function TimePicker(_ref) {
|
|
|
86
98
|
focusItem: () => {}
|
|
87
99
|
});
|
|
88
100
|
const getTestId = (0, react_1.useMemo)(() => (0, utils_2.getTestIdBuilder)(testId), [testId]);
|
|
89
|
-
const
|
|
90
|
-
lang
|
|
91
|
-
} = (0, locale_1.useLocale)();
|
|
101
|
+
const _ref9 = (0, locale_1.useLocale)(),
|
|
102
|
+
ctxLang = _ref9.lang;
|
|
92
103
|
const locale = (0, react_1.useMemo)(() => (0, utils_2.getLocale)({
|
|
93
104
|
localeProp: constants_1.DEFAULT_LOCALE,
|
|
94
105
|
ctxLang
|
|
@@ -23,27 +23,24 @@ const utils_1 = require("@snack-uikit/utils");
|
|
|
23
23
|
const CalendarContext_1 = require("../CalendarContext");
|
|
24
24
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
25
25
|
function Button(_a) {
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
useNavigationStartRef
|
|
37
|
-
} = _a,
|
|
26
|
+
var label = _a.label,
|
|
27
|
+
icon = _a.icon,
|
|
28
|
+
onClick = _a.onClick,
|
|
29
|
+
focusName = _a.focusName,
|
|
30
|
+
tabIndex = _a.tabIndex,
|
|
31
|
+
onLeftArrowKeyDown = _a.onLeftArrowKeyDown,
|
|
32
|
+
onRightArrowKeyDown = _a.onRightArrowKeyDown,
|
|
33
|
+
onDownArrowKeyDown = _a.onDownArrowKeyDown,
|
|
34
|
+
disabled = _a.disabled,
|
|
35
|
+
useNavigationStartRef = _a.useNavigationStartRef,
|
|
38
36
|
rest = __rest(_a, ["label", "icon", "onClick", "focusName", "tabIndex", "onLeftArrowKeyDown", "onRightArrowKeyDown", "onDownArrowKeyDown", "disabled", "useNavigationStartRef"]);
|
|
39
37
|
const ref = (0, react_1.useRef)(null);
|
|
40
|
-
const
|
|
41
|
-
size,
|
|
42
|
-
focus,
|
|
43
|
-
setFocus,
|
|
44
|
-
onFocusLeave,
|
|
45
|
-
navigationStartRef
|
|
46
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
38
|
+
const _ref = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
39
|
+
size = _ref.size,
|
|
40
|
+
focus = _ref.focus,
|
|
41
|
+
setFocus = _ref.setFocus,
|
|
42
|
+
onFocusLeave = _ref.onFocusLeave,
|
|
43
|
+
navigationStartRef = _ref.navigationStartRef;
|
|
47
44
|
(0, utils_1.useLayoutEffect)(() => {
|
|
48
45
|
var _a;
|
|
49
46
|
if (focus && focus === focusName) {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
3
5
|
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
4
6
|
var t = {};
|
|
5
7
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -57,49 +59,63 @@ const CALENDAR_DEFAULT_MODE_MAP = {
|
|
|
57
59
|
[constants_1.CALENDAR_MODE.Year]: constants_1.VIEW_MODE.Decade
|
|
58
60
|
};
|
|
59
61
|
function CalendarBase(_a) {
|
|
60
|
-
var
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
62
|
+
var className = _a.className,
|
|
63
|
+
mode = _a.mode,
|
|
64
|
+
_a$size = _a.size,
|
|
65
|
+
size = _a$size === void 0 ? constants_1.SIZE.M : _a$size,
|
|
66
|
+
autofocus = _a.autofocus,
|
|
67
|
+
_a$fitToContainer = _a.fitToContainer,
|
|
68
|
+
fitToContainer = _a$fitToContainer === void 0 ? true : _a$fitToContainer,
|
|
69
|
+
valueProp = _a.value,
|
|
70
|
+
defaultValue = _a.defaultValue,
|
|
71
|
+
onChangeValue = _a.onChangeValue,
|
|
72
|
+
todayProp = _a.today,
|
|
73
|
+
_a$showHolidays = _a.showHolidays,
|
|
74
|
+
showHolidays = _a$showHolidays === void 0 ? false : _a$showHolidays,
|
|
75
|
+
_a$showSeconds = _a.showSeconds,
|
|
76
|
+
showSeconds = _a$showSeconds === void 0 ? true : _a$showSeconds,
|
|
77
|
+
style = _a.style,
|
|
78
|
+
localeProp = _a.locale,
|
|
79
|
+
onFocusLeave = _a.onFocusLeave,
|
|
80
|
+
buildCellProps = _a.buildCellProps,
|
|
81
|
+
testId = _a['data-test-id'],
|
|
82
|
+
navigationStartRef = _a.navigationStartRef,
|
|
83
|
+
presets = _a.presets,
|
|
80
84
|
rest = __rest(_a, ["className", "mode", "size", "autofocus", "fitToContainer", "value", "defaultValue", "onChangeValue", "today", "showHolidays", "showSeconds", "style", "locale", "onFocusLeave", "buildCellProps", 'data-test-id', "navigationStartRef", "presets"]);
|
|
81
|
-
const
|
|
82
|
-
t
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
const _ref = (0, locale_1.useLocale)('Calendar'),
|
|
86
|
+
t = _ref.t;
|
|
87
|
+
const _ref2 = (0, react_1.useState)(CALENDAR_DEFAULT_MODE_MAP[mode]),
|
|
88
|
+
_ref3 = (0, _slicedToArray2.default)(_ref2, 2),
|
|
89
|
+
viewMode = _ref3[0],
|
|
90
|
+
setViewMode = _ref3[1];
|
|
91
|
+
const _ref4 = (0, react_1.useState)(0),
|
|
92
|
+
_ref5 = (0, _slicedToArray2.default)(_ref4, 2),
|
|
93
|
+
viewShift = _ref5[0],
|
|
94
|
+
setViewShift = _ref5[1];
|
|
95
|
+
const _ref6 = (0, uncontrollable_1.useUncontrolledProp)(valueProp, defaultValue, onChangeValue),
|
|
96
|
+
_ref7 = (0, _slicedToArray2.default)(_ref6, 2),
|
|
97
|
+
value = _ref7[0],
|
|
98
|
+
setValueState = _ref7[1];
|
|
87
99
|
const today = (0, react_1.useMemo)(() => typeof todayProp === 'number' ? new Date(todayProp) : todayProp, [todayProp]);
|
|
88
|
-
const
|
|
100
|
+
const _ref8 = (0, react_1.useState)((value === null || value === void 0 ? void 0 : value[0]) || today || new Date()),
|
|
101
|
+
_ref9 = (0, _slicedToArray2.default)(_ref8, 1),
|
|
102
|
+
referenceDate = _ref9[0];
|
|
89
103
|
const viewDate = (0, hooks_2.useViewDate)(referenceDate, viewMode, viewShift);
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
104
|
+
const _ref0 = (0, react_1.useState)(autofocus ? constants_1.AUTOFOCUS : undefined),
|
|
105
|
+
_ref1 = (0, _slicedToArray2.default)(_ref0, 2),
|
|
106
|
+
focus = _ref1[0],
|
|
107
|
+
setFocus = _ref1[1];
|
|
108
|
+
const _ref10 = (0, hooks_1.useDateAndTime)({
|
|
109
|
+
showSeconds,
|
|
110
|
+
value: mode === constants_1.CALENDAR_MODE.DateTime ? value : undefined
|
|
111
|
+
}),
|
|
112
|
+
dateAndTime = _ref10.dateAndTime,
|
|
113
|
+
onTimeChange = _ref10.onTimeChange,
|
|
114
|
+
onDateChange = _ref10.onDateChange,
|
|
115
|
+
onDateAndTimeChange = _ref10.onDateAndTimeChange,
|
|
116
|
+
isDateFilled = _ref10.isDateFilled,
|
|
117
|
+
isTimeFilled = _ref10.isTimeFilled,
|
|
118
|
+
isDateAndTimeFilled = _ref10.isDateAndTimeFilled;
|
|
103
119
|
const applyButtonRef = (0, react_1.useRef)(null);
|
|
104
120
|
const currentButtonRef = (0, react_1.useRef)(null);
|
|
105
121
|
const hoursKeyboardNavigationRef = (0, react_1.useRef)({
|
|
@@ -112,7 +128,10 @@ function CalendarBase(_a) {
|
|
|
112
128
|
focusItem: () => {}
|
|
113
129
|
});
|
|
114
130
|
const setValue = (0, react_1.useCallback)(dates => {
|
|
115
|
-
const
|
|
131
|
+
const _ref11 = (0, utils_2.sortDates)(dates),
|
|
132
|
+
_ref12 = (0, _slicedToArray2.default)(_ref11, 2),
|
|
133
|
+
first = _ref12[0],
|
|
134
|
+
last = _ref12[1];
|
|
116
135
|
if (mode === constants_1.CALENDAR_MODE.MonthRange) {
|
|
117
136
|
setValueState([(0, utils_2.getStartOfTheMonth)(first), (0, utils_2.getEndOfTheMonth)(last)]);
|
|
118
137
|
return;
|
|
@@ -123,19 +142,17 @@ function CalendarBase(_a) {
|
|
|
123
142
|
}
|
|
124
143
|
setValueState([first, (0, utils_2.getEndOfTheDay)(last)]);
|
|
125
144
|
}, [mode, setValueState]);
|
|
126
|
-
const {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
});
|
|
145
|
+
const _ref13 = (0, hooks_2.useRange)({
|
|
146
|
+
setValue
|
|
147
|
+
}),
|
|
148
|
+
preselectedRange = _ref13.preselectedRange,
|
|
149
|
+
continuePreselect = _ref13.continuePreselect,
|
|
150
|
+
completePreselect = _ref13.completePreselect,
|
|
151
|
+
restartPreselect = _ref13.restartPreselect,
|
|
152
|
+
startPreselect = _ref13.startPreselect;
|
|
135
153
|
const getTestId = (0, react_1.useMemo)(() => (0, utils_2.getTestIdBuilder)(testId), [testId]);
|
|
136
|
-
const
|
|
137
|
-
lang
|
|
138
|
-
} = (0, locale_1.useLocale)();
|
|
154
|
+
const _ref14 = (0, locale_1.useLocale)(),
|
|
155
|
+
ctxLang = _ref14.lang;
|
|
139
156
|
const locale = (0, react_1.useMemo)(() => (0, utils_2.getLocale)({
|
|
140
157
|
localeProp,
|
|
141
158
|
ctxLang
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -22,10 +24,11 @@ function useViewDate(referenceDate, viewMode, viewShift) {
|
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
function useRange(_ref) {
|
|
25
|
-
let
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
let setValue = _ref.setValue;
|
|
28
|
+
const _ref2 = (0, react_1.useState)(),
|
|
29
|
+
_ref3 = (0, _slicedToArray2.default)(_ref2, 2),
|
|
30
|
+
preselectedRange = _ref3[0],
|
|
31
|
+
setPreselectedRange = _ref3[1];
|
|
29
32
|
const startPreselect = (0, react_1.useCallback)(date => {
|
|
30
33
|
setPreselectedRange([date, date]);
|
|
31
34
|
}, []);
|
|
@@ -12,9 +12,8 @@ const DecadeView_1 = require("../DecadeView");
|
|
|
12
12
|
const MonthView_1 = require("../MonthView");
|
|
13
13
|
const YearView_1 = require("../YearView");
|
|
14
14
|
function CalendarBody() {
|
|
15
|
-
const
|
|
16
|
-
viewMode
|
|
17
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
15
|
+
const _ref = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
16
|
+
viewMode = _ref.viewMode;
|
|
18
17
|
switch (viewMode) {
|
|
19
18
|
case constants_1.VIEW_MODE.Decade:
|
|
20
19
|
return (0, jsx_runtime_1.jsx)(DecadeView_1.DecadeView, {});
|
|
@@ -42,19 +42,18 @@ const ICONS = {
|
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
function CalendarNavigation() {
|
|
45
|
-
const
|
|
46
|
-
referenceDate,
|
|
47
|
-
viewDate,
|
|
48
|
-
viewShift,
|
|
49
|
-
setViewShift,
|
|
50
|
-
viewMode,
|
|
51
|
-
setViewMode,
|
|
52
|
-
focus,
|
|
53
|
-
setFocus,
|
|
54
|
-
getTestId,
|
|
55
|
-
size,
|
|
56
|
-
firstNotDisableCell
|
|
57
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
45
|
+
const _ref = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
46
|
+
referenceDate = _ref.referenceDate,
|
|
47
|
+
viewDate = _ref.viewDate,
|
|
48
|
+
viewShift = _ref.viewShift,
|
|
49
|
+
setViewShift = _ref.setViewShift,
|
|
50
|
+
viewMode = _ref.viewMode,
|
|
51
|
+
setViewMode = _ref.setViewMode,
|
|
52
|
+
focus = _ref.focus,
|
|
53
|
+
setFocus = _ref.setFocus,
|
|
54
|
+
getTestId = _ref.getTestId,
|
|
55
|
+
size = _ref.size,
|
|
56
|
+
firstNotDisableCell = _ref.firstNotDisableCell;
|
|
58
57
|
const periodName = (0, hooks_1.usePeriodName)();
|
|
59
58
|
const levelButtonDisabled = viewMode === constants_1.VIEW_MODE.Decade;
|
|
60
59
|
const isArrowButtonFocused = focus && [constants_2.NEXT_PERIOD_BUTTON_FOCUS_NAME, constants_2.PREV_PERIOD_BUTTON_FOCUS_NAME].includes(focus);
|
|
@@ -9,23 +9,22 @@ const constants_1 = require("../../constants");
|
|
|
9
9
|
const utils_1 = require("../../utils");
|
|
10
10
|
const CalendarContext_1 = require("../CalendarContext");
|
|
11
11
|
function usePeriodName() {
|
|
12
|
-
const
|
|
13
|
-
viewDate,
|
|
14
|
-
viewMode,
|
|
15
|
-
locale
|
|
16
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
12
|
+
const _ref = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
13
|
+
viewDate = _ref.viewDate,
|
|
14
|
+
viewMode = _ref.viewMode,
|
|
15
|
+
locale = _ref.locale;
|
|
17
16
|
switch (viewMode) {
|
|
18
17
|
case constants_1.VIEW_MODE.Month:
|
|
19
18
|
{
|
|
20
19
|
const year = viewDate.getFullYear();
|
|
21
|
-
return
|
|
20
|
+
return "".concat((0, utils_1.getMonthName)(viewDate, locale), " ").concat(year);
|
|
22
21
|
}
|
|
23
22
|
case constants_1.VIEW_MODE.Year:
|
|
24
23
|
return viewDate.getFullYear().toString();
|
|
25
24
|
case constants_1.VIEW_MODE.Decade:
|
|
26
25
|
{
|
|
27
26
|
const decadeStart = viewDate.getFullYear();
|
|
28
|
-
return
|
|
27
|
+
return "".concat(decadeStart, "-").concat(decadeStart + 9);
|
|
29
28
|
}
|
|
30
29
|
default:
|
|
31
30
|
return '';
|
|
@@ -15,14 +15,11 @@ const react_1 = require("react");
|
|
|
15
15
|
const CalendarContext_1 = require("../CalendarContext");
|
|
16
16
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
17
17
|
function ColumnLabel(_ref) {
|
|
18
|
-
let
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
size,
|
|
24
|
-
getTestId
|
|
25
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
18
|
+
let label = _ref.label,
|
|
19
|
+
className = _ref.className;
|
|
20
|
+
const _ref2 = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
21
|
+
size = _ref2.size,
|
|
22
|
+
getTestId = _ref2.getTestId;
|
|
26
23
|
return (0, jsx_runtime_1.jsx)("div", {
|
|
27
24
|
className: (0, classnames_1.default)(styles_module_scss_1.default.wrapper, className),
|
|
28
25
|
"data-test-id": getTestId('header-item'),
|
|
@@ -18,14 +18,11 @@ const ColumnLabel_1 = require("../ColumnLabel");
|
|
|
18
18
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
19
19
|
const utils_1 = require("./utils");
|
|
20
20
|
function ColumnLabels(_ref) {
|
|
21
|
-
let
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
locale,
|
|
27
|
-
size
|
|
28
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
21
|
+
let className = _ref.className;
|
|
22
|
+
const _ref2 = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
23
|
+
viewMode = _ref2.viewMode,
|
|
24
|
+
locale = _ref2.locale,
|
|
25
|
+
size = _ref2.size;
|
|
29
26
|
const labels = (0, react_1.useMemo)(() => (0, utils_1.getWeekLabels)(locale), [locale]);
|
|
30
27
|
if (viewMode === constants_1.VIEW_MODE.Month) {
|
|
31
28
|
return (0, jsx_runtime_1.jsx)("div", {
|
|
@@ -13,18 +13,17 @@ const CalendarContext_1 = require("../CalendarContext");
|
|
|
13
13
|
const Grid_1 = require("../Grid");
|
|
14
14
|
const utils_2 = require("./utils");
|
|
15
15
|
function DecadeView() {
|
|
16
|
-
const
|
|
17
|
-
referenceDate,
|
|
18
|
-
setViewMode,
|
|
19
|
-
setViewShift,
|
|
20
|
-
preselectedRange,
|
|
21
|
-
continuePreselect,
|
|
22
|
-
restartPreselect,
|
|
23
|
-
mode,
|
|
24
|
-
setValue,
|
|
25
|
-
startPreselect,
|
|
26
|
-
completePreselect
|
|
27
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
16
|
+
const _ref = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
17
|
+
referenceDate = _ref.referenceDate,
|
|
18
|
+
setViewMode = _ref.setViewMode,
|
|
19
|
+
setViewShift = _ref.setViewShift,
|
|
20
|
+
preselectedRange = _ref.preselectedRange,
|
|
21
|
+
continuePreselect = _ref.continuePreselect,
|
|
22
|
+
restartPreselect = _ref.restartPreselect,
|
|
23
|
+
mode = _ref.mode,
|
|
24
|
+
setValue = _ref.setValue,
|
|
25
|
+
startPreselect = _ref.startPreselect,
|
|
26
|
+
completePreselect = _ref.completePreselect;
|
|
28
27
|
const grid = (0, hooks_1.useGrid)({
|
|
29
28
|
buildGrid: utils_2.buildDecadeGrid,
|
|
30
29
|
isTheSameItem: utils_1.isTheSameYear,
|
|
@@ -9,10 +9,9 @@ const buildDecadeGrid = date => {
|
|
|
9
9
|
const result = [];
|
|
10
10
|
const year = date.getFullYear();
|
|
11
11
|
let shift = -1;
|
|
12
|
-
const
|
|
13
|
-
rows,
|
|
14
|
-
columns
|
|
15
|
-
} = constants_1.GRID_SIZE[constants_1.VIEW_MODE.Decade];
|
|
12
|
+
const _constants_1$GRID_SIZ = constants_1.GRID_SIZE[constants_1.VIEW_MODE.Decade],
|
|
13
|
+
rows = _constants_1$GRID_SIZ.rows,
|
|
14
|
+
columns = _constants_1$GRID_SIZ.columns;
|
|
16
15
|
for (let i = 0; i < rows; i++) {
|
|
17
16
|
const row = [];
|
|
18
17
|
for (let j = 0; j < columns; j++) {
|
|
@@ -22,31 +22,28 @@ const hooks_1 = require("./hooks");
|
|
|
22
22
|
const navigation_1 = require("./navigation");
|
|
23
23
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
24
24
|
function Footer() {
|
|
25
|
-
const
|
|
26
|
-
size,
|
|
27
|
-
viewMode,
|
|
28
|
-
mode,
|
|
29
|
-
today,
|
|
30
|
-
setValue,
|
|
31
|
-
dateAndTime,
|
|
32
|
-
onDateAndTimeChange,
|
|
33
|
-
applyButtonRef,
|
|
34
|
-
currentButtonRef,
|
|
35
|
-
hoursKeyboardNavigationRef,
|
|
36
|
-
minutesKeyboardNavigationRef,
|
|
37
|
-
secondsKeyboardNavigationRef,
|
|
38
|
-
showSeconds,
|
|
39
|
-
getTestId,
|
|
40
|
-
referenceDate,
|
|
41
|
-
setViewShift
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
isApplyButtonDisabled
|
|
45
|
-
} = (0, hooks_1.useFooterParams)();
|
|
25
|
+
const _ref = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
26
|
+
size = _ref.size,
|
|
27
|
+
viewMode = _ref.viewMode,
|
|
28
|
+
mode = _ref.mode,
|
|
29
|
+
today = _ref.today,
|
|
30
|
+
setValue = _ref.setValue,
|
|
31
|
+
dateAndTime = _ref.dateAndTime,
|
|
32
|
+
onDateAndTimeChange = _ref.onDateAndTimeChange,
|
|
33
|
+
applyButtonRef = _ref.applyButtonRef,
|
|
34
|
+
currentButtonRef = _ref.currentButtonRef,
|
|
35
|
+
hoursKeyboardNavigationRef = _ref.hoursKeyboardNavigationRef,
|
|
36
|
+
minutesKeyboardNavigationRef = _ref.minutesKeyboardNavigationRef,
|
|
37
|
+
secondsKeyboardNavigationRef = _ref.secondsKeyboardNavigationRef,
|
|
38
|
+
showSeconds = _ref.showSeconds,
|
|
39
|
+
getTestId = _ref.getTestId,
|
|
40
|
+
referenceDate = _ref.referenceDate,
|
|
41
|
+
setViewShift = _ref.setViewShift;
|
|
42
|
+
const _ref2 = (0, hooks_1.useFooterParams)(),
|
|
43
|
+
isApplyButtonDisabled = _ref2.isApplyButtonDisabled;
|
|
46
44
|
const navigation = (0, hooks_1.useFooterKeyboardNavigation)();
|
|
47
|
-
const
|
|
48
|
-
t
|
|
49
|
-
} = (0, locale_1.useLocale)('Calendar');
|
|
45
|
+
const _ref3 = (0, locale_1.useLocale)('Calendar'),
|
|
46
|
+
t = _ref3.t;
|
|
50
47
|
if (![constants_1.CALENDAR_MODE.DateTime, 'time'].includes(mode) || viewMode !== 'month') {
|
|
51
48
|
return null;
|
|
52
49
|
}
|
|
@@ -65,14 +62,15 @@ function Footer() {
|
|
|
65
62
|
return;
|
|
66
63
|
}
|
|
67
64
|
const todayDate = today || new Date();
|
|
68
|
-
const
|
|
69
|
-
year = todayDate.getFullYear(),
|
|
70
|
-
month =
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
65
|
+
const _dateAndTime$year = dateAndTime.year,
|
|
66
|
+
year = _dateAndTime$year === void 0 ? todayDate.getFullYear() : _dateAndTime$year,
|
|
67
|
+
_dateAndTime$month = dateAndTime.month,
|
|
68
|
+
month = _dateAndTime$month === void 0 ? todayDate.getMonth() : _dateAndTime$month,
|
|
69
|
+
_dateAndTime$day = dateAndTime.day,
|
|
70
|
+
day = _dateAndTime$day === void 0 ? todayDate.getMonth() : _dateAndTime$day,
|
|
71
|
+
hours = dateAndTime.hours,
|
|
72
|
+
minutes = dateAndTime.minutes,
|
|
73
|
+
seconds = dateAndTime.seconds;
|
|
76
74
|
const newDate = new Date(year, month, day, hours, minutes, showSeconds ? seconds : 0);
|
|
77
75
|
setValue([newDate, newDate]);
|
|
78
76
|
};
|
|
@@ -9,12 +9,12 @@ const react_1 = require("react");
|
|
|
9
9
|
const CalendarContext_1 = require("../CalendarContext");
|
|
10
10
|
const navigation_1 = require("./navigation");
|
|
11
11
|
function useFooterParams() {
|
|
12
|
-
const
|
|
13
|
-
footerMode =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
const _ref = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
13
|
+
_ref$footerMode = _ref.footerMode,
|
|
14
|
+
footerMode = _ref$footerMode === void 0 ? 'current-time-and-apply' : _ref$footerMode,
|
|
15
|
+
mode = _ref.mode,
|
|
16
|
+
isTimeFilled = _ref.isTimeFilled,
|
|
17
|
+
isDateAndTimeFilled = _ref.isDateAndTimeFilled;
|
|
18
18
|
const isApplyOnlyFooter = footerMode === 'apply-only';
|
|
19
19
|
const isApplyButtonDisabled = mode === 'time' ? !isTimeFilled() : !isDateAndTimeFilled();
|
|
20
20
|
return {
|
|
@@ -24,19 +24,17 @@ function useFooterParams() {
|
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
function useFooterKeyboardNavigation() {
|
|
27
|
-
const
|
|
28
|
-
footerMode,
|
|
29
|
-
isApplyButtonDisabled
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
onFocusLeave
|
|
39
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
27
|
+
const _useFooterParams = useFooterParams(),
|
|
28
|
+
footerMode = _useFooterParams.footerMode,
|
|
29
|
+
isApplyButtonDisabled = _useFooterParams.isApplyButtonDisabled;
|
|
30
|
+
const _ref2 = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
31
|
+
dateAndTime = _ref2.dateAndTime,
|
|
32
|
+
showSeconds = _ref2.showSeconds,
|
|
33
|
+
applyButtonRef = _ref2.applyButtonRef,
|
|
34
|
+
currentButtonRef = _ref2.currentButtonRef,
|
|
35
|
+
minutesKeyboardNavigationRef = _ref2.minutesKeyboardNavigationRef,
|
|
36
|
+
secondsKeyboardNavigationRef = _ref2.secondsKeyboardNavigationRef,
|
|
37
|
+
onFocusLeave = _ref2.onFocusLeave;
|
|
40
38
|
const focusController = (0, react_1.useMemo)(() => new navigation_1.FooterFocusController({
|
|
41
39
|
showSeconds,
|
|
42
40
|
dateAndTime,
|
|
@@ -13,9 +13,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
13
13
|
const Item_1 = require("../Item");
|
|
14
14
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
15
15
|
function Grid(_ref) {
|
|
16
|
-
let
|
|
17
|
-
grid
|
|
18
|
-
} = _ref;
|
|
16
|
+
let grid = _ref.grid;
|
|
19
17
|
return (0, jsx_runtime_1.jsx)("table", {
|
|
20
18
|
className: styles_module_scss_1.default.grid,
|
|
21
19
|
border: 0,
|
|
@@ -26,7 +24,7 @@ function Grid(_ref) {
|
|
|
26
24
|
data: cell,
|
|
27
25
|
className: styles_module_scss_1.default.item
|
|
28
26
|
})
|
|
29
|
-
},
|
|
27
|
+
}, "".concat(cell.label, "_").concat(index)))
|
|
30
28
|
}, index))
|
|
31
29
|
})
|
|
32
30
|
});
|
|
@@ -19,34 +19,29 @@ const hooks_1 = require("./hooks");
|
|
|
19
19
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
20
20
|
const utils_2 = require("./utils");
|
|
21
21
|
function Item(_ref) {
|
|
22
|
-
let
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
isSelected,
|
|
39
|
-
tabIndex,
|
|
40
|
-
onKeyDown
|
|
41
|
-
} = data;
|
|
22
|
+
let data = _ref.data,
|
|
23
|
+
className = _ref.className;
|
|
24
|
+
const date = data.date,
|
|
25
|
+
label = data.label,
|
|
26
|
+
address = data.address,
|
|
27
|
+
onSelect = data.onSelect,
|
|
28
|
+
onPreselect = data.onPreselect,
|
|
29
|
+
onLeave = data.onLeave,
|
|
30
|
+
inRangePosition = data.inRangePosition,
|
|
31
|
+
isCurrent = data.isCurrent,
|
|
32
|
+
isDisabled = data.isDisabled,
|
|
33
|
+
isHoliday = data.isHoliday,
|
|
34
|
+
isInCurrentLevelPeriod = data.isInCurrentLevelPeriod,
|
|
35
|
+
isSelected = data.isSelected,
|
|
36
|
+
tabIndex = data.tabIndex,
|
|
37
|
+
onKeyDown = data.onKeyDown;
|
|
42
38
|
const ref = (0, react_1.useRef)(null);
|
|
43
|
-
const
|
|
44
|
-
focus,
|
|
45
|
-
setFocus,
|
|
46
|
-
size,
|
|
47
|
-
getTestId,
|
|
48
|
-
locale
|
|
49
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
39
|
+
const _ref2 = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
40
|
+
focus = _ref2.focus,
|
|
41
|
+
setFocus = _ref2.setFocus,
|
|
42
|
+
size = _ref2.size,
|
|
43
|
+
getTestId = _ref2.getTestId,
|
|
44
|
+
locale = _ref2.locale;
|
|
50
45
|
(0, utils_1.useLayoutEffect)(() => {
|
|
51
46
|
var _a;
|
|
52
47
|
if ((0, utils_2.stringifyAddress)(address) === focus) {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -9,19 +11,19 @@ const constants_1 = require("../../constants");
|
|
|
9
11
|
const CalendarContext_1 = require("../CalendarContext");
|
|
10
12
|
const utils_1 = require("./utils");
|
|
11
13
|
function useKeyboardFocus(_ref, onKeyDown) {
|
|
12
|
-
let
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
let _ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
15
|
+
row = _ref2[0],
|
|
16
|
+
column = _ref2[1];
|
|
17
|
+
const _ref3 = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
18
|
+
viewMode = _ref3.viewMode,
|
|
19
|
+
viewShift = _ref3.viewShift,
|
|
20
|
+
setViewShift = _ref3.setViewShift,
|
|
21
|
+
setFocus = _ref3.setFocus,
|
|
22
|
+
onFocusLeave = _ref3.onFocusLeave,
|
|
23
|
+
mode = _ref3.mode;
|
|
24
|
+
const _constants_1$GRID_SIZ = constants_1.GRID_SIZE[viewMode],
|
|
25
|
+
rows = _constants_1$GRID_SIZ.rows,
|
|
26
|
+
columns = _constants_1$GRID_SIZ.columns;
|
|
25
27
|
return (0, react_1.useCallback)(e => {
|
|
26
28
|
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
|
|
27
29
|
switch (e.key) {
|
|
@@ -14,20 +14,19 @@ const CalendarContext_1 = require("../CalendarContext");
|
|
|
14
14
|
const Grid_1 = require("../Grid");
|
|
15
15
|
const utils_2 = require("./utils");
|
|
16
16
|
function MonthView() {
|
|
17
|
-
const
|
|
18
|
-
mode,
|
|
19
|
-
viewMode,
|
|
20
|
-
dateAndTime,
|
|
21
|
-
setValue,
|
|
22
|
-
preselectedRange,
|
|
23
|
-
startPreselect,
|
|
24
|
-
continuePreselect,
|
|
25
|
-
completePreselect,
|
|
26
|
-
restartPreselect,
|
|
27
|
-
onDateChange,
|
|
28
|
-
locale,
|
|
29
|
-
hoursKeyboardNavigationRef
|
|
30
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
17
|
+
const _ref = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
18
|
+
mode = _ref.mode,
|
|
19
|
+
viewMode = _ref.viewMode,
|
|
20
|
+
dateAndTime = _ref.dateAndTime,
|
|
21
|
+
setValue = _ref.setValue,
|
|
22
|
+
preselectedRange = _ref.preselectedRange,
|
|
23
|
+
startPreselect = _ref.startPreselect,
|
|
24
|
+
continuePreselect = _ref.continuePreselect,
|
|
25
|
+
completePreselect = _ref.completePreselect,
|
|
26
|
+
restartPreselect = _ref.restartPreselect,
|
|
27
|
+
onDateChange = _ref.onDateChange,
|
|
28
|
+
locale = _ref.locale,
|
|
29
|
+
hoursKeyboardNavigationRef = _ref.hoursKeyboardNavigationRef;
|
|
31
30
|
const onDayKeyDown = (0, react_1.useCallback)(e => {
|
|
32
31
|
var _a, _b;
|
|
33
32
|
if (mode !== constants_1.CALENDAR_MODE.DateTime || viewMode !== 'month') {
|
|
@@ -12,9 +12,7 @@ const buildMonthGrid = (date, locale) => {
|
|
|
12
12
|
const WEEK = (0, utils_1.getStartOfWeek)(locale) === 0 ? constants_2.WEEK_STARTS_WITH_SUNDAY : constants_2.WEEK_STARTS_WITH_MONDAY;
|
|
13
13
|
const startGap = WEEK.indexOf(date.getDay());
|
|
14
14
|
let currentDate = new Date(date.getFullYear(), date.getMonth(), 1 - startGap);
|
|
15
|
-
const
|
|
16
|
-
rows
|
|
17
|
-
} = constants_1.GRID_SIZE[constants_1.VIEW_MODE.Month];
|
|
15
|
+
const rows = constants_1.GRID_SIZE[constants_1.VIEW_MODE.Month].rows;
|
|
18
16
|
for (let i = 0; i < rows; i++) {
|
|
19
17
|
const week = [];
|
|
20
18
|
for (let j = 0; j < WEEK.length; j++) {
|
|
@@ -26,20 +26,17 @@ const utils_1 = require("@snack-uikit/utils");
|
|
|
26
26
|
const CalendarContext_1 = require("../CalendarContext");
|
|
27
27
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
28
28
|
function PeriodPresetsList(_a) {
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
} = _a,
|
|
29
|
+
var items = _a.items,
|
|
30
|
+
onChange = _a.onChange,
|
|
31
|
+
_a$showTitle = _a.showTitle,
|
|
32
|
+
showTitle = _a$showTitle === void 0 ? true : _a$showTitle,
|
|
33
|
+
className = _a.className,
|
|
35
34
|
rest = __rest(_a, ["items", "onChange", "showTitle", "className"]);
|
|
36
|
-
const
|
|
37
|
-
t
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
getTestId
|
|
42
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
35
|
+
const _ref = (0, locale_1.useLocale)('Calendar'),
|
|
36
|
+
t = _ref.t;
|
|
37
|
+
const _ref2 = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
38
|
+
size = _ref2.size,
|
|
39
|
+
getTestId = _ref2.getTestId;
|
|
43
40
|
const listItems = (0, react_1.useMemo)(() => items.map(item => ({
|
|
44
41
|
id: item.id,
|
|
45
42
|
content: {
|
|
@@ -18,20 +18,17 @@ const list_1 = require("@snack-uikit/list");
|
|
|
18
18
|
const utils_1 = require("@snack-uikit/utils");
|
|
19
19
|
const CalendarContext_1 = require("../CalendarContext");
|
|
20
20
|
function TimeList(_a) {
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
'data-test-id': dataTestId
|
|
30
|
-
} = _a,
|
|
21
|
+
var numberOfItems = _a.numberOfItems,
|
|
22
|
+
value = _a.value,
|
|
23
|
+
onChange = _a.onChange,
|
|
24
|
+
className = _a.className,
|
|
25
|
+
onKeyDownGetter = _a.onKeyDownGetter,
|
|
26
|
+
keyboardNavigationRef = _a.keyboardNavigationRef,
|
|
27
|
+
navigationStartRef = _a.navigationStartRef,
|
|
28
|
+
dataTestId = _a['data-test-id'],
|
|
31
29
|
rest = __rest(_a, ["numberOfItems", "value", "onChange", "className", "onKeyDownGetter", "keyboardNavigationRef", "navigationStartRef", 'data-test-id']);
|
|
32
|
-
const
|
|
33
|
-
size
|
|
34
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
30
|
+
const _ref = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
31
|
+
size = _ref.size;
|
|
35
32
|
const itemsRef = (0, react_1.useMemo)(() => new Array(numberOfItems).fill(null).map(() => (0, react_1.createRef)()), [numberOfItems]);
|
|
36
33
|
(0, react_1.useImperativeHandle)(navigationStartRef, () => ({
|
|
37
34
|
focus: () => {
|
|
@@ -20,27 +20,24 @@ const hooks_1 = require("../Footer/hooks");
|
|
|
20
20
|
const TimeList_1 = require("../TimeList");
|
|
21
21
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
22
22
|
function TimePickerBase(_ref) {
|
|
23
|
-
let
|
|
24
|
-
showDivider = true
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
navigationStartRef,
|
|
42
|
-
onFocusLeave
|
|
43
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
23
|
+
let _ref$showDivider = _ref.showDivider,
|
|
24
|
+
showDivider = _ref$showDivider === void 0 ? true : _ref$showDivider;
|
|
25
|
+
const _ref2 = (0, locale_1.useLocale)('Calendar'),
|
|
26
|
+
t = _ref2.t;
|
|
27
|
+
const _ref3 = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
28
|
+
size = _ref3.size,
|
|
29
|
+
mode = _ref3.mode,
|
|
30
|
+
fitToContainer = _ref3.fitToContainer,
|
|
31
|
+
showSeconds = _ref3.showSeconds,
|
|
32
|
+
dateAndTime = _ref3.dateAndTime,
|
|
33
|
+
onTimeChange = _ref3.onTimeChange,
|
|
34
|
+
hoursKeyboardNavigationRef = _ref3.hoursKeyboardNavigationRef,
|
|
35
|
+
minutesKeyboardNavigationRef = _ref3.minutesKeyboardNavigationRef,
|
|
36
|
+
secondsKeyboardNavigationRef = _ref3.secondsKeyboardNavigationRef,
|
|
37
|
+
setFocus = _ref3.setFocus,
|
|
38
|
+
getTestId = _ref3.getTestId,
|
|
39
|
+
navigationStartRef = _ref3.navigationStartRef,
|
|
40
|
+
onFocusLeave = _ref3.onFocusLeave;
|
|
44
41
|
const navigation = (0, hooks_1.useFooterKeyboardNavigation)();
|
|
45
42
|
const handleTabForwardToFooter = (0, react_1.useCallback)(event => {
|
|
46
43
|
if (navigation.focusFooterForward() === 'handled') {
|
|
@@ -13,20 +13,19 @@ const CalendarContext_1 = require("../CalendarContext");
|
|
|
13
13
|
const Grid_1 = require("../Grid");
|
|
14
14
|
const utils_2 = require("./utils");
|
|
15
15
|
function YearView() {
|
|
16
|
-
const
|
|
17
|
-
referenceDate,
|
|
18
|
-
setViewMode,
|
|
19
|
-
setViewShift,
|
|
20
|
-
setFocus,
|
|
21
|
-
preselectedRange,
|
|
22
|
-
continuePreselect,
|
|
23
|
-
restartPreselect,
|
|
24
|
-
locale,
|
|
25
|
-
setValue,
|
|
26
|
-
mode,
|
|
27
|
-
startPreselect,
|
|
28
|
-
completePreselect
|
|
29
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
16
|
+
const _ref = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
17
|
+
referenceDate = _ref.referenceDate,
|
|
18
|
+
setViewMode = _ref.setViewMode,
|
|
19
|
+
setViewShift = _ref.setViewShift,
|
|
20
|
+
setFocus = _ref.setFocus,
|
|
21
|
+
preselectedRange = _ref.preselectedRange,
|
|
22
|
+
continuePreselect = _ref.continuePreselect,
|
|
23
|
+
restartPreselect = _ref.restartPreselect,
|
|
24
|
+
locale = _ref.locale,
|
|
25
|
+
setValue = _ref.setValue,
|
|
26
|
+
mode = _ref.mode,
|
|
27
|
+
startPreselect = _ref.startPreselect,
|
|
28
|
+
completePreselect = _ref.completePreselect;
|
|
30
29
|
const grid = (0, hooks_1.useGrid)({
|
|
31
30
|
buildGrid: utils_2.buildYearGrid,
|
|
32
31
|
isTheSameItem: utils_1.isTheSameMonth,
|
|
@@ -9,10 +9,9 @@ const buildYearGrid = date => {
|
|
|
9
9
|
const result = [];
|
|
10
10
|
const year = date.getFullYear();
|
|
11
11
|
let month = 0;
|
|
12
|
-
const
|
|
13
|
-
rows,
|
|
14
|
-
columns
|
|
15
|
-
} = constants_1.GRID_SIZE[constants_1.VIEW_MODE.Year];
|
|
12
|
+
const _constants_1$GRID_SIZ = constants_1.GRID_SIZE[constants_1.VIEW_MODE.Year],
|
|
13
|
+
rows = _constants_1$GRID_SIZ.rows,
|
|
14
|
+
columns = _constants_1$GRID_SIZ.columns;
|
|
16
15
|
for (let i = 0; i < rows; i++) {
|
|
17
16
|
const row = [];
|
|
18
17
|
for (let j = 0; j < columns; j++) {
|
package/dist/cjs/hooks.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -11,39 +13,34 @@ const CalendarContext_1 = require("./helperComponents/CalendarContext");
|
|
|
11
13
|
const utils_1 = require("./helperComponents/Item/utils");
|
|
12
14
|
const utils_2 = require("./utils");
|
|
13
15
|
function useGrid(_ref) {
|
|
14
|
-
let
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
firstNotDisableCell,
|
|
36
|
-
isDateFilled
|
|
37
|
-
} = (0, react_1.useContext)(CalendarContext_1.CalendarContext);
|
|
16
|
+
let onSelect = _ref.onSelect,
|
|
17
|
+
onPreselect = _ref.onPreselect,
|
|
18
|
+
onLeave = _ref.onLeave,
|
|
19
|
+
buildGrid = _ref.buildGrid,
|
|
20
|
+
isTheSameItem = _ref.isTheSameItem,
|
|
21
|
+
getItemLabel = _ref.getItemLabel,
|
|
22
|
+
isInPeriod = _ref.isInPeriod,
|
|
23
|
+
onKeyDown = _ref.onKeyDown;
|
|
24
|
+
const _ref2 = (0, react_1.useContext)(CalendarContext_1.CalendarContext),
|
|
25
|
+
today = _ref2.today,
|
|
26
|
+
showHolidays = _ref2.showHolidays,
|
|
27
|
+
preselectedRange = _ref2.preselectedRange,
|
|
28
|
+
value = _ref2.value,
|
|
29
|
+
dateAndTime = _ref2.dateAndTime,
|
|
30
|
+
mode = _ref2.mode,
|
|
31
|
+
viewDate = _ref2.viewDate,
|
|
32
|
+
viewMode = _ref2.viewMode,
|
|
33
|
+
focus = _ref2.focus,
|
|
34
|
+
buildCellProps = _ref2.buildCellProps,
|
|
35
|
+
firstNotDisableCell = _ref2.firstNotDisableCell,
|
|
36
|
+
isDateFilled = _ref2.isDateFilled;
|
|
38
37
|
return (0, react_1.useMemo)(() => {
|
|
39
38
|
let hasFocusInGrid = false;
|
|
40
39
|
let currentItem;
|
|
41
40
|
let hasFoundFirstNotDisableCell = false;
|
|
42
|
-
const result = buildGrid(viewDate).map(row => row.map(
|
|
43
|
-
let
|
|
44
|
-
|
|
45
|
-
address
|
|
46
|
-
} = _ref2;
|
|
41
|
+
const result = buildGrid(viewDate).map(row => row.map(_ref3 => {
|
|
42
|
+
let date = _ref3.date,
|
|
43
|
+
address = _ref3.address;
|
|
47
44
|
var _a, _b, _c, _d;
|
|
48
45
|
let isDisabled = false;
|
|
49
46
|
let isHoliday = undefined;
|
|
@@ -101,46 +98,43 @@ function useGrid(_ref) {
|
|
|
101
98
|
return result;
|
|
102
99
|
}, [buildCellProps, buildGrid, dateAndTime === null || dateAndTime === void 0 ? void 0 : dateAndTime.day, dateAndTime === null || dateAndTime === void 0 ? void 0 : dateAndTime.month, dateAndTime === null || dateAndTime === void 0 ? void 0 : dateAndTime.year, firstNotDisableCell, focus, getItemLabel, isDateFilled, isInPeriod, isTheSameItem, mode, onKeyDown, onLeave, onPreselect, onSelect, preselectedRange, showHolidays, today, value, viewDate, viewMode]);
|
|
103
100
|
}
|
|
104
|
-
function useDateAndTime(
|
|
105
|
-
let
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
101
|
+
function useDateAndTime(_ref4) {
|
|
102
|
+
let showSeconds = _ref4.showSeconds,
|
|
103
|
+
value = _ref4.value;
|
|
104
|
+
const _ref5 = (0, react_1.useState)(() => {
|
|
105
|
+
if (Array.isArray(value)) {
|
|
106
|
+
const initialValue = value[0];
|
|
107
|
+
return {
|
|
108
|
+
year: initialValue.getFullYear(),
|
|
109
|
+
month: initialValue.getMonth(),
|
|
110
|
+
day: initialValue.getDate(),
|
|
111
|
+
hours: initialValue.getHours(),
|
|
112
|
+
minutes: initialValue.getMinutes(),
|
|
113
|
+
seconds: initialValue.getSeconds()
|
|
114
|
+
};
|
|
115
|
+
}
|
|
112
116
|
return {
|
|
113
|
-
year:
|
|
114
|
-
month:
|
|
115
|
-
day:
|
|
116
|
-
hours:
|
|
117
|
-
minutes:
|
|
118
|
-
seconds:
|
|
117
|
+
year: undefined,
|
|
118
|
+
month: undefined,
|
|
119
|
+
day: undefined,
|
|
120
|
+
hours: value === null || value === void 0 ? void 0 : value.hours,
|
|
121
|
+
minutes: value === null || value === void 0 ? void 0 : value.minutes,
|
|
122
|
+
seconds: value === null || value === void 0 ? void 0 : value.seconds
|
|
119
123
|
};
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
day: undefined,
|
|
125
|
-
hours: value === null || value === void 0 ? void 0 : value.hours,
|
|
126
|
-
minutes: value === null || value === void 0 ? void 0 : value.minutes,
|
|
127
|
-
seconds: value === null || value === void 0 ? void 0 : value.seconds
|
|
128
|
-
};
|
|
129
|
-
});
|
|
124
|
+
}),
|
|
125
|
+
_ref6 = (0, _slicedToArray2.default)(_ref5, 2),
|
|
126
|
+
dateAndTime = _ref6[0],
|
|
127
|
+
setDateAndTime = _ref6[1];
|
|
130
128
|
const isDateFilled = (0, react_1.useCallback)(() => {
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
day
|
|
135
|
-
} = dateAndTime;
|
|
129
|
+
const year = dateAndTime.year,
|
|
130
|
+
month = dateAndTime.month,
|
|
131
|
+
day = dateAndTime.day;
|
|
136
132
|
return [year, month, day].every(value => value !== undefined);
|
|
137
133
|
}, [dateAndTime]);
|
|
138
134
|
const isTimeFilled = (0, react_1.useCallback)(() => {
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
seconds
|
|
143
|
-
} = dateAndTime;
|
|
135
|
+
const hours = dateAndTime.hours,
|
|
136
|
+
minutes = dateAndTime.minutes,
|
|
137
|
+
seconds = dateAndTime.seconds;
|
|
144
138
|
return [hours, minutes, ...(showSeconds ? [seconds] : [])].every(value => value !== undefined);
|
|
145
139
|
}, [dateAndTime, showSeconds]);
|
|
146
140
|
const isDateAndTimeFilled = (0, react_1.useCallback)(() => isTimeFilled() && isDateFilled(), [isDateFilled, isTimeFilled]);
|
package/dist/cjs/utils.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -59,7 +61,10 @@ const getInRangePosition = (date, viewMode, range) => {
|
|
|
59
61
|
if (!range) {
|
|
60
62
|
return constants_1.IN_RANGE_POSITION.Out;
|
|
61
63
|
}
|
|
62
|
-
const
|
|
64
|
+
const _ref = (0, exports.sortDates)(range),
|
|
65
|
+
_ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
66
|
+
startDate = _ref2[0],
|
|
67
|
+
endDate = _ref2[1];
|
|
63
68
|
const isStart = (0, exports.isTheSameItem)(viewMode, date, startDate);
|
|
64
69
|
const isEnd = (0, exports.isTheSameItem)(viewMode, date, endDate);
|
|
65
70
|
if (isStart && isEnd) {
|
|
@@ -71,7 +76,10 @@ const getInRangePosition = (date, viewMode, range) => {
|
|
|
71
76
|
if (isEnd) {
|
|
72
77
|
return constants_1.IN_RANGE_POSITION.End;
|
|
73
78
|
}
|
|
74
|
-
const
|
|
79
|
+
const _range$map$sort = range.map(date => date.valueOf()).sort(),
|
|
80
|
+
_range$map$sort2 = (0, _slicedToArray2.default)(_range$map$sort, 2),
|
|
81
|
+
start = _range$map$sort2[0],
|
|
82
|
+
end = _range$map$sort2[1];
|
|
75
83
|
return date.valueOf() >= start && date.valueOf() <= end ? constants_1.IN_RANGE_POSITION.In : constants_1.IN_RANGE_POSITION.Out;
|
|
76
84
|
};
|
|
77
85
|
exports.getInRangePosition = getInRangePosition;
|
|
@@ -85,17 +93,16 @@ const getStartOfTheYear = date => new Date(new Date(date.getFullYear(), 0, 1).va
|
|
|
85
93
|
exports.getStartOfTheYear = getStartOfTheYear;
|
|
86
94
|
const getEndOfTheYear = date => new Date(new Date(date.getFullYear() + 1, 0, 1).valueOf() - 1);
|
|
87
95
|
exports.getEndOfTheYear = getEndOfTheYear;
|
|
88
|
-
const getTestIdBuilder = testId => prefix => testId ?
|
|
96
|
+
const getTestIdBuilder = testId => prefix => testId ? "".concat(prefix, "-").concat(testId) : undefined;
|
|
89
97
|
exports.getTestIdBuilder = getTestIdBuilder;
|
|
90
98
|
const getNavigatorLocale = () => {
|
|
91
99
|
var _a;
|
|
92
100
|
return (0, utils_1.isBrowser)() ? (_a = navigator === null || navigator === void 0 ? void 0 : navigator.language) !== null && _a !== void 0 ? _a : 'ru-RU' : 'ru-RU';
|
|
93
101
|
};
|
|
94
102
|
const getLocale = function () {
|
|
95
|
-
let {
|
|
96
|
-
localeProp,
|
|
97
|
-
ctxLang
|
|
98
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
103
|
+
let _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
104
|
+
localeProp = _ref3.localeProp,
|
|
105
|
+
ctxLang = _ref3.ctxLang;
|
|
99
106
|
return localeProp || new Intl.Locale(ctxLang ? ctxLang.replace('_', '-') : getNavigatorLocale());
|
|
100
107
|
};
|
|
101
108
|
exports.getLocale = getLocale;
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Calendar",
|
|
7
|
-
"version": "0.14.2
|
|
7
|
+
"version": "0.14.2",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@snack-uikit/button": "0.19.19",
|
|
40
40
|
"@snack-uikit/divider": "3.2.12",
|
|
41
41
|
"@snack-uikit/icons": "0.27.7",
|
|
42
|
-
"@snack-uikit/list": "0.33.3
|
|
42
|
+
"@snack-uikit/list": "0.33.3",
|
|
43
43
|
"@snack-uikit/utils": "4.0.2",
|
|
44
44
|
"classnames": "2.5.1",
|
|
45
45
|
"uncontrollable": "8.0.4",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"@snack-uikit/locale": "*"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "864821fceaa6bbb61080166d14f1682fa16e3f85"
|
|
52
52
|
}
|