@gravity-ui/date-components 3.2.4 → 3.3.1

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.
Files changed (172) hide show
  1. package/README.md +89 -1
  2. package/dist/cjs/components/CalendarView/Calendar.css.map +1 -1
  3. package/dist/cjs/components/CalendarView/CalendarView.js +4 -2
  4. package/dist/cjs/components/CalendarView/CalendarView.js.map +1 -1
  5. package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js +12 -10
  6. package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -1
  7. package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js +2 -1
  8. package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -1
  9. package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js +19 -9
  10. package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js.map +1 -1
  11. package/dist/cjs/components/CalendarView/i18n/index.d.ts +8 -0
  12. package/dist/cjs/components/DateField/DateField.js +4 -1
  13. package/dist/cjs/components/DateField/DateField.js.map +1 -1
  14. package/dist/cjs/components/DateField/i18n/index.d.ts +8 -0
  15. package/dist/cjs/components/DateField/utils.d.ts +5 -1
  16. package/dist/cjs/components/DateField/utils.js +26 -22
  17. package/dist/cjs/components/DateField/utils.js.map +1 -1
  18. package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js +6 -2
  19. package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js.map +1 -1
  20. package/dist/cjs/components/DatePicker/i18n/index.d.ts +8 -0
  21. package/dist/cjs/components/RangeDateField/RangeDateField.d.ts +1 -1
  22. package/dist/cjs/components/RangeDateField/RangeDateField.js +4 -1
  23. package/dist/cjs/components/RangeDateField/RangeDateField.js.map +1 -1
  24. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js +3 -2
  25. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js.map +1 -1
  26. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +4 -3
  27. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -1
  28. package/dist/cjs/components/RangeDateSelection/i18n/index.d.ts +8 -0
  29. package/dist/cjs/components/RelativeDateField/RelativeDateField.js +4 -1
  30. package/dist/cjs/components/RelativeDateField/RelativeDateField.js.map +1 -1
  31. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +7 -3
  32. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -1
  33. package/dist/cjs/components/RelativeDatePicker/i18n/index.d.ts +8 -0
  34. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +4 -1
  35. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -1
  36. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js +18 -3
  37. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -1
  38. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/i18n/index.d.ts +8 -0
  39. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.css.map +1 -1
  40. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js +11 -19
  41. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js.map +1 -1
  42. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js +4 -3
  43. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js.map +1 -1
  44. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.d.ts +10 -2
  45. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +6 -3
  46. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -1
  47. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -1
  48. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js +4 -2
  49. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -1
  50. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.d.ts +5 -1
  51. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +31 -75
  52. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -1
  53. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.d.ts +8 -0
  54. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +5 -2
  55. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js +5 -5
  56. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -1
  57. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js +3 -8
  58. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -1
  59. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.d.ts +8 -0
  60. package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +0 -11
  61. package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +5 -32
  62. package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -1
  63. package/dist/cjs/components/RelativeRangeDatePicker/i18n/en.json +0 -3
  64. package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.d.ts +10 -2
  65. package/dist/cjs/components/RelativeRangeDatePicker/i18n/ru.json +0 -3
  66. package/dist/cjs/components/RelativeRangeDatePicker/utils.d.ts +5 -2
  67. package/dist/cjs/components/RelativeRangeDatePicker/utils.js +5 -4
  68. package/dist/cjs/components/RelativeRangeDatePicker/utils.js.map +1 -1
  69. package/dist/cjs/components/types/helpers.d.ts +1 -0
  70. package/dist/cjs/components/types/helpers.js +3 -0
  71. package/dist/cjs/components/types/helpers.js.map +1 -0
  72. package/dist/cjs/components/types/index.d.ts +1 -0
  73. package/dist/cjs/components/types/index.js.map +1 -1
  74. package/dist/cjs/components/utils/dates.d.ts +1 -1
  75. package/dist/cjs/components/utils/dates.js +2 -2
  76. package/dist/cjs/components/utils/dates.js.map +1 -1
  77. package/dist/cjs/components/utils/validation/datePicker.d.ts +3 -1
  78. package/dist/cjs/components/utils/validation/datePicker.js +4 -4
  79. package/dist/cjs/components/utils/validation/datePicker.js.map +1 -1
  80. package/dist/cjs/components/utils/validation/i18n/en.json +6 -1
  81. package/dist/cjs/components/utils/validation/i18n/index.d.ts +10 -2
  82. package/dist/cjs/components/utils/validation/i18n/ru.json +7 -1
  83. package/dist/cjs/components/utils/validation/relativeRangeDatePicker.d.ts +15 -0
  84. package/dist/cjs/components/utils/validation/relativeRangeDatePicker.js +34 -0
  85. package/dist/cjs/components/utils/validation/relativeRangeDatePicker.js.map +1 -0
  86. package/dist/cjs/package.json +1 -1
  87. package/dist/esm/components/CalendarView/Calendar.css.map +1 -1
  88. package/dist/esm/components/CalendarView/CalendarView.js +5 -3
  89. package/dist/esm/components/CalendarView/CalendarView.js.map +1 -1
  90. package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js +12 -10
  91. package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -1
  92. package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js +3 -2
  93. package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -1
  94. package/dist/esm/components/CalendarView/hooks/useCalendarProps.js +20 -10
  95. package/dist/esm/components/CalendarView/hooks/useCalendarProps.js.map +1 -1
  96. package/dist/esm/components/CalendarView/i18n/index.d.ts +8 -0
  97. package/dist/esm/components/DateField/DateField.js +4 -1
  98. package/dist/esm/components/DateField/DateField.js.map +1 -1
  99. package/dist/esm/components/DateField/i18n/index.d.ts +8 -0
  100. package/dist/esm/components/DateField/utils.d.ts +5 -1
  101. package/dist/esm/components/DateField/utils.js +26 -22
  102. package/dist/esm/components/DateField/utils.js.map +1 -1
  103. package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js +6 -2
  104. package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js.map +1 -1
  105. package/dist/esm/components/DatePicker/i18n/index.d.ts +8 -0
  106. package/dist/esm/components/RangeDateField/RangeDateField.d.ts +1 -1
  107. package/dist/esm/components/RangeDateField/RangeDateField.js +4 -1
  108. package/dist/esm/components/RangeDateField/RangeDateField.js.map +1 -1
  109. package/dist/esm/components/RangeDateSelection/RangeDateSelection.js +3 -2
  110. package/dist/esm/components/RangeDateSelection/RangeDateSelection.js.map +1 -1
  111. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +4 -3
  112. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -1
  113. package/dist/esm/components/RangeDateSelection/i18n/index.d.ts +8 -0
  114. package/dist/esm/components/RelativeDateField/RelativeDateField.js +4 -1
  115. package/dist/esm/components/RelativeDateField/RelativeDateField.js.map +1 -1
  116. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +7 -3
  117. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -1
  118. package/dist/esm/components/RelativeDatePicker/i18n/index.d.ts +8 -0
  119. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +4 -1
  120. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -1
  121. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js +18 -3
  122. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -1
  123. package/dist/esm/components/RelativeRangeDatePicker/components/Control/i18n/index.d.ts +8 -0
  124. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.css.map +1 -1
  125. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js +11 -19
  126. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDoc.js.map +1 -1
  127. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js +4 -3
  128. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerForm.js.map +1 -1
  129. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.d.ts +10 -2
  130. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +5 -2
  131. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -1
  132. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -1
  133. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js +4 -2
  134. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -1
  135. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.d.ts +5 -1
  136. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +30 -75
  137. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -1
  138. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.d.ts +8 -0
  139. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +5 -2
  140. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js +5 -5
  141. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -1
  142. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js +3 -8
  143. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -1
  144. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.d.ts +8 -0
  145. package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +0 -11
  146. package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +5 -31
  147. package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -1
  148. package/dist/esm/components/RelativeRangeDatePicker/i18n/en.json +0 -3
  149. package/dist/esm/components/RelativeRangeDatePicker/i18n/index.d.ts +10 -2
  150. package/dist/esm/components/RelativeRangeDatePicker/i18n/ru.json +0 -3
  151. package/dist/esm/components/RelativeRangeDatePicker/utils.d.ts +5 -2
  152. package/dist/esm/components/RelativeRangeDatePicker/utils.js +5 -4
  153. package/dist/esm/components/RelativeRangeDatePicker/utils.js.map +1 -1
  154. package/dist/esm/components/types/helpers.d.ts +1 -0
  155. package/dist/esm/components/types/helpers.js +2 -0
  156. package/dist/esm/components/types/helpers.js.map +1 -0
  157. package/dist/esm/components/types/index.d.ts +1 -0
  158. package/dist/esm/components/types/index.js.map +1 -1
  159. package/dist/esm/components/utils/dates.d.ts +1 -1
  160. package/dist/esm/components/utils/dates.js +2 -2
  161. package/dist/esm/components/utils/dates.js.map +1 -1
  162. package/dist/esm/components/utils/validation/datePicker.d.ts +3 -1
  163. package/dist/esm/components/utils/validation/datePicker.js +4 -4
  164. package/dist/esm/components/utils/validation/datePicker.js.map +1 -1
  165. package/dist/esm/components/utils/validation/i18n/en.json +6 -1
  166. package/dist/esm/components/utils/validation/i18n/index.d.ts +10 -2
  167. package/dist/esm/components/utils/validation/i18n/ru.json +7 -1
  168. package/dist/esm/components/utils/validation/relativeRangeDatePicker.d.ts +15 -0
  169. package/dist/esm/components/utils/validation/relativeRangeDatePicker.js +31 -0
  170. package/dist/esm/components/utils/validation/relativeRangeDatePicker.js.map +1 -0
  171. package/dist/esm/package.json +1 -1
  172. 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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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
- get title() {
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);
@@ -1 +1 @@
1
- {"version":3,"file":"defaultPresets.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Presets/defaultPresets.ts"],"names":[],"mappings":";;;AAAA,0CAA4B;AAQf,QAAA,oBAAoB,GAAa;IAC1C;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,cAAc,CAAC,CAAC;QAChC,CAAC;KACJ;CACJ,CAAC;AAEW,QAAA,oBAAoB,GAAa;IAC1C;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,iBAAiB,CAAC,CAAC;QACnC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,iBAAiB,CAAC,CAAC;QACnC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,cAAc,CAAC,CAAC;QAChC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,cAAc,CAAC,CAAC;QAChC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACJ;CACJ,CAAC;AAEW,QAAA,sBAAsB,GAAa;IAC5C;QACI,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,OAAO;QACX,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,OAAO,CAAC,CAAC;QACzB,CAAC;KACJ;IACD;QACI,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,UAAU;QACd,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;KACJ;IACD;QACI,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,UAAU;QACd,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,sBAAsB,CAAC,CAAC;QACxC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,OAAO;QACX,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;KACJ;IACD;QACI,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,OAAO;QACX,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;KACJ;IACD;QACI,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,OAAO;QACX,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;KACJ;IACD;QACI,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,mBAAmB,CAAC,CAAC;QACrC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,oBAAoB,CAAC,CAAC;QACtC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,qBAAqB,CAAC,CAAC;QACvC,CAAC;KACJ;IACD;QACI,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,KAAK;QACT,IAAI,KAAK;YACL,OAAO,IAAA,WAAI,EAAC,oBAAoB,CAAC,CAAC;QACtC,CAAC;KACJ;CACJ,CAAC;AAEW,QAAA,UAAU,GAAG,4BAAoB,CAAC,MAAM,CAAC,4BAAoB,EAAE,8BAAsB,CAAC,CAAC","sourcesContent":["import {i18n} from './i18n';\n\nexport interface Preset {\n from: string;\n to: string;\n title: string;\n}\n\nexport const DEFAULT_DATE_PRESETS: Preset[] = [\n {\n from: 'now-1d',\n to: 'now',\n get title() {\n return i18n('Last day');\n },\n },\n {\n from: 'now-3d',\n to: 'now',\n get title() {\n return i18n('Last 3 days');\n },\n },\n {\n from: 'now-1w',\n to: 'now',\n get title() {\n return i18n('Last week');\n },\n },\n {\n from: 'now-1M',\n to: 'now',\n get title() {\n return i18n('Last month');\n },\n },\n {\n from: 'now-3M',\n to: 'now',\n get title() {\n return i18n('Last 3 months');\n },\n },\n {\n from: 'now-6M',\n to: 'now',\n get title() {\n return i18n('Last 6 months');\n },\n },\n {\n from: 'now-1y',\n to: 'now',\n get title() {\n return i18n('Last year');\n },\n },\n {\n from: 'now-3y',\n to: 'now',\n get title() {\n return i18n('Last 3 years');\n },\n },\n];\n\nexport const DEFAULT_TIME_PRESETS: Preset[] = [\n {\n from: 'now-5m',\n to: 'now',\n get title() {\n return i18n('Last 5 minutes');\n },\n },\n {\n from: 'now-15m',\n to: 'now',\n get title() {\n return i18n('Last 15 minutes');\n },\n },\n {\n from: 'now-30m',\n to: 'now',\n get title() {\n return i18n('Last 30 minutes');\n },\n },\n {\n from: 'now-1h',\n to: 'now',\n get title() {\n return i18n('Last hour');\n },\n },\n {\n from: 'now-3h',\n to: 'now',\n get title() {\n return i18n('Last 3 hours');\n },\n },\n {\n from: 'now-6h',\n to: 'now',\n get title() {\n return i18n('Last 6 hours');\n },\n },\n {\n from: 'now-12h',\n to: 'now',\n get title() {\n return i18n('Last 12 hours');\n },\n },\n];\n\nexport const DEFAULT_OTHERS_PRESETS: Preset[] = [\n {\n from: 'now/d',\n to: 'now/d',\n get title() {\n return i18n('Today');\n },\n },\n {\n from: 'now-1d/d',\n to: 'now-1d/d',\n get title() {\n return i18n('Yesterday');\n },\n },\n {\n from: 'now-2d/d',\n to: 'now-2d/d',\n get title() {\n return i18n('Day before yesterday');\n },\n },\n {\n from: 'now/w',\n to: 'now/w',\n get title() {\n return i18n('This week');\n },\n },\n {\n from: 'now/M',\n to: 'now/M',\n get title() {\n return i18n('This month');\n },\n },\n {\n from: 'now/y',\n to: 'now/y',\n get title() {\n return i18n('This year');\n },\n },\n {\n from: 'now/d',\n to: 'now',\n get title() {\n return i18n('From start of day');\n },\n },\n {\n from: 'now/w',\n to: 'now',\n get title() {\n return i18n('From start of week');\n },\n },\n {\n from: 'now/M',\n to: 'now',\n get title() {\n return i18n('From start of month');\n },\n },\n {\n from: 'now/y',\n to: 'now',\n get title() {\n return i18n('From start of year');\n },\n },\n];\n\nexport const allPresets = DEFAULT_TIME_PRESETS.concat(DEFAULT_DATE_PRESETS, DEFAULT_OTHERS_PRESETS);\n"]}
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
- export declare function getPresetTitle(start: string, end: string, presets?: Preset[]): string;
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 (0, i18n_1.i18n)(template, { count });
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: (0, i18n_1.i18n)('Main'),
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: (0, i18n_1.i18n)('Other'),
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":"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","sourcesContent":["import {dateTimeParse} from '@gravity-ui/date-utils';\nimport type {DateTime} from '@gravity-ui/date-utils';\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(start: string, end: string, presets: Preset[] = allPresets) {\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 i18n(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}: {\n minValue?: DateTime;\n withTime?: boolean;\n}) {\n const tabs: PresetTab[] = [];\n\n const mainTab: PresetTab = {\n id: 'main',\n title: i18n('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: i18n('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"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"../../../../../../src","sources":["components/RelativeRangeDatePicker/components/Presets/utils.ts"],"names":[],"mappings":"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","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' ? (0, i18n_1.i18n)(timeZone) : timeZone;
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":"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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 get content() {\n return i18n('system');\n },\n});\n\nzones.unshift({\n value: 'default',\n get content() {\n return i18n('default');\n },\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 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' ? i18n(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 {v}&nbsp;\n </span>\n <Text color=\"secondary\">{getTimeZoneOffset(value)}</Text>\n </span>\n );\n }}\n filterable\n />\n );\n}\n"]}
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}&nbsp;\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
  };
@@ -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
- };
@@ -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 datePicker_1 = require("../../utils/validation/datePicker.js");
10
- const i18n_1 = require("../i18n/index.js");
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 validation = react_1.default.useMemo(() => getRangeValidationResult(value, props.allowNullableValues, props.minValue, props.maxValue, props.isDateUnavailable, timeZone), [
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
@@ -1 +1 @@
1
- {"version":3,"file":"useRelativeRangeDatePickerState.js","sourceRoot":"../../../../../src","sources":["components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.ts"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {dateTimeParse} from '@gravity-ui/date-utils';\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 {getValidationResult} from '../../utils/validation/datePicker';\nimport {i18n} from '../i18n';\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 validation = React.useMemo(\n () =>\n getRangeValidationResult(\n value,\n props.allowNullableValues,\n props.minValue,\n props.maxValue,\n props.isDateUnavailable,\n timeZone,\n ),\n [\n value,\n props.allowNullableValues,\n props.isDateUnavailable,\n props.maxValue,\n props.minValue,\n timeZone,\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\nexport function getRangeValidationResult(\n value: RelativeRangeDatePickerValue | null,\n allowNullableValues: boolean | undefined,\n minValue: DateTime | undefined,\n maxValue: DateTime | undefined,\n isDateUnavailable: ((v: DateTime, endpoint: 'start' | 'end') => boolean) | undefined,\n timeZone: string,\n) {\n if (!value) {\n return {isInvalid: false, errors: []};\n }\n\n const startDate = value.start ? dateTimeParse(value.start.value, {timeZone}) : null;\n const endDate = value.end ? dateTimeParse(value.end.value, {timeZone, roundUp: true}) : null;\n\n const startValidationResult = getValidationResult(\n startDate,\n minValue,\n maxValue,\n isDateUnavailable ? (date) => isDateUnavailable(date, 'start') : undefined,\n timeZone,\n i18n('\"From\"'),\n );\n\n if (!startDate && !allowNullableValues) {\n startValidationResult.isInvalid = true;\n startValidationResult.errors.push(i18n('\"From\" is required.'));\n }\n\n const endValidationResult = getValidationResult(\n endDate,\n minValue,\n maxValue,\n isDateUnavailable ? (date) => isDateUnavailable(date, 'end') : undefined,\n timeZone,\n i18n('\"To\"'),\n );\n\n if (!endDate && !allowNullableValues) {\n endValidationResult.isInvalid = true;\n endValidationResult.errors.push(i18n('\"To\" is required.'));\n }\n\n if (startDate && endDate && endDate.isBefore(startDate)) {\n startValidationResult.isInvalid = true;\n startValidationResult.errors.push(i18n(`\"From\" can't be after \"To\".`));\n }\n\n return {\n isInvalid: startValidationResult.isInvalid || endValidationResult.isInvalid,\n startValidationResult,\n endValidationResult,\n errors: startValidationResult.errors.concat(endValidationResult.errors),\n };\n}\n"]}
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,8 +1,5 @@
1
1
  {
2
2
  "\"From\"": "\"From\"",
3
- "\"From\" is required.": "\"From\" is required.",
4
3
  "\"To\"": "\"To\"",
5
- "\"To\" is required.": "\"To\" is required.",
6
- "\"From\" can't be after \"To\".": "\"From\" can't be after \"To\".",
7
4
  "to": "to"
8
5
  }
@@ -1,5 +1,13 @@
1
- export declare const i18n: ((key: "to" | "\"From\"" | "\"From\" is required." | "\"To\"" | "\"To\" is required." | "\"From\" can't be after \"To\".", params?: import("@gravity-ui/i18n").Params) => string) & {
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\"" | "\"From\" is required." | "\"To\"" | "\"To\" is required." | "\"From\" can't be after \"To\".", import("@gravity-ui/i18n").KeyData>;
11
+ "g-date-relative-range-date-picker": Record<"to" | "\"From\"" | "\"To\"", import("@gravity-ui/i18n").KeyData>;
4
12
  };
5
13
  };