@gravity-ui/date-components 3.2.4 → 3.3.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/README.md +89 -1
- package/dist/cjs/components/CalendarView/Calendar.css.map +1 -1
- package/dist/cjs/components/CalendarView/CalendarView.js +4 -2
- package/dist/cjs/components/CalendarView/CalendarView.js.map +1 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js +12 -10
- package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js +2 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -1
- package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js +19 -9
- package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js.map +1 -1
- package/dist/cjs/components/CalendarView/i18n/index.d.ts +8 -0
- package/dist/cjs/components/DateField/DateField.js +4 -1
- package/dist/cjs/components/DateField/DateField.js.map +1 -1
- package/dist/cjs/components/DateField/i18n/index.d.ts +8 -0
- package/dist/cjs/components/DateField/utils.d.ts +5 -1
- package/dist/cjs/components/DateField/utils.js +26 -22
- package/dist/cjs/components/DateField/utils.js.map +1 -1
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js +6 -2
- package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js.map +1 -1
- package/dist/cjs/components/DatePicker/i18n/index.d.ts +8 -0
- package/dist/cjs/components/RangeDateField/RangeDateField.d.ts +1 -1
- package/dist/cjs/components/RangeDateField/RangeDateField.js +4 -1
- package/dist/cjs/components/RangeDateField/RangeDateField.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js +3 -2
- package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +4 -3
- package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/cjs/components/RangeDateSelection/i18n/index.d.ts +8 -0
- package/dist/cjs/components/RelativeDateField/RelativeDateField.js +4 -1
- package/dist/cjs/components/RelativeDateField/RelativeDateField.js.map +1 -1
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +7 -3
- package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -1
- package/dist/cjs/components/RelativeDatePicker/i18n/index.d.ts +8 -0
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +4 -1
- package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js +18 -3
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Control/i18n/index.d.ts +8 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.css.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js +11 -19
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js +4 -3
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.d.ts +10 -2
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +6 -3
- package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js +4 -2
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.d.ts +5 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +31 -75
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.d.ts +8 -0
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +5 -2
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js +5 -5
- package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js +3 -8
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.d.ts +8 -0
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +0 -11
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +5 -32
- package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -1
- package/dist/cjs/components/RelativeRangeDatePicker/i18n/en.json +0 -3
- package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.d.ts +10 -2
- package/dist/cjs/components/RelativeRangeDatePicker/i18n/ru.json +0 -3
- package/dist/cjs/components/RelativeRangeDatePicker/utils.d.ts +5 -2
- package/dist/cjs/components/RelativeRangeDatePicker/utils.js +5 -4
- package/dist/cjs/components/RelativeRangeDatePicker/utils.js.map +1 -1
- package/dist/cjs/components/types/helpers.d.ts +1 -0
- package/dist/cjs/components/types/helpers.js +3 -0
- package/dist/cjs/components/types/helpers.js.map +1 -0
- package/dist/cjs/components/types/index.d.ts +1 -0
- package/dist/cjs/components/types/index.js.map +1 -1
- package/dist/cjs/components/utils/dates.d.ts +1 -1
- package/dist/cjs/components/utils/dates.js +2 -2
- package/dist/cjs/components/utils/dates.js.map +1 -1
- package/dist/cjs/components/utils/validation/datePicker.d.ts +3 -1
- package/dist/cjs/components/utils/validation/datePicker.js +4 -4
- package/dist/cjs/components/utils/validation/datePicker.js.map +1 -1
- package/dist/cjs/components/utils/validation/i18n/en.json +6 -1
- package/dist/cjs/components/utils/validation/i18n/index.d.ts +10 -2
- package/dist/cjs/components/utils/validation/i18n/ru.json +7 -1
- package/dist/cjs/components/utils/validation/relativeRangeDatePicker.d.ts +15 -0
- package/dist/cjs/components/utils/validation/relativeRangeDatePicker.js +34 -0
- package/dist/cjs/components/utils/validation/relativeRangeDatePicker.js.map +1 -0
- package/dist/cjs/package.json +1 -1
- package/dist/esm/components/CalendarView/Calendar.css.map +1 -1
- package/dist/esm/components/CalendarView/CalendarView.js +5 -3
- package/dist/esm/components/CalendarView/CalendarView.js.map +1 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js +12 -10
- package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js +3 -2
- package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -1
- package/dist/esm/components/CalendarView/hooks/useCalendarProps.js +20 -10
- package/dist/esm/components/CalendarView/hooks/useCalendarProps.js.map +1 -1
- package/dist/esm/components/CalendarView/i18n/index.d.ts +8 -0
- package/dist/esm/components/DateField/DateField.js +4 -1
- package/dist/esm/components/DateField/DateField.js.map +1 -1
- package/dist/esm/components/DateField/i18n/index.d.ts +8 -0
- package/dist/esm/components/DateField/utils.d.ts +5 -1
- package/dist/esm/components/DateField/utils.js +26 -22
- package/dist/esm/components/DateField/utils.js.map +1 -1
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js +6 -2
- package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js.map +1 -1
- package/dist/esm/components/DatePicker/i18n/index.d.ts +8 -0
- package/dist/esm/components/RangeDateField/RangeDateField.d.ts +1 -1
- package/dist/esm/components/RangeDateField/RangeDateField.js +4 -1
- package/dist/esm/components/RangeDateField/RangeDateField.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.js +3 -2
- package/dist/esm/components/RangeDateSelection/RangeDateSelection.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +4 -3
- package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/esm/components/RangeDateSelection/i18n/index.d.ts +8 -0
- package/dist/esm/components/RelativeDateField/RelativeDateField.js +4 -1
- package/dist/esm/components/RelativeDateField/RelativeDateField.js.map +1 -1
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +7 -3
- package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -1
- package/dist/esm/components/RelativeDatePicker/i18n/index.d.ts +8 -0
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +4 -1
- package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js +18 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Control/i18n/index.d.ts +8 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.css.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js +11 -19
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js +4 -3
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.d.ts +10 -2
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +5 -2
- package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js +4 -2
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.d.ts +5 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +30 -75
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.d.ts +8 -0
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +5 -2
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js +5 -5
- package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js +3 -8
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.d.ts +8 -0
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +0 -11
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +5 -31
- package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -1
- package/dist/esm/components/RelativeRangeDatePicker/i18n/en.json +0 -3
- package/dist/esm/components/RelativeRangeDatePicker/i18n/index.d.ts +10 -2
- package/dist/esm/components/RelativeRangeDatePicker/i18n/ru.json +0 -3
- package/dist/esm/components/RelativeRangeDatePicker/utils.d.ts +5 -2
- package/dist/esm/components/RelativeRangeDatePicker/utils.js +5 -4
- package/dist/esm/components/RelativeRangeDatePicker/utils.js.map +1 -1
- package/dist/esm/components/types/helpers.d.ts +1 -0
- package/dist/esm/components/types/helpers.js +2 -0
- package/dist/esm/components/types/helpers.js.map +1 -0
- package/dist/esm/components/types/index.d.ts +1 -0
- package/dist/esm/components/types/index.js.map +1 -1
- package/dist/esm/components/utils/dates.d.ts +1 -1
- package/dist/esm/components/utils/dates.js +2 -2
- package/dist/esm/components/utils/dates.js.map +1 -1
- package/dist/esm/components/utils/validation/datePicker.d.ts +3 -1
- package/dist/esm/components/utils/validation/datePicker.js +4 -4
- package/dist/esm/components/utils/validation/datePicker.js.map +1 -1
- package/dist/esm/components/utils/validation/i18n/en.json +6 -1
- package/dist/esm/components/utils/validation/i18n/index.d.ts +10 -2
- package/dist/esm/components/utils/validation/i18n/ru.json +7 -1
- package/dist/esm/components/utils/validation/relativeRangeDatePicker.d.ts +15 -0
- package/dist/esm/components/utils/validation/relativeRangeDatePicker.js +31 -0
- package/dist/esm/components/utils/validation/relativeRangeDatePicker.js.map +1 -0
- package/dist/esm/package.json +1 -1
- package/package.json +27 -24
|
@@ -1,186 +1,142 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.allPresets = exports.DEFAULT_OTHERS_PRESETS = exports.DEFAULT_TIME_PRESETS = exports.DEFAULT_DATE_PRESETS = void 0;
|
|
4
|
+
exports.PresetTitle = PresetTitle;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
6
|
const i18n_1 = require("./i18n/index.js");
|
|
7
|
+
function PresetTitle({ title, }) {
|
|
8
|
+
const { t } = i18n_1.i18n.useTranslation();
|
|
9
|
+
return t(title);
|
|
10
|
+
}
|
|
5
11
|
exports.DEFAULT_DATE_PRESETS = [
|
|
6
12
|
{
|
|
7
13
|
from: 'now-1d',
|
|
8
14
|
to: 'now',
|
|
9
|
-
|
|
10
|
-
return (0, i18n_1.i18n)('Last day');
|
|
11
|
-
},
|
|
15
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last day" }),
|
|
12
16
|
},
|
|
13
17
|
{
|
|
14
18
|
from: 'now-3d',
|
|
15
19
|
to: 'now',
|
|
16
|
-
|
|
17
|
-
return (0, i18n_1.i18n)('Last 3 days');
|
|
18
|
-
},
|
|
20
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last 3 days" }),
|
|
19
21
|
},
|
|
20
22
|
{
|
|
21
23
|
from: 'now-1w',
|
|
22
24
|
to: 'now',
|
|
23
|
-
|
|
24
|
-
return (0, i18n_1.i18n)('Last week');
|
|
25
|
-
},
|
|
25
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last week" }),
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
from: 'now-1M',
|
|
29
29
|
to: 'now',
|
|
30
|
-
|
|
31
|
-
return (0, i18n_1.i18n)('Last month');
|
|
32
|
-
},
|
|
30
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last month" }),
|
|
33
31
|
},
|
|
34
32
|
{
|
|
35
33
|
from: 'now-3M',
|
|
36
34
|
to: 'now',
|
|
37
|
-
|
|
38
|
-
return (0, i18n_1.i18n)('Last 3 months');
|
|
39
|
-
},
|
|
35
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last 3 months" }),
|
|
40
36
|
},
|
|
41
37
|
{
|
|
42
38
|
from: 'now-6M',
|
|
43
39
|
to: 'now',
|
|
44
|
-
|
|
45
|
-
return (0, i18n_1.i18n)('Last 6 months');
|
|
46
|
-
},
|
|
40
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last 6 months" }),
|
|
47
41
|
},
|
|
48
42
|
{
|
|
49
43
|
from: 'now-1y',
|
|
50
44
|
to: 'now',
|
|
51
|
-
|
|
52
|
-
return (0, i18n_1.i18n)('Last year');
|
|
53
|
-
},
|
|
45
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last year" }),
|
|
54
46
|
},
|
|
55
47
|
{
|
|
56
48
|
from: 'now-3y',
|
|
57
49
|
to: 'now',
|
|
58
|
-
|
|
59
|
-
return (0, i18n_1.i18n)('Last 3 years');
|
|
60
|
-
},
|
|
50
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last 3 years" }),
|
|
61
51
|
},
|
|
62
52
|
];
|
|
63
53
|
exports.DEFAULT_TIME_PRESETS = [
|
|
64
54
|
{
|
|
65
55
|
from: 'now-5m',
|
|
66
56
|
to: 'now',
|
|
67
|
-
|
|
68
|
-
return (0, i18n_1.i18n)('Last 5 minutes');
|
|
69
|
-
},
|
|
57
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last 5 minutes" }),
|
|
70
58
|
},
|
|
71
59
|
{
|
|
72
60
|
from: 'now-15m',
|
|
73
61
|
to: 'now',
|
|
74
|
-
|
|
75
|
-
return (0, i18n_1.i18n)('Last 15 minutes');
|
|
76
|
-
},
|
|
62
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last 15 minutes" }),
|
|
77
63
|
},
|
|
78
64
|
{
|
|
79
65
|
from: 'now-30m',
|
|
80
66
|
to: 'now',
|
|
81
|
-
|
|
82
|
-
return (0, i18n_1.i18n)('Last 30 minutes');
|
|
83
|
-
},
|
|
67
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last 30 minutes" }),
|
|
84
68
|
},
|
|
85
69
|
{
|
|
86
70
|
from: 'now-1h',
|
|
87
71
|
to: 'now',
|
|
88
|
-
|
|
89
|
-
return (0, i18n_1.i18n)('Last hour');
|
|
90
|
-
},
|
|
72
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last hour" }),
|
|
91
73
|
},
|
|
92
74
|
{
|
|
93
75
|
from: 'now-3h',
|
|
94
76
|
to: 'now',
|
|
95
|
-
|
|
96
|
-
return (0, i18n_1.i18n)('Last 3 hours');
|
|
97
|
-
},
|
|
77
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last 3 hours" }),
|
|
98
78
|
},
|
|
99
79
|
{
|
|
100
80
|
from: 'now-6h',
|
|
101
81
|
to: 'now',
|
|
102
|
-
|
|
103
|
-
return (0, i18n_1.i18n)('Last 6 hours');
|
|
104
|
-
},
|
|
82
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last 6 hours" }),
|
|
105
83
|
},
|
|
106
84
|
{
|
|
107
85
|
from: 'now-12h',
|
|
108
86
|
to: 'now',
|
|
109
|
-
|
|
110
|
-
return (0, i18n_1.i18n)('Last 12 hours');
|
|
111
|
-
},
|
|
87
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Last 12 hours" }),
|
|
112
88
|
},
|
|
113
89
|
];
|
|
114
90
|
exports.DEFAULT_OTHERS_PRESETS = [
|
|
115
91
|
{
|
|
116
92
|
from: 'now/d',
|
|
117
93
|
to: 'now/d',
|
|
118
|
-
|
|
119
|
-
return (0, i18n_1.i18n)('Today');
|
|
120
|
-
},
|
|
94
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Today" }),
|
|
121
95
|
},
|
|
122
96
|
{
|
|
123
97
|
from: 'now-1d/d',
|
|
124
98
|
to: 'now-1d/d',
|
|
125
|
-
|
|
126
|
-
return (0, i18n_1.i18n)('Yesterday');
|
|
127
|
-
},
|
|
99
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Yesterday" }),
|
|
128
100
|
},
|
|
129
101
|
{
|
|
130
102
|
from: 'now-2d/d',
|
|
131
103
|
to: 'now-2d/d',
|
|
132
|
-
|
|
133
|
-
return (0, i18n_1.i18n)('Day before yesterday');
|
|
134
|
-
},
|
|
104
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "Day before yesterday" }),
|
|
135
105
|
},
|
|
136
106
|
{
|
|
137
107
|
from: 'now/w',
|
|
138
108
|
to: 'now/w',
|
|
139
|
-
|
|
140
|
-
return (0, i18n_1.i18n)('This week');
|
|
141
|
-
},
|
|
109
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "This week" }),
|
|
142
110
|
},
|
|
143
111
|
{
|
|
144
112
|
from: 'now/M',
|
|
145
113
|
to: 'now/M',
|
|
146
|
-
|
|
147
|
-
return (0, i18n_1.i18n)('This month');
|
|
148
|
-
},
|
|
114
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "This month" }),
|
|
149
115
|
},
|
|
150
116
|
{
|
|
151
117
|
from: 'now/y',
|
|
152
118
|
to: 'now/y',
|
|
153
|
-
|
|
154
|
-
return (0, i18n_1.i18n)('This year');
|
|
155
|
-
},
|
|
119
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "This year" }),
|
|
156
120
|
},
|
|
157
121
|
{
|
|
158
122
|
from: 'now/d',
|
|
159
123
|
to: 'now',
|
|
160
|
-
|
|
161
|
-
return (0, i18n_1.i18n)('From start of day');
|
|
162
|
-
},
|
|
124
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "From start of day" }),
|
|
163
125
|
},
|
|
164
126
|
{
|
|
165
127
|
from: 'now/w',
|
|
166
128
|
to: 'now',
|
|
167
|
-
|
|
168
|
-
return (0, i18n_1.i18n)('From start of week');
|
|
169
|
-
},
|
|
129
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "From start of week" }),
|
|
170
130
|
},
|
|
171
131
|
{
|
|
172
132
|
from: 'now/M',
|
|
173
133
|
to: 'now',
|
|
174
|
-
|
|
175
|
-
return (0, i18n_1.i18n)('From start of month');
|
|
176
|
-
},
|
|
134
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "From start of month" }),
|
|
177
135
|
},
|
|
178
136
|
{
|
|
179
137
|
from: 'now/y',
|
|
180
138
|
to: 'now',
|
|
181
|
-
|
|
182
|
-
return (0, i18n_1.i18n)('From start of year');
|
|
183
|
-
},
|
|
139
|
+
title: (0, jsx_runtime_1.jsx)(PresetTitle, { title: "From start of year" }),
|
|
184
140
|
},
|
|
185
141
|
];
|
|
186
142
|
exports.allPresets = exports.DEFAULT_TIME_PRESETS.concat(exports.DEFAULT_DATE_PRESETS, exports.DEFAULT_OTHERS_PRESETS);
|
package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultPresets.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Presets/defaultPresets.
|
|
1
|
+
{"version":3,"file":"defaultPresets.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Presets/defaultPresets.tsx"],"names":[],"mappings":"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","sourcesContent":["import {i18n} from './i18n';\n\nexport interface Preset {\n from: string;\n to: string;\n title: React.ReactNode;\n}\n\nexport function PresetTitle({\n title,\n}: {\n title: keyof (typeof i18n.keysetData)['g-date-relative-range-date-picker-presets'];\n}) {\n const {t} = i18n.useTranslation();\n return t(title);\n}\n\nexport const DEFAULT_DATE_PRESETS: Preset[] = [\n {\n from: 'now-1d',\n to: 'now',\n title: <PresetTitle title=\"Last day\" />,\n },\n {\n from: 'now-3d',\n to: 'now',\n title: <PresetTitle title=\"Last 3 days\" />,\n },\n {\n from: 'now-1w',\n to: 'now',\n title: <PresetTitle title=\"Last week\" />,\n },\n {\n from: 'now-1M',\n to: 'now',\n title: <PresetTitle title=\"Last month\" />,\n },\n {\n from: 'now-3M',\n to: 'now',\n title: <PresetTitle title=\"Last 3 months\" />,\n },\n {\n from: 'now-6M',\n to: 'now',\n title: <PresetTitle title=\"Last 6 months\" />,\n },\n {\n from: 'now-1y',\n to: 'now',\n title: <PresetTitle title=\"Last year\" />,\n },\n {\n from: 'now-3y',\n to: 'now',\n title: <PresetTitle title=\"Last 3 years\" />,\n },\n];\n\nexport const DEFAULT_TIME_PRESETS: Preset[] = [\n {\n from: 'now-5m',\n to: 'now',\n title: <PresetTitle title=\"Last 5 minutes\" />,\n },\n {\n from: 'now-15m',\n to: 'now',\n title: <PresetTitle title=\"Last 15 minutes\" />,\n },\n {\n from: 'now-30m',\n to: 'now',\n title: <PresetTitle title=\"Last 30 minutes\" />,\n },\n {\n from: 'now-1h',\n to: 'now',\n title: <PresetTitle title=\"Last hour\" />,\n },\n {\n from: 'now-3h',\n to: 'now',\n title: <PresetTitle title=\"Last 3 hours\" />,\n },\n {\n from: 'now-6h',\n to: 'now',\n title: <PresetTitle title=\"Last 6 hours\" />,\n },\n {\n from: 'now-12h',\n to: 'now',\n title: <PresetTitle title=\"Last 12 hours\" />,\n },\n];\n\nexport const DEFAULT_OTHERS_PRESETS: Preset[] = [\n {\n from: 'now/d',\n to: 'now/d',\n title: <PresetTitle title=\"Today\" />,\n },\n {\n from: 'now-1d/d',\n to: 'now-1d/d',\n title: <PresetTitle title=\"Yesterday\" />,\n },\n {\n from: 'now-2d/d',\n to: 'now-2d/d',\n title: <PresetTitle title=\"Day before yesterday\" />,\n },\n {\n from: 'now/w',\n to: 'now/w',\n title: <PresetTitle title=\"This week\" />,\n },\n {\n from: 'now/M',\n to: 'now/M',\n title: <PresetTitle title=\"This month\" />,\n },\n {\n from: 'now/y',\n to: 'now/y',\n title: <PresetTitle title=\"This year\" />,\n },\n {\n from: 'now/d',\n to: 'now',\n title: <PresetTitle title=\"From start of day\" />,\n },\n {\n from: 'now/w',\n to: 'now',\n title: <PresetTitle title=\"From start of week\" />,\n },\n {\n from: 'now/M',\n to: 'now',\n title: <PresetTitle title=\"From start of month\" />,\n },\n {\n from: 'now/y',\n to: 'now',\n title: <PresetTitle title=\"From start of year\" />,\n },\n];\n\nexport const allPresets = DEFAULT_TIME_PRESETS.concat(DEFAULT_DATE_PRESETS, DEFAULT_OTHERS_PRESETS);\n"]}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
export declare const i18n: ((key: "Range" | "Last 5 minutes" | "Last 15 minutes" | "Last 30 minutes" | "Last hour" | "Last 3 hours" | "Last 6 hours" | "Last 12 hours" | "Last day" | "Last 3 days" | "Last week" | "Last month" | "Last 3 months" | "Last 6 months" | "Last year" | "Last 3 years" | "Today" | "Yesterday" | "Day before yesterday" | "This week" | "This month" | "This year" | "From start of day" | "From start of week" | "From start of month" | "From start of year" | "Previous month" | "Last second" | "Last minute" | "Main" | "Other" | "From" | "To" | "Last {count} second" | "Last {count} minute" | "Last {count} hour" | "Last {count} day" | "Last {count} week" | "Last {count} month" | "Last {count} year", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
Translation: import("react").ComponentType<{
|
|
3
|
+
children: (props: {
|
|
4
|
+
t: (key: "Range" | "Last 5 minutes" | "Last 15 minutes" | "Last 30 minutes" | "Last hour" | "Last 3 hours" | "Last 6 hours" | "Last 12 hours" | "Last day" | "Last 3 days" | "Last week" | "Last month" | "Last 3 months" | "Last 6 months" | "Last year" | "Last 3 years" | "Today" | "Yesterday" | "Day before yesterday" | "This week" | "This month" | "This year" | "From start of day" | "From start of week" | "From start of month" | "From start of year" | "Previous month" | "Last second" | "Last minute" | "Main" | "Other" | "From" | "To" | "Last {count} second" | "Last {count} minute" | "Last {count} hour" | "Last {count} day" | "Last {count} week" | "Last {count} month" | "Last {count} year", params?: import("@gravity-ui/i18n").Params) => string;
|
|
5
|
+
}) => React.ReactNode;
|
|
6
|
+
}>;
|
|
7
|
+
useTranslation: () => {
|
|
8
|
+
t: (key: "Range" | "Last 5 minutes" | "Last 15 minutes" | "Last 30 minutes" | "Last hour" | "Last 3 hours" | "Last 6 hours" | "Last 12 hours" | "Last day" | "Last 3 days" | "Last week" | "Last month" | "Last 3 months" | "Last 6 months" | "Last year" | "Last 3 years" | "Today" | "Yesterday" | "Day before yesterday" | "This week" | "This month" | "This year" | "From start of day" | "From start of week" | "From start of month" | "From start of year" | "Previous month" | "Last second" | "Last minute" | "Main" | "Other" | "From" | "To" | "Last {count} second" | "Last {count} minute" | "Last {count} hour" | "Last {count} day" | "Last {count} week" | "Last {count} month" | "Last {count} year", params?: import("@gravity-ui/i18n").Params) => string;
|
|
9
|
+
};
|
|
2
10
|
keysetData: {
|
|
3
11
|
"g-date-relative-range-date-picker-presets": Record<"Range" | "Last 5 minutes" | "Last 15 minutes" | "Last 30 minutes" | "Last hour" | "Last 3 hours" | "Last 6 hours" | "Last 12 hours" | "Last day" | "Last 3 days" | "Last week" | "Last month" | "Last 3 months" | "Last 6 months" | "Last year" | "Last 3 years" | "Today" | "Yesterday" | "Day before yesterday" | "This week" | "This month" | "This year" | "From start of day" | "From start of week" | "From start of month" | "From start of year" | "Previous month" | "Last second" | "Last minute" | "Main" | "Other" | "From" | "To" | "Last {count} second" | "Last {count} minute" | "Last {count} hour" | "Last {count} day" | "Last {count} week" | "Last {count} month" | "Last {count} year", import("@gravity-ui/i18n").KeyData>;
|
|
4
12
|
};
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import type { DateTime } from '@gravity-ui/date-utils';
|
|
2
|
+
import type { ExtractFunctionType } from "../../../types/index.js";
|
|
2
3
|
import type { Preset } from "./defaultPresets.js";
|
|
3
|
-
|
|
4
|
+
import { i18n } from "./i18n/index.js";
|
|
5
|
+
export declare function getPresetTitle(start: string, end: string, presets?: Preset[], t?: ExtractFunctionType<typeof i18n>): import("react").ReactNode;
|
|
4
6
|
export declare function filterPresets(presets: Preset[], minValue?: DateTime): Preset[];
|
|
5
7
|
export interface PresetTab {
|
|
6
8
|
id: string;
|
|
7
9
|
title: string;
|
|
8
10
|
presets: Preset[];
|
|
9
11
|
}
|
|
10
|
-
export declare function getDefaultPresetTabs({ withTime, minValue, }: {
|
|
12
|
+
export declare function getDefaultPresetTabs({ withTime, minValue, t, }: {
|
|
11
13
|
minValue?: DateTime;
|
|
12
14
|
withTime?: boolean;
|
|
15
|
+
t?: (key: 'Main' | 'Other') => string;
|
|
13
16
|
}): PresetTab[];
|
|
14
17
|
export declare function filterPresetTabs(tabs: PresetTab[], { minValue }?: {
|
|
15
18
|
minValue?: DateTime;
|
|
@@ -26,7 +26,7 @@ const countUnit = {
|
|
|
26
26
|
M: 'Last {count} month',
|
|
27
27
|
y: 'Last {count} year',
|
|
28
28
|
};
|
|
29
|
-
function getPresetTitle(start, end, presets = defaultPresets_1.allPresets) {
|
|
29
|
+
function getPresetTitle(start, end, presets = defaultPresets_1.allPresets, t = i18n_1.i18n) {
|
|
30
30
|
const startText = start.replace(/\s+/g, '');
|
|
31
31
|
const endText = end.replace(/\s+/g, '');
|
|
32
32
|
for (const preset of presets) {
|
|
@@ -40,7 +40,7 @@ function getPresetTitle(start, end, presets = defaultPresets_1.allPresets) {
|
|
|
40
40
|
const [, count, unit] = match;
|
|
41
41
|
if (isDateUnit(unit)) {
|
|
42
42
|
const template = Number(count) === 1 ? oneUnit[unit] : countUnit[unit];
|
|
43
|
-
return (
|
|
43
|
+
return t(template, { count });
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -65,11 +65,11 @@ function filterPresets(presets, minValue) {
|
|
|
65
65
|
return true;
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
function getDefaultPresetTabs({ withTime, minValue, }) {
|
|
68
|
+
function getDefaultPresetTabs({ withTime, minValue, t = i18n_1.i18n, }) {
|
|
69
69
|
const tabs = [];
|
|
70
70
|
const mainTab = {
|
|
71
71
|
id: 'main',
|
|
72
|
-
title: (
|
|
72
|
+
title: t('Main'),
|
|
73
73
|
presets: [],
|
|
74
74
|
};
|
|
75
75
|
const mainPresets = defaultPresets_1.DEFAULT_DATE_PRESETS;
|
|
@@ -82,7 +82,7 @@ function getDefaultPresetTabs({ withTime, minValue, }) {
|
|
|
82
82
|
}
|
|
83
83
|
const otherTab = {
|
|
84
84
|
id: 'other',
|
|
85
|
-
title: (
|
|
85
|
+
title: t('Other'),
|
|
86
86
|
presets: filterPresets(defaultPresets_1.DEFAULT_OTHERS_PRESETS, minValue),
|
|
87
87
|
};
|
|
88
88
|
if (otherTab.presets.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Presets/utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Presets/utils.ts"],"names":[],"mappings":";;AAoCA,wCA2BC;AAMD,sCAmBC;AAQD,oDAqCC;AAED,4CAWC;AAlJD,uDAAqD;AAKrD,wDAK0B;AAE1B,0CAA4B;AAE5B,MAAM,MAAM,GAAG,wBAAwB,CAAC;AAExC,MAAM,OAAO,GAAG;IACZ,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,WAAW;CACR,CAAC;AAEX,MAAM,SAAS,GAAG;IACd,CAAC,EAAE,qBAAqB;IACxB,CAAC,EAAE,qBAAqB;IACxB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,oBAAoB;IACvB,CAAC,EAAE,mBAAmB;CAChB,CAAC;AAEX,SAAgB,cAAc,CAC1B,KAAa,EACb,GAAW,EACX,UAAoB,2BAAU,EAC9B,IAAsC,WAAI;IAE1C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAExC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YACrD,OAAO,MAAM,CAAC,KAAK,CAAC;QACxB,CAAC;IACL,CAAC;IAED,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;YAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACvE,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,aAAa,CAAC,OAAiB,EAAE,QAAmB;IAChE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAA,0BAAa,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,IAAA,0BAAa,EAAC,MAAM,CAAC,EAAE,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAErD,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAQD,SAAgB,oBAAoB,CAAC,EACjC,QAAQ,EACR,QAAQ,EACR,CAAC,GAAG,WAAI,GAKX;IACG,MAAM,IAAI,GAAgB,EAAE,CAAC;IAE7B,MAAM,OAAO,GAAc;QACvB,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,EAAE;KACd,CAAC;IACF,MAAM,WAAW,GAAG,qCAAoB,CAAC;IACzC,IAAI,QAAQ,EAAE,CAAC;QACX,WAAW,CAAC,OAAO,CAAC,GAAG,qCAAoB,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEvD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,QAAQ,GAAc;QACxB,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;QACjB,OAAO,EAAE,aAAa,CAAC,uCAAsB,EAAE,QAAQ,CAAC;KAC3D,CAAC;IAEF,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAiB,EAAE,EAAC,QAAQ,KAA2B,EAAE;IACtF,OAAO,IAAI,CAAC,MAAM,CAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,iCACD,GAAG,KACN,OAAO,IACT,CAAC;QACP,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC","sourcesContent":["import {dateTimeParse} from '@gravity-ui/date-utils';\nimport type {DateTime} from '@gravity-ui/date-utils';\n\nimport type {ExtractFunctionType} from '../../../types';\n\nimport {\n DEFAULT_DATE_PRESETS,\n DEFAULT_OTHERS_PRESETS,\n DEFAULT_TIME_PRESETS,\n allPresets,\n} from './defaultPresets';\nimport type {Preset} from './defaultPresets';\nimport {i18n} from './i18n';\n\nconst lastRe = /^now-(\\d+)([smhdwMy])$/;\n\nconst oneUnit = {\n s: 'Last second',\n m: 'Last minute',\n h: 'Last hour',\n d: 'Last day',\n w: 'Last week',\n M: 'Last month',\n y: 'Last year',\n} as const;\n\nconst countUnit = {\n s: 'Last {count} second',\n m: 'Last {count} minute',\n h: 'Last {count} hour',\n d: 'Last {count} day',\n w: 'Last {count} week',\n M: 'Last {count} month',\n y: 'Last {count} year',\n} as const;\n\nexport function getPresetTitle(\n start: string,\n end: string,\n presets: Preset[] = allPresets,\n t: ExtractFunctionType<typeof i18n> = i18n,\n) {\n const startText = start.replace(/\\s+/g, '');\n const endText = end.replace(/\\s+/g, '');\n\n for (const preset of presets) {\n if (preset.from === startText && preset.to === endText) {\n return preset.title;\n }\n }\n\n if (end === 'now') {\n const match = lastRe.exec(startText);\n if (match) {\n const [, count, unit] = match;\n if (isDateUnit(unit)) {\n const template = Number(count) === 1 ? oneUnit[unit] : countUnit[unit];\n return t(template, {count});\n }\n }\n }\n\n return startText + ' — ' + endText;\n}\n\nfunction isDateUnit(value: string): value is 's' | 'm' | 'h' | 'd' | 'w' | 'M' | 'y' {\n return ['s', 'm', 'h', 'd', 'w', 'M', 'y'].includes(value);\n}\n\nexport function filterPresets(presets: Preset[], minValue?: DateTime) {\n return presets.filter((preset) => {\n const from = dateTimeParse(preset.from);\n const to = dateTimeParse(preset.to, {roundUp: true});\n\n if (!from || !to) {\n return false;\n }\n\n if (to.isBefore(from)) {\n return false;\n }\n\n if (minValue && from.isBefore(minValue)) {\n return false;\n }\n\n return true;\n });\n}\n\nexport interface PresetTab {\n id: string;\n title: string;\n presets: Preset[];\n}\n\nexport function getDefaultPresetTabs({\n withTime,\n minValue,\n t = i18n,\n}: {\n minValue?: DateTime;\n withTime?: boolean;\n t?: (key: 'Main' | 'Other') => string;\n}) {\n const tabs: PresetTab[] = [];\n\n const mainTab: PresetTab = {\n id: 'main',\n title: t('Main'),\n presets: [],\n };\n const mainPresets = DEFAULT_DATE_PRESETS;\n if (withTime) {\n mainPresets.unshift(...DEFAULT_TIME_PRESETS);\n }\n mainTab.presets = filterPresets(mainPresets, minValue);\n\n if (mainTab.presets.length > 0) {\n tabs.push(mainTab);\n }\n\n const otherTab: PresetTab = {\n id: 'other',\n title: t('Other'),\n presets: filterPresets(DEFAULT_OTHERS_PRESETS, minValue),\n };\n\n if (otherTab.presets.length > 0) {\n tabs.push(otherTab);\n }\n\n return tabs;\n}\n\nexport function filterPresetTabs(tabs: PresetTab[], {minValue}: {minValue?: DateTime} = {}) {\n return tabs.reduce<PresetTab[]>((acc, tab) => {\n const presets = filterPresets(tab.presets, minValue);\n if (presets.length) {\n acc.push({\n ...tab,\n presets,\n });\n }\n return acc;\n }, []);\n}\n"]}
|
|
@@ -29,31 +29,26 @@ zones.unshift({
|
|
|
29
29
|
});
|
|
30
30
|
zones.unshift({
|
|
31
31
|
value: 'system',
|
|
32
|
-
get content() {
|
|
33
|
-
return (0, i18n_1.i18n)('system');
|
|
34
|
-
},
|
|
35
32
|
});
|
|
36
33
|
zones.unshift({
|
|
37
34
|
value: 'default',
|
|
38
|
-
get content() {
|
|
39
|
-
return (0, i18n_1.i18n)('default');
|
|
40
|
-
},
|
|
41
35
|
});
|
|
42
36
|
const b = (0, cn_1.block)('relative-range-date-picker-zones');
|
|
43
37
|
function Zones(props) {
|
|
44
38
|
const timeZone = (0, utils_1.normalizeTimeZone)(props.value);
|
|
45
39
|
const size = props.isMobile ? 'xl' : props.size;
|
|
40
|
+
const { t } = i18n_1.i18n.useTranslation();
|
|
46
41
|
return ((0, jsx_runtime_1.jsx)(uikit_1.Select, { disabled: props.disabled, value: [timeZone], options: zones, size: size, onUpdate: (v) => {
|
|
47
42
|
const tz = v[0];
|
|
48
43
|
if (tz) {
|
|
49
44
|
props.onUpdate(tz);
|
|
50
45
|
}
|
|
51
46
|
}, width: "max", renderControl: (controlProps) => {
|
|
52
|
-
const value = timeZone === 'system' || timeZone === 'default' ? (
|
|
47
|
+
const value = timeZone === 'system' || timeZone === 'default' ? t(timeZone) : timeZone;
|
|
53
48
|
return ((0, jsx_runtime_1.jsxs)(uikit_1.Button, { ref: controlProps.ref, onClick: controlProps.triggerProps.onClick, view: "flat-secondary", width: "max", pin: "clear-clear", size: size, disabled: props.disabled, "aria-haspopup": "listbox", "aria-expanded": controlProps.open, onKeyDown: controlProps.triggerProps.onKeyDown, className: b('control'), children: [`${value} (${(0, utils_1.getTimeZoneOffset)(timeZone)})`, (0, jsx_runtime_1.jsx)(uikit_1.Icon, { className: b('control-icon'), data: icons_1.ChevronRight, size: props.isMobile ? 20 : 16 })] }));
|
|
54
49
|
}, renderOption: ({ value, content }) => {
|
|
55
50
|
const v = content !== null && content !== void 0 ? content : value;
|
|
56
|
-
return ((0, jsx_runtime_1.jsxs)("span", { className: b('item'), children: [(0, jsx_runtime_1.jsxs)("span", { className: b('item-title'), title: value, children: [v, "\u00A0"] }), (0, jsx_runtime_1.jsx)(uikit_1.Text, { color: "secondary", children: (0, utils_1.getTimeZoneOffset)(value) })] }));
|
|
51
|
+
return ((0, jsx_runtime_1.jsxs)("span", { className: b('item'), children: [(0, jsx_runtime_1.jsxs)("span", { className: b('item-title'), title: value, children: [value === 'system' || value === 'default' ? t(value) : v, "\u00A0"] }), (0, jsx_runtime_1.jsx)(uikit_1.Text, { color: "secondary", children: (0, utils_1.getTimeZoneOffset)(value) })] }));
|
|
57
52
|
}, filterable: true }));
|
|
58
53
|
}
|
|
59
54
|
//# sourceMappingURL=Zones.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Zones.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Zones/Zones.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;
|
|
1
|
+
{"version":3,"file":"Zones.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Zones/Zones.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport {getTimeZonesList} from '@gravity-ui/date-utils';\nimport {ChevronRight} from '@gravity-ui/icons';\nimport {Button, Icon, Select, Text} from '@gravity-ui/uikit';\nimport type {SelectOption, SelectOptionGroup} from '@gravity-ui/uikit';\n\nimport {block} from '../../../../utils/cn';\nimport {getTimeZoneOffset, normalizeTimeZone} from '../../utils';\n\nimport {i18n} from './i18n';\n\nimport './Zones.scss';\n\nconst groups: Record<string, {label: string; options: SelectOption[]}> = {};\n\nconst zones = getTimeZonesList().reduce<(SelectOption | SelectOptionGroup)[]>((opts, value) => {\n const [groupName] = value.split('/');\n if (groupName) {\n let group = groups[groupName];\n if (!group) {\n group = {label: groupName, options: []};\n groups[groupName] = group;\n opts.push(group);\n }\n group.options.push({value});\n }\n return opts;\n}, []);\n\nzones.unshift({\n value: 'UTC',\n});\n\nzones.unshift({\n value: 'system',\n});\n\nzones.unshift({\n value: 'default',\n});\n\nconst b = block('relative-range-date-picker-zones');\n\nexport interface ZonesProps {\n value: string;\n onUpdate: (timeZone: string) => void;\n size?: 's' | 'm' | 'l' | 'xl';\n isMobile?: boolean;\n disabled?: boolean;\n}\n\nexport function Zones(props: ZonesProps) {\n const timeZone = normalizeTimeZone(props.value);\n const size = props.isMobile ? 'xl' : props.size;\n const {t} = i18n.useTranslation();\n return (\n <Select\n disabled={props.disabled}\n value={[timeZone]}\n options={zones}\n size={size}\n onUpdate={(v) => {\n const tz = v[0];\n if (tz) {\n props.onUpdate(tz);\n }\n }}\n width=\"max\"\n renderControl={(controlProps) => {\n const value =\n timeZone === 'system' || timeZone === 'default' ? t(timeZone) : timeZone;\n return (\n <Button\n ref={controlProps.ref as React.Ref<HTMLButtonElement>}\n onClick={controlProps.triggerProps.onClick}\n view=\"flat-secondary\"\n width=\"max\"\n pin=\"clear-clear\"\n size={size}\n disabled={props.disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={controlProps.open}\n onKeyDown={controlProps.triggerProps.onKeyDown}\n className={b('control')}\n >\n {`${value} (${getTimeZoneOffset(timeZone)})`}\n <Icon\n className={b('control-icon')}\n data={ChevronRight}\n size={props.isMobile ? 20 : 16}\n />\n </Button>\n );\n }}\n renderOption={({value, content}) => {\n const v = content ?? value;\n return (\n <span className={b('item')}>\n <span className={b('item-title')} title={value}>\n {value === 'system' || value === 'default' ? t(value) : v} \n </span>\n <Text color=\"secondary\">{getTimeZoneOffset(value)}</Text>\n </span>\n );\n }}\n filterable\n />\n );\n}\n"]}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
export declare const i18n: ((key: "default" | "system", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
Translation: import("react").ComponentType<{
|
|
3
|
+
children: (props: {
|
|
4
|
+
t: (key: "default" | "system", params?: import("@gravity-ui/i18n").Params) => string;
|
|
5
|
+
}) => React.ReactNode;
|
|
6
|
+
}>;
|
|
7
|
+
useTranslation: () => {
|
|
8
|
+
t: (key: "default" | "system", params?: import("@gravity-ui/i18n").Params) => string;
|
|
9
|
+
};
|
|
2
10
|
keysetData: {
|
|
3
11
|
"g-date-relative-range-date-picker-zones": Record<"default" | "system", import("@gravity-ui/i18n").KeyData>;
|
|
4
12
|
};
|
package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts
CHANGED
|
@@ -25,14 +25,3 @@ export interface RelativeRangeDatePickerStateOptions {
|
|
|
25
25
|
allowNullableValues?: boolean;
|
|
26
26
|
}
|
|
27
27
|
export declare function useRelativeRangeDatePickerState(props: RelativeRangeDatePickerStateOptions): RelativeRangeDatePickerState;
|
|
28
|
-
export declare function getRangeValidationResult(value: RelativeRangeDatePickerValue | null, allowNullableValues: boolean | undefined, minValue: DateTime | undefined, maxValue: DateTime | undefined, isDateUnavailable: ((v: DateTime, endpoint: 'start' | 'end') => boolean) | undefined, timeZone: string): {
|
|
29
|
-
isInvalid: boolean;
|
|
30
|
-
errors: never[];
|
|
31
|
-
startValidationResult?: undefined;
|
|
32
|
-
endValidationResult?: undefined;
|
|
33
|
-
} | {
|
|
34
|
-
isInvalid: boolean;
|
|
35
|
-
startValidationResult: import("../../utils/validation/datePicker.js").ValidationResult;
|
|
36
|
-
endValidationResult: import("../../utils/validation/datePicker.js").ValidationResult;
|
|
37
|
-
errors: string[];
|
|
38
|
-
};
|
package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useRelativeRangeDatePickerState = useRelativeRangeDatePickerState;
|
|
4
|
-
exports.getRangeValidationResult = getRangeValidationResult;
|
|
5
4
|
const tslib_1 = require("tslib");
|
|
6
5
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
7
|
-
const date_utils_1 = require("@gravity-ui/date-utils");
|
|
8
6
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
7
|
+
const i18n_1 = require("../../utils/validation/i18n/index.js");
|
|
8
|
+
const relativeRangeDatePicker_1 = require("../../utils/validation/relativeRangeDatePicker.js");
|
|
11
9
|
function useRelativeRangeDatePickerState(props) {
|
|
12
10
|
var _a, _b;
|
|
13
11
|
const [value, setValue] = (0, uikit_1.useControlledState)(props.value, (_a = props.defaultValue) !== null && _a !== void 0 ? _a : null);
|
|
14
12
|
const [timeZone, setTimeZone] = (0, uikit_1.useControlledState)(props.timeZone, (_b = props.defaultTimeZone) !== null && _b !== void 0 ? _b : 'default', props.onUpdateTimeZone);
|
|
15
|
-
const
|
|
13
|
+
const { t } = i18n_1.i18n.useTranslation();
|
|
14
|
+
const validation = react_1.default.useMemo(() => (0, relativeRangeDatePicker_1.getRangeValidationResult)(value, props.allowNullableValues, props.minValue, props.maxValue, props.isDateUnavailable, timeZone, t), [
|
|
16
15
|
value,
|
|
17
16
|
props.allowNullableValues,
|
|
18
17
|
props.isDateUnavailable,
|
|
19
18
|
props.maxValue,
|
|
20
19
|
props.minValue,
|
|
21
20
|
timeZone,
|
|
21
|
+
t,
|
|
22
22
|
]);
|
|
23
23
|
return Object.assign({ value,
|
|
24
24
|
timeZone,
|
|
@@ -31,31 +31,4 @@ function useRelativeRangeDatePickerState(props) {
|
|
|
31
31
|
}
|
|
32
32
|
} }, validation);
|
|
33
33
|
}
|
|
34
|
-
function getRangeValidationResult(value, allowNullableValues, minValue, maxValue, isDateUnavailable, timeZone) {
|
|
35
|
-
if (!value) {
|
|
36
|
-
return { isInvalid: false, errors: [] };
|
|
37
|
-
}
|
|
38
|
-
const startDate = value.start ? (0, date_utils_1.dateTimeParse)(value.start.value, { timeZone }) : null;
|
|
39
|
-
const endDate = value.end ? (0, date_utils_1.dateTimeParse)(value.end.value, { timeZone, roundUp: true }) : null;
|
|
40
|
-
const startValidationResult = (0, datePicker_1.getValidationResult)(startDate, minValue, maxValue, isDateUnavailable ? (date) => isDateUnavailable(date, 'start') : undefined, timeZone, (0, i18n_1.i18n)('"From"'));
|
|
41
|
-
if (!startDate && !allowNullableValues) {
|
|
42
|
-
startValidationResult.isInvalid = true;
|
|
43
|
-
startValidationResult.errors.push((0, i18n_1.i18n)('"From" is required.'));
|
|
44
|
-
}
|
|
45
|
-
const endValidationResult = (0, datePicker_1.getValidationResult)(endDate, minValue, maxValue, isDateUnavailable ? (date) => isDateUnavailable(date, 'end') : undefined, timeZone, (0, i18n_1.i18n)('"To"'));
|
|
46
|
-
if (!endDate && !allowNullableValues) {
|
|
47
|
-
endValidationResult.isInvalid = true;
|
|
48
|
-
endValidationResult.errors.push((0, i18n_1.i18n)('"To" is required.'));
|
|
49
|
-
}
|
|
50
|
-
if (startDate && endDate && endDate.isBefore(startDate)) {
|
|
51
|
-
startValidationResult.isInvalid = true;
|
|
52
|
-
startValidationResult.errors.push((0, i18n_1.i18n)(`"From" can't be after "To".`));
|
|
53
|
-
}
|
|
54
|
-
return {
|
|
55
|
-
isInvalid: startValidationResult.isInvalid || endValidationResult.isInvalid,
|
|
56
|
-
startValidationResult,
|
|
57
|
-
endValidationResult,
|
|
58
|
-
errors: startValidationResult.errors.concat(endValidationResult.errors),
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
34
|
//# sourceMappingURL=useRelativeRangeDatePickerState.js.map
|
package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRelativeRangeDatePickerState.js","sourceRoot":"../../../../../src","sources":["components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useRelativeRangeDatePickerState.js","sourceRoot":"../../../../../src","sources":["components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.ts"],"names":[],"mappings":";;AAoCA,0EA8CC;;AAlFD,0DAA0B;AAG1B,6CAAqD;AAIrD,+DAAiD;AACjD,+FAAwF;AA4BxF,SAAgB,+BAA+B,CAC3C,KAA0C;;IAE1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,0BAAkB,EAAC,KAAK,CAAC,KAAK,EAAE,MAAA,KAAK,CAAC,YAAY,mCAAI,IAAI,CAAC,CAAC;IAEtF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,0BAAkB,EAC9C,KAAK,CAAC,QAAQ,EACd,MAAA,KAAK,CAAC,eAAe,mCAAI,SAAS,EAClC,KAAK,CAAC,gBAAgB,CACzB,CAAC;IAEF,MAAM,EAAC,CAAC,EAAC,GAAG,WAAI,CAAC,cAAc,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,eAAK,CAAC,OAAO,CAC5B,GAAG,EAAE,CACD,IAAA,kDAAwB,EACpB,KAAK,EACL,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,iBAAiB,EACvB,QAAQ,EACR,CAAC,CACJ,EACL;QACI,KAAK;QACL,KAAK,CAAC,mBAAmB;QACzB,KAAK,CAAC,iBAAiB;QACvB,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,QAAQ;QACd,QAAQ;QACR,CAAC;KACJ,CACJ,CAAC;IAEF,uBACI,KAAK;QACL,QAAQ;QACR,QAAQ,CAAC,CAAC,EAAE,EAAE;;YACV,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,WAAW,CAAC,EAAE,CAAC,CAAC;YAChB,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC5C,MAAA,KAAK,CAAC,QAAQ,sDAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC,IACE,UAAU,EACf;AACN,CAAC","sourcesContent":["import React from 'react';\n\nimport type {DateTime} from '@gravity-ui/date-utils';\nimport {useControlledState} from '@gravity-ui/uikit';\n\nimport type {Value} from '../../RelativeDatePicker';\nimport type {RangeValue} from '../../types';\nimport {i18n} from '../../utils/validation/i18n';\nimport {getRangeValidationResult} from '../../utils/validation/relativeRangeDatePicker';\n\nexport type RelativeRangeDatePickerValue = RangeValue<Value | null>;\n\nexport interface RelativeRangeDatePickerState {\n value: RelativeRangeDatePickerValue | null;\n timeZone: string;\n setValue: (value: RelativeRangeDatePickerValue | null, timeZone: string) => void;\n isInvalid: boolean;\n errors: string[];\n}\n\nexport interface RelativeRangeDatePickerStateOptions {\n value?: RelativeRangeDatePickerValue | null;\n defaultValue?: RelativeRangeDatePickerValue;\n onUpdate?: (value: RelativeRangeDatePickerValue | null, timeZone: string) => void;\n timeZone?: string;\n defaultTimeZone?: string;\n onUpdateTimeZone?: (timeZone: string) => void;\n /** The minimum allowed date that a user may select. */\n minValue?: DateTime;\n /** The maximum allowed date that a user may select. */\n maxValue?: DateTime;\n /** Callback that is called for each date of the calendar. If it returns true, then the date is unavailable. */\n isDateUnavailable?: (date: DateTime, endpoint: 'start' | 'end') => boolean;\n allowNullableValues?: boolean;\n}\n\nexport function useRelativeRangeDatePickerState(\n props: RelativeRangeDatePickerStateOptions,\n): RelativeRangeDatePickerState {\n const [value, setValue] = useControlledState(props.value, props.defaultValue ?? null);\n\n const [timeZone, setTimeZone] = useControlledState(\n props.timeZone,\n props.defaultTimeZone ?? 'default',\n props.onUpdateTimeZone,\n );\n\n const {t} = i18n.useTranslation();\n const validation = React.useMemo(\n () =>\n getRangeValidationResult(\n value,\n props.allowNullableValues,\n props.minValue,\n props.maxValue,\n props.isDateUnavailable,\n timeZone,\n t,\n ),\n [\n value,\n props.allowNullableValues,\n props.isDateUnavailable,\n props.maxValue,\n props.minValue,\n timeZone,\n t,\n ],\n );\n\n return {\n value,\n timeZone,\n setValue(v, tz) {\n setValue(v);\n setTimeZone(tz);\n if (value !== v || (value && timeZone !== tz)) {\n props.onUpdate?.(v, tz);\n }\n },\n ...validation,\n };\n}\n"]}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
export declare const i18n: ((key: "to" | "\"From\"" | "\"
|
|
1
|
+
export declare const i18n: ((key: "to" | "\"From\"" | "\"To\"", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
Translation: import("react").ComponentType<{
|
|
3
|
+
children: (props: {
|
|
4
|
+
t: (key: "to" | "\"From\"" | "\"To\"", params?: import("@gravity-ui/i18n").Params) => string;
|
|
5
|
+
}) => React.ReactNode;
|
|
6
|
+
}>;
|
|
7
|
+
useTranslation: () => {
|
|
8
|
+
t: (key: "to" | "\"From\"" | "\"To\"", params?: import("@gravity-ui/i18n").Params) => string;
|
|
9
|
+
};
|
|
2
10
|
keysetData: {
|
|
3
|
-
"g-date-relative-range-date-picker": Record<"to" | "\"From\"" | "\"
|
|
11
|
+
"g-date-relative-range-date-picker": Record<"to" | "\"From\"" | "\"To\"", import("@gravity-ui/i18n").KeyData>;
|
|
4
12
|
};
|
|
5
13
|
};
|