@gravity-ui/date-components 1.1.0 → 1.2.0
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/cjs/components/Calendar/Calendar.css +37 -37
- package/dist/cjs/components/Calendar/Calendar.js +2 -4
- package/dist/cjs/components/Calendar/CalendarBase.js +2 -4
- package/dist/cjs/components/Calendar/RangeCalendar.js +2 -4
- package/dist/cjs/components/Calendar/hooks/useCalendarCellProps.js +2 -4
- package/dist/cjs/components/Calendar/hooks/useCalendarGridProps.js +11 -0
- package/dist/cjs/components/Calendar/hooks/useCalendarProps.js +2 -4
- package/dist/cjs/components/Calendar/hooks/useCalendarState.js +2 -4
- package/dist/cjs/components/Calendar/hooks/useRangeCalendarState.js +13 -21
- package/dist/cjs/components/Calendar/i18n/index.js +3 -5
- package/dist/cjs/components/Calendar/index.js +8 -21
- package/dist/cjs/components/DateField/DateField.js +3 -16
- package/dist/cjs/components/DateField/hooks/useDateFieldProps.js +25 -20
- package/dist/cjs/components/DateField/hooks/useDateFieldState.js +23 -167
- package/dist/cjs/components/DateField/i18n/index.js +3 -5
- package/dist/cjs/components/DateField/index.js +4 -17
- package/dist/cjs/components/DateField/utils.d.ts +14 -3
- package/dist/cjs/components/DateField/utils.js +172 -3
- package/dist/cjs/components/DatePicker/DatePicker.css +6 -0
- package/dist/cjs/components/DatePicker/DatePicker.d.ts +2 -2
- package/dist/cjs/components/DatePicker/DatePicker.js +8 -48
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.d.ts +20 -0
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js +121 -0
- package/dist/cjs/components/DatePicker/hooks/useDatePickerState.d.ts +4 -5
- package/dist/cjs/components/DatePicker/hooks/useDatePickerState.js +17 -4
- package/dist/cjs/components/DatePicker/i18n/index.js +3 -5
- package/dist/cjs/components/DatePicker/index.d.ts +1 -0
- package/dist/cjs/components/DatePicker/index.js +4 -16
- package/dist/cjs/components/RelativeDateField/RelativeDateField.js +2 -4
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +2 -4
- package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js +2 -4
- package/dist/cjs/components/RelativeDateField/index.js +4 -17
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.css +1 -0
- package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js +2 -4
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +32 -43
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +2 -4
- package/dist/cjs/components/RelativeDatePicker/i18n/index.js +3 -5
- package/dist/cjs/components/RelativeDatePicker/index.js +4 -17
- package/dist/cjs/components/hooks/useControlledState.js +2 -4
- package/dist/cjs/components/index.js +6 -19
- package/dist/cjs/index.js +2 -15
- package/dist/esm/components/Calendar/Calendar.css +37 -37
- package/dist/esm/components/Calendar/hooks/useCalendarGridProps.js +11 -0
- package/dist/esm/components/Calendar/hooks/useRangeCalendarState.js +11 -16
- package/dist/esm/components/DateField/DateField.js +1 -11
- package/dist/esm/components/DateField/hooks/useDateFieldProps.js +24 -17
- package/dist/esm/components/DateField/hooks/useDateFieldState.js +19 -161
- package/dist/esm/components/DateField/utils.d.ts +14 -3
- package/dist/esm/components/DateField/utils.js +165 -2
- package/dist/esm/components/DatePicker/DatePicker.css +6 -0
- package/dist/esm/components/DatePicker/DatePicker.d.ts +2 -2
- package/dist/esm/components/DatePicker/DatePicker.js +9 -46
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.d.ts +20 -0
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js +117 -0
- package/dist/esm/components/DatePicker/hooks/useDatePickerState.d.ts +4 -5
- package/dist/esm/components/DatePicker/hooks/useDatePickerState.js +15 -0
- package/dist/esm/components/DatePicker/index.d.ts +1 -0
- package/dist/esm/components/DatePicker/index.js +1 -0
- package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.css +1 -0
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +30 -38
- package/package.json +37 -33
- package/dist/cjs/components/DatePicker/DesktopCalendar.d.ts +0 -17
- package/dist/cjs/components/DatePicker/DesktopCalendar.js +0 -65
- package/dist/esm/components/DatePicker/DesktopCalendar.d.ts +0 -17
- package/dist/esm/components/DatePicker/DesktopCalendar.js +0 -57
|
@@ -50,43 +50,6 @@
|
|
|
50
50
|
height: 100%;
|
|
51
51
|
padding: 0 var(--_--calendar-padding) var(--_--calendar-padding);
|
|
52
52
|
}
|
|
53
|
-
.g-date-calendar__content_animation_forward {
|
|
54
|
-
transform: translateX(-100%);
|
|
55
|
-
animation: calendar-forward 0.25s ease forwards;
|
|
56
|
-
}
|
|
57
|
-
.g-date-calendar__content_animation_forward.g-date-calendar__current-state {
|
|
58
|
-
left: -100%;
|
|
59
|
-
}
|
|
60
|
-
.g-date-calendar__content_animation_backward {
|
|
61
|
-
transform: translateX(0);
|
|
62
|
-
animation: calendar-backward 0.25s ease forwards;
|
|
63
|
-
}
|
|
64
|
-
.g-date-calendar__content_animation_backward.g-date-calendar__current-state {
|
|
65
|
-
left: 100%;
|
|
66
|
-
}
|
|
67
|
-
.g-date-calendar__content_animation_zoom-in {
|
|
68
|
-
transform: scale();
|
|
69
|
-
}
|
|
70
|
-
.g-date-calendar__content_animation_zoom-in.g-date-calendar__previous-state {
|
|
71
|
-
animation: calendar-zoom-in-hiding 0.25s ease forwards;
|
|
72
|
-
}
|
|
73
|
-
.g-date-calendar__content_animation_zoom-in.g-date-calendar__current-state {
|
|
74
|
-
animation: calendar-zoom-in-showing 0.25s ease forwards;
|
|
75
|
-
}
|
|
76
|
-
.g-date-calendar__content_animation_zoom-out {
|
|
77
|
-
transform: scale();
|
|
78
|
-
}
|
|
79
|
-
.g-date-calendar__content_animation_zoom-out.g-date-calendar__current-state {
|
|
80
|
-
animation: calendar-zoom-out-showing 0.25s ease forwards;
|
|
81
|
-
}
|
|
82
|
-
.g-date-calendar__content_animation_zoom-out.g-date-calendar__previous-state {
|
|
83
|
-
animation: calendar-zoom-out-hiding 0.25s ease forwards;
|
|
84
|
-
}
|
|
85
|
-
@media screen and (prefers-reduced-motion: reduce), (update: slow) {
|
|
86
|
-
.g-date-calendar__content[class] {
|
|
87
|
-
animation-duration: 0.001ms;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
53
|
@keyframes calendar-forward {
|
|
91
54
|
from {
|
|
92
55
|
transform: translateX(0);
|
|
@@ -143,6 +106,43 @@
|
|
|
143
106
|
transform: scale(2);
|
|
144
107
|
}
|
|
145
108
|
}
|
|
109
|
+
.g-date-calendar__content_animation_forward {
|
|
110
|
+
transform: translateX(-100%);
|
|
111
|
+
animation: calendar-forward 0.25s ease forwards;
|
|
112
|
+
}
|
|
113
|
+
.g-date-calendar__content_animation_forward.g-date-calendar__current-state {
|
|
114
|
+
left: -100%;
|
|
115
|
+
}
|
|
116
|
+
.g-date-calendar__content_animation_backward {
|
|
117
|
+
transform: translateX(0);
|
|
118
|
+
animation: calendar-backward 0.25s ease forwards;
|
|
119
|
+
}
|
|
120
|
+
.g-date-calendar__content_animation_backward.g-date-calendar__current-state {
|
|
121
|
+
left: 100%;
|
|
122
|
+
}
|
|
123
|
+
.g-date-calendar__content_animation_zoom-in {
|
|
124
|
+
transform: scale();
|
|
125
|
+
}
|
|
126
|
+
.g-date-calendar__content_animation_zoom-in.g-date-calendar__previous-state {
|
|
127
|
+
animation: calendar-zoom-in-hiding 0.25s ease forwards;
|
|
128
|
+
}
|
|
129
|
+
.g-date-calendar__content_animation_zoom-in.g-date-calendar__current-state {
|
|
130
|
+
animation: calendar-zoom-in-showing 0.25s ease forwards;
|
|
131
|
+
}
|
|
132
|
+
.g-date-calendar__content_animation_zoom-out {
|
|
133
|
+
transform: scale();
|
|
134
|
+
}
|
|
135
|
+
.g-date-calendar__content_animation_zoom-out.g-date-calendar__current-state {
|
|
136
|
+
animation: calendar-zoom-out-showing 0.25s ease forwards;
|
|
137
|
+
}
|
|
138
|
+
.g-date-calendar__content_animation_zoom-out.g-date-calendar__previous-state {
|
|
139
|
+
animation: calendar-zoom-out-hiding 0.25s ease forwards;
|
|
140
|
+
}
|
|
141
|
+
@media screen and (prefers-reduced-motion: reduce), (update: slow) {
|
|
142
|
+
.g-date-calendar__content[class] {
|
|
143
|
+
animation-duration: 0.001ms;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
146
|
.g-date-calendar__grid-rowgroup {
|
|
147
147
|
display: grid;
|
|
148
148
|
gap: var(--_--calendar-days-gap);
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.Calendar = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
7
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const react_1 = __importDefault(require("react"));
|
|
6
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
9
7
|
const CalendarBase_1 = require("./CalendarBase");
|
|
10
8
|
const useCalendarState_1 = require("./hooks/useCalendarState");
|
|
11
9
|
require("./Calendar.css");
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.CalendarBase = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
7
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const react_1 = __importDefault(require("react"));
|
|
6
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
9
7
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
10
8
|
const cn_1 = require("../../utils/cn");
|
|
11
9
|
const useCalendarCellProps_1 = require("./hooks/useCalendarCellProps");
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.RangeCalendar = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
7
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const react_1 = __importDefault(require("react"));
|
|
6
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
9
7
|
const CalendarBase_1 = require("./CalendarBase");
|
|
10
8
|
const useRangeCalendarState_1 = require("./hooks/useRangeCalendarState");
|
|
11
9
|
require("./Calendar.css");
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.useCalendarCellProps = void 0;
|
|
7
|
-
const
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
8
6
|
const date_utils_1 = require("@gravity-ui/date-utils");
|
|
9
7
|
function useCalendarCellProps(date, state) {
|
|
10
8
|
const ref = react_1.default.useRef(null);
|
|
@@ -12,36 +12,47 @@ function useCalendarGridProps(state) {
|
|
|
12
12
|
? `${state.startDate.year()} — ${state.endDate.year()}`
|
|
13
13
|
: state.focusedDate.format(state.mode === 'days' ? 'MMMM YYYY' : 'YYYY'), 'aria-disabled': state.disabled ? 'true' : undefined, 'aria-readonly': state.readOnly ? 'true' : undefined }, focusWithinProps), { onKeyDown: (e) => {
|
|
14
14
|
if (e.key === 'ArrowRight') {
|
|
15
|
+
e.preventDefault();
|
|
15
16
|
state.focusNextCell();
|
|
16
17
|
}
|
|
17
18
|
else if (e.key === 'ArrowLeft') {
|
|
19
|
+
e.preventDefault();
|
|
18
20
|
state.focusPreviousCell();
|
|
19
21
|
}
|
|
20
22
|
else if (e.key === 'ArrowDown') {
|
|
23
|
+
e.preventDefault();
|
|
21
24
|
state.focusNextRow();
|
|
22
25
|
}
|
|
23
26
|
else if (e.key === 'ArrowUp') {
|
|
27
|
+
e.preventDefault();
|
|
24
28
|
state.focusPreviousRow();
|
|
25
29
|
}
|
|
26
30
|
else if (e.key === 'PageDown') {
|
|
31
|
+
e.preventDefault();
|
|
27
32
|
state.focusNextPage(e.shiftKey);
|
|
28
33
|
}
|
|
29
34
|
else if (e.key === 'PageUp') {
|
|
35
|
+
e.preventDefault();
|
|
30
36
|
state.focusPreviousPage(e.shiftKey);
|
|
31
37
|
}
|
|
32
38
|
else if (e.key === 'End') {
|
|
39
|
+
e.preventDefault();
|
|
33
40
|
state.focusSectionEnd();
|
|
34
41
|
}
|
|
35
42
|
else if (e.key === 'Home') {
|
|
43
|
+
e.preventDefault();
|
|
36
44
|
state.focusSectionStart();
|
|
37
45
|
}
|
|
38
46
|
else if (e.code === 'Minus') {
|
|
47
|
+
e.preventDefault();
|
|
39
48
|
state.zoomOut();
|
|
40
49
|
}
|
|
41
50
|
else if (e.code === 'Equal') {
|
|
51
|
+
e.preventDefault();
|
|
42
52
|
state.zoomIn();
|
|
43
53
|
}
|
|
44
54
|
else if (e.key === 'Enter' || e.key === ' ') {
|
|
55
|
+
e.preventDefault();
|
|
45
56
|
state.selectDate(state.focusedDate);
|
|
46
57
|
}
|
|
47
58
|
} });
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.useCalendarProps = void 0;
|
|
7
|
-
const
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
8
6
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
9
7
|
const i18n_1 = require("../i18n");
|
|
10
8
|
const buttonDisabledClassName = 'yc-button_disabled g-button_disabled';
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.useCalendarState = void 0;
|
|
7
|
-
const
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
8
6
|
const useControlledState_1 = require("../../hooks/useControlledState");
|
|
9
7
|
const dates_1 = require("../../utils/dates");
|
|
10
8
|
const utils_1 = require("../utils");
|
|
@@ -1,35 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
3
|
exports.useRangeCalendarState = void 0;
|
|
18
|
-
const
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
19
6
|
const useControlledState_1 = require("../../hooks/useControlledState");
|
|
20
7
|
const utils_1 = require("../utils");
|
|
21
8
|
const useCalendarState_1 = require("./useCalendarState");
|
|
22
9
|
function useRangeCalendarState(props) {
|
|
23
10
|
var _a, _b;
|
|
24
|
-
const { value: valueProp, defaultValue, onUpdate } = props, calendarProps = __rest(props, ["value", "defaultValue", "onUpdate"]);
|
|
11
|
+
const { value: valueProp, defaultValue, onUpdate } = props, calendarProps = tslib_1.__rest(props, ["value", "defaultValue", "onUpdate"]);
|
|
25
12
|
const [value, setValue] = (0, useControlledState_1.useControlledState)(valueProp, defaultValue, onUpdate);
|
|
26
13
|
const [anchorDate, setAnchorDateState] = react_1.default.useState();
|
|
27
14
|
const calendar = (0, useCalendarState_1.useCalendarState)(Object.assign(Object.assign({}, calendarProps), { value: (_a = value === null || value === void 0 ? void 0 : value.start) !== null && _a !== void 0 ? _a : null }));
|
|
28
15
|
const highlightedRange = anchorDate
|
|
29
16
|
? makeRange(anchorDate, calendar.focusedDate, calendar.mode)
|
|
30
17
|
: (_b = (value && makeRange(value.start, value.end, calendar.mode))) !== null && _b !== void 0 ? _b : undefined;
|
|
31
|
-
const
|
|
32
|
-
|
|
18
|
+
const minMode = calendar.availableModes[0];
|
|
19
|
+
const selectDate = (date, force = false) => {
|
|
20
|
+
if (props.disabled) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (!force && calendar.mode !== minMode) {
|
|
24
|
+
calendar.zoomIn();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (props.readOnly) {
|
|
33
28
|
return;
|
|
34
29
|
}
|
|
35
30
|
date = (0, utils_1.constrainValue)(date, props.minValue, props.maxValue);
|
|
@@ -49,9 +44,6 @@ function useRangeCalendarState(props) {
|
|
|
49
44
|
setValue,
|
|
50
45
|
selectDate,
|
|
51
46
|
anchorDate, setAnchorDate: setAnchorDateState, highlightedRange,
|
|
52
|
-
selectFocusedDate() {
|
|
53
|
-
selectDate(calendar.focusedDate);
|
|
54
|
-
},
|
|
55
47
|
isSelected(date) {
|
|
56
48
|
if (!highlightedRange) {
|
|
57
49
|
return false;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.i18n = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
7
5
|
const i18n_1 = require("@gravity-ui/uikit/i18n");
|
|
8
6
|
const cn_1 = require("../../../utils/cn");
|
|
9
|
-
const en_json_1 = __importDefault(require("./en.json"));
|
|
10
|
-
const ru_json_1 = __importDefault(require("./ru.json"));
|
|
7
|
+
const en_json_1 = tslib_1.__importDefault(require("./en.json"));
|
|
8
|
+
const ru_json_1 = tslib_1.__importDefault(require("./ru.json"));
|
|
11
9
|
exports.i18n = (0, i18n_1.addComponentKeysets)({ en: en_json_1.default, ru: ru_json_1.default }, `${cn_1.NAMESPACE}calendar`);
|
|
@@ -1,23 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
__exportStar(require("./
|
|
20
|
-
__exportStar(require("./hooks/
|
|
21
|
-
__exportStar(require("./hooks/
|
|
22
|
-
__exportStar(require("./hooks/
|
|
23
|
-
__exportStar(require("./hooks/
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./Calendar"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./RangeCalendar"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./hooks/useCalendarState"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./hooks/useRangeCalendarState"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./hooks/useCalendarProps"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./hooks/useCalendarGridProps"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./hooks/useCalendarCellProps"), exports);
|
|
@@ -1,22 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
3
|
exports.DateField = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
18
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
|
-
const react_1 = __importDefault(require("react"));
|
|
6
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
20
7
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
21
8
|
const cn_1 = require("../../utils/cn");
|
|
22
9
|
const useDateFieldProps_1 = require("./hooks/useDateFieldProps");
|
|
@@ -24,7 +11,7 @@ const useDateFieldState_1 = require("./hooks/useDateFieldState");
|
|
|
24
11
|
require("./DateField.css");
|
|
25
12
|
const b = (0, cn_1.block)('date-field');
|
|
26
13
|
function DateField(_a) {
|
|
27
|
-
var { className } = _a, props = __rest(_a, ["className"]);
|
|
14
|
+
var { className } = _a, props = tslib_1.__rest(_a, ["className"]);
|
|
28
15
|
const state = (0, useDateFieldState_1.useDateFieldState)(props);
|
|
29
16
|
const { inputProps } = (0, useDateFieldProps_1.useDateFieldProps)(state, props);
|
|
30
17
|
const [isActive, setActive] = react_1.default.useState(false);
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.useDateFieldProps = void 0;
|
|
7
|
-
const
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
8
6
|
const utils_1 = require("../utils");
|
|
9
7
|
function useDateFieldProps(state, props) {
|
|
10
8
|
const inputRef = react_1.default.useRef(null);
|
|
@@ -86,12 +84,16 @@ function useDateFieldProps(state, props) {
|
|
|
86
84
|
if (state.selectedSectionIndexes !== null) {
|
|
87
85
|
return;
|
|
88
86
|
}
|
|
89
|
-
const input =
|
|
87
|
+
const input = e.target;
|
|
88
|
+
const isAutofocus = !inputRef.current;
|
|
90
89
|
setTimeout(() => {
|
|
91
90
|
if (!input || input !== inputRef.current) {
|
|
92
91
|
return;
|
|
93
92
|
}
|
|
94
|
-
if (
|
|
93
|
+
if (isAutofocus) {
|
|
94
|
+
state.focusSectionInPosition(0);
|
|
95
|
+
}
|
|
96
|
+
else if (
|
|
95
97
|
// avoid selecting all sections when focusing empty field without value
|
|
96
98
|
input.value.length &&
|
|
97
99
|
Number(input.selectionEnd) - Number(input.selectionStart) ===
|
|
@@ -147,7 +149,7 @@ function useDateFieldProps(state, props) {
|
|
|
147
149
|
e.preventDefault();
|
|
148
150
|
state.clearSection();
|
|
149
151
|
}
|
|
150
|
-
else if (e.key === 'a' && e[
|
|
152
|
+
else if (e.key === 'a' && (e['ctrlKey'] || e['metaKey'])) {
|
|
151
153
|
e.preventDefault();
|
|
152
154
|
setSelectedSections('all');
|
|
153
155
|
}
|
|
@@ -169,32 +171,35 @@ function useDateFieldProps(state, props) {
|
|
|
169
171
|
onBeforeInput(e) {
|
|
170
172
|
e.preventDefault();
|
|
171
173
|
// @ts-expect-error
|
|
172
|
-
const key = e.
|
|
173
|
-
|
|
174
|
-
if (key != null) {
|
|
174
|
+
const key = e.data;
|
|
175
|
+
if (key !== undefined && key !== null) {
|
|
175
176
|
state.onInput(key);
|
|
176
177
|
}
|
|
177
178
|
},
|
|
178
179
|
onPaste(e) {
|
|
180
|
+
e.preventDefault();
|
|
179
181
|
if (state.readOnly) {
|
|
180
|
-
e.preventDefault();
|
|
181
182
|
return;
|
|
182
183
|
}
|
|
183
|
-
const pastedValue = e.clipboardData.getData('text');
|
|
184
|
-
if (state.
|
|
185
|
-
e.preventDefault();
|
|
186
|
-
}
|
|
187
|
-
else if (state.selectedSectionIndexes &&
|
|
184
|
+
const pastedValue = (0, utils_1.cleanString)(e.clipboardData.getData('text'));
|
|
185
|
+
if (state.selectedSectionIndexes &&
|
|
188
186
|
state.selectedSectionIndexes.startIndex ===
|
|
189
187
|
state.selectedSectionIndexes.endIndex) {
|
|
190
188
|
const activeSection = state.sections[state.selectedSectionIndexes.startIndex];
|
|
189
|
+
const digitsOnly = /^\d+$/.test(pastedValue);
|
|
190
|
+
const lettersOnly = /^[a-zA-Z]+$/.test(pastedValue);
|
|
191
191
|
const isValidValue = Boolean(activeSection) &&
|
|
192
|
-
((activeSection.contentType === 'digit' &&
|
|
193
|
-
activeSection.contentType === 'letter');
|
|
194
|
-
if (
|
|
195
|
-
|
|
192
|
+
((activeSection.contentType === 'digit' && digitsOnly) ||
|
|
193
|
+
(activeSection.contentType === 'letter' && lettersOnly));
|
|
194
|
+
if (isValidValue) {
|
|
195
|
+
state.onInput(pastedValue);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (digitsOnly || lettersOnly) {
|
|
199
|
+
return;
|
|
196
200
|
}
|
|
197
201
|
}
|
|
202
|
+
state.setValueFromString(pastedValue);
|
|
198
203
|
},
|
|
199
204
|
},
|
|
200
205
|
},
|