@gravity-ui/date-components 2.11.0-beta.0 → 2.12.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.
Files changed (665) hide show
  1. package/dist/cjs/components/Calendar/Calendar.d.ts +4 -4
  2. package/dist/cjs/components/Calendar/Calendar.js +5 -6
  3. package/dist/cjs/components/Calendar/Calendar.js.map +1 -0
  4. package/dist/cjs/components/Calendar/index.d.ts +8 -8
  5. package/dist/cjs/components/Calendar/index.js +9 -21
  6. package/dist/cjs/components/Calendar/index.js.map +1 -0
  7. package/dist/cjs/components/CalendarView/Calendar.css +2 -1
  8. package/dist/cjs/components/CalendarView/Calendar.css.map +1 -0
  9. package/dist/cjs/components/CalendarView/CalendarView.d.ts +4 -4
  10. package/dist/cjs/components/CalendarView/CalendarView.js +11 -12
  11. package/dist/cjs/components/CalendarView/CalendarView.js.map +1 -0
  12. package/dist/cjs/components/CalendarView/hooks/types.d.ts +1 -1
  13. package/dist/cjs/components/CalendarView/hooks/types.js +1 -0
  14. package/dist/cjs/components/CalendarView/hooks/types.js.map +1 -0
  15. package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.d.ts +1 -1
  16. package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js +4 -5
  17. package/dist/cjs/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -0
  18. package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.d.ts +1 -1
  19. package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js +2 -1
  20. package/dist/cjs/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -0
  21. package/dist/cjs/components/CalendarView/hooks/useCalendarProps.d.ts +2 -2
  22. package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js +5 -6
  23. package/dist/cjs/components/CalendarView/hooks/useCalendarProps.js.map +1 -0
  24. package/dist/cjs/components/CalendarView/hooks/useCalendarState.d.ts +3 -3
  25. package/dist/cjs/components/CalendarView/hooks/useCalendarState.js +6 -7
  26. package/dist/cjs/components/CalendarView/hooks/useCalendarState.js.map +1 -0
  27. package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.d.ts +4 -4
  28. package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.js +4 -3
  29. package/dist/cjs/components/CalendarView/hooks/useRangeCalendarState.js.map +1 -0
  30. package/dist/cjs/components/CalendarView/i18n/index.js +5 -6
  31. package/dist/cjs/components/CalendarView/i18n/index.js.map +1 -0
  32. package/dist/cjs/components/CalendarView/utils.d.ts +3 -3
  33. package/dist/cjs/components/CalendarView/utils.js +8 -6
  34. package/dist/cjs/components/CalendarView/utils.js.map +1 -0
  35. package/dist/cjs/components/DateField/DateField.css +2 -1
  36. package/dist/cjs/components/DateField/DateField.css.map +1 -0
  37. package/dist/cjs/components/DateField/DateField.d.ts +2 -2
  38. package/dist/cjs/components/DateField/DateField.js +5 -4
  39. package/dist/cjs/components/DateField/DateField.js.map +1 -0
  40. package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.d.ts +13 -4
  41. package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.js +11 -21
  42. package/dist/cjs/components/DateField/hooks/useBaseDateFieldState.js.map +1 -0
  43. package/dist/cjs/components/DateField/hooks/useDateFieldProps.d.ts +2 -2
  44. package/dist/cjs/components/DateField/hooks/useDateFieldProps.js +4 -5
  45. package/dist/cjs/components/DateField/hooks/useDateFieldProps.js.map +1 -0
  46. package/dist/cjs/components/DateField/hooks/useDateFieldState.d.ts +2 -2
  47. package/dist/cjs/components/DateField/hooks/useDateFieldState.js +14 -22
  48. package/dist/cjs/components/DateField/hooks/useDateFieldState.js.map +1 -0
  49. package/dist/cjs/components/DateField/i18n/en.json +1 -0
  50. package/dist/cjs/components/DateField/i18n/index.d.ts +1 -1
  51. package/dist/cjs/components/DateField/i18n/index.js +5 -6
  52. package/dist/cjs/components/DateField/i18n/index.js.map +1 -0
  53. package/dist/cjs/components/DateField/i18n/ru.json +1 -0
  54. package/dist/cjs/components/DateField/index.d.ts +4 -4
  55. package/dist/cjs/components/DateField/index.js +6 -18
  56. package/dist/cjs/components/DateField/index.js.map +1 -0
  57. package/dist/cjs/components/DateField/types.d.ts +9 -1
  58. package/dist/cjs/components/DateField/types.js +1 -0
  59. package/dist/cjs/components/DateField/types.js.map +1 -0
  60. package/dist/cjs/components/DateField/utils.d.ts +22 -6
  61. package/dist/cjs/components/DateField/utils.js +90 -8
  62. package/dist/cjs/components/DateField/utils.js.map +1 -0
  63. package/dist/cjs/components/DatePicker/DatePicker.css +2 -1
  64. package/dist/cjs/components/DatePicker/DatePicker.css.map +1 -0
  65. package/dist/cjs/components/DatePicker/DatePicker.d.ts +4 -4
  66. package/dist/cjs/components/DatePicker/DatePicker.js +11 -10
  67. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -0
  68. package/dist/cjs/components/DatePicker/MobileCalendar.css +2 -1
  69. package/dist/cjs/components/DatePicker/MobileCalendar.css.map +1 -0
  70. package/dist/cjs/components/DatePicker/MobileCalendar.d.ts +3 -3
  71. package/dist/cjs/components/DatePicker/MobileCalendar.js +7 -6
  72. package/dist/cjs/components/DatePicker/MobileCalendar.js.map +1 -0
  73. package/dist/cjs/components/DatePicker/StubButton.css +2 -1
  74. package/dist/cjs/components/DatePicker/StubButton.css.map +1 -0
  75. package/dist/cjs/components/DatePicker/StubButton.d.ts +1 -1
  76. package/dist/cjs/components/DatePicker/StubButton.js +2 -1
  77. package/dist/cjs/components/DatePicker/StubButton.js.map +1 -0
  78. package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.d.ts +15 -5
  79. package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.js +21 -20
  80. package/dist/cjs/components/DatePicker/hooks/datePickerStateFactory.js.map +1 -0
  81. package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.d.ts +5 -5
  82. package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js +10 -7
  83. package/dist/cjs/components/DatePicker/hooks/useDatePickerProps.js.map +1 -0
  84. package/dist/cjs/components/DatePicker/hooks/useDatePickerState.d.ts +3 -3
  85. package/dist/cjs/components/DatePicker/hooks/useDatePickerState.js +8 -5
  86. package/dist/cjs/components/DatePicker/hooks/useDatePickerState.js.map +1 -0
  87. package/dist/cjs/components/DatePicker/i18n/index.js +5 -6
  88. package/dist/cjs/components/DatePicker/i18n/index.js.map +1 -0
  89. package/dist/cjs/components/DatePicker/index.d.ts +3 -3
  90. package/dist/cjs/components/DatePicker/index.js +5 -17
  91. package/dist/cjs/components/DatePicker/index.js.map +1 -0
  92. package/dist/cjs/components/DatePicker/utils/cn.js +2 -1
  93. package/dist/cjs/components/DatePicker/utils/cn.js.map +1 -0
  94. package/dist/cjs/components/DatePicker/utils/getCalendarModes.d.ts +5 -0
  95. package/dist/cjs/components/DatePicker/utils/getCalendarModes.js +21 -0
  96. package/dist/cjs/components/DatePicker/utils/getCalendarModes.js.map +1 -0
  97. package/dist/cjs/components/DatePicker/utils/getDateTimeValue.d.ts +1 -1
  98. package/dist/cjs/components/DatePicker/utils/getDateTimeValue.js +1 -0
  99. package/dist/cjs/components/DatePicker/utils/getDateTimeValue.js.map +1 -0
  100. package/dist/cjs/components/DatePicker/utils/index.d.ts +3 -2
  101. package/dist/cjs/components/DatePicker/utils/index.js +5 -16
  102. package/dist/cjs/components/DatePicker/utils/index.js.map +1 -0
  103. package/dist/cjs/components/HiddenInput/HiddenInput.js +3 -4
  104. package/dist/cjs/components/HiddenInput/HiddenInput.js.map +1 -0
  105. package/dist/cjs/components/RangeCalendar/RangeCalendar.d.ts +4 -4
  106. package/dist/cjs/components/RangeCalendar/RangeCalendar.js +5 -6
  107. package/dist/cjs/components/RangeCalendar/RangeCalendar.js.map +1 -0
  108. package/dist/cjs/components/RangeCalendar/index.d.ts +1 -1
  109. package/dist/cjs/components/RangeCalendar/index.js +3 -15
  110. package/dist/cjs/components/RangeCalendar/index.js.map +1 -0
  111. package/dist/cjs/components/RangeDateField/RangeDateField.css +2 -1
  112. package/dist/cjs/components/RangeDateField/RangeDateField.css.map +1 -0
  113. package/dist/cjs/components/RangeDateField/RangeDateField.d.ts +3 -3
  114. package/dist/cjs/components/RangeDateField/RangeDateField.js +5 -4
  115. package/dist/cjs/components/RangeDateField/RangeDateField.js.map +1 -0
  116. package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.d.ts +3 -3
  117. package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.js +19 -29
  118. package/dist/cjs/components/RangeDateField/hooks/useRangeDateFieldState.js.map +1 -0
  119. package/dist/cjs/components/RangeDateField/index.d.ts +2 -2
  120. package/dist/cjs/components/RangeDateField/index.js +4 -16
  121. package/dist/cjs/components/RangeDateField/index.js.map +1 -0
  122. package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.d.ts +1 -1
  123. package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.js +3 -2
  124. package/dist/cjs/components/RangeDateField/utils/createPlaceholderRangeValue.js.map +1 -0
  125. package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.d.ts +4 -4
  126. package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.js +2 -1
  127. package/dist/cjs/components/RangeDateField/utils/getRangeEditableSections.js.map +1 -0
  128. package/dist/cjs/components/RangeDateField/utils/index.d.ts +3 -3
  129. package/dist/cjs/components/RangeDateField/utils/index.js +5 -17
  130. package/dist/cjs/components/RangeDateField/utils/index.js.map +1 -0
  131. package/dist/cjs/components/RangeDateField/utils/isValidRange.d.ts +1 -1
  132. package/dist/cjs/components/RangeDateField/utils/isValidRange.js +2 -2
  133. package/dist/cjs/components/RangeDateField/utils/isValidRange.js.map +1 -0
  134. package/dist/cjs/components/RangeDatePicker/RangeDatePicker.css +2 -1
  135. package/dist/cjs/components/RangeDatePicker/RangeDatePicker.css.map +1 -0
  136. package/dist/cjs/components/RangeDatePicker/RangeDatePicker.d.ts +3 -3
  137. package/dist/cjs/components/RangeDatePicker/RangeDatePicker.js +10 -9
  138. package/dist/cjs/components/RangeDatePicker/RangeDatePicker.js.map +1 -0
  139. package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.d.ts +7 -4
  140. package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.js +15 -7
  141. package/dist/cjs/components/RangeDatePicker/hooks/useRangeDatePickerState.js.map +1 -0
  142. package/dist/cjs/components/RangeDatePicker/index.d.ts +2 -2
  143. package/dist/cjs/components/RangeDatePicker/index.js +4 -16
  144. package/dist/cjs/components/RangeDatePicker/index.js.map +1 -0
  145. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.css +2 -1
  146. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.css.map +1 -0
  147. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.d.ts +4 -4
  148. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js +9 -10
  149. package/dist/cjs/components/RangeDateSelection/RangeDateSelection.js.map +1 -0
  150. package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.css +2 -1
  151. package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.css.map +1 -0
  152. package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.d.ts +1 -1
  153. package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.js +6 -8
  154. package/dist/cjs/components/RangeDateSelection/components/NowLine/NowLine.js.map +1 -0
  155. package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.d.ts +2 -2
  156. package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.js +12 -13
  157. package/dist/cjs/components/RangeDateSelection/components/Ruler/Ruler.js.map +1 -0
  158. package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.css +2 -1
  159. package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.css.map +1 -0
  160. package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.d.ts +2 -2
  161. package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.js +5 -6
  162. package/dist/cjs/components/RangeDateSelection/components/RulerViewport/RulerViewport.js.map +1 -0
  163. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.css +2 -1
  164. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.css.map +1 -0
  165. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.d.ts +3 -3
  166. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +6 -5
  167. package/dist/cjs/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -0
  168. package/dist/cjs/components/RangeDateSelection/components/Ticks/MiddleTicks.js +3 -2
  169. package/dist/cjs/components/RangeDateSelection/components/Ticks/MiddleTicks.js.map +1 -0
  170. package/dist/cjs/components/RangeDateSelection/components/Ticks/SlitTicks.js +3 -2
  171. package/dist/cjs/components/RangeDateSelection/components/Ticks/SlitTicks.js.map +1 -0
  172. package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.css +2 -1
  173. package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.css.map +1 -0
  174. package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.d.ts +3 -3
  175. package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.js +7 -8
  176. package/dist/cjs/components/RangeDateSelection/components/Ticks/Ticks.js.map +1 -0
  177. package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.d.ts +3 -3
  178. package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.js +6 -7
  179. package/dist/cjs/components/RangeDateSelection/components/Ticks/UnavialableTicks.js.map +1 -0
  180. package/dist/cjs/components/RangeDateSelection/components/Ticks/utils.d.ts +1 -1
  181. package/dist/cjs/components/RangeDateSelection/components/Ticks/utils.js +3 -2
  182. package/dist/cjs/components/RangeDateSelection/components/Ticks/utils.js.map +1 -0
  183. package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.d.ts +1 -1
  184. package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.js +7 -8
  185. package/dist/cjs/components/RangeDateSelection/hooks/useRangeDateSelectionState.js.map +1 -0
  186. package/dist/cjs/components/RangeDateSelection/i18n/index.js +5 -6
  187. package/dist/cjs/components/RangeDateSelection/i18n/index.js.map +1 -0
  188. package/dist/cjs/components/RangeDateSelection/index.d.ts +3 -3
  189. package/dist/cjs/components/RangeDateSelection/index.js +4 -16
  190. package/dist/cjs/components/RangeDateSelection/index.js.map +1 -0
  191. package/dist/cjs/components/RangeDateSelection/utils/date.js +2 -1
  192. package/dist/cjs/components/RangeDateSelection/utils/date.js.map +1 -0
  193. package/dist/cjs/components/RangeDateSelection/utils/span.js +1 -0
  194. package/dist/cjs/components/RangeDateSelection/utils/span.js.map +1 -0
  195. package/dist/cjs/components/RelativeDateField/RelativeDateField.css +2 -1
  196. package/dist/cjs/components/RelativeDateField/RelativeDateField.css.map +1 -0
  197. package/dist/cjs/components/RelativeDateField/RelativeDateField.d.ts +3 -3
  198. package/dist/cjs/components/RelativeDateField/RelativeDateField.js +9 -10
  199. package/dist/cjs/components/RelativeDateField/RelativeDateField.js.map +1 -0
  200. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.d.ts +4 -4
  201. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +3 -4
  202. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldProps.js.map +1 -0
  203. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.d.ts +1 -1
  204. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js +4 -5
  205. package/dist/cjs/components/RelativeDateField/hooks/useRelativeDateFieldState.js.map +1 -0
  206. package/dist/cjs/components/RelativeDateField/index.d.ts +3 -3
  207. package/dist/cjs/components/RelativeDateField/index.js +5 -17
  208. package/dist/cjs/components/RelativeDateField/index.js.map +1 -0
  209. package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.css +2 -1
  210. package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.css.map +1 -0
  211. package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.d.ts +4 -4
  212. package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js +13 -14
  213. package/dist/cjs/components/RelativeDatePicker/RelativeDatePicker.js.map +1 -0
  214. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.d.ts +4 -4
  215. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +10 -6
  216. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -0
  217. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.d.ts +3 -3
  218. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +16 -9
  219. package/dist/cjs/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js.map +1 -0
  220. package/dist/cjs/components/RelativeDatePicker/i18n/index.js +5 -6
  221. package/dist/cjs/components/RelativeDatePicker/i18n/index.js.map +1 -0
  222. package/dist/cjs/components/RelativeDatePicker/index.d.ts +3 -3
  223. package/dist/cjs/components/RelativeDatePicker/index.js +5 -17
  224. package/dist/cjs/components/RelativeDatePicker/index.js.map +1 -0
  225. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css +2 -1
  226. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css.map +1 -0
  227. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.d.ts +2 -2
  228. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +8 -9
  229. package/dist/cjs/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -0
  230. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.css +2 -1
  231. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.css.map +1 -0
  232. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.d.ts +3 -3
  233. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js +7 -8
  234. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -0
  235. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/i18n/index.js +5 -6
  236. package/dist/cjs/components/RelativeRangeDatePicker/components/Control/i18n/index.js.map +1 -0
  237. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css +2 -1
  238. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css.map +1 -0
  239. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +6 -5
  240. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +10 -9
  241. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js.map +1 -0
  242. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js +5 -6
  243. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js.map +1 -0
  244. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +5 -5
  245. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +5 -6
  246. package/dist/cjs/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -0
  247. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css +2 -1
  248. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -0
  249. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.d.ts +3 -3
  250. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js +6 -7
  251. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -0
  252. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css +2 -1
  253. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css.map +1 -0
  254. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.d.ts +2 -2
  255. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js +6 -7
  256. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js.map +1 -0
  257. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +2 -1
  258. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -0
  259. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.js +5 -6
  260. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/i18n/index.js.map +1 -0
  261. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +1 -1
  262. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js +3 -2
  263. package/dist/cjs/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -0
  264. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.css +2 -1
  265. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.css.map +1 -0
  266. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.d.ts +1 -1
  267. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js +4 -3
  268. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -0
  269. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.js +5 -6
  270. package/dist/cjs/components/RelativeRangeDatePicker/components/Zones/i18n/index.js.map +1 -0
  271. package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +2 -2
  272. package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +5 -6
  273. package/dist/cjs/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -0
  274. package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.js +5 -6
  275. package/dist/cjs/components/RelativeRangeDatePicker/i18n/index.js.map +1 -0
  276. package/dist/cjs/components/RelativeRangeDatePicker/index.d.ts +9 -9
  277. package/dist/cjs/components/RelativeRangeDatePicker/index.js +8 -20
  278. package/dist/cjs/components/RelativeRangeDatePicker/index.js.map +1 -0
  279. package/dist/cjs/components/RelativeRangeDatePicker/types.d.ts +5 -5
  280. package/dist/cjs/components/RelativeRangeDatePicker/types.js +1 -0
  281. package/dist/cjs/components/RelativeRangeDatePicker/types.js.map +1 -0
  282. package/dist/cjs/components/RelativeRangeDatePicker/utils.d.ts +3 -3
  283. package/dist/cjs/components/RelativeRangeDatePicker/utils.js +2 -1
  284. package/dist/cjs/components/RelativeRangeDatePicker/utils.js.map +1 -0
  285. package/dist/cjs/components/index.d.ts +11 -11
  286. package/dist/cjs/components/index.js +12 -24
  287. package/dist/cjs/components/index.js.map +1 -0
  288. package/dist/cjs/components/mixins.css +2 -0
  289. package/dist/cjs/components/mixins.css.map +1 -0
  290. package/dist/cjs/components/types/datePicker.d.ts +1 -1
  291. package/dist/cjs/components/types/datePicker.js +1 -0
  292. package/dist/cjs/components/types/datePicker.js.map +1 -0
  293. package/dist/cjs/components/types/events.js +1 -0
  294. package/dist/cjs/components/types/events.js.map +1 -0
  295. package/dist/cjs/components/types/index.d.ts +4 -4
  296. package/dist/cjs/components/types/index.js +1 -0
  297. package/dist/cjs/components/types/index.js.map +1 -0
  298. package/dist/cjs/components/types/inputs.js +1 -0
  299. package/dist/cjs/components/types/inputs.js.map +1 -0
  300. package/dist/cjs/components/types/style.js +1 -0
  301. package/dist/cjs/components/types/style.js.map +1 -0
  302. package/dist/cjs/components/utils/constants.js +1 -0
  303. package/dist/cjs/components/utils/constants.js.map +1 -0
  304. package/dist/cjs/components/utils/dates.js +2 -1
  305. package/dist/cjs/components/utils/dates.js.map +1 -0
  306. package/dist/cjs/components/utils/filterDOMProps.d.ts +1 -1
  307. package/dist/cjs/components/utils/filterDOMProps.js +1 -0
  308. package/dist/cjs/components/utils/filterDOMProps.js.map +1 -0
  309. package/dist/cjs/components/utils/getButtonSizeForInput.js +1 -0
  310. package/dist/cjs/components/utils/getButtonSizeForInput.js.map +1 -0
  311. package/dist/cjs/components/utils/mergeProps.js +1 -0
  312. package/dist/cjs/components/utils/mergeProps.js.map +1 -0
  313. package/dist/cjs/components/utils/useDefaultTimeZone.js +3 -4
  314. package/dist/cjs/components/utils/useDefaultTimeZone.js.map +1 -0
  315. package/dist/cjs/components/utils/validation/datePicker.js +2 -1
  316. package/dist/cjs/components/utils/validation/datePicker.js.map +1 -0
  317. package/dist/cjs/components/utils/validation/i18n/index.js +5 -6
  318. package/dist/cjs/components/utils/validation/i18n/index.js.map +1 -0
  319. package/dist/cjs/components/variables.css +2 -0
  320. package/dist/cjs/components/variables.css.map +1 -0
  321. package/dist/cjs/hooks/useEventHandler.js +3 -4
  322. package/dist/cjs/hooks/useEventHandler.js.map +1 -0
  323. package/dist/cjs/hooks/useMove.js +4 -5
  324. package/dist/cjs/hooks/useMove.js.map +1 -0
  325. package/dist/cjs/hooks/useResizeObserver.js +3 -4
  326. package/dist/cjs/hooks/useResizeObserver.js.map +1 -0
  327. package/dist/cjs/index.d.ts +1 -1
  328. package/dist/cjs/index.js +3 -15
  329. package/dist/cjs/index.js.map +1 -0
  330. package/dist/cjs/package.json +1 -0
  331. package/dist/cjs/utils/cn.js +1 -0
  332. package/dist/cjs/utils/cn.js.map +1 -0
  333. package/dist/esm/components/Calendar/Calendar.d.ts +4 -4
  334. package/dist/esm/components/Calendar/Calendar.js +4 -3
  335. package/dist/esm/components/Calendar/Calendar.js.map +1 -0
  336. package/dist/esm/components/Calendar/index.d.ts +8 -8
  337. package/dist/esm/components/Calendar/index.js +8 -7
  338. package/dist/esm/components/Calendar/index.js.map +1 -0
  339. package/dist/esm/components/CalendarView/Calendar.css +2 -1
  340. package/dist/esm/components/CalendarView/Calendar.css.map +1 -0
  341. package/dist/esm/components/CalendarView/CalendarView.d.ts +4 -4
  342. package/dist/esm/components/CalendarView/CalendarView.js +10 -9
  343. package/dist/esm/components/CalendarView/CalendarView.js.map +1 -0
  344. package/dist/esm/components/CalendarView/hooks/types.d.ts +1 -1
  345. package/dist/esm/components/CalendarView/hooks/types.js +1 -0
  346. package/dist/esm/components/CalendarView/hooks/types.js.map +1 -0
  347. package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.d.ts +1 -1
  348. package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js +2 -1
  349. package/dist/esm/components/CalendarView/hooks/useCalendarCellProps.js.map +1 -0
  350. package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.d.ts +1 -1
  351. package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js +2 -1
  352. package/dist/esm/components/CalendarView/hooks/useCalendarGridProps.js.map +1 -0
  353. package/dist/esm/components/CalendarView/hooks/useCalendarProps.d.ts +2 -2
  354. package/dist/esm/components/CalendarView/hooks/useCalendarProps.js +3 -2
  355. package/dist/esm/components/CalendarView/hooks/useCalendarProps.js.map +1 -0
  356. package/dist/esm/components/CalendarView/hooks/useCalendarState.d.ts +3 -3
  357. package/dist/esm/components/CalendarView/hooks/useCalendarState.js +4 -3
  358. package/dist/esm/components/CalendarView/hooks/useCalendarState.js.map +1 -0
  359. package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.d.ts +4 -4
  360. package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.js +4 -3
  361. package/dist/esm/components/CalendarView/hooks/useRangeCalendarState.js.map +1 -0
  362. package/dist/esm/components/CalendarView/i18n/index.js +4 -3
  363. package/dist/esm/components/CalendarView/i18n/index.js.map +1 -0
  364. package/dist/esm/components/CalendarView/utils.d.ts +3 -3
  365. package/dist/esm/components/CalendarView/utils.js +8 -6
  366. package/dist/esm/components/CalendarView/utils.js.map +1 -0
  367. package/dist/esm/components/DateField/DateField.css +2 -1
  368. package/dist/esm/components/DateField/DateField.css.map +1 -0
  369. package/dist/esm/components/DateField/DateField.d.ts +2 -2
  370. package/dist/esm/components/DateField/DateField.js +6 -5
  371. package/dist/esm/components/DateField/DateField.js.map +1 -0
  372. package/dist/esm/components/DateField/hooks/useBaseDateFieldState.d.ts +13 -4
  373. package/dist/esm/components/DateField/hooks/useBaseDateFieldState.js +9 -17
  374. package/dist/esm/components/DateField/hooks/useBaseDateFieldState.js.map +1 -0
  375. package/dist/esm/components/DateField/hooks/useDateFieldProps.d.ts +2 -2
  376. package/dist/esm/components/DateField/hooks/useDateFieldProps.js +2 -1
  377. package/dist/esm/components/DateField/hooks/useDateFieldProps.js.map +1 -0
  378. package/dist/esm/components/DateField/hooks/useDateFieldState.d.ts +2 -2
  379. package/dist/esm/components/DateField/hooks/useDateFieldState.js +12 -18
  380. package/dist/esm/components/DateField/hooks/useDateFieldState.js.map +1 -0
  381. package/dist/esm/components/DateField/i18n/en.json +1 -0
  382. package/dist/esm/components/DateField/i18n/index.d.ts +1 -1
  383. package/dist/esm/components/DateField/i18n/index.js +4 -3
  384. package/dist/esm/components/DateField/i18n/index.js.map +1 -0
  385. package/dist/esm/components/DateField/i18n/ru.json +1 -0
  386. package/dist/esm/components/DateField/index.d.ts +4 -4
  387. package/dist/esm/components/DateField/index.js +5 -4
  388. package/dist/esm/components/DateField/index.js.map +1 -0
  389. package/dist/esm/components/DateField/types.d.ts +9 -1
  390. package/dist/esm/components/DateField/types.js +1 -0
  391. package/dist/esm/components/DateField/types.js.map +1 -0
  392. package/dist/esm/components/DateField/utils.d.ts +22 -6
  393. package/dist/esm/components/DateField/utils.js +86 -5
  394. package/dist/esm/components/DateField/utils.js.map +1 -0
  395. package/dist/esm/components/DatePicker/DatePicker.css +2 -1
  396. package/dist/esm/components/DatePicker/DatePicker.css.map +1 -0
  397. package/dist/esm/components/DatePicker/DatePicker.d.ts +4 -4
  398. package/dist/esm/components/DatePicker/DatePicker.js +12 -11
  399. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -0
  400. package/dist/esm/components/DatePicker/MobileCalendar.css +2 -1
  401. package/dist/esm/components/DatePicker/MobileCalendar.css.map +1 -0
  402. package/dist/esm/components/DatePicker/MobileCalendar.d.ts +3 -3
  403. package/dist/esm/components/DatePicker/MobileCalendar.js +8 -7
  404. package/dist/esm/components/DatePicker/MobileCalendar.js.map +1 -0
  405. package/dist/esm/components/DatePicker/StubButton.css +2 -1
  406. package/dist/esm/components/DatePicker/StubButton.css.map +1 -0
  407. package/dist/esm/components/DatePicker/StubButton.d.ts +1 -1
  408. package/dist/esm/components/DatePicker/StubButton.js +3 -2
  409. package/dist/esm/components/DatePicker/StubButton.js.map +1 -0
  410. package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.d.ts +15 -5
  411. package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.js +19 -16
  412. package/dist/esm/components/DatePicker/hooks/datePickerStateFactory.js.map +1 -0
  413. package/dist/esm/components/DatePicker/hooks/useDatePickerProps.d.ts +5 -5
  414. package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js +10 -7
  415. package/dist/esm/components/DatePicker/hooks/useDatePickerProps.js.map +1 -0
  416. package/dist/esm/components/DatePicker/hooks/useDatePickerState.d.ts +3 -3
  417. package/dist/esm/components/DatePicker/hooks/useDatePickerState.js +7 -4
  418. package/dist/esm/components/DatePicker/hooks/useDatePickerState.js.map +1 -0
  419. package/dist/esm/components/DatePicker/i18n/index.js +4 -3
  420. package/dist/esm/components/DatePicker/i18n/index.js.map +1 -0
  421. package/dist/esm/components/DatePicker/index.d.ts +3 -3
  422. package/dist/esm/components/DatePicker/index.js +4 -3
  423. package/dist/esm/components/DatePicker/index.js.map +1 -0
  424. package/dist/esm/components/DatePicker/utils/cn.js +2 -1
  425. package/dist/esm/components/DatePicker/utils/cn.js.map +1 -0
  426. package/dist/esm/components/DatePicker/utils/getCalendarModes.d.ts +5 -0
  427. package/dist/esm/components/DatePicker/utils/getCalendarModes.js +18 -0
  428. package/dist/esm/components/DatePicker/utils/getCalendarModes.js.map +1 -0
  429. package/dist/esm/components/DatePicker/utils/getDateTimeValue.d.ts +1 -1
  430. package/dist/esm/components/DatePicker/utils/getDateTimeValue.js +1 -0
  431. package/dist/esm/components/DatePicker/utils/getDateTimeValue.js.map +1 -0
  432. package/dist/esm/components/DatePicker/utils/index.d.ts +3 -2
  433. package/dist/esm/components/DatePicker/utils/index.js +4 -2
  434. package/dist/esm/components/DatePicker/utils/index.js.map +1 -0
  435. package/dist/esm/components/HiddenInput/HiddenInput.js +1 -0
  436. package/dist/esm/components/HiddenInput/HiddenInput.js.map +1 -0
  437. package/dist/esm/components/RangeCalendar/RangeCalendar.d.ts +4 -4
  438. package/dist/esm/components/RangeCalendar/RangeCalendar.js +4 -3
  439. package/dist/esm/components/RangeCalendar/RangeCalendar.js.map +1 -0
  440. package/dist/esm/components/RangeCalendar/index.d.ts +1 -1
  441. package/dist/esm/components/RangeCalendar/index.js +2 -1
  442. package/dist/esm/components/RangeCalendar/index.js.map +1 -0
  443. package/dist/esm/components/RangeDateField/RangeDateField.css +2 -1
  444. package/dist/esm/components/RangeDateField/RangeDateField.css.map +1 -0
  445. package/dist/esm/components/RangeDateField/RangeDateField.d.ts +3 -3
  446. package/dist/esm/components/RangeDateField/RangeDateField.js +6 -5
  447. package/dist/esm/components/RangeDateField/RangeDateField.js.map +1 -0
  448. package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.d.ts +3 -3
  449. package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.js +17 -25
  450. package/dist/esm/components/RangeDateField/hooks/useRangeDateFieldState.js.map +1 -0
  451. package/dist/esm/components/RangeDateField/index.d.ts +2 -2
  452. package/dist/esm/components/RangeDateField/index.js +3 -2
  453. package/dist/esm/components/RangeDateField/index.js.map +1 -0
  454. package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.d.ts +1 -1
  455. package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.js +3 -2
  456. package/dist/esm/components/RangeDateField/utils/createPlaceholderRangeValue.js.map +1 -0
  457. package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.d.ts +4 -4
  458. package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.js +2 -1
  459. package/dist/esm/components/RangeDateField/utils/getRangeEditableSections.js.map +1 -0
  460. package/dist/esm/components/RangeDateField/utils/index.d.ts +3 -3
  461. package/dist/esm/components/RangeDateField/utils/index.js +4 -3
  462. package/dist/esm/components/RangeDateField/utils/index.js.map +1 -0
  463. package/dist/esm/components/RangeDateField/utils/isValidRange.d.ts +1 -1
  464. package/dist/esm/components/RangeDateField/utils/isValidRange.js +2 -2
  465. package/dist/esm/components/RangeDateField/utils/isValidRange.js.map +1 -0
  466. package/dist/esm/components/RangeDatePicker/RangeDatePicker.css +2 -1
  467. package/dist/esm/components/RangeDatePicker/RangeDatePicker.css.map +1 -0
  468. package/dist/esm/components/RangeDatePicker/RangeDatePicker.d.ts +3 -3
  469. package/dist/esm/components/RangeDatePicker/RangeDatePicker.js +11 -10
  470. package/dist/esm/components/RangeDatePicker/RangeDatePicker.js.map +1 -0
  471. package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.d.ts +7 -4
  472. package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.js +14 -6
  473. package/dist/esm/components/RangeDatePicker/hooks/useRangeDatePickerState.js.map +1 -0
  474. package/dist/esm/components/RangeDatePicker/index.d.ts +2 -2
  475. package/dist/esm/components/RangeDatePicker/index.js +3 -2
  476. package/dist/esm/components/RangeDatePicker/index.js.map +1 -0
  477. package/dist/esm/components/RangeDateSelection/RangeDateSelection.css +2 -1
  478. package/dist/esm/components/RangeDateSelection/RangeDateSelection.css.map +1 -0
  479. package/dist/esm/components/RangeDateSelection/RangeDateSelection.d.ts +4 -4
  480. package/dist/esm/components/RangeDateSelection/RangeDateSelection.js +8 -7
  481. package/dist/esm/components/RangeDateSelection/RangeDateSelection.js.map +1 -0
  482. package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.css +2 -1
  483. package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.css.map +1 -0
  484. package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.d.ts +1 -1
  485. package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.js +5 -5
  486. package/dist/esm/components/RangeDateSelection/components/NowLine/NowLine.js.map +1 -0
  487. package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.d.ts +2 -2
  488. package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.js +9 -8
  489. package/dist/esm/components/RangeDateSelection/components/Ruler/Ruler.js.map +1 -0
  490. package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.css +2 -1
  491. package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.css.map +1 -0
  492. package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.d.ts +2 -2
  493. package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.js +4 -3
  494. package/dist/esm/components/RangeDateSelection/components/RulerViewport/RulerViewport.js.map +1 -0
  495. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.css +2 -1
  496. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.css.map +1 -0
  497. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.d.ts +3 -3
  498. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js +7 -6
  499. package/dist/esm/components/RangeDateSelection/components/SelectionControl/SelectionControl.js.map +1 -0
  500. package/dist/esm/components/RangeDateSelection/components/Ticks/MiddleTicks.js +3 -2
  501. package/dist/esm/components/RangeDateSelection/components/Ticks/MiddleTicks.js.map +1 -0
  502. package/dist/esm/components/RangeDateSelection/components/Ticks/SlitTicks.js +3 -2
  503. package/dist/esm/components/RangeDateSelection/components/Ticks/SlitTicks.js.map +1 -0
  504. package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.css +2 -1
  505. package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.css.map +1 -0
  506. package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.d.ts +3 -3
  507. package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.js +6 -5
  508. package/dist/esm/components/RangeDateSelection/components/Ticks/Ticks.js.map +1 -0
  509. package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.d.ts +3 -3
  510. package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.js +5 -4
  511. package/dist/esm/components/RangeDateSelection/components/Ticks/UnavialableTicks.js.map +1 -0
  512. package/dist/esm/components/RangeDateSelection/components/Ticks/utils.d.ts +1 -1
  513. package/dist/esm/components/RangeDateSelection/components/Ticks/utils.js +3 -2
  514. package/dist/esm/components/RangeDateSelection/components/Ticks/utils.js.map +1 -0
  515. package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.d.ts +1 -1
  516. package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.js +5 -4
  517. package/dist/esm/components/RangeDateSelection/hooks/useRangeDateSelectionState.js.map +1 -0
  518. package/dist/esm/components/RangeDateSelection/i18n/index.js +4 -3
  519. package/dist/esm/components/RangeDateSelection/i18n/index.js.map +1 -0
  520. package/dist/esm/components/RangeDateSelection/index.d.ts +3 -3
  521. package/dist/esm/components/RangeDateSelection/index.js +3 -2
  522. package/dist/esm/components/RangeDateSelection/index.js.map +1 -0
  523. package/dist/esm/components/RangeDateSelection/utils/date.js +2 -1
  524. package/dist/esm/components/RangeDateSelection/utils/date.js.map +1 -0
  525. package/dist/esm/components/RangeDateSelection/utils/span.js +1 -0
  526. package/dist/esm/components/RangeDateSelection/utils/span.js.map +1 -0
  527. package/dist/esm/components/RelativeDateField/RelativeDateField.css +2 -1
  528. package/dist/esm/components/RelativeDateField/RelativeDateField.css.map +1 -0
  529. package/dist/esm/components/RelativeDateField/RelativeDateField.d.ts +3 -3
  530. package/dist/esm/components/RelativeDateField/RelativeDateField.js +8 -7
  531. package/dist/esm/components/RelativeDateField/RelativeDateField.js.map +1 -0
  532. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.d.ts +4 -4
  533. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.js +1 -0
  534. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldProps.js.map +1 -0
  535. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.d.ts +1 -1
  536. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.js +3 -2
  537. package/dist/esm/components/RelativeDateField/hooks/useRelativeDateFieldState.js.map +1 -0
  538. package/dist/esm/components/RelativeDateField/index.d.ts +3 -3
  539. package/dist/esm/components/RelativeDateField/index.js +4 -3
  540. package/dist/esm/components/RelativeDateField/index.js.map +1 -0
  541. package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.css +2 -1
  542. package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.css.map +1 -0
  543. package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.d.ts +4 -4
  544. package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js +12 -11
  545. package/dist/esm/components/RelativeDatePicker/RelativeDatePicker.js.map +1 -0
  546. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.d.ts +4 -4
  547. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js +10 -6
  548. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerProps.js.map +1 -0
  549. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.d.ts +3 -3
  550. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js +14 -5
  551. package/dist/esm/components/RelativeDatePicker/hooks/useRelativeDatePickerState.js.map +1 -0
  552. package/dist/esm/components/RelativeDatePicker/i18n/index.js +4 -3
  553. package/dist/esm/components/RelativeDatePicker/i18n/index.js.map +1 -0
  554. package/dist/esm/components/RelativeDatePicker/index.d.ts +3 -3
  555. package/dist/esm/components/RelativeDatePicker/index.js +4 -3
  556. package/dist/esm/components/RelativeDatePicker/index.js.map +1 -0
  557. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css +2 -1
  558. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.css.map +1 -0
  559. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.d.ts +2 -2
  560. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js +7 -6
  561. package/dist/esm/components/RelativeRangeDatePicker/RelativeRangeDatePicker.js.map +1 -0
  562. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.css +2 -1
  563. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.css.map +1 -0
  564. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.d.ts +3 -3
  565. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js +6 -5
  566. package/dist/esm/components/RelativeRangeDatePicker/components/Control/Control.js.map +1 -0
  567. package/dist/esm/components/RelativeRangeDatePicker/components/Control/i18n/index.js +4 -3
  568. package/dist/esm/components/RelativeRangeDatePicker/components/Control/i18n/index.js.map +1 -0
  569. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css +2 -1
  570. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.css.map +1 -0
  571. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.d.ts +6 -5
  572. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js +11 -10
  573. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/PickerDialog.js.map +1 -0
  574. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js +4 -3
  575. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/i18n/index.js.map +1 -0
  576. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.d.ts +5 -5
  577. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js +3 -2
  578. package/dist/esm/components/RelativeRangeDatePicker/components/PickerDialog/useRelativeRangeDatePickerDialogState.js.map +1 -0
  579. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css +2 -1
  580. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.css.map +1 -0
  581. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.d.ts +3 -3
  582. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js +5 -4
  583. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/Presets.js.map +1 -0
  584. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css +2 -1
  585. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.css.map +1 -0
  586. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.d.ts +2 -2
  587. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js +5 -4
  588. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/PresetsDoc.js.map +1 -0
  589. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js +2 -1
  590. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/defaultPresets.js.map +1 -0
  591. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.js +4 -3
  592. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/i18n/index.js.map +1 -0
  593. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.d.ts +1 -1
  594. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js +3 -2
  595. package/dist/esm/components/RelativeRangeDatePicker/components/Presets/utils.js.map +1 -0
  596. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.css +2 -1
  597. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.css.map +1 -0
  598. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.d.ts +1 -1
  599. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js +5 -4
  600. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/Zones.js.map +1 -0
  601. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.js +4 -3
  602. package/dist/esm/components/RelativeRangeDatePicker/components/Zones/i18n/index.js.map +1 -0
  603. package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.d.ts +2 -2
  604. package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js +3 -2
  605. package/dist/esm/components/RelativeRangeDatePicker/hooks/useRelativeRangeDatePickerState.js.map +1 -0
  606. package/dist/esm/components/RelativeRangeDatePicker/i18n/index.js +4 -3
  607. package/dist/esm/components/RelativeRangeDatePicker/i18n/index.js.map +1 -0
  608. package/dist/esm/components/RelativeRangeDatePicker/index.d.ts +9 -9
  609. package/dist/esm/components/RelativeRangeDatePicker/index.js +7 -6
  610. package/dist/esm/components/RelativeRangeDatePicker/index.js.map +1 -0
  611. package/dist/esm/components/RelativeRangeDatePicker/types.d.ts +5 -5
  612. package/dist/esm/components/RelativeRangeDatePicker/types.js +1 -0
  613. package/dist/esm/components/RelativeRangeDatePicker/types.js.map +1 -0
  614. package/dist/esm/components/RelativeRangeDatePicker/utils.d.ts +3 -3
  615. package/dist/esm/components/RelativeRangeDatePicker/utils.js +2 -1
  616. package/dist/esm/components/RelativeRangeDatePicker/utils.js.map +1 -0
  617. package/dist/esm/components/index.d.ts +11 -11
  618. package/dist/esm/components/index.js +11 -10
  619. package/dist/esm/components/index.js.map +1 -0
  620. package/dist/esm/components/mixins.css +2 -0
  621. package/dist/esm/components/mixins.css.map +1 -0
  622. package/dist/esm/components/types/datePicker.d.ts +1 -1
  623. package/dist/esm/components/types/datePicker.js +1 -0
  624. package/dist/esm/components/types/datePicker.js.map +1 -0
  625. package/dist/esm/components/types/events.js +1 -0
  626. package/dist/esm/components/types/events.js.map +1 -0
  627. package/dist/esm/components/types/index.d.ts +4 -4
  628. package/dist/esm/components/types/index.js +1 -0
  629. package/dist/esm/components/types/index.js.map +1 -0
  630. package/dist/esm/components/types/inputs.js +1 -0
  631. package/dist/esm/components/types/inputs.js.map +1 -0
  632. package/dist/esm/components/types/style.js +1 -0
  633. package/dist/esm/components/types/style.js.map +1 -0
  634. package/dist/esm/components/utils/constants.js +1 -0
  635. package/dist/esm/components/utils/constants.js.map +1 -0
  636. package/dist/esm/components/utils/dates.js +2 -1
  637. package/dist/esm/components/utils/dates.js.map +1 -0
  638. package/dist/esm/components/utils/filterDOMProps.d.ts +1 -1
  639. package/dist/esm/components/utils/filterDOMProps.js +1 -0
  640. package/dist/esm/components/utils/filterDOMProps.js.map +1 -0
  641. package/dist/esm/components/utils/getButtonSizeForInput.js +1 -0
  642. package/dist/esm/components/utils/getButtonSizeForInput.js.map +1 -0
  643. package/dist/esm/components/utils/mergeProps.js +1 -0
  644. package/dist/esm/components/utils/mergeProps.js.map +1 -0
  645. package/dist/esm/components/utils/useDefaultTimeZone.js +1 -0
  646. package/dist/esm/components/utils/useDefaultTimeZone.js.map +1 -0
  647. package/dist/esm/components/utils/validation/datePicker.js +2 -1
  648. package/dist/esm/components/utils/validation/datePicker.js.map +1 -0
  649. package/dist/esm/components/utils/validation/i18n/index.js +4 -3
  650. package/dist/esm/components/utils/validation/i18n/index.js.map +1 -0
  651. package/dist/esm/components/variables.css +2 -0
  652. package/dist/esm/components/variables.css.map +1 -0
  653. package/dist/esm/hooks/useEventHandler.js +1 -0
  654. package/dist/esm/hooks/useEventHandler.js.map +1 -0
  655. package/dist/esm/hooks/useMove.js +2 -1
  656. package/dist/esm/hooks/useMove.js.map +1 -0
  657. package/dist/esm/hooks/useResizeObserver.js +1 -0
  658. package/dist/esm/hooks/useResizeObserver.js.map +1 -0
  659. package/dist/esm/index.d.ts +1 -1
  660. package/dist/esm/index.js +2 -1
  661. package/dist/esm/index.js.map +1 -0
  662. package/dist/esm/package.json +1 -0
  663. package/dist/esm/utils/cn.js +1 -0
  664. package/dist/esm/utils/cn.js.map +1 -0
  665. package/package.json +38 -34
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["components/DateField/index.ts"],"names":[],"mappings":";;;AAAA,yDAA4B;AAE5B,uEAA0C;AAC1C,uEAA0C;AAC1C,2EAA8C","sourcesContent":["export * from './DateField';\n\nexport * from './hooks/useDateFieldState';\nexport * from './hooks/useDateFieldProps';\nexport * from './hooks/useBaseDateFieldState';\n"]}
@@ -1,4 +1,4 @@
1
- export type DateFieldSectionType = Extract<Intl.DateTimeFormatPartTypes, 'day' | 'dayPeriod' | 'hour' | 'literal' | 'minute' | 'month' | 'second' | 'timeZoneName' | 'weekday' | 'year' | 'unknown'>;
1
+ export type DateFieldSectionType = Extract<Intl.DateTimeFormatPartTypes, 'day' | 'dayPeriod' | 'hour' | 'literal' | 'minute' | 'month' | 'second' | 'timeZoneName' | 'weekday' | 'year' | 'unknown'> | 'quarter';
2
2
  export type DateFormatTokenMap = {
3
3
  [formatToken: string]: DateFieldSectionType | {
4
4
  sectionType: DateFieldSectionType;
@@ -65,3 +65,11 @@ export interface DateFieldSection {
65
65
  nextEditableSection: number;
66
66
  }
67
67
  export type DateFieldSectionWithoutPosition<TSection extends DateFieldSection = DateFieldSection> = Omit<TSection, 'start' | 'end' | 'value' | 'textValue' | 'modified' | 'previousEditableSection' | 'nextEditableSection'>;
68
+ export type AvailableSections = Partial<Record<DateFieldSectionType, boolean>>;
69
+ export interface FormatInfo {
70
+ hasTime: boolean;
71
+ hasDate: boolean;
72
+ availableUnits: AvailableSections;
73
+ minDateUnit: 'day' | 'month' | 'quarter' | 'year';
74
+ minTimeUnit: 'second' | 'minute' | 'hour';
75
+ }
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"../../../../src","sources":["components/DateField/types.ts"],"names":[],"mappings":"","sourcesContent":["export type DateFieldSectionType =\n | Extract<\n Intl.DateTimeFormatPartTypes,\n | 'day'\n | 'dayPeriod'\n | 'hour'\n | 'literal'\n | 'minute'\n | 'month'\n | 'second'\n | 'timeZoneName'\n | 'weekday'\n | 'year'\n | 'unknown'\n >\n | 'quarter';\n\nexport type DateFormatTokenMap = {\n [formatToken: string]:\n | DateFieldSectionType\n | {sectionType: DateFieldSectionType; contentType: 'digit' | 'letter'};\n};\n\nexport interface DateFieldSection {\n value: number | undefined;\n /**\n * Value of the section, as rendered inside the input.\n * For example, in the date `May 25, 1995`, the value of the month section is \"May\".\n */\n textValue: string;\n /**\n * Format token used to parse the value of this section from the date object.\n * For example, in the format `MMMM D, YYYY`, the format of the month section is \"MMMM\".\n */\n format: string;\n /**\n * Placeholder rendered when the value of this section is empty.\n */\n placeholder: string;\n /**\n * Type of the section.\n */\n type: DateFieldSectionType;\n /**\n * Type of content of the section.\n * Will determine if we should apply a digit-based editing or a letter-based editing.\n */\n contentType: 'digit' | 'letter';\n /**\n * Available values\n */\n options?: string[];\n /** The minimum numeric value for the segment, if applicable. */\n minValue?: number;\n /** The maximum numeric value for the segment, if applicable. */\n maxValue?: number;\n /**\n * If `true`, the value of this section is supposed to have leading zeroes.\n * For example, the value `1` should be rendered as \"01\" instead of \"1\".\n */\n hasLeadingZeros: boolean;\n /**\n * If `true`, the section value has been modified since the last time the sections were generated from a valid date.\n * When we can generate a valid date from the section, we don't directly pass it to `onChange`,\n * Otherwise, we would lose all the information contained in the original date, things like:\n * - time if the format does not contain it\n * - timezone / UTC\n *\n * To avoid losing that information, we transfer the values of the modified sections from the newly generated date to the original date.\n */\n modified: boolean;\n /**\n * Start index of the section in the format\n */\n start: number;\n /**\n * End index of the section in the format\n */\n end: number;\n\n previousEditableSection: number;\n nextEditableSection: number;\n}\n\nexport type DateFieldSectionWithoutPosition<TSection extends DateFieldSection = DateFieldSection> =\n Omit<\n TSection,\n | 'start'\n | 'end'\n | 'value'\n | 'textValue'\n | 'modified'\n | 'previousEditableSection'\n | 'nextEditableSection'\n >;\n\nexport type AvailableSections = Partial<Record<DateFieldSectionType, boolean>>;\n\nexport interface FormatInfo {\n hasTime: boolean;\n hasDate: boolean;\n availableUnits: AvailableSections;\n minDateUnit: 'day' | 'month' | 'quarter' | 'year';\n minTimeUnit: 'second' | 'minute' | 'hour';\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { DateTime } from '@gravity-ui/date-utils';
2
- import type { DateFieldSection, DateFieldSectionType, DateFieldSectionWithoutPosition } from './types';
3
- export declare const EDITABLE_SEGMENTS: Partial<Record<DateFieldSectionType, boolean>>;
2
+ import type { AvailableSections, DateFieldSection, DateFieldSectionType, DateFieldSectionWithoutPosition, FormatInfo } from "./types.js";
3
+ export declare const EDITABLE_SEGMENTS: AvailableSections;
4
4
  export declare function getSectionLimits(section: DateFieldSectionWithoutPosition, date: DateTime): {
5
5
  minValue: number;
6
6
  maxValue: number;
@@ -9,16 +9,32 @@ export declare function getSectionLimits(section: DateFieldSectionWithoutPositio
9
9
  maxValue?: undefined;
10
10
  };
11
11
  export declare function getSectionValue(section: DateFieldSectionWithoutPosition, date: DateTime): number | undefined;
12
- export declare function getDurationUnitFromSectionType(type: DateFieldSectionType): "year" | "month" | "day" | "hour" | "minute" | "second" | "date";
12
+ export declare function getDurationUnitFromSectionType(type: DateFieldSectionType): "year" | "month" | "day" | "hour" | "minute" | "second" | "quarter" | "date";
13
13
  export declare function addSegment(section: DateFieldSection, date: DateTime, amount: number): DateTime;
14
14
  export declare function setSegment(section: DateFieldSection, date: DateTime, amount: number): DateTime;
15
15
  export declare function splitFormatIntoSections(format: string): DateFieldSectionWithoutPosition[];
16
16
  export declare function cleanString(dirtyString: string): string;
17
- export declare function getEditableSections(sections: DateFieldSectionWithoutPosition[], value: DateTime, validSegments: typeof EDITABLE_SEGMENTS): DateFieldSection[];
17
+ export declare function getEditableSections(sections: DateFieldSectionWithoutPosition[], value: DateTime, validSegments: AvailableSections): DateFieldSection[];
18
18
  export declare function isEditableSection(section: DateFieldSectionWithoutPosition): boolean;
19
- export declare function toEditableSection(section: DateFieldSectionWithoutPosition, value: DateTime, validSegments: typeof EDITABLE_SEGMENTS, position: number, previousEditableSection: number): DateFieldSection;
19
+ export declare function toEditableSection(section: DateFieldSectionWithoutPosition, value: DateTime, validSegments: AvailableSections, position: number, previousEditableSection: number): DateFieldSection;
20
20
  export declare function getCurrentEditableSectionIndex(sections: DateFieldSection[], selectedSections: 'all' | number): number;
21
21
  export declare function formatSections(sections: DateFieldSection[]): string;
22
22
  export declare function parseDateFromString(str: string, format: string, timeZone?: string): DateTime;
23
- export declare function isAllSegmentsValid(allSegments: typeof EDITABLE_SEGMENTS, validSegments: typeof EDITABLE_SEGMENTS): boolean;
23
+ export declare function isAllSegmentsValid(allSegments: AvailableSections, validSegments: AvailableSections): boolean;
24
24
  export declare function useFormatSections(format: string): DateFieldSectionWithoutPosition[];
25
+ export declare function getFormatInfo(sections: DateFieldSectionWithoutPosition[]): FormatInfo;
26
+ export declare function adjustDateToFormat(date: DateTime, formatInfo: FormatInfo, method?: 'startOf' | 'endOf'): DateTime;
27
+ export declare function markValidSection(allSections: AvailableSections, editableSections: AvailableSections, unit: DateFieldSectionType): {
28
+ year?: boolean | undefined;
29
+ month?: boolean | undefined;
30
+ day?: boolean | undefined;
31
+ hour?: boolean | undefined;
32
+ minute?: boolean | undefined;
33
+ second?: boolean | undefined;
34
+ quarter?: boolean | undefined;
35
+ weekday?: boolean | undefined;
36
+ dayPeriod?: boolean | undefined;
37
+ literal?: boolean | undefined;
38
+ timeZoneName?: boolean | undefined;
39
+ unknown?: boolean | undefined;
40
+ };
@@ -1,7 +1,4 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.EDITABLE_SEGMENTS = void 0;
7
4
  exports.getSectionLimits = getSectionLimits;
@@ -19,12 +16,17 @@ exports.formatSections = formatSections;
19
16
  exports.parseDateFromString = parseDateFromString;
20
17
  exports.isAllSegmentsValid = isAllSegmentsValid;
21
18
  exports.useFormatSections = useFormatSections;
22
- const react_1 = __importDefault(require("react"));
19
+ exports.getFormatInfo = getFormatInfo;
20
+ exports.adjustDateToFormat = adjustDateToFormat;
21
+ exports.markValidSection = markValidSection;
22
+ const tslib_1 = require("tslib");
23
+ const react_1 = tslib_1.__importDefault(require("react"));
23
24
  const date_utils_1 = require("@gravity-ui/date-utils");
24
- const dates_1 = require("../utils/dates");
25
- const i18n_1 = require("./i18n");
25
+ const dates_1 = require("../utils/dates.js");
26
+ const i18n_1 = require("./i18n/index.js");
26
27
  exports.EDITABLE_SEGMENTS = {
27
28
  year: true,
29
+ quarter: true,
28
30
  month: true,
29
31
  day: true,
30
32
  hour: true,
@@ -38,6 +40,8 @@ const formatTokenMap = {
38
40
  // Year
39
41
  YY: 'year',
40
42
  YYYY: 'year',
43
+ // Quarter
44
+ Q: 'quarter',
41
45
  // Month
42
46
  M: 'month',
43
47
  MM: 'month',
@@ -112,6 +116,9 @@ function getSectionLimits(section, date) {
112
116
  maxValue: isFourDigit ? 9999 : 99,
113
117
  };
114
118
  }
119
+ case 'quarter': {
120
+ return { minValue: 1, maxValue: 4 };
121
+ }
115
122
  case 'month': {
116
123
  return {
117
124
  minValue: 0,
@@ -161,6 +168,7 @@ function getSectionValue(section, date) {
161
168
  ? date.year()
162
169
  : Number(date.format(section.format));
163
170
  }
171
+ case 'quarter':
164
172
  case 'month':
165
173
  case 'hour':
166
174
  case 'minute':
@@ -211,6 +219,9 @@ function addSegment(section, date, amount) {
211
219
  if (section.type === 'year' && !isFourDigitYearFormat(section.format)) {
212
220
  val = (0, date_utils_1.dateTime)({ input: `${val}`.padStart(2, '0'), format: section.format }).year();
213
221
  }
222
+ if (section.type === 'quarter') {
223
+ return date.set(getDurationUnitFromSectionType('month'), val * 3 - 1);
224
+ }
214
225
  const type = getDurationUnitFromSectionType(section.type);
215
226
  return date.set(type, val);
216
227
  }
@@ -225,6 +236,9 @@ function setSegment(section, date, amount) {
225
236
  format: section.format,
226
237
  }).year());
227
238
  }
239
+ case 'quarter': {
240
+ return date.set(getDurationUnitFromSectionType('month'), amount * 3 - 1);
241
+ }
228
242
  case 'day':
229
243
  case 'weekday':
230
244
  case 'month': {
@@ -274,6 +288,9 @@ function doesSectionHaveLeadingZeros(contentType, sectionType, format) {
274
288
  const formatted2001 = (0, date_utils_1.dateTime)().set('year', 2001).format(format);
275
289
  return formatted2001 === '01';
276
290
  }
291
+ case 'quarter': {
292
+ return false;
293
+ }
277
294
  case 'month': {
278
295
  return (0, date_utils_1.dateTime)().startOf('year').format(format).length > 1;
279
296
  }
@@ -302,6 +319,9 @@ function getSectionPlaceholder(sectionConfig, currentTokenValue) {
302
319
  case 'year': {
303
320
  return (0, i18n_1.i18n)('year_placeholder').repeat((0, date_utils_1.dateTime)().format(currentTokenValue).length);
304
321
  }
322
+ case 'quarter': {
323
+ return (0, i18n_1.i18n)('quarter_placeholder');
324
+ }
305
325
  case 'month': {
306
326
  return (0, i18n_1.i18n)('month_placeholder').repeat(sectionConfig.contentType === 'letter' ? 4 : 2);
307
327
  }
@@ -492,7 +512,7 @@ function formatSections(sections) {
492
512
  }
493
513
  function parseDate(options) {
494
514
  let date = (0, date_utils_1.dateTime)(options);
495
- if (!(0, date_utils_1.isValid)(date)) {
515
+ if (!date.isValid()) {
496
516
  date = (0, date_utils_1.dateTime)(Object.assign(Object.assign({}, options), { format: undefined }));
497
517
  }
498
518
  return date;
@@ -502,7 +522,7 @@ function isDateStringWithTimeZone(str) {
502
522
  }
503
523
  function parseDateFromString(str, format, timeZone) {
504
524
  let date = parseDate({ input: str, format, timeZone });
505
- if ((0, date_utils_1.isValid)(date)) {
525
+ if (date.isValid()) {
506
526
  if (timeZone && !isDateStringWithTimeZone(str)) {
507
527
  const time = parseDate({ input: str, format });
508
528
  date = (0, dates_1.mergeDateTime)(date, time);
@@ -523,3 +543,65 @@ function useFormatSections(format) {
523
543
  }
524
544
  return sections;
525
545
  }
546
+ const dateUnits = ['day', 'month', 'quarter', 'year'];
547
+ const timeUnits = ['second', 'minute', 'hour'];
548
+ function getFormatInfo(sections) {
549
+ var _a, _b;
550
+ const availableUnits = {};
551
+ let hasDate = false;
552
+ let hasTime = false;
553
+ let minDateUnitIndex = dateUnits.length - 1;
554
+ let minTimeUnitIndex = timeUnits.length - 1;
555
+ for (const s of sections) {
556
+ if (!isEditableSection(s)) {
557
+ continue;
558
+ }
559
+ const dateUnitIndex = dateUnits.indexOf(s.type);
560
+ const timeUnitIndex = timeUnits.indexOf(s.type);
561
+ availableUnits[s.type] = true;
562
+ hasDate || (hasDate = dateUnitIndex !== -1);
563
+ hasTime || (hasTime = timeUnitIndex !== -1);
564
+ minDateUnitIndex =
565
+ dateUnitIndex === -1 ? minDateUnitIndex : Math.min(dateUnitIndex, minDateUnitIndex);
566
+ minTimeUnitIndex =
567
+ timeUnitIndex === -1 ? minTimeUnitIndex : Math.min(timeUnitIndex, minTimeUnitIndex);
568
+ }
569
+ return {
570
+ availableUnits,
571
+ hasDate,
572
+ hasTime,
573
+ minDateUnit: (_a = dateUnits[minDateUnitIndex]) !== null && _a !== void 0 ? _a : 'day',
574
+ minTimeUnit: (_b = timeUnits[minTimeUnitIndex]) !== null && _b !== void 0 ? _b : 'second',
575
+ };
576
+ }
577
+ function adjustDateToFormat(date, formatInfo, method = 'startOf') {
578
+ let newDate = date;
579
+ if (formatInfo.hasDate) {
580
+ if (formatInfo.minDateUnit !== 'day') {
581
+ newDate = newDate[method](formatInfo.minDateUnit);
582
+ newDate = (0, dates_1.mergeDateTime)(newDate, date);
583
+ }
584
+ }
585
+ if (formatInfo.hasTime) {
586
+ newDate = (0, dates_1.mergeDateTime)(newDate, date[method](formatInfo.minTimeUnit));
587
+ }
588
+ return newDate;
589
+ }
590
+ function markValidSection(allSections, editableSections, unit) {
591
+ const validSections = Object.assign({}, editableSections);
592
+ validSections[unit] = true;
593
+ if (validSections.day && validSections.month && validSections.year && allSections.weekday) {
594
+ validSections.weekday = true;
595
+ }
596
+ if (validSections.month && allSections.quarter) {
597
+ validSections.quarter = true;
598
+ }
599
+ if (validSections.quarter && allSections.month) {
600
+ validSections.month = true;
601
+ }
602
+ if (validSections.hour && allSections.dayPeriod) {
603
+ validSections.dayPeriod = true;
604
+ }
605
+ return validSections;
606
+ }
607
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"../../../../src","sources":["components/DateField/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {dateTime, expandFormat} from '@gravity-ui/date-utils';\nimport type {DateTime} from '@gravity-ui/date-utils';\n\nimport {mergeDateTime} from '../utils/dates';\n\nimport {i18n} from './i18n';\nimport type {\n AvailableSections,\n DateFieldSection,\n DateFieldSectionType,\n DateFieldSectionWithoutPosition,\n DateFormatTokenMap,\n FormatInfo,\n} from './types';\n\nexport const EDITABLE_SEGMENTS: AvailableSections = {\n year: true,\n quarter: true,\n month: true,\n day: true,\n hour: true,\n minute: true,\n second: true,\n dayPeriod: true,\n weekday: true,\n};\n\nconst escapedCharacters = {start: '[', end: ']'};\n\nconst formatTokenMap: DateFormatTokenMap = {\n // Year\n YY: 'year',\n YYYY: 'year',\n\n // Quarter\n Q: 'quarter',\n\n // Month\n M: 'month',\n MM: 'month',\n MMM: {sectionType: 'month', contentType: 'letter'},\n MMMM: {sectionType: 'month', contentType: 'letter'},\n\n // Day of the month\n D: 'day',\n DD: 'day',\n Do: 'day',\n\n // Day of the week\n d: 'weekday',\n dd: {sectionType: 'weekday', contentType: 'letter'},\n ddd: {sectionType: 'weekday', contentType: 'letter'},\n dddd: {sectionType: 'weekday', contentType: 'letter'},\n\n // Day period AM, PM\n A: {sectionType: 'dayPeriod', contentType: 'letter'},\n a: {sectionType: 'dayPeriod', contentType: 'letter'},\n\n // Hours\n H: 'hour',\n HH: 'hour',\n h: 'hour',\n hh: 'hour',\n\n // Minutes\n m: 'minute',\n mm: 'minute',\n\n // Seconds\n s: 'second',\n ss: 'second',\n\n // Timezone\n z: {sectionType: 'timeZoneName', contentType: 'letter'},\n zzz: {sectionType: 'timeZoneName', contentType: 'letter'},\n Z: {sectionType: 'timeZoneName', contentType: 'letter'},\n ZZ: {sectionType: 'timeZoneName', contentType: 'letter'},\n};\n\nfunction getDateSectionConfigFromFormatToken(formatToken: string): {\n type: DateFieldSectionType;\n contentType: 'letter' | 'digit';\n} {\n const config = formatTokenMap[formatToken];\n\n if (!config) {\n // eslint-disable-next-line no-console\n console.error(\n [\n `The token \"${formatToken}\" is not supported by the Date field.`,\n 'Please try using another token.',\n ].join('\\n'),\n );\n return {\n type: 'literal',\n contentType: 'letter',\n };\n }\n\n if (typeof config === 'string') {\n return {\n type: config,\n contentType: 'digit',\n };\n }\n\n return {\n type: config.sectionType,\n contentType: config.contentType,\n };\n}\n\nfunction isFourDigitYearFormat(format: string) {\n return dateTime().format(format).length === 4;\n}\n\nfunction isHour12(format: string) {\n return dateTime().set('hour', 15).format(format) !== '15';\n}\n\nexport function getSectionLimits(section: DateFieldSectionWithoutPosition, date: DateTime) {\n const {type, format} = section;\n switch (type) {\n case 'year': {\n const isFourDigit = isFourDigitYearFormat(format);\n return {\n minValue: isFourDigit ? 1 : 0,\n maxValue: isFourDigit ? 9999 : 99,\n };\n }\n case 'quarter': {\n return {minValue: 1, maxValue: 4};\n }\n case 'month': {\n return {\n minValue: 0,\n maxValue: 11,\n };\n }\n case 'weekday': {\n return {\n minValue: 0,\n maxValue: 6,\n };\n }\n case 'day': {\n return {\n minValue: 1,\n maxValue: date ? date.daysInMonth() : 31,\n };\n }\n case 'hour': {\n if (isHour12(format)) {\n const isPM = date.hour() >= 12;\n return {\n minValue: isPM ? 12 : 0,\n maxValue: isPM ? 23 : 11,\n };\n }\n return {\n minValue: 0,\n maxValue: 23,\n };\n }\n case 'minute':\n case 'second': {\n return {\n minValue: 0,\n maxValue: 59,\n };\n }\n }\n return {};\n}\n\nexport function getSectionValue(section: DateFieldSectionWithoutPosition, date: DateTime) {\n const type = section.type;\n switch (type) {\n case 'year': {\n return isFourDigitYearFormat(section.format)\n ? date.year()\n : Number(date.format(section.format));\n }\n case 'quarter':\n case 'month':\n case 'hour':\n case 'minute':\n case 'second': {\n return date[type]();\n }\n case 'day': {\n return date.date();\n }\n case 'weekday': {\n return date.day();\n }\n case 'dayPeriod': {\n return date.hour() >= 12 ? 12 : 0;\n }\n }\n return undefined;\n}\n\nconst TYPE_MAPPING = {\n weekday: 'day',\n day: 'date',\n dayPeriod: 'hour',\n} as const;\n\nexport function getDurationUnitFromSectionType(type: DateFieldSectionType) {\n if (type === 'literal' || type === 'timeZoneName' || type === 'unknown') {\n throw new Error(`${type} section does not have duration unit.`);\n }\n\n if (type in TYPE_MAPPING) {\n return TYPE_MAPPING[type as keyof typeof TYPE_MAPPING];\n }\n\n return type as Exclude<\n DateFieldSectionType,\n keyof typeof TYPE_MAPPING | 'literal' | 'timeZoneName' | 'unknown'\n >;\n}\n\nexport function addSegment(section: DateFieldSection, date: DateTime, amount: number) {\n let val = section.value ?? 0;\n if (section.type === 'dayPeriod') {\n val = date.hour() + (date.hour() >= 12 ? -12 : 12);\n } else {\n val = val + amount;\n const min = section.minValue;\n const max = section.maxValue;\n if (typeof min === 'number' && typeof max === 'number') {\n const length = max - min + 1;\n val = ((val - min + length) % length) + min;\n }\n }\n\n if (section.type === 'year' && !isFourDigitYearFormat(section.format)) {\n val = dateTime({input: `${val}`.padStart(2, '0'), format: section.format}).year();\n }\n\n if (section.type === 'quarter') {\n return date.set(getDurationUnitFromSectionType('month'), val * 3 - 1);\n }\n\n const type = getDurationUnitFromSectionType(section.type);\n return date.set(type, val);\n}\n\nexport function setSegment(section: DateFieldSection, date: DateTime, amount: number) {\n const type = section.type;\n switch (type) {\n case 'year': {\n return date.set(\n 'year',\n isFourDigitYearFormat(section.format)\n ? amount\n : dateTime({\n input: `${amount}`.padStart(2, '0'),\n format: section.format,\n }).year(),\n );\n }\n case 'quarter': {\n return date.set(getDurationUnitFromSectionType('month'), amount * 3 - 1);\n }\n case 'day':\n case 'weekday':\n case 'month': {\n return date.set(getDurationUnitFromSectionType(type), amount);\n }\n case 'dayPeriod': {\n const hours = date.hour();\n const wasPM = hours >= 12;\n const isPM = amount >= 12;\n if (isPM === wasPM) {\n return date;\n }\n return date.set('hour', wasPM ? hours - 12 : hours + 12);\n }\n case 'hour': {\n // In 12 hour time, ensure that AM/PM does not change\n let sectionAmount = amount;\n if (section.minValue === 12 || section.maxValue === 11) {\n const hours = date.hour();\n const wasPM = hours >= 12;\n if (!wasPM && sectionAmount === 12) {\n sectionAmount = 0;\n }\n if (wasPM && sectionAmount < 12) {\n sectionAmount += 12;\n }\n }\n return date.set('hour', sectionAmount);\n }\n case 'minute':\n case 'second': {\n return date.set(type, amount);\n }\n }\n\n return date;\n}\n\nfunction doesSectionHaveLeadingZeros(\n contentType: 'digit' | 'letter',\n sectionType: DateFieldSectionType,\n format: string,\n) {\n if (contentType !== 'digit') {\n return false;\n }\n\n switch (sectionType) {\n case 'year': {\n if (isFourDigitYearFormat(format)) {\n const formatted0001 = dateTime().set('year', 1).format(format);\n return formatted0001 === '0001';\n }\n\n const formatted2001 = dateTime().set('year', 2001).format(format);\n return formatted2001 === '01';\n }\n\n case 'quarter': {\n return false;\n }\n\n case 'month': {\n return dateTime().startOf('year').format(format).length > 1;\n }\n\n case 'day': {\n return dateTime().startOf('month').format(format).length > 1;\n }\n\n case 'weekday': {\n return dateTime().startOf('week').format(format).length > 1;\n }\n\n case 'hour': {\n return dateTime().set('hour', 1).format(format).length > 1;\n }\n\n case 'minute': {\n return dateTime().set('minute', 1).format(format).length > 1;\n }\n\n case 'second': {\n return dateTime().set('second', 1).format(format).length > 1;\n }\n\n default: {\n throw new Error('Invalid section type');\n }\n }\n}\n\nfunction getSectionPlaceholder(\n sectionConfig: Pick<DateFieldSection, 'type' | 'contentType'>,\n currentTokenValue: string,\n) {\n switch (sectionConfig.type) {\n case 'year': {\n return i18n('year_placeholder').repeat(dateTime().format(currentTokenValue).length);\n }\n\n case 'quarter': {\n return i18n('quarter_placeholder');\n }\n\n case 'month': {\n return i18n('month_placeholder').repeat(sectionConfig.contentType === 'letter' ? 4 : 2);\n }\n\n case 'day': {\n return i18n('day_placeholder').repeat(2);\n }\n\n case 'weekday': {\n return i18n('weekday_placeholder').repeat(\n sectionConfig.contentType === 'letter' ? 4 : 2,\n );\n }\n\n case 'hour': {\n return i18n('hour_placeholder').repeat(2);\n }\n\n case 'minute': {\n return i18n('minute_placeholder').repeat(2);\n }\n\n case 'second': {\n return i18n('second_placeholder').repeat(2);\n }\n\n case 'dayPeriod': {\n return i18n('dayPeriod_placeholder');\n }\n\n default: {\n return currentTokenValue;\n }\n }\n}\n\nexport function splitFormatIntoSections(format: string) {\n const sections: DateFieldSectionWithoutPosition[] = [];\n\n const expandedFormat = expandFormat(format);\n\n let currentTokenValue = '';\n let isSeparator = false;\n let isInEscapeBoundary = false;\n for (let i = 0; i < expandedFormat.length; i++) {\n const char = expandedFormat[i] || '';\n if (isInEscapeBoundary) {\n if (char === escapedCharacters.end) {\n isInEscapeBoundary = false;\n continue;\n }\n currentTokenValue += char;\n } else if (char.match(/[a-zA-Z]/)) {\n if (isSeparator) {\n addLiteralSection(sections, currentTokenValue);\n currentTokenValue = '';\n }\n isSeparator = false;\n currentTokenValue += char;\n } else {\n if (!isSeparator) {\n addFormatSection(sections, currentTokenValue);\n currentTokenValue = '';\n }\n isSeparator = true;\n if (char === escapedCharacters.start) {\n isInEscapeBoundary = true;\n } else {\n currentTokenValue += char;\n }\n }\n }\n if (currentTokenValue) {\n if (isSeparator) {\n addLiteralSection(sections, currentTokenValue);\n } else {\n addFormatSection(sections, currentTokenValue);\n }\n }\n\n return sections;\n}\n\nfunction addFormatSection(sections: DateFieldSectionWithoutPosition[], token: string) {\n if (!token) {\n return;\n }\n\n const sectionConfig = getDateSectionConfigFromFormatToken(token);\n\n const hasLeadingZeros = doesSectionHaveLeadingZeros(\n sectionConfig.contentType,\n sectionConfig.type,\n token,\n );\n\n sections.push({\n ...sectionConfig,\n format: token,\n placeholder: getSectionPlaceholder(sectionConfig, token),\n options: getSectionOptions(sectionConfig, token),\n hasLeadingZeros,\n });\n}\n\nfunction addLiteralSection(sections: DateFieldSectionWithoutPosition[], token: string) {\n if (!token) {\n return;\n }\n\n sections.push({\n type: 'literal',\n contentType: 'letter',\n format: token,\n placeholder: token,\n hasLeadingZeros: false,\n });\n}\n\nfunction getSectionOptions(\n section: Pick<DateFieldSectionWithoutPosition, 'type' | 'contentType'>,\n token: string,\n) {\n switch (section.type) {\n case 'month': {\n const format = section.contentType === 'letter' ? token : 'MMMM';\n let date = dateTime().startOf('year');\n const options: string[] = [];\n for (let i = 0; i < 12; i++) {\n options.push(date.format(format).toLocaleUpperCase());\n date = date.add(1, 'months');\n }\n return options;\n }\n case 'dayPeriod': {\n const amDayPeriod = dateTime().hour(0);\n const pmDayPeriod = amDayPeriod.hour(12);\n const options = [\n amDayPeriod.format(token).toLocaleUpperCase(),\n pmDayPeriod.format(token).toLocaleUpperCase(),\n ];\n return options;\n }\n case 'weekday': {\n const format = section.contentType === 'letter' ? token : 'dddd';\n let date = dateTime().day(0);\n const options: string[] = [];\n for (let i = 0; i < 7; i++) {\n options.push(date.format(format).toLocaleUpperCase());\n date = date.add(1, 'day');\n }\n return options;\n }\n }\n\n return undefined;\n}\n\nexport function cleanString(dirtyString: string) {\n return dirtyString.replace(/[\\u2066\\u2067\\u2068\\u2069]/g, '');\n}\n\nexport function getEditableSections(\n sections: DateFieldSectionWithoutPosition[],\n value: DateTime,\n validSegments: AvailableSections,\n) {\n let position = 1;\n const newSections: DateFieldSection[] = [];\n let previousEditableSection = -1;\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n if (!section) {\n continue;\n }\n\n const newSection = toEditableSection(\n section,\n value,\n validSegments,\n position,\n previousEditableSection,\n );\n\n newSections.push(newSection);\n\n if (isEditableSection(section)) {\n for (let j = Math.max(0, previousEditableSection); j <= i; j++) {\n const prevSection = newSections[j];\n if (prevSection) {\n prevSection.nextEditableSection = i;\n if (prevSection.previousEditableSection === -1) {\n prevSection.previousEditableSection = i;\n }\n }\n }\n previousEditableSection = i;\n }\n\n position += newSection.textValue.length;\n }\n\n return newSections;\n}\n\nexport function isEditableSection(section: DateFieldSectionWithoutPosition): boolean {\n return EDITABLE_SEGMENTS[section.type] ?? false;\n}\n\nexport function toEditableSection(\n section: DateFieldSectionWithoutPosition,\n value: DateTime,\n validSegments: AvailableSections,\n position: number,\n previousEditableSection: number,\n): DateFieldSection {\n const isEditable = isEditableSection(section);\n let renderedValue = section.placeholder;\n if ((isEditable && validSegments[section.type]) || section.type === 'timeZoneName') {\n renderedValue = value.format(section.format);\n if (section.contentType === 'digit' && renderedValue.length < section.placeholder.length) {\n renderedValue = renderedValue.padStart(section.placeholder.length, '0');\n }\n }\n\n // use bidirectional context to allow the browser autodetect text direction\n renderedValue = '\\u2068' + renderedValue + '\\u2069';\n\n const sectionLength = renderedValue.length;\n\n const newSection = {\n ...section,\n value: getSectionValue(section, value),\n textValue: renderedValue,\n start: position,\n end: position + sectionLength,\n modified: false,\n previousEditableSection,\n nextEditableSection: previousEditableSection,\n ...getSectionLimits(section, value),\n };\n\n return newSection;\n}\n\nexport function getCurrentEditableSectionIndex(\n sections: DateFieldSection[],\n selectedSections: 'all' | number,\n) {\n const currentIndex =\n selectedSections === 'all' || selectedSections === -1 ? 0 : selectedSections;\n const section = sections[currentIndex];\n if (section && !EDITABLE_SEGMENTS[section.type]) {\n return section.nextEditableSection;\n }\n return section ? currentIndex : -1;\n}\n\nexport function formatSections(sections: DateFieldSection[]): string {\n // use ltr direction context to get predictable navigation inside input\n return '\\u2066' + sections.map((s) => s.textValue).join('') + '\\u2069';\n}\n\nfunction parseDate(options: {input: string; format: string; timeZone?: string}) {\n let date = dateTime(options);\n if (!date.isValid()) {\n date = dateTime({...options, format: undefined});\n }\n return date;\n}\n\nfunction isDateStringWithTimeZone(str: string) {\n return /z$/i.test(str) || /[+-]\\d\\d:\\d\\d$/.test(str);\n}\n\nexport function parseDateFromString(str: string, format: string, timeZone?: string): DateTime {\n let date = parseDate({input: str, format, timeZone});\n if (date.isValid()) {\n if (timeZone && !isDateStringWithTimeZone(str)) {\n const time = parseDate({input: str, format});\n date = mergeDateTime(date, time);\n }\n }\n\n return date;\n}\n\nexport function isAllSegmentsValid(\n allSegments: AvailableSections,\n validSegments: AvailableSections,\n) {\n return Object.keys(allSegments).every((key) => validSegments[key as keyof AvailableSections]);\n}\n\nexport function useFormatSections(format: string) {\n const usedFormat = format;\n const [sections, setSections] = React.useState(() => splitFormatIntoSections(usedFormat));\n\n const [previousFormat, setFormat] = React.useState(usedFormat);\n if (usedFormat !== previousFormat) {\n setFormat(usedFormat);\n setSections(splitFormatIntoSections(usedFormat));\n }\n\n return sections;\n}\n\nconst dateUnits = ['day', 'month', 'quarter', 'year'] satisfies DateFieldSectionType[];\nconst timeUnits = ['second', 'minute', 'hour'] satisfies DateFieldSectionType[];\n\nexport function getFormatInfo(sections: DateFieldSectionWithoutPosition[]): FormatInfo {\n const availableUnits: AvailableSections = {};\n let hasDate = false;\n let hasTime = false;\n let minDateUnitIndex = dateUnits.length - 1;\n let minTimeUnitIndex = timeUnits.length - 1;\n for (const s of sections) {\n if (!isEditableSection(s)) {\n continue;\n }\n const dateUnitIndex = dateUnits.indexOf(s.type as any);\n const timeUnitIndex = timeUnits.indexOf(s.type as any);\n availableUnits[s.type] = true;\n hasDate ||= dateUnitIndex !== -1;\n hasTime ||= timeUnitIndex !== -1;\n minDateUnitIndex =\n dateUnitIndex === -1 ? minDateUnitIndex : Math.min(dateUnitIndex, minDateUnitIndex);\n minTimeUnitIndex =\n timeUnitIndex === -1 ? minTimeUnitIndex : Math.min(timeUnitIndex, minTimeUnitIndex);\n }\n return {\n availableUnits,\n hasDate,\n hasTime,\n minDateUnit: dateUnits[minDateUnitIndex] ?? 'day',\n minTimeUnit: timeUnits[minTimeUnitIndex] ?? 'second',\n };\n}\n\nexport function adjustDateToFormat(\n date: DateTime,\n formatInfo: FormatInfo,\n method: 'startOf' | 'endOf' = 'startOf',\n) {\n let newDate = date;\n if (formatInfo.hasDate) {\n if (formatInfo.minDateUnit !== 'day') {\n newDate = newDate[method](formatInfo.minDateUnit);\n newDate = mergeDateTime(newDate, date);\n }\n }\n if (formatInfo.hasTime) {\n newDate = mergeDateTime(newDate, date[method](formatInfo.minTimeUnit));\n }\n\n return newDate;\n}\n\nexport function markValidSection(\n allSections: AvailableSections,\n editableSections: AvailableSections,\n unit: DateFieldSectionType,\n) {\n const validSections = {...editableSections};\n validSections[unit] = true;\n if (validSections.day && validSections.month && validSections.year && allSections.weekday) {\n validSections.weekday = true;\n }\n if (validSections.month && allSections.quarter) {\n validSections.quarter = true;\n }\n if (validSections.quarter && allSections.month) {\n validSections.month = true;\n }\n if (validSections.hour && allSections.dayPeriod) {\n validSections.dayPeriod = true;\n }\n\n return validSections;\n}\n"]}
@@ -22,4 +22,5 @@
22
22
  }
23
23
  .g-date-date-picker__time-field-wrapper {
24
24
  padding: 10px;
25
- }
25
+ }
26
+ /*# sourceMappingURL=DatePicker.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/DatePicker/data:;charset=utf-8,@use%20'../variables';%0A%0A$block:%20'.%23%7Bvariables.$ns%7Ddate-picker';%0A%0A%23%7B$block%7D%20%7B%0A%20%20%20%20position:%20relative;%0A%0A%20%20%20%20display:%20inline-block;%0A%0A%20%20%20%20outline:%20none;%0A%0A%20%20%20%20&__field%20%7B%0A%20%20%20%20%20%20%20%20width:%20100%25;%0A%0A%20%20%20%20%20%20%20%20&_mobile%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pointer-events:%20none;%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20&__popup-anchor%20%7B%0A%20%20%20%20%20%20%20%20position:%20absolute;%0A%20%20%20%20%20%20%20%20z-index:%20-1;%0A%20%20%20%20%20%20%20%20inset:%200;%0A%20%20%20%20%7D%0A%0A%20%20%20%20&__popup-content%20%7B%0A%20%20%20%20%20%20%20%20outline:%20none;%0A%20%20%20%20%7D%0A%0A%20%20%20%20&__time-field%20%7B%0A%20%20%20%20%20%20%20%20width:%20100%25;%0A%0A%20%20%20%20%20%20%20%20&-wrapper%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20padding:%2010px;%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%0A"],"names":[],"mappings":"AAIA;EACI;EAEA;EAEA;;AAEA;EACI;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EACI","sourcesContent":["@use '../variables';\n\n$block: '.#{variables.$ns}date-picker';\n\n#{$block} {\n position: relative;\n\n display: inline-block;\n\n outline: none;\n\n &__field {\n width: 100%;\n\n &_mobile {\n pointer-events: none;\n }\n }\n\n &__popup-anchor {\n position: absolute;\n z-index: -1;\n inset: 0;\n }\n\n &__popup-content {\n outline: none;\n }\n\n &__time-field {\n width: 100%;\n\n &-wrapper {\n padding: 10px;\n }\n }\n}\n"],"file":"DatePicker.css"}
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import type { DateTime } from '@gravity-ui/date-utils';
3
- import type { CalendarProps } from '../Calendar';
4
- import type { AccessibilityProps, DomProps, FocusableProps, InputDOMProps, KeyboardEvents, StyleProps, TextInputProps } from '../types';
5
- import type { DatePickerStateOptions } from './hooks/datePickerStateFactory';
6
- import './DatePicker.css';
3
+ import type { CalendarProps } from "../Calendar/index.js";
4
+ import type { AccessibilityProps, DomProps, FocusableProps, InputDOMProps, KeyboardEvents, StyleProps, TextInputProps } from "../types/index.js";
5
+ import type { DatePickerStateOptions } from "./hooks/datePickerStateFactory.js";
6
+ import "./DatePicker.css";
7
7
  export interface DatePickerProps<T = DateTime> extends DatePickerStateOptions<T>, TextInputProps, FocusableProps, KeyboardEvents, DomProps, InputDOMProps, StyleProps, AccessibilityProps {
8
8
  children?: (props: CalendarProps<T>) => React.ReactNode;
9
9
  disablePortal?: boolean;
@@ -7,14 +7,14 @@ const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const react_1 = tslib_1.__importDefault(require("react"));
8
8
  const icons_1 = require("@gravity-ui/icons");
9
9
  const uikit_1 = require("@gravity-ui/uikit");
10
- const Calendar_1 = require("../Calendar");
11
- const DateField_1 = require("../DateField");
12
- const HiddenInput_1 = require("../HiddenInput/HiddenInput");
13
- const MobileCalendar_1 = require("./MobileCalendar");
14
- const StubButton_1 = require("./StubButton");
15
- const useDatePickerProps_1 = require("./hooks/useDatePickerProps");
16
- const useDatePickerState_1 = require("./hooks/useDatePickerState");
17
- const utils_1 = require("./utils");
10
+ const Calendar_1 = require("../Calendar/index.js");
11
+ const DateField_1 = require("../DateField/index.js");
12
+ const HiddenInput_1 = require("../HiddenInput/HiddenInput.js");
13
+ const MobileCalendar_1 = require("./MobileCalendar.js");
14
+ const StubButton_1 = require("./StubButton.js");
15
+ const useDatePickerProps_1 = require("./hooks/useDatePickerProps.js");
16
+ const useDatePickerState_1 = require("./hooks/useDatePickerState.js");
17
+ const utils_1 = require("./utils/index.js");
18
18
  require("./DatePicker.css");
19
19
  function DatePicker(_a) {
20
20
  var { className } = _a, props = tslib_1.__rest(_a, ["className"]);
@@ -22,8 +22,9 @@ function DatePicker(_a) {
22
22
  const state = (0, useDatePickerState_1.useDatePickerState)(props);
23
23
  const { groupProps, fieldProps, calendarButtonProps, popupProps, calendarProps, timeInputProps } = (0, useDatePickerProps_1.useDatePickerProps)(state, props);
24
24
  const isMobile = (0, uikit_1.useMobile)();
25
- const isOnlyTime = state.hasTime && !state.hasDate;
26
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, utils_1.b)(null, className) }, groupProps, { children: [isMobile ? ((0, jsx_runtime_1.jsx)(MobileCalendar_1.MobileCalendar, { props: props, state: state })) : (!isOnlyTime && ((0, jsx_runtime_1.jsx)("div", { ref: anchorRef, className: (0, utils_1.b)('popup-anchor'), children: (0, jsx_runtime_1.jsx)(uikit_1.Popup, Object.assign({ anchorRef: anchorRef }, popupProps, { children: (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.b)('popup-content'), children: [typeof props.children === 'function' ? (props.children(calendarProps)) : ((0, jsx_runtime_1.jsx)(Calendar_1.Calendar, Object.assign({}, calendarProps))), state.hasTime && ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.b)('time-field-wrapper'), children: (0, jsx_runtime_1.jsx)(DateField_1.DateField, Object.assign({}, timeInputProps)) }))] }) })) }))), (0, jsx_runtime_1.jsx)(uikit_1.TextInput, Object.assign({}, fieldProps, { className: (0, utils_1.b)('field', { mobile: isMobile }), hasClear: !isMobile && fieldProps.hasClear, endContent: (0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [!isMobile && !isOnlyTime && ((0, jsx_runtime_1.jsx)(uikit_1.Button, Object.assign({}, calendarButtonProps, { children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.Calendar }) }))), !isMobile && isOnlyTime && ((0, jsx_runtime_1.jsx)(StubButton_1.StubButton, { size: calendarButtonProps.size, icon: icons_1.Clock })), isMobile && ((0, jsx_runtime_1.jsx)(StubButton_1.StubButton, { size: calendarButtonProps.size, icon: isOnlyTime ? icons_1.Clock : icons_1.Calendar }))] }) })), (0, jsx_runtime_1.jsx)(HiddenInput_1.HiddenInput, { name: props.name, value: state.value, toStringValue: (value) => { var _a; return (_a = value === null || value === void 0 ? void 0 : value.toISOString()) !== null && _a !== void 0 ? _a : ''; }, onReset: (value) => {
25
+ const isOnlyTime = state.formatInfo.hasTime && !state.formatInfo.hasDate;
26
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, utils_1.b)(null, className) }, groupProps, { children: [isMobile ? ((0, jsx_runtime_1.jsx)(MobileCalendar_1.MobileCalendar, { props: props, state: state })) : (!isOnlyTime && ((0, jsx_runtime_1.jsx)("div", { ref: anchorRef, className: (0, utils_1.b)('popup-anchor'), children: (0, jsx_runtime_1.jsx)(uikit_1.Popup, Object.assign({ anchorRef: anchorRef }, popupProps, { children: (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.b)('popup-content'), children: [typeof props.children === 'function' ? (props.children(calendarProps)) : ((0, jsx_runtime_1.jsx)(Calendar_1.Calendar, Object.assign({}, calendarProps))), state.formatInfo.hasTime && ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.b)('time-field-wrapper'), children: (0, jsx_runtime_1.jsx)(DateField_1.DateField, Object.assign({}, timeInputProps)) }))] }) })) }))), (0, jsx_runtime_1.jsx)(uikit_1.TextInput, Object.assign({}, fieldProps, { className: (0, utils_1.b)('field', { mobile: isMobile }), hasClear: !isMobile && fieldProps.hasClear, endContent: (0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [!isMobile && !isOnlyTime && ((0, jsx_runtime_1.jsx)(uikit_1.Button, Object.assign({}, calendarButtonProps, { children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icons_1.Calendar }) }))), !isMobile && isOnlyTime && ((0, jsx_runtime_1.jsx)(StubButton_1.StubButton, { size: calendarButtonProps.size, icon: icons_1.Clock })), isMobile && ((0, jsx_runtime_1.jsx)(StubButton_1.StubButton, { size: calendarButtonProps.size, icon: isOnlyTime ? icons_1.Clock : icons_1.Calendar }))] }) })), (0, jsx_runtime_1.jsx)(HiddenInput_1.HiddenInput, { name: props.name, value: state.value, toStringValue: (value) => { var _a; return (_a = value === null || value === void 0 ? void 0 : value.toISOString()) !== null && _a !== void 0 ? _a : ''; }, onReset: (value) => {
27
27
  state.setValue(value);
28
28
  }, disabled: state.disabled, form: props.form })] })));
29
29
  }
30
+ //# sourceMappingURL=DatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"../../../../src","sources":["components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport type {DateTime} from '@gravity-ui/date-utils';\nimport {Calendar as CalendarIcon, Clock as ClockIcon} from '@gravity-ui/icons';\nimport {Button, Icon, Popup, TextInput, useMobile} from '@gravity-ui/uikit';\n\nimport {Calendar} from '../Calendar';\nimport type {CalendarProps} from '../Calendar';\nimport {DateField} from '../DateField';\nimport {HiddenInput} from '../HiddenInput/HiddenInput';\nimport type {\n AccessibilityProps,\n DomProps,\n FocusableProps,\n InputDOMProps,\n KeyboardEvents,\n StyleProps,\n TextInputProps,\n} from '../types';\n\nimport {MobileCalendar} from './MobileCalendar';\nimport {StubButton} from './StubButton';\nimport type {DatePickerStateOptions} from './hooks/datePickerStateFactory';\nimport {useDatePickerProps} from './hooks/useDatePickerProps';\nimport {useDatePickerState} from './hooks/useDatePickerState';\nimport {b} from './utils';\n\nimport './DatePicker.scss';\n\nexport interface DatePickerProps<T = DateTime>\n extends DatePickerStateOptions<T>,\n TextInputProps,\n FocusableProps,\n KeyboardEvents,\n DomProps,\n InputDOMProps,\n StyleProps,\n AccessibilityProps {\n children?: (props: CalendarProps<T>) => React.ReactNode;\n disablePortal?: boolean;\n disableFocusTrap?: boolean;\n}\n\nexport function DatePicker({className, ...props}: DatePickerProps) {\n const anchorRef = React.useRef<HTMLDivElement>(null);\n\n const state = useDatePickerState(props);\n\n const {groupProps, fieldProps, calendarButtonProps, popupProps, calendarProps, timeInputProps} =\n useDatePickerProps(state, props);\n\n const isMobile = useMobile();\n const isOnlyTime = state.formatInfo.hasTime && !state.formatInfo.hasDate;\n\n return (\n <div className={b(null, className)} {...groupProps}>\n {isMobile ? (\n <MobileCalendar props={props} state={state} />\n ) : (\n !isOnlyTime && (\n <div ref={anchorRef} className={b('popup-anchor')}>\n <Popup anchorRef={anchorRef} {...popupProps}>\n <div className={b('popup-content')}>\n {typeof props.children === 'function' ? (\n props.children(calendarProps)\n ) : (\n <Calendar {...calendarProps} />\n )}\n {state.formatInfo.hasTime && (\n <div className={b('time-field-wrapper')}>\n <DateField {...timeInputProps} />\n </div>\n )}\n </div>\n </Popup>\n </div>\n )\n )}\n <TextInput\n {...fieldProps}\n className={b('field', {mobile: isMobile})}\n hasClear={!isMobile && fieldProps.hasClear}\n endContent={\n <React.Fragment>\n {!isMobile && !isOnlyTime && (\n <Button {...calendarButtonProps}>\n <Icon data={CalendarIcon} />\n </Button>\n )}\n {!isMobile && isOnlyTime && (\n <StubButton size={calendarButtonProps.size} icon={ClockIcon} />\n )}\n {isMobile && (\n <StubButton\n size={calendarButtonProps.size}\n icon={isOnlyTime ? ClockIcon : CalendarIcon}\n />\n )}\n </React.Fragment>\n }\n />\n <HiddenInput\n name={props.name}\n value={state.value}\n toStringValue={(value) => value?.toISOString() ?? ''}\n onReset={(value) => {\n state.setValue(value);\n }}\n disabled={state.disabled}\n form={props.form}\n />\n </div>\n );\n}\n"]}
@@ -21,4 +21,5 @@
21
21
  margin: 0;
22
22
  padding: 0;
23
23
  cursor: pointer;
24
- }
24
+ }
25
+ /*# sourceMappingURL=MobileCalendar.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/DatePicker/data:;charset=utf-8,@use%20'../variables';%0A%0A$block:%20'.%23%7Bvariables.$ns%7Dmobile-calendar';%0A%0A%23%7B$block%7D%20%7B%0A%20%20%20%20position:%20absolute;%0A%20%20%20%20z-index:%201;%0A%20%20%20%20inset-block-start:%200;%0A%20%20%20%20inset-inline-start:%200;%0A%0A%20%20%20%20box-sizing:%20border-box;%0A%20%20%20%20/%20width:%20100%25%20does%20not%20work%20in%20mobile%20Safari%0A%20%20%20%20min-width:%20100%25;%0A%20%20%20%20height:%20100%25;%0A%20%20%20%20margin:%200;%0A%20%20%20%20padding:%200;%0A%0A%20%20%20%20cursor:%20pointer;%0A%0A%20%20%20%20opacity:%200;%0A%20%20%20%20border:%20none;%0A%0A%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%0A%20%20%20%20%20%20%20%20position:%20absolute;%0A%20%20%20%20%20%20%20%20inset-block-start:%200;%0A%20%20%20%20%20%20%20%20inset-inline-start:%200;%0A%0A%20%20%20%20%20%20%20%20min-width:%20100%25;%0A%20%20%20%20%20%20%20%20height:%20100%25;%0A%20%20%20%20%20%20%20%20margin:%200;%0A%20%20%20%20%20%20%20%20padding:%200;%0A%0A%20%20%20%20%20%20%20%20cursor:%20pointer;%0A%20%20%20%20%7D%0A%7D%0A"],"names":[],"mappings":"AAIA;EACI;EACA;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EAEA;EACA;;AAEA;EACI;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA","sourcesContent":["@use '../variables';\n\n$block: '.#{variables.$ns}mobile-calendar';\n\n#{$block} {\n position: absolute;\n z-index: 1;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n box-sizing: border-box;\n // width: 100% does not work in mobile Safari\n min-width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n\n cursor: pointer;\n\n opacity: 0;\n border: none;\n\n &::-webkit-calendar-picker-indicator {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n min-width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n\n cursor: pointer;\n }\n}\n"],"file":"MobileCalendar.css"}
@@ -1,6 +1,6 @@
1
- import type { DatePickerProps } from './DatePicker';
2
- import type { DatePickerState } from './hooks/useDatePickerState';
3
- import './MobileCalendar.css';
1
+ import type { DatePickerProps } from "./DatePicker.js";
2
+ import type { DatePickerState } from "./hooks/useDatePickerState.js";
3
+ import "./MobileCalendar.css";
4
4
  interface MobileCalendarProps {
5
5
  props: DatePickerProps;
6
6
  state: DatePickerState;
@@ -4,17 +4,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.MobileCalendar = MobileCalendar;
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const date_utils_1 = require("@gravity-ui/date-utils");
7
- const cn_1 = require("../../utils/cn");
8
- const dates_1 = require("../utils/dates");
7
+ const cn_1 = require("../../utils/cn.js");
8
+ const dates_1 = require("../utils/dates.js");
9
9
  require("./MobileCalendar.css");
10
10
  const b = (0, cn_1.block)('mobile-calendar');
11
11
  function MobileCalendar({ props, state }) {
12
12
  var _a, _b;
13
13
  let type = 'date';
14
- if (state.hasTime && state.hasDate) {
14
+ if (state.formatInfo.hasTime && state.formatInfo.hasDate) {
15
15
  type = 'datetime-local';
16
16
  }
17
- else if (state.hasTime) {
17
+ else if (state.formatInfo.hasTime) {
18
18
  type = 'time';
19
19
  }
20
20
  return ((0, jsx_runtime_1.jsx)("input", { className: b(), disabled: props.disabled, type: type, value: formatNative(state.dateFieldState.value, type), id: props.id, min: formatNative((_a = props.minValue) === null || _a === void 0 ? void 0 : _a.timeZone(state.timeZone), type), max: formatNative((_b = props.maxValue) === null || _b === void 0 ? void 0 : _b.timeZone(state.timeZone), type), tabIndex: -1, onChange: (e) => {
@@ -29,13 +29,13 @@ function MobileCalendar({ props, state }) {
29
29
  format: getDateFormat(type),
30
30
  timeZone: 'system',
31
31
  }).timeZone(state.timeZone, true);
32
- let newDate = state.hasDate
32
+ let newDate = state.formatInfo.hasDate
33
33
  ? localDate
34
34
  : (0, dates_1.createPlaceholderValue)({
35
35
  placeholderValue: (_a = props.placeholderValue) === null || _a === void 0 ? void 0 : _a.timeZone(state.timeZone),
36
36
  timeZone: state.timeZone,
37
37
  });
38
- if (state.hasTime) {
38
+ if (state.formatInfo.hasTime) {
39
39
  newDate = (0, dates_1.mergeDateTime)(newDate, localDate);
40
40
  }
41
41
  else if (state.value) {
@@ -74,3 +74,4 @@ function formatNative(date, type) {
74
74
  const format = getDateFormat(type);
75
75
  return date.format(format);
76
76
  }
77
+ //# sourceMappingURL=MobileCalendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileCalendar.js","sourceRoot":"../../../../src","sources":["components/DatePicker/MobileCalendar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAqBb,wCAuDC;;AA1ED,uDAAgD;AAGhD,0CAAqC;AACrC,6CAAqE;AAKrE,gCAA+B;AAE/B,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,iBAAiB,CAAC,CAAC;AAQnC,SAAgB,cAAc,CAAC,EAAC,KAAK,EAAE,KAAK,EAAsB;;IAC9D,IAAI,IAAI,GAAkB,MAAM,CAAC;IACjC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACvD,IAAI,GAAG,gBAAgB,CAAC;IAC5B,CAAC;SAAM,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,GAAG,MAAM,CAAC;IAClB,CAAC;IAED,OAAO,CACH,kCACI,SAAS,EAAE,CAAC,EAAE,EACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EACrD,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,GAAG,EAAE,YAAY,CAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EACjE,GAAG,EAAE,YAAY,CAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EACjE,QAAQ,EAAE,CAAC,CAAC,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;;YACZ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACjB,OAAO;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,IAAI,QAAQ,EAAE,CAAC;gBACX,MAAM,SAAS,GAAG,IAAA,qBAAQ,EAAC;oBACvB,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;oBAC3B,QAAQ,EAAE,QAAQ;iBACrB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAClC,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO;oBAClC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAA,8BAAsB,EAAC;wBACnB,gBAAgB,EAAE,MAAA,KAAK,CAAC,gBAAgB,0CAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAClE,QAAQ,EAAE,KAAK,CAAC,QAAQ;qBAC3B,CAAC,CAAC;gBACT,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBAC3B,OAAO,GAAG,IAAA,qBAAa,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAChD,CAAC;qBAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACrB,OAAO,GAAG,IAAA,qBAAa,EAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3E,CAAC;qBAAM,CAAC;oBACJ,OAAO,GAAG,IAAA,qBAAa,EACnB,OAAO,EACP,IAAA,8BAAsB,EAAC;wBACnB,gBAAgB,EAAE,MAAA,KAAK,CAAC,gBAAgB,0CAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAClE,QAAQ,EAAE,KAAK,CAAC,QAAQ;qBAC3B,CAAC,CACL,CAAC;gBACN,CAAC;gBACD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACL,CAAC,GACH,CACL,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,IAAmB;IACtC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,OAAO,kBAAkB,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,OAAO,YAAY,CAAC;QACxB,CAAC;IACL,CAAC;AACL,CAAC;AACD,SAAS,YAAY,CAAC,IAAiC,EAAE,IAAmB;IACxE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["'use client';\n\nimport {dateTime} from '@gravity-ui/date-utils';\nimport type {DateTime} from '@gravity-ui/date-utils';\n\nimport {block} from '../../utils/cn';\nimport {createPlaceholderValue, mergeDateTime} from '../utils/dates';\n\nimport type {DatePickerProps} from './DatePicker';\nimport type {DatePickerState} from './hooks/useDatePickerState';\n\nimport './MobileCalendar.scss';\n\nconst b = block('mobile-calendar');\n\ntype InputDateType = 'date' | 'time' | 'datetime-local';\n\ninterface MobileCalendarProps {\n props: DatePickerProps;\n state: DatePickerState;\n}\nexport function MobileCalendar({props, state}: MobileCalendarProps) {\n let type: InputDateType = 'date';\n if (state.formatInfo.hasTime && state.formatInfo.hasDate) {\n type = 'datetime-local';\n } else if (state.formatInfo.hasTime) {\n type = 'time';\n }\n\n return (\n <input\n className={b()}\n disabled={props.disabled}\n type={type}\n value={formatNative(state.dateFieldState.value, type)}\n id={props.id}\n min={formatNative(props.minValue?.timeZone(state.timeZone), type)}\n max={formatNative(props.maxValue?.timeZone(state.timeZone), type)}\n tabIndex={-1}\n onChange={(e) => {\n if (props.readOnly) {\n return;\n }\n const newValue = e.target.value;\n if (newValue) {\n const localDate = dateTime({\n input: newValue,\n format: getDateFormat(type),\n timeZone: 'system',\n }).timeZone(state.timeZone, true);\n let newDate = state.formatInfo.hasDate\n ? localDate\n : createPlaceholderValue({\n placeholderValue: props.placeholderValue?.timeZone(state.timeZone),\n timeZone: state.timeZone,\n });\n if (state.formatInfo.hasTime) {\n newDate = mergeDateTime(newDate, localDate);\n } else if (state.value) {\n newDate = mergeDateTime(newDate, state.value.timeZone(state.timeZone));\n } else {\n newDate = mergeDateTime(\n newDate,\n createPlaceholderValue({\n placeholderValue: props.placeholderValue?.timeZone(state.timeZone),\n timeZone: state.timeZone,\n }),\n );\n }\n state.setValue(newDate);\n } else {\n state.setValue(null);\n }\n }}\n />\n );\n}\n\nfunction getDateFormat(type: InputDateType) {\n switch (type) {\n case 'time': {\n return 'HH:mm';\n }\n case 'datetime-local': {\n return 'YYYY-MM-DDTHH:mm';\n }\n default: {\n return 'YYYY-MM-DD';\n }\n }\n}\nfunction formatNative(date: DateTime | null | undefined, type: InputDateType) {\n if (!date) {\n return '';\n }\n\n const format = getDateFormat(type);\n return date.format(format);\n}\n"]}
@@ -23,4 +23,5 @@
23
23
  justify-content: center;
24
24
  align-items: center;
25
25
  color: var(--g-color-text-secondary);
26
- }
26
+ }
27
+ /*# sourceMappingURL=StubButton.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/DatePicker/data:;charset=utf-8,@use%20'../variables';%0A%0A$block:%20'.%23%7Bvariables.$ns%7Dstub-button';%0A%0A%23%7B$block%7D%20%7B%0A%20%20%20%20position:%20relative;%0A%0A%20%20%20%20display:%20inline-block;%0A%0A%20%20%20%20width:%2024px;%0A%20%20%20%20height:%2024px;%0A%0A%20%20%20%20&_size_xs%20%7B%0A%20%20%20%20%20%20%20%20width:%2020px;%0A%20%20%20%20%20%20%20%20height:%2020px;%0A%20%20%20%20%7D%0A%0A%20%20%20%20&_size_m%20%7B%0A%20%20%20%20%20%20%20%20width:%2028px;%0A%20%20%20%20%20%20%20%20height:%2028px;%0A%20%20%20%20%7D%0A%0A%20%20%20%20&_size_l%20%7B%0A%20%20%20%20%20%20%20%20width:%2036px;%0A%20%20%20%20%20%20%20%20height:%2036px;%0A%20%20%20%20%7D%0A%0A%20%20%20%20&__icon%20%7B%0A%20%20%20%20%20%20%20%20position:%20absolute;%0A%20%20%20%20%20%20%20%20inset:%200;%0A%0A%20%20%20%20%20%20%20%20display:%20flex;%0A%20%20%20%20%20%20%20%20justify-content:%20center;%0A%20%20%20%20%20%20%20%20align-items:%20center;%0A%0A%20%20%20%20%20%20%20%20color:%20var(--g-color-text-secondary);%0A%20%20%20%20%7D%0A%7D%0A"],"names":[],"mappings":"AAIA;EACI;EAEA;EAEA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EAEA;EACA;EACA;EAEA","sourcesContent":["@use '../variables';\n\n$block: '.#{variables.$ns}stub-button';\n\n#{$block} {\n position: relative;\n\n display: inline-block;\n\n width: 24px;\n height: 24px;\n\n &_size_xs {\n width: 20px;\n height: 20px;\n }\n\n &_size_m {\n width: 28px;\n height: 28px;\n }\n\n &_size_l {\n width: 36px;\n height: 36px;\n }\n\n &__icon {\n position: absolute;\n inset: 0;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n color: var(--g-color-text-secondary);\n }\n}\n"],"file":"StubButton.css"}
@@ -1,5 +1,5 @@
1
1
  import type { ButtonSize, IconData } from '@gravity-ui/uikit';
2
- import './StubButton.css';
2
+ import "./StubButton.css";
3
3
  interface StubButtonProps {
4
4
  size?: ButtonSize;
5
5
  icon: IconData;
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StubButton = StubButton;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const uikit_1 = require("@gravity-ui/uikit");
6
- const cn_1 = require("../../utils/cn");
6
+ const cn_1 = require("../../utils/cn.js");
7
7
  require("./StubButton.css");
8
8
  const b = (0, cn_1.block)('stub-button');
9
9
  function StubButton({ size, icon }) {
10
10
  return ((0, jsx_runtime_1.jsx)("span", { className: b({ size }), children: (0, jsx_runtime_1.jsx)("span", { className: b('icon'), children: (0, jsx_runtime_1.jsx)(uikit_1.Icon, { data: icon }) }) }));
11
11
  }
12
+ //# sourceMappingURL=StubButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StubButton.js","sourceRoot":"../../../../src","sources":["components/DatePicker/StubButton.tsx"],"names":[],"mappings":";;AAaA,gCAQC;;AArBD,6CAAuC;AAGvC,0CAAqC;AAErC,4BAA2B;AAE3B,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,aAAa,CAAC,CAAC;AAM/B,SAAgB,UAAU,CAAC,EAAC,IAAI,EAAE,IAAI,EAAkB;IACpD,OAAO,CACH,iCAAM,SAAS,EAAE,CAAC,CAAC,EAAC,IAAI,EAAC,CAAC,YACtB,iCAAM,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YACtB,uBAAC,YAAI,IAAC,IAAI,EAAE,IAAI,GAAI,GACjB,GACJ,CACV,CAAC;AACN,CAAC","sourcesContent":["import {Icon} from '@gravity-ui/uikit';\nimport type {ButtonSize, IconData} from '@gravity-ui/uikit';\n\nimport {block} from '../../utils/cn';\n\nimport './StubButton.scss';\n\nconst b = block('stub-button');\n\ninterface StubButtonProps {\n size?: ButtonSize;\n icon: IconData;\n}\nexport function StubButton({size, icon}: StubButtonProps) {\n return (\n <span className={b({size})}>\n <span className={b('icon')}>\n <Icon data={icon} />\n </span>\n </span>\n );\n}\n"]}