@skbkontur/react-ui 6.0.7-b5d2c.0 → 6.0.7-eab55.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 (232) hide show
  1. package/components/Autocomplete/Autocomplete.js +15 -4
  2. package/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/components/Calendar/Calendar.d.ts +14 -14
  4. package/components/Calendar/Calendar.js +2 -2
  5. package/components/Calendar/Calendar.js.map +1 -1
  6. package/components/Calendar/CalendarDay.d.ts +2 -2
  7. package/components/Calendar/CalendarDay.js +4 -1
  8. package/components/Calendar/CalendarDay.js.map +1 -1
  9. package/components/Calendar/DayCellView.styles.d.ts +1 -0
  10. package/components/Calendar/DayCellView.styles.js +6 -3
  11. package/components/Calendar/DayCellView.styles.js.map +1 -1
  12. package/components/Center/Center.d.ts +3 -3
  13. package/components/Center/Center.js +2 -2
  14. package/components/Center/Center.js.map +1 -1
  15. package/components/Checkbox/Checkbox.d.ts +14 -11
  16. package/components/Checkbox/Checkbox.js +6 -3
  17. package/components/Checkbox/Checkbox.js.map +1 -1
  18. package/components/ComboBox/ComboBox.d.ts +3 -3
  19. package/components/ComboBox/ComboBox.js.map +1 -1
  20. package/components/DateInput/DateInput.d.ts +15 -15
  21. package/components/DateInput/DateInput.js +1 -1
  22. package/components/DateInput/DateInput.js.map +1 -1
  23. package/components/DatePicker/DatePicker.d.ts +16 -14
  24. package/components/DatePicker/DatePicker.js +5 -4
  25. package/components/DatePicker/DatePicker.js.map +1 -1
  26. package/components/DatePicker/MobilePicker.js +1 -1
  27. package/components/DatePicker/MobilePicker.js.map +1 -1
  28. package/components/DateRangePicker/DateRangePicker.d.ts +3 -4
  29. package/components/DateRangePicker/DateRangePicker.js +4 -6
  30. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  31. package/components/DateRangePicker/DateRangePickerInput.js +4 -6
  32. package/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  33. package/components/Dropdown/Dropdown.d.ts +15 -8
  34. package/components/Dropdown/Dropdown.js +8 -1
  35. package/components/Dropdown/Dropdown.js.map +1 -1
  36. package/components/DropdownMenu/DropdownMenu.d.ts +1 -2
  37. package/components/DropdownMenu/DropdownMenu.js +1 -2
  38. package/components/DropdownMenu/DropdownMenu.js.map +1 -1
  39. package/components/FileUploader/FileUploader.d.ts +6 -4
  40. package/components/FileUploader/FileUploader.js +3 -1
  41. package/components/FileUploader/FileUploader.js.map +1 -1
  42. package/components/FileUploader/FileUploaderFile.d.ts +3 -3
  43. package/components/FileUploader/FileUploaderFile.js +1 -1
  44. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  45. package/components/Input/Input.d.ts +2 -2
  46. package/components/Input/Input.js.map +1 -1
  47. package/components/Loader/Loader.d.ts +12 -4
  48. package/components/Loader/Loader.js +18 -7
  49. package/components/Loader/Loader.js.map +1 -1
  50. package/components/MenuFooter/MenuFooter.d.ts +1 -1
  51. package/components/MenuFooter/MenuFooter.js +1 -1
  52. package/components/MenuFooter/MenuFooter.js.map +1 -1
  53. package/components/MenuHeader/MenuHeader.d.ts +2 -2
  54. package/components/MenuHeader/MenuHeader.js +1 -1
  55. package/components/MenuHeader/MenuHeader.js.map +1 -1
  56. package/components/MenuItem/MenuItem.d.ts +1 -0
  57. package/components/MenuItem/MenuItem.js +17 -1
  58. package/components/MenuItem/MenuItem.js.map +1 -1
  59. package/components/MenuItem/MenuItem.styles.d.ts +3 -0
  60. package/components/MenuItem/MenuItem.styles.js +25 -16
  61. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  62. package/components/MenuSeparator/MenuSeparator.d.ts +1 -1
  63. package/components/MenuSeparator/MenuSeparator.js +1 -1
  64. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  65. package/components/MiniModal/MiniModal.d.ts +1 -1
  66. package/components/MiniModal/MiniModal.js +1 -1
  67. package/components/MiniModal/MiniModal.js.map +1 -1
  68. package/components/MiniModal/MiniModalBody.d.ts +1 -1
  69. package/components/MiniModal/MiniModalBody.js +1 -1
  70. package/components/MiniModal/MiniModalBody.js.map +1 -1
  71. package/components/MiniModal/MiniModalFooter.d.ts +1 -1
  72. package/components/MiniModal/MiniModalFooter.js +1 -1
  73. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  74. package/components/MiniModal/MiniModalHeader.d.ts +1 -1
  75. package/components/MiniModal/MiniModalHeader.js +1 -1
  76. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  77. package/components/Paging/Paging.d.ts +2 -2
  78. package/components/Paging/Paging.js.map +1 -1
  79. package/components/Radio/Radio.d.ts +7 -7
  80. package/components/Radio/Radio.js.map +1 -1
  81. package/components/RadioGroup/RadioGroup.d.ts +2 -2
  82. package/components/RadioGroup/RadioGroup.js.map +1 -1
  83. package/components/Select/Select.d.ts +4 -4
  84. package/components/Select/Select.js +11 -1
  85. package/components/Select/Select.js.map +1 -1
  86. package/components/SingleToast/SingleToast.d.ts +10 -7
  87. package/components/SingleToast/SingleToast.js +10 -7
  88. package/components/SingleToast/SingleToast.js.map +1 -1
  89. package/components/Spinner/Spinner.d.ts +23 -33
  90. package/components/Spinner/Spinner.js +23 -19
  91. package/components/Spinner/Spinner.js.map +1 -1
  92. package/components/Spinner/Spinner.styles.d.ts +0 -3
  93. package/components/Spinner/Spinner.styles.js +6 -15
  94. package/components/Spinner/Spinner.styles.js.map +1 -1
  95. package/components/Sticky/Sticky.d.ts +4 -0
  96. package/components/Sticky/Sticky.js +4 -0
  97. package/components/Sticky/Sticky.js.map +1 -1
  98. package/components/Switcher/Switcher.d.ts +10 -8
  99. package/components/Switcher/Switcher.js +3 -1
  100. package/components/Switcher/Switcher.js.map +1 -1
  101. package/components/Textarea/Textarea.js +1 -1
  102. package/components/Textarea/Textarea.js.map +1 -1
  103. package/components/Textarea/Textarea.styles.d.ts +1 -0
  104. package/components/Textarea/Textarea.styles.js +7 -4
  105. package/components/Textarea/Textarea.styles.js.map +1 -1
  106. package/components/Textarea/TextareaCounter.d.ts +2 -0
  107. package/components/Textarea/TextareaCounter.js +22 -4
  108. package/components/Textarea/TextareaCounter.js.map +1 -1
  109. package/components/TimePicker/TimeFragmentsView.js.map +1 -1
  110. package/components/TimePicker/TimeFragmentsView.styles.js +4 -4
  111. package/components/TimePicker/TimeFragmentsView.styles.js.map +1 -1
  112. package/components/TimePicker/TimeInput.d.ts +5 -7
  113. package/components/TimePicker/TimeInput.js +19 -7
  114. package/components/TimePicker/TimeInput.js.map +1 -1
  115. package/components/TimePicker/TimePicker.d.ts +39 -7
  116. package/components/TimePicker/TimePicker.js +275 -148
  117. package/components/TimePicker/TimePicker.js.map +1 -1
  118. package/components/TimePicker/TimePicker.styles.d.ts +3 -4
  119. package/components/TimePicker/TimePicker.styles.js +11 -14
  120. package/components/TimePicker/TimePicker.styles.js.map +1 -1
  121. package/components/TimePicker/TimePickerMobilePopup.d.ts +31 -0
  122. package/components/TimePicker/TimePickerMobilePopup.js +21 -0
  123. package/components/TimePicker/TimePickerMobilePopup.js.map +1 -0
  124. package/components/TimePicker/TimePickerPopup.d.ts +19 -0
  125. package/components/TimePicker/TimePickerPopup.js +18 -0
  126. package/components/TimePicker/TimePickerPopup.js.map +1 -0
  127. package/components/TimePicker/TimePickerSlots.d.ts +16 -0
  128. package/components/TimePicker/TimePickerSlots.js +67 -0
  129. package/components/TimePicker/TimePickerSlots.js.map +1 -0
  130. package/components/TimePicker/helpers/TimePicker.constants.d.ts +0 -1
  131. package/components/TimePicker/helpers/TimePicker.constants.js +0 -1
  132. package/components/TimePicker/helpers/TimePicker.constants.js.map +1 -1
  133. package/components/TimePicker/helpers/TimePicker.editing.js +10 -1
  134. package/components/TimePicker/helpers/TimePicker.editing.js.map +1 -1
  135. package/components/TimePicker/helpers/TimePicker.shared.d.ts +1 -2
  136. package/components/TimePicker/helpers/TimePicker.shared.js +4 -4
  137. package/components/TimePicker/helpers/TimePicker.shared.js.map +1 -1
  138. package/components/TimePicker/helpers/TimePicker.value.d.ts +3 -5
  139. package/components/TimePicker/helpers/TimePicker.value.js +21 -7
  140. package/components/TimePicker/helpers/TimePicker.value.js.map +1 -1
  141. package/components/TimePicker/hooks/useTimePickerValue.d.ts +1 -1
  142. package/components/TimePicker/hooks/useTimePickerValue.js +8 -7
  143. package/components/TimePicker/hooks/useTimePickerValue.js.map +1 -1
  144. package/components/Toast/Toast.d.ts +13 -14
  145. package/components/Toast/Toast.js +3 -3
  146. package/components/Toast/Toast.js.map +1 -1
  147. package/components/Toast/ToastView.d.ts +8 -5
  148. package/components/Toast/ToastView.js +28 -8
  149. package/components/Toast/ToastView.js.map +1 -1
  150. package/components/Toast/ToastView.styles.d.ts +7 -0
  151. package/components/Toast/ToastView.styles.js +30 -8
  152. package/components/Toast/ToastView.styles.js.map +1 -1
  153. package/components/Tooltip/Tooltip.d.ts +4 -4
  154. package/components/Tooltip/Tooltip.js.map +1 -1
  155. package/internal/CloseButtonIcon/CloseButtonIcon.js +1 -1
  156. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  157. package/internal/CommonWrapper/CommonWrapper.js +5 -0
  158. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  159. package/internal/CustomComboBox/ComboBoxMenu.js +1 -1
  160. package/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  161. package/internal/CustomComboBox/ComboBoxView.js +13 -2
  162. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  163. package/internal/Menu/Menu.js +3 -0
  164. package/internal/Menu/Menu.js.map +1 -1
  165. package/internal/Menu/Menu.styles.d.ts +1 -0
  166. package/internal/Menu/Menu.styles.js +13 -10
  167. package/internal/Menu/Menu.styles.js.map +1 -1
  168. package/internal/MenuMessage/MenuMessage.js +17 -1
  169. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  170. package/internal/MenuMessage/MenuMessage.styles.d.ts +3 -0
  171. package/internal/MenuMessage/MenuMessage.styles.js +13 -4
  172. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
  173. package/internal/MobilePopup/MobilePopup.d.ts +8 -0
  174. package/internal/MobilePopup/MobilePopup.js +34 -11
  175. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  176. package/internal/MobilePopup/MobilePopup.styles.d.ts +7 -0
  177. package/internal/MobilePopup/MobilePopup.styles.js +34 -10
  178. package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  179. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +8 -1
  180. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +18 -1
  181. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  182. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +3 -0
  183. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +14 -4
  184. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
  185. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +4 -0
  186. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +48 -11
  187. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  188. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +6 -0
  189. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +28 -8
  190. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  191. package/internal/NativeTimeInput/NativeTimeInput.d.ts +16 -0
  192. package/internal/NativeTimeInput/NativeTimeInput.js +25 -0
  193. package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -0
  194. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +3 -0
  195. package/internal/NativeTimeInput/NativeTimeInput.styles.js +15 -0
  196. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +1 -0
  197. package/internal/NativeTimeInput/index.d.ts +1 -0
  198. package/internal/NativeTimeInput/index.js +2 -0
  199. package/internal/NativeTimeInput/index.js.map +1 -0
  200. package/internal/NativeTimeInput/utils.d.ts +7 -0
  201. package/internal/NativeTimeInput/utils.js +28 -0
  202. package/internal/NativeTimeInput/utils.js.map +1 -0
  203. package/internal/SpinnerIcon/SpinnerIcon.d.ts +3 -3
  204. package/internal/SpinnerIcon/SpinnerIcon.js +4 -4
  205. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  206. package/internal/icons2022/LoadingIcon.js +1 -1
  207. package/internal/icons2022/LoadingIcon.js.map +1 -1
  208. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.d.ts +2 -0
  209. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js +21 -0
  210. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js.map +1 -0
  211. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.d.ts +2 -0
  212. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js +21 -0
  213. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js.map +1 -0
  214. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.d.ts +2 -0
  215. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js +21 -0
  216. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js.map +1 -0
  217. package/internal/themes/BasicTheme.d.ts +48 -4
  218. package/internal/themes/BasicTheme.js +139 -5
  219. package/internal/themes/BasicTheme.js.map +1 -1
  220. package/internal/themes/DarkTheme6_1.d.ts +1 -0
  221. package/internal/themes/DarkTheme6_1.js +164 -0
  222. package/internal/themes/DarkTheme6_1.js.map +1 -0
  223. package/internal/themes/LightTheme6_1.d.ts +1 -0
  224. package/internal/themes/LightTheme6_1.js +164 -0
  225. package/internal/themes/LightTheme6_1.js.map +1 -0
  226. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  227. package/lib/theming/themes/DarkTheme.js +3 -1
  228. package/lib/theming/themes/DarkTheme.js.map +1 -1
  229. package/lib/theming/themes/LightTheme.d.ts +1 -0
  230. package/lib/theming/themes/LightTheme.js +3 -1
  231. package/lib/theming/themes/LightTheme.js.map +1 -1
  232. package/package.json +3 -1
@@ -7,27 +7,28 @@ import type { Nullable } from '../../typings/utility-types.js';
7
7
  import type { CalendarDateShape, CalendarProps } from '../Calendar/index.js';
8
8
  export declare const MIN_WIDTH = 120;
9
9
  export interface DatePickerProps extends Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
10
- /** Устанавливает фокус на поле с датой после окончания загрузки страницы. */
10
+ /** Устанавливает фокус на контроле после окончания загрузки страницы. */
11
11
  autoFocus?: boolean;
12
- /** Блокирует поле с датой. Поле становится недоступно для редактирования. */
12
+ /** Делает компонент недоступным. */
13
13
  disabled?: boolean;
14
- /** Отображает в календаре кнопку «Сегодня», которая меняет выбранное значение на текущую дату. */
14
+ /** Отображает кнопку "Сегодня" в календаре. */
15
15
  enableTodayLink?: boolean;
16
- /** Меняет визуальное отображение поля на состояние «ошибка». */
16
+ /** Переводит контрол в состояние валидации "ошибка". */
17
17
  error?: boolean;
18
- /** Расположение календаря над или под полем. */
18
+ /** Задает nекущую позицию выпадающего окна вручную. */
19
19
  menuPos?: 'top' | 'bottom';
20
- /** Выравнивание выпадающего окна с календарём. */
20
+ /** Задает выравнивание меню. */
21
21
  menuAlign?: 'left' | 'right';
22
- /** Размер поля с датой. */
22
+ /** Задает размер контрола. */
23
23
  size?: SizeProp;
24
24
  /**
25
- * Значение поля в формате `dd.mm.yyyy`.
25
+ * Строка формата `dd.mm.yyyy`
26
+ * Задает значение автокомплита.
26
27
  */
27
28
  value?: string | null;
28
- /** Меняет визуальное отображение поля на состояние «предупреждение». */
29
+ /** Переводит контрол в состояние валидации "предупреждение". */
29
30
  warning?: boolean;
30
- /** Ширина поля с датой. */
31
+ /** Задает ширину автокомплита. */
31
32
  width?: number | string;
32
33
  /** Задает функцию, которая вызывается при потере датапикером фокуса. */
33
34
  onBlur?: () => void;
@@ -62,8 +63,11 @@ export declare const DatePickerDataTids: {
62
63
  };
63
64
  type DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;
64
65
  /**
65
- * Поле с датой помогает вводить дату с клавиатуры или выбирать её с помощью мыши.
66
+ * Поле `DatePicker` помогает вводить дату с клавиатуры или выбирать ее с помощью мыши.
66
67
  *
68
+ * Используйте поле с датой, когда нужно ввести дату в формате ДД.ММ.ГГГГ.
69
+ *
70
+ * Поле с датой отличается от обычного поля ввода наличием иконки, маски и блока календаря.
67
71
  */
68
72
  export declare class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {
69
73
  static __KONTUR_REACT_UI__: string;
@@ -88,19 +92,17 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
88
92
  componentDidMount(): void;
89
93
  componentDidUpdate(prevProps: DatePickerProps, prevState: DatePickerState): void;
90
94
  /**
91
- * Программно снимает фокус с поля.
92
95
  * @public
93
96
  */
94
97
  blur(): void;
95
98
  /**
96
- * Программно устанавливает фокус на поле.
97
99
  * @public
98
100
  */
99
101
  focus(opts?: {
100
102
  withoutOpenDropdown?: boolean;
101
103
  }): void;
102
104
  /**
103
- * Закрывает раскрывающийся блок календаря с выбором дня.
105
+ * Закрывает выпадашку выбора дня
104
106
  * @public
105
107
  */
106
108
  close(): void;
@@ -76,8 +76,11 @@ export var DatePickerDataTids = {
76
76
  pickerTodayWrapper: 'Picker__todayWrapper',
77
77
  };
78
78
  /**
79
- * Поле с датой помогает вводить дату с клавиатуры или выбирать её с помощью мыши.
79
+ * Поле `DatePicker` помогает вводить дату с клавиатуры или выбирать ее с помощью мыши.
80
80
  *
81
+ * Используйте поле с датой, когда нужно ввести дату в формате ДД.ММ.ГГГГ.
82
+ *
83
+ * Поле с датой отличается от обычного поля ввода наличием иконки, маски и блока календаря.
81
84
  */
82
85
  var DatePicker = /** @class */ (function (_super) {
83
86
  __extends(DatePicker, _super);
@@ -204,7 +207,6 @@ var DatePicker = /** @class */ (function (_super) {
204
207
  }
205
208
  };
206
209
  /**
207
- * Программно снимает фокус с поля.
208
210
  * @public
209
211
  */
210
212
  DatePicker.prototype.blur = function () {
@@ -214,7 +216,6 @@ var DatePicker = /** @class */ (function (_super) {
214
216
  this.handleBlur();
215
217
  };
216
218
  /**
217
- * Программно устанавливает фокус на поле.
218
219
  * @public
219
220
  */
220
221
  DatePicker.prototype.focus = function (opts) {
@@ -229,7 +230,7 @@ var DatePicker = /** @class */ (function (_super) {
229
230
  }
230
231
  };
231
232
  /**
232
- * Закрывает раскрывающийся блок календаря с выбором дня.
233
+ * Закрывает выпадашку выбора дня
233
234
  * @public
234
235
  */
235
236
  DatePicker.prototype.close = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js';\nimport { NativeDateInput } from '../../internal/NativeDateInput/index.js';\nimport { Popup } from '../../internal/Popup/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { isMobile } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter.js';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types.js';\nimport { filterProps } from '../../lib/filterProps.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { LocaleContext } from '../../lib/locale/index.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isNonNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { Button } from '../Button/index.js';\nimport { getTodayDate } from '../Calendar/CalendarUtils.js';\nimport type { CalendarDateShape, CalendarProps } from '../Calendar/index.js';\nimport { Calendar } from '../Calendar/index.js';\nimport { DateInput } from '../DateInput/index.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport { getStyles } from './DatePicker.styles.js';\nimport type { DatePickerLocale } from './locale/index.js';\nimport { DatePickerLocaleHelper } from './locale/index.js';\nimport { MobilePicker } from './MobilePicker.js';\n\nconst INPUT_PASS_PROPS = {\n autoFocus: true,\n disabled: true,\n warning: true,\n error: true,\n size: true,\n onKeyDown: true,\n};\n\nexport const MIN_WIDTH = 120;\n\nexport interface DatePickerProps\n extends\n Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Устанавливает фокус на поле с датой после окончания загрузки страницы. */\n\n autoFocus?: boolean;\n\n /** Блокирует поле с датой. Поле становится недоступно для редактирования. */\n disabled?: boolean;\n\n /** Отображает в календаре кнопку «Сегодня», которая меняет выбранное значение на текущую дату. */\n enableTodayLink?: boolean;\n\n /** Меняет визуальное отображение поля на состояние «ошибка». */\n error?: boolean;\n\n /** Расположение календаря — над или под полем. */\n menuPos?: 'top' | 'bottom';\n\n /** Выравнивание выпадающего окна с календарём. */\n menuAlign?: 'left' | 'right';\n\n /** Размер поля с датой. */\n size?: SizeProp;\n\n /**\n * Значение поля в формате `dd.mm.yyyy`.\n */\n value?: string | null;\n\n /** Меняет визуальное отображение поля на состояние «предупреждение». */\n warning?: boolean;\n\n /** Ширина поля с датой. */\n width?: number | string;\n\n /** Задает функцию, которая вызывается при потере датапикером фокуса. */\n onBlur?: () => void;\n\n /** Задает функцию, вызывающуюся при изменении value.\n * @param value - строка в формате `dd.mm.yyyy`. */\n onValueChange: (value: string) => void;\n\n /** Задает функцию, которая вызывается при получении датапикером фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n\n /** Позволяет использовать на мобильных устройствах нативный календарь для выбора дат.\n * На iOS нативный календарь не умеет работать с minDate и maxDate. */\n useMobileNativeDatePicker?: boolean;\n}\n\nexport interface DatePickerState {\n opened: boolean;\n canUseMobileNativeDatePicker: boolean;\n today: CalendarDateShape;\n}\n\nexport const DatePickerDataTids = {\n root: 'DatePicker__root',\n input: 'DatePicker__input',\n label: 'DatePicker__label',\n pickerRoot: 'Picker__root',\n pickerTodayWrapper: 'Picker__todayWrapper',\n} as const;\n\ntype DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;\n\n/**\n * Поле с датой помогает вводить дату с клавиатуры или выбирать её с помощью мыши.\n *\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n public static displayName = 'DatePicker';\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private emotion!: Emotion;\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private canOpenPopup = true;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}): boolean => {\n if (!value) {\n return false;\n }\n\n const { minDate = MIN_FULLDATE, maxDate = MAX_FULLDATE } = range;\n const internalDate = new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }))\n .parseValue(value);\n\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n };\n\n public state: DatePickerState = { opened: false, canUseMobileNativeDatePicker: false, today: getTodayDate() };\n\n private input: DateInput | null = null;\n private focused = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n if (this.props.useMobileNativeDatePicker && isMobile) {\n this.setState({\n canUseMobileNativeDatePicker: true,\n });\n }\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: DatePickerProps, prevState: DatePickerState) {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n\n if (prevState.opened && !opened && this.isMobileLayout) {\n this.handleBlur();\n }\n }\n\n /**\n * Программно снимает фокус с поля.\n * @public\n */\n public blur(): void {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * Программно устанавливает фокус на поле.\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }): void {\n if (this.props.disabled) {\n return;\n }\n\n if (opts?.withoutOpenDropdown) {\n this.canOpenPopup = false;\n }\n\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * Закрывает раскрывающийся блок календаря с выбором дня.\n * @public\n */\n public close(): void {\n this.setState({ opened: false });\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>): React.JSX.Element => {\n let picker = null;\n\n const { minDate, maxDate, menuPos, menuAlign } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n if (this.state.opened) {\n if (isMobile) {\n picker = (\n <MobilePicker\n value={this.props.value}\n minDate={this.parseValueToDate(minDate)}\n maxDate={this.parseValueToDate(maxDate)}\n onValueChange={this.props.onValueChange}\n enableTodayLink={this.props.enableTodayLink}\n isHoliday={this.props.isHoliday}\n onCloseRequest={this.handleMobileCloseRequest}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n );\n } else {\n picker = (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: this.locale.months,\n dayCellChooseDateAriaLabel: this.locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: this.locale.selectMonthAriaLabel,\n selectYearAriaLabel: this.locale.selectYearAriaLabel,\n selectChosenAriaLabel: this.locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(menuPos, menuAlign)}\n data-tid={DatePickerDataTids.root}\n anchorElement={this.getParent()}\n margin={parseInt(this.theme.datePickerMenuOffsetY)}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={this.styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n maxDate={this.parseValueToDate(maxDate)}\n minDate={this.parseValueToDate(minDate)}\n onValueChange={this.handleValueChange}\n isHoliday={this.props.isHoliday}\n value={this.parseValueToDate(this.props.value)}\n renderDay={this.props.renderDay}\n onMonthChange={this.props.onMonthChange}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </Popup>\n </LocaleContext.Provider>\n );\n }\n }\n return (\n <label\n className={this.styles.root()}\n style={this.getRootStyle()}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n data-tid={DatePickerDataTids.label}\n >\n <DateInput\n id={this.props.id}\n {...filterProps(props, INPUT_PASS_PROPS)}\n ref={this.getInputRef}\n value={this.props.value || ''}\n width=\"100%\"\n withIcon\n minDate={minDate}\n maxDate={maxDate}\n onBlur={isMobile ? undefined : this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\n onClick={this.openPickerPopup}\n onKeyDown={this.handleKeyDown}\n data-tid={DatePickerDataTids.input}\n />\n {this.state.canUseMobileNativeDatePicker ? (\n <NativeDateInput\n onValueChange={this.props.onValueChange}\n value={this.props.value || ''}\n minDate={minDate}\n maxDate={maxDate}\n disabled={this.props.disabled}\n />\n ) : (\n picker\n )}\n </label>\n );\n };\n\n private parseValueToDate(value?: Nullable<string>): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n const date = new InternalDate({ value });\n if (date.validate({ checks: [InternalDateValidateCheck.NotNull, InternalDateValidateCheck.Native] })) {\n return date.toString({ withPad: true });\n }\n\n return undefined;\n }\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n return (\n <div style={{ margin: 8 }}>\n <Button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={() => {\n this.handleSelect(today);\n }}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n public getParent = (): Nullable<Element> => {\n return getRootNode(this);\n };\n\n private getRootStyle = () => {\n const { width } = this.props;\n return isNonNullable(width) ? { width } : { minWidth: MIN_WIDTH };\n };\n\n private getInputRef = (ref: DateInput | null) => {\n this.input = ref;\n };\n\n private openPickerPopup = () => {\n this.setState({ opened: true });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n if (!this.canOpenPopup) {\n this.canOpenPopup = true;\n } else {\n this.openPickerPopup();\n }\n\n this.focused = true;\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent) => {\n if (!this.state.opened) {\n this.openPickerPopup();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n return;\n }\n\n this.focused = false;\n this.close();\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleValueChange = (value: string) => {\n this.handleSelect(value);\n this.blur();\n };\n\n private handleSelect = (value: string | null) => {\n if (!value) {\n return null;\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleMobileCloseRequest = () => {\n this.close();\n };\n}\n"]}
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js';\nimport { NativeDateInput } from '../../internal/NativeDateInput/index.js';\nimport { Popup } from '../../internal/Popup/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { isMobile } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter.js';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types.js';\nimport { filterProps } from '../../lib/filterProps.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { LocaleContext } from '../../lib/locale/index.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isNonNullable } from '../../lib/utils.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { Button } from '../Button/index.js';\nimport { getTodayDate } from '../Calendar/CalendarUtils.js';\nimport type { CalendarDateShape, CalendarProps } from '../Calendar/index.js';\nimport { Calendar } from '../Calendar/index.js';\nimport { DateInput } from '../DateInput/index.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport { getStyles } from './DatePicker.styles.js';\nimport type { DatePickerLocale } from './locale/index.js';\nimport { DatePickerLocaleHelper } from './locale/index.js';\nimport { MobilePicker } from './MobilePicker.js';\n\nconst INPUT_PASS_PROPS = {\n autoFocus: true,\n disabled: true,\n warning: true,\n error: true,\n size: true,\n onKeyDown: true,\n};\n\nexport const MIN_WIDTH = 120;\n\nexport interface DatePickerProps\n extends\n Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n\n autoFocus?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Отображает кнопку \"Сегодня\" в календаре. */\n enableTodayLink?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Задает nекущую позицию выпадающего окна вручную. */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /**\n * Строка формата `dd.mm.yyyy`\n * Задает значение автокомплита.\n */\n value?: string | null;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает ширину автокомплита. */\n width?: number | string;\n\n /** Задает функцию, которая вызывается при потере датапикером фокуса. */\n onBlur?: () => void;\n\n /** Задает функцию, вызывающуюся при изменении value.\n * @param value - строка в формате `dd.mm.yyyy`. */\n onValueChange: (value: string) => void;\n\n /** Задает функцию, которая вызывается при получении датапикером фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n\n /** Позволяет использовать на мобильных устройствах нативный календарь для выбора дат.\n * На iOS нативный календарь не умеет работать с minDate и maxDate. */\n useMobileNativeDatePicker?: boolean;\n}\n\nexport interface DatePickerState {\n opened: boolean;\n canUseMobileNativeDatePicker: boolean;\n today: CalendarDateShape;\n}\n\nexport const DatePickerDataTids = {\n root: 'DatePicker__root',\n input: 'DatePicker__input',\n label: 'DatePicker__label',\n pickerRoot: 'Picker__root',\n pickerTodayWrapper: 'Picker__todayWrapper',\n} as const;\n\ntype DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;\n\n/**\n * Поле `DatePicker` помогает вводить дату с клавиатуры или выбирать ее с помощью мыши.\n *\n * Используйте поле с датой, когда нужно ввести дату в формате ДД.ММ.ГГГГ.\n *\n * Поле с датой отличается от обычного поля ввода наличием иконки, маски и блока календаря.\n */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n public static displayName = 'DatePicker';\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private emotion!: Emotion;\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private canOpenPopup = true;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}): boolean => {\n if (!value) {\n return false;\n }\n\n const { minDate = MIN_FULLDATE, maxDate = MAX_FULLDATE } = range;\n const internalDate = new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }))\n .parseValue(value);\n\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n };\n\n public state: DatePickerState = { opened: false, canUseMobileNativeDatePicker: false, today: getTodayDate() };\n\n private input: DateInput | null = null;\n private focused = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n if (this.props.useMobileNativeDatePicker && isMobile) {\n this.setState({\n canUseMobileNativeDatePicker: true,\n });\n }\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: DatePickerProps, prevState: DatePickerState) {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n\n if (prevState.opened && !opened && this.isMobileLayout) {\n this.handleBlur();\n }\n }\n\n /**\n * @public\n */\n public blur(): void {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }): void {\n if (this.props.disabled) {\n return;\n }\n\n if (opts?.withoutOpenDropdown) {\n this.canOpenPopup = false;\n }\n\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close(): void {\n this.setState({ opened: false });\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>): React.JSX.Element => {\n let picker = null;\n\n const { minDate, maxDate, menuPos, menuAlign } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n if (this.state.opened) {\n if (isMobile) {\n picker = (\n <MobilePicker\n value={this.props.value}\n minDate={this.parseValueToDate(minDate)}\n maxDate={this.parseValueToDate(maxDate)}\n onValueChange={this.props.onValueChange}\n enableTodayLink={this.props.enableTodayLink}\n isHoliday={this.props.isHoliday}\n onCloseRequest={this.handleMobileCloseRequest}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n );\n } else {\n picker = (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: this.locale.months,\n dayCellChooseDateAriaLabel: this.locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: this.locale.selectMonthAriaLabel,\n selectYearAriaLabel: this.locale.selectYearAriaLabel,\n selectChosenAriaLabel: this.locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(menuPos, menuAlign)}\n data-tid={DatePickerDataTids.root}\n anchorElement={this.getParent()}\n margin={parseInt(this.theme.datePickerMenuOffsetY)}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={this.styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n maxDate={this.parseValueToDate(maxDate)}\n minDate={this.parseValueToDate(minDate)}\n onValueChange={this.handleValueChange}\n isHoliday={this.props.isHoliday}\n value={this.parseValueToDate(this.props.value)}\n renderDay={this.props.renderDay}\n onMonthChange={this.props.onMonthChange}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </Popup>\n </LocaleContext.Provider>\n );\n }\n }\n return (\n <label\n className={this.styles.root()}\n style={this.getRootStyle()}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n data-tid={DatePickerDataTids.label}\n >\n <DateInput\n id={this.props.id}\n {...filterProps(props, INPUT_PASS_PROPS)}\n ref={this.getInputRef}\n value={this.props.value || ''}\n width=\"100%\"\n withIcon\n minDate={minDate}\n maxDate={maxDate}\n onBlur={isMobile ? undefined : this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\n onClick={this.openPickerPopup}\n onKeyDown={this.handleKeyDown}\n data-tid={DatePickerDataTids.input}\n />\n {this.state.canUseMobileNativeDatePicker ? (\n <NativeDateInput\n onValueChange={this.props.onValueChange}\n value={this.props.value || ''}\n minDate={minDate}\n maxDate={maxDate}\n disabled={this.props.disabled}\n />\n ) : (\n picker\n )}\n </label>\n );\n };\n\n private parseValueToDate(value?: Nullable<string>): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n const date = new InternalDate({ value });\n if (date.validate({ checks: [InternalDateValidateCheck.NotNull, InternalDateValidateCheck.Native] })) {\n return date.toString({ withPad: true });\n }\n\n return undefined;\n }\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n return (\n <div style={{ margin: 8 }}>\n <Button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={() => {\n this.handleSelect(today);\n }}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n public getParent = (): Nullable<Element> => {\n return getRootNode(this);\n };\n\n private getRootStyle = () => {\n const { width } = this.props;\n return isNonNullable(width) ? { width } : { minWidth: MIN_WIDTH };\n };\n\n private getInputRef = (ref: DateInput | null) => {\n this.input = ref;\n };\n\n private openPickerPopup = () => {\n this.setState({ opened: true });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n if (!this.canOpenPopup) {\n this.canOpenPopup = true;\n } else {\n this.openPickerPopup();\n }\n\n this.focused = true;\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent) => {\n if (!this.state.opened) {\n this.openPickerPopup();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n return;\n }\n\n this.focused = false;\n this.close();\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleValueChange = (value: string) => {\n this.handleSelect(value);\n this.blur();\n };\n\n private handleSelect = (value: string | null) => {\n if (!value) {\n return null;\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleMobileCloseRequest = () => {\n this.close();\n };\n}\n"]}
@@ -40,7 +40,7 @@ export var MobilePicker = function (props) {
40
40
  }
41
41
  };
42
42
  return (React.createElement(ThemeContext.Provider, { value: theme },
43
- React.createElement(MobilePopup, { opened: true, headerChildComponent: React.createElement(DateInput, { value: props.value || '', width: "100%", withIcon: true, ref: inputRef, minDate: props.minDate, maxDate: props.maxDate, onValueChange: props.onValueChange, size: "medium", warning: props.warning, error: props.error, "data-tid": MobilePickerDataTids.input }), footerChildComponent: props.enableTodayLink && (React.createElement(Button, { size: "medium", onClick: onTodayClick, "data-tid": MobilePickerDataTids.today }, locale.today)), onCloseRequest: props.onCloseRequest },
43
+ React.createElement(MobilePopup, { opened: true, verticalAlign: 'center', headerChildComponent: React.createElement(DateInput, { value: props.value || '', width: "100%", withIcon: true, ref: inputRef, minDate: props.minDate, maxDate: props.maxDate, onValueChange: props.onValueChange, size: "medium", warning: props.warning, error: props.error, "data-tid": MobilePickerDataTids.input }), footerChildComponent: props.enableTodayLink && (React.createElement(Button, { size: "medium", onClick: onTodayClick, "data-tid": MobilePickerDataTids.today }, locale.today)), onCloseRequest: props.onCloseRequest },
44
44
  React.createElement(Calendar, { ref: calendarRef, value: props.value, className: styles.calendarRoot(), minDate: props.minDate, maxDate: props.maxDate, onValueChange: onValueChange, isHoliday: props.isHoliday, renderDay: props.renderDay, onMonthChange: props.onMonthChange }))));
45
45
  };
46
46
  //# sourceMappingURL=MobilePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MobilePicker.js","sourceRoot":"","sources":["../../../components/DatePicker/MobilePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext, useLayoutEffect, useRef, useState } from 'react';\n\nimport { MobilePopup } from '../../internal/MobilePopup/index.js';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';\nimport { useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Button } from '../Button/index.js';\nimport { getMonthInHumanFormat, getTodayDate } from '../Calendar/CalendarUtils.js';\nimport { Calendar } from '../Calendar/index.js';\nimport { DateInput } from '../DateInput/index.js';\nimport type { DatePickerProps } from './DatePicker.js';\nimport { getMobilePickerTheme } from './getMobilePickerTheme.js';\nimport { DatePickerLocaleHelper } from './locale/index.js';\nimport { getStyles } from './MobilePicker.styles.js';\n\nexport const MobilePickerDataTids = {\n input: 'MobilePicker__input',\n today: 'MobilePicker__today',\n} as const;\n\nexport interface MobilePickerProps extends Pick<\n DatePickerProps,\n | 'error'\n | 'warning'\n | 'value'\n | 'minDate'\n | 'maxDate'\n | 'onValueChange'\n | 'isHoliday'\n | 'enableTodayLink'\n | 'renderDay'\n | 'onMonthChange'\n> {\n onCloseRequest?: () => void;\n}\n\nexport const MobilePicker: React.FC<MobilePickerProps> = (props) => {\n const locale = useLocaleForControl('DatePicker', DatePickerLocaleHelper);\n const styles = useStyles(getStyles);\n const theme = getMobilePickerTheme(useContext(ThemeContext));\n\n const calendarRef = useRef<Calendar>(null);\n const inputRef = useRef<DateInput>(null);\n\n const [{ month: monthNative, year }] = useState(() => getTodayDate());\n const month = getMonthInHumanFormat(monthNative);\n\n const onValueChange = (date: string) => {\n props.onValueChange?.(date);\n props.onCloseRequest?.();\n };\n\n useLayoutEffect(() => {\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n inputRef.current?.focus();\n });\n }, []);\n\n const onTodayClick = () => {\n if (calendarRef.current) {\n calendarRef.current.scrollToMonth(month, year);\n }\n };\n\n return (\n <ThemeContext.Provider value={theme}>\n <MobilePopup\n opened\n headerChildComponent={\n <DateInput\n value={props.value || ''}\n width=\"100%\"\n withIcon\n ref={inputRef}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={props.onValueChange}\n size=\"medium\"\n warning={props.warning}\n error={props.error}\n data-tid={MobilePickerDataTids.input}\n />\n }\n footerChildComponent={\n props.enableTodayLink && (\n <Button size=\"medium\" onClick={onTodayClick} data-tid={MobilePickerDataTids.today}>\n {locale.today}\n </Button>\n )\n }\n onCloseRequest={props.onCloseRequest}\n >\n <Calendar\n ref={calendarRef}\n value={props.value}\n className={styles.calendarRoot()}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={onValueChange}\n isHoliday={props.isHoliday}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n </MobilePopup>\n </ThemeContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"file":"MobilePicker.js","sourceRoot":"","sources":["../../../components/DatePicker/MobilePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext, useLayoutEffect, useRef, useState } from 'react';\n\nimport { MobilePopup } from '../../internal/MobilePopup/index.js';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';\nimport { useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Button } from '../Button/index.js';\nimport { getMonthInHumanFormat, getTodayDate } from '../Calendar/CalendarUtils.js';\nimport { Calendar } from '../Calendar/index.js';\nimport { DateInput } from '../DateInput/index.js';\nimport type { DatePickerProps } from './DatePicker.js';\nimport { getMobilePickerTheme } from './getMobilePickerTheme.js';\nimport { DatePickerLocaleHelper } from './locale/index.js';\nimport { getStyles } from './MobilePicker.styles.js';\n\nexport const MobilePickerDataTids = {\n input: 'MobilePicker__input',\n today: 'MobilePicker__today',\n} as const;\n\nexport interface MobilePickerProps extends Pick<\n DatePickerProps,\n | 'error'\n | 'warning'\n | 'value'\n | 'minDate'\n | 'maxDate'\n | 'onValueChange'\n | 'isHoliday'\n | 'enableTodayLink'\n | 'renderDay'\n | 'onMonthChange'\n> {\n onCloseRequest?: () => void;\n}\n\nexport const MobilePicker: React.FC<MobilePickerProps> = (props) => {\n const locale = useLocaleForControl('DatePicker', DatePickerLocaleHelper);\n const styles = useStyles(getStyles);\n const theme = getMobilePickerTheme(useContext(ThemeContext));\n\n const calendarRef = useRef<Calendar>(null);\n const inputRef = useRef<DateInput>(null);\n\n const [{ month: monthNative, year }] = useState(() => getTodayDate());\n const month = getMonthInHumanFormat(monthNative);\n\n const onValueChange = (date: string) => {\n props.onValueChange?.(date);\n props.onCloseRequest?.();\n };\n\n useLayoutEffect(() => {\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n inputRef.current?.focus();\n });\n }, []);\n\n const onTodayClick = () => {\n if (calendarRef.current) {\n calendarRef.current.scrollToMonth(month, year);\n }\n };\n\n return (\n <ThemeContext.Provider value={theme}>\n <MobilePopup\n opened\n verticalAlign={'center'}\n headerChildComponent={\n <DateInput\n value={props.value || ''}\n width=\"100%\"\n withIcon\n ref={inputRef}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={props.onValueChange}\n size=\"medium\"\n warning={props.warning}\n error={props.error}\n data-tid={MobilePickerDataTids.input}\n />\n }\n footerChildComponent={\n props.enableTodayLink && (\n <Button size=\"medium\" onClick={onTodayClick} data-tid={MobilePickerDataTids.today}>\n {locale.today}\n </Button>\n )\n }\n onCloseRequest={props.onCloseRequest}\n >\n <Calendar\n ref={calendarRef}\n value={props.value}\n className={styles.calendarRoot()}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={onValueChange}\n isHoliday={props.isHoliday}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n </MobilePopup>\n </ThemeContext.Provider>\n );\n};\n"]}
@@ -21,9 +21,9 @@ export declare const DateRangePickerDataTids: {
21
21
  };
22
22
  export interface DateRangePickerProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>, Pick<DatePickerProps, 'size' | 'width' | 'renderDay' | 'menuPos' | 'menuAlign' | 'useMobileNativeDatePicker' | 'enableTodayLink' | 'onMonthChange'> {
23
23
  /**
24
- * Элемент, относительно которого открывается календарь.
25
- * Если передать значение `focused` меню будет открываться у зафокусированного элемента.
26
- * Если передать ссылку на DOM элемент или ref меню откроется относительно переданного элемента.
24
+ * Элемент относительно которого открывается календарь,
25
+ * Если передать значение `focused` - меню будет открываться у зафокусированного элемента.
26
+ * Если передать ссылку на DOM элемент или ref - меню откроется относительно переданного элемента.
27
27
  */
28
28
  menuAnchorElement?: 'focused' | Element | React.ReactNode | React.RefObject<any>;
29
29
  /**
@@ -40,7 +40,6 @@ export interface DateRangePickerRef extends InstanceWithRootNode {
40
40
  scrollToMonth: (month: number, year: number) => void;
41
41
  }
42
42
  export type DateRangePicker = DateRangePickerRef;
43
- /** Поле выбора периода дат. */
44
43
  export declare const DateRangePicker: {
45
44
  Start: import("../../lib/forwardRefAndName.js").ReactUIComponentWithRef<DateInput, {
46
45
  style?: React.CSSProperties | undefined;
@@ -58,7 +58,6 @@ export var DateRangePickerDataTids = {
58
58
  rangeEnd: 'DateRangePicker__rangeEnd',
59
59
  };
60
60
  var DayDateAttribute = 'data-date-range-picker-day';
61
- /** Поле выбора периода дат. */
62
61
  export var DateRangePicker = Object.assign({
63
62
  Start: DateRangePickerStart,
64
63
  End: DateRangePickerEnd,
@@ -146,7 +145,7 @@ export var DateRangePicker = Object.assign({
146
145
  return;
147
146
  }
148
147
  // fix DateInput flushSync warning in React 18
149
- var timeoutId = setTimeout(function () {
148
+ setTimeout(function () {
150
149
  var _a, _b, _c, _d;
151
150
  var isStart = focusInput === 'start';
152
151
  var currentFieldRef;
@@ -172,8 +171,7 @@ export var DateRangePicker = Object.assign({
172
171
  currentFieldRef = isStart ? startRef : endRef;
173
172
  (_d = currentFieldRef.current) === null || _d === void 0 ? void 0 : _d.focus();
174
173
  });
175
- return function () { return clearTimeout(timeoutId); };
176
- }, [focusInput, isMobile, props.useMobileNativeDatePicker]);
174
+ }, [focusInput]);
177
175
  var dateRangePickerContextProps = {
178
176
  startValue: startValue,
179
177
  startOptional: startOptional,
@@ -217,7 +215,7 @@ export var DateRangePicker = Object.assign({
217
215
  };
218
216
  var renderMobileCalendar = function (theme) {
219
217
  var _a, _b;
220
- return (React.createElement(MobilePopup, { opened: true, headerChildComponent: React.createElement("div", { className: cx(styles.root(theme), styles.inputWrapperWidthFull()) },
218
+ return (React.createElement(MobilePopup, { opened: true, verticalAlign: 'center', headerChildComponent: React.createElement("div", { className: cx(styles.root(theme), styles.inputWrapperWidthFull()) },
221
219
  React.createElement(DateInput, { withIcon: true, value: startValue, width: "auto", size: "medium", className: cx((_a = {}, _a[styles.inputVisuallyFocus(theme)] = focusInput === 'start', _a)), disabled: startDisabled, onValueChange: setStartValue, onFocus: function () { return setFocusInput('start'); }, ref: mobileStartRef, "data-tid": DateRangePickerDataTids.mobileStart }),
222
220
  React.createElement(DateRangePicker.Separator, null),
223
221
  React.createElement(DateInput, { withIcon: true, value: endValue, width: "auto", size: "medium", className: cx((_b = {}, _b[styles.inputVisuallyFocus(theme)] = focusInput === 'end', _b)), disabled: endDisabled, onValueChange: setEndValue, onFocus: function () { return setFocusInput('end'); }, ref: mobileEndRef, "data-tid": DateRangePickerDataTids.mobileEnd })), onCloseRequest: function () { return close(); }, footerChildComponent: renderButtons() },
@@ -236,7 +234,7 @@ export var DateRangePicker = Object.assign({
236
234
  }
237
235
  return getRootNode(startRef.current) || getRootNode(endRef.current) || getRootNode(dateRangePickerRef.current);
238
236
  };
239
- var renderDesktopCalendar = function (theme) { return (React.createElement(Popup, { opened: true, hasShadow: true, priority: ZIndex.priorities.PopupMenu, positions: getMenuPositions(props.menuPos, props.menuAlign), "data-tid": DateRangePickerDataTids.popup, anchorElement: getAnchorElement(), margin: parseInt(theme.datePickerMenuOffsetY) },
237
+ var renderDesktopCalendar = function (theme) { return (React.createElement(Popup, { opened: true, hasShadow: true, priority: ZIndex.priorities.PopupMenu, positions: getMenuPositions(props.menuPos, props.menuAlign), "data-tid": DateRangePickerDataTids.root, anchorElement: getAnchorElement(), margin: parseInt(theme.datePickerMenuOffsetY) },
240
238
  React.createElement("div", { className: styles.calendarWrapper(theme), onMouseDown: function (e) { return e.preventDefault(); }, onMouseMove: handleCalendarRangeMouseMove },
241
239
  renderCalendar(theme),
242
240
  renderButtons()))); };
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePicker.js","sourceRoot":"","sources":["../../../components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAuB,mBAAmB,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG3G,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAErF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,CAAC,IAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,wBAAwB;IAC/B,GAAG,EAAE,sBAAsB;IAC3B,KAAK,EAAE,wBAAwB;IAC/B,QAAQ,EAAE,2BAA2B;IACrC,WAAW,EAAE,8BAA8B;IAC3C,mBAAmB,EAAE,sCAAsC;IAC3D,iBAAiB,EAAE,oCAAoC;IACvD,WAAW,EAAE,8BAA8B;IAC3C,SAAS,EAAE,4BAA4B;IACvC,UAAU,EAAE,6BAA6B;IACzC,QAAQ,EAAE,2BAA2B;CAC7B,CAAC;AAEX,IAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAwCtD,+BAA+B;AAC/B,MAAM,CAAC,IAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAC1C;IACE,KAAK,EAAE,oBAAoB;IAC3B,GAAG,EAAE,kBAAkB;IACvB,SAAS,EAAE,wBAAwB;IACnC,QAAQ,EAAE,uBAAuB;CAClC,EACD,iBAAiB,CAA2C,iBAAiB,EAAE,UAAC,KAA2B,EAAE,GAAG;IACxG,IAAA,KAAc,UAAU,EAAE,EAAxB,GAAG,SAAA,EAAE,EAAE,QAAiB,CAAC;IACjC,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,IAAA,QAAQ,GAAK,mBAAmB,EAAE,SAA1B,CAA2B;IAC3C,IAAM,MAAM,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;IAE7E,IAAA,KAA8B,QAAQ,EAAU,EAA/C,UAAU,QAAA,EAAE,aAAa,QAAsB,CAAC;IACjD,IAAA,KAAoC,QAAQ,CAAC,KAAK,CAAC,EAAlD,aAAa,QAAA,EAAE,gBAAgB,QAAmB,CAAC;IACpD,IAAA,KAAoC,QAAQ,CAAC,KAAK,CAAC,EAAlD,aAAa,QAAA,EAAE,gBAAgB,QAAmB,CAAC;IAEpD,IAAA,KAA0B,QAAQ,EAAU,EAA3C,QAAQ,QAAA,EAAE,WAAW,QAAsB,CAAC;IAC7C,IAAA,KAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,QAAA,EAAE,cAAc,QAAmB,CAAC;IAChD,IAAA,KAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,QAAA,EAAE,cAAc,QAAmB,CAAC;IAEhD,IAAA,KAAwB,QAAQ,CAAC,EAAE,CAAC,EAAnC,OAAO,QAAA,EAAE,UAAU,QAAgB,CAAC;IACrC,IAAA,KAAwB,QAAQ,CAAC,EAAE,CAAC,EAAnC,OAAO,QAAA,EAAE,UAAU,QAAgB,CAAC;IAErC,IAAA,KAA8B,QAAQ,CAAgB,IAAI,CAAC,EAA1D,UAAU,QAAA,EAAE,aAAa,QAAiC,CAAC;IAC5D,IAAA,KAAkC,QAAQ,CAAU,KAAK,CAAC,EAAzD,YAAY,QAAA,EAAE,eAAe,QAA4B,CAAC;IAC3D,IAAA,KAA8B,QAAQ,CAAkC,IAAI,CAAC,EAA5E,UAAU,QAAA,EAAE,aAAa,QAAmD,CAAC;IAEpF,IAAM,kBAAkB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACxD,IAAM,WAAW,GAAG,MAAM,CAAW,IAAI,CAAC,CAAC;IAC3C,IAAM,QAAQ,GAAG,MAAM,CAAY,IAAI,CAAC,CAAC;IACzC,IAAM,MAAM,GAAG,MAAM,CAAY,IAAI,CAAC,CAAC;IACvC,IAAM,cAAc,GAAG,MAAM,CAAY,IAAI,CAAC,CAAC;IAC/C,IAAM,YAAY,GAAG,MAAM,CAAY,IAAI,CAAC,CAAC;IAC7C,IAAM,oBAAoB,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IAC3D,IAAM,kBAAkB,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IACzD,IAAM,cAAc,GAAG,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC;IAEtE,IAAM,qBAAqB,GAAG,UAAC,KAAU;QAAV,sBAAA,EAAA,UAAU;QACvC,IAAM,aAAa,GAAG;YACpB,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,QAAQ;YACpB,OAAO,SAAA;YACP,OAAO,SAAA;SACR,CAAC;QACF,IAAM,YAAY,GAAG,gBAAgB,CAAC,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAExE,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;YAC9C,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,IAAI,GAAG,UAAC,SAA6C;QAA7C,0BAAA,EAAA,mBAA6C;QACzD,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,IAAM,KAAK,GAAG;QACZ,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,IAAM,KAAK,GAAG,UAAC,SAA6C;QAA7C,0BAAA,EAAA,mBAA6C;QAC1D,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,IAAM,QAAQ,GAAG,UAAC,IAA8B;QAC9C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO;gBACV,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,KAAK,CAAC,KAAK,CAAC,CAAC;gBACb,MAAM;YAER,KAAK,KAAK;gBACR,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChB,KAAK,EAAE,CAAC;gBACR,MAAM;QACV,CAAC;IACH,CAAC,CAAC;IAEF,mBAAmB,CACjB,GAAG,EACH,cAAM,OAAA,CAAC;QACL,IAAI,MAAA;QACJ,KAAK,OAAA;QACL,aAAa,EAAE,UAAC,KAAK,EAAE,IAAI;;YACzB,MAAA,MAAA,WAAW,CAAC,OAAO,0CAAE,aAAa,mDAAG,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,WAAW,EAAE,cAAM,OAAA,kBAAkB,CAAC,OAAO,EAA1B,CAA0B;KAC9C,CAAC,EAPI,CAOJ,EACF,EAAE,CACH,CAAC;IAEF,eAAe,CAAC;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,8CAA8C;QAC9C,IAAM,SAAS,GAAG,UAAU,CAAC;;YAC3B,IAAM,OAAO,GAAG,UAAU,KAAK,OAAO,CAAC;YACvC,IAAI,eAAe,CAAC;YAEpB,uBAAuB;YACvB,IAAI,QAAQ,IAAI,KAAK,CAAC,yBAAyB,EAAE,CAAC;gBAChD,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBACtE,IAAI,KAAK,EAAE,CAAC;oBACV,MAAA,eAAe,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,gDAAgD;oBAChD,MAAA,eAAe,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;gBACnC,CAAC;gBACD,OAAO;YACT,CAAC;YAED,SAAS;YACT,IAAI,QAAQ,EAAE,CAAC;gBACb,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC1D,MAAA,eAAe,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,UAAU;YACV,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9C,MAAA,eAAe,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,OAAO,cAAM,OAAA,YAAY,CAAC,SAAS,CAAC,EAAvB,CAAuB,CAAC;IACvC,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAE5D,IAAM,2BAA2B,GAAgC;QAC/D,UAAU,YAAA;QACV,aAAa,eAAA;QACb,aAAa,eAAA;QACb,QAAQ,UAAA;QACR,WAAW,aAAA;QACX,WAAW,aAAA;QACX,OAAO,SAAA;QACP,OAAO,SAAA;QACP,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,eAAA;QACb,gBAAgB,kBAAA;QAChB,gBAAgB,kBAAA;QAChB,WAAW,aAAA;QACX,cAAc,gBAAA;QACd,cAAc,gBAAA;QACd,UAAU,YAAA;QACV,UAAU,YAAA;QACV,aAAa,eAAA;QACb,IAAI,MAAA;QACJ,KAAK,OAAA;QACL,kBAAkB,oBAAA;QAClB,QAAQ,UAAA;QACR,MAAM,QAAA;KACP,CAAC;IAEF,IAAM,cAAc,GAAG,UAAC,KAAY,EAAE,SAAiB;;QAAjB,0BAAA,EAAA,iBAAiB;QAAK,OAAA,CAC1D,oBAAC,aAAa,CAAC,QAAQ,IACrB,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,QAAQ,EAAE;wBACR,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;wBAC7D,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;wBACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;wBAC/C,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;qBACpD;iBACF;aACF;YAED,oBAAC,QAAQ,IACP,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EACrD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,UAAC,QAAQ,IAAK,OAAA,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAArD,CAAqD,EAC9E,aAAa,EAAE,UAAC,KAAK,IAAK,OAAA,qBAAqB,CAAC,KAAK,CAAC,EAA5B,CAA4B,EACtD,GAAG,EAAE,WAAW,EAChB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,SAAS,EAAE,EAAE,WAAG,GAAC,MAAM,CAAC,iBAAiB,EAAE,IAAG,SAAS,MAAG,GAC1D,CACqB,CAC1B;IAzB2D,CAyB3D,CAAC;IAEF,IAAM,oBAAoB,GAAG,UAAC,KAAY;;QAAK,OAAA,CAC7C,oBAAC,WAAW,IACV,MAAM,QACN,oBAAoB,EAClB,6BAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACpE,oBAAC,SAAS,IACR,QAAQ,QACR,KAAK,EAAE,UAAU,EACjB,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,WAAG,GAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAG,UAAU,KAAK,OAAO,MAAG,EAC7E,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,OAAO,CAAC,EAAtB,CAAsB,EACrC,GAAG,EAAE,cAAc,cACT,uBAAuB,CAAC,WAAW,GAC7C;gBACF,oBAAC,eAAe,CAAC,SAAS,OAAG;gBAC7B,oBAAC,SAAS,IACR,QAAQ,QACR,KAAK,EAAE,QAAQ,EACf,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,WAAG,GAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAG,UAAU,KAAK,KAAK,MAAG,EAC3E,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,WAAW,EAC1B,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,KAAK,CAAC,EAApB,CAAoB,EACnC,GAAG,EAAE,YAAY,cACP,uBAAuB,CAAC,SAAS,GAC3C,CACE,EAER,cAAc,EAAE,cAAM,OAAA,KAAK,EAAE,EAAP,CAAO,EAC7B,oBAAoB,EAAE,aAAa,EAAE;YAErC,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,6BAA6B,CAAC,KAAK,CAAC,IAC/D,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CACN,CACZ,CACf;IAvC8C,CAuC9C,CAAC;IAEF,IAAM,gBAAgB,GAAG;QACf,IAAA,iBAAiB,GAAK,KAAK,kBAAV,CAAW;QACpC,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,WAAW,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC5C,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,IAAI,iBAAiB,IAAI,OAAO,iBAAiB,KAAK,QAAQ,IAAI,SAAS,IAAI,iBAAiB,EAAE,CAAC;YACjG,OAAO,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACjH,CAAC,CAAC;IAEF,IAAM,qBAAqB,GAAG,UAAC,KAAY,IAAK,OAAA,CAC9C,oBAAC,KAAK,IACJ,MAAM,QACN,SAAS,QACT,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,EACrC,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cACjD,uBAAuB,CAAC,KAAK,EACvC,aAAa,EAAE,gBAAgB,EAAE,EACjC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC;QAE7C,6BACE,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,EACxC,WAAW,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,cAAc,EAAE,EAAlB,CAAkB,EACtC,WAAW,EAAE,4BAA4B;YAExC,cAAc,CAAC,KAAK,CAAC;YACrB,aAAa,EAAE,CACZ,CACA,CACT,EAnB+C,CAmB/C,CAAC;IAEF,IAAM,aAAa,GAAG;QACpB,IAAM,KAAK,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC;aACnC,aAAa,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC;aACtD,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpD,IAAM,kBAAkB,GAAG,aAAa,IAAI,WAAW,CAAC;QACxD,OAAO,CACL,6BAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACpC,kBAAkB,IAAI,CACrB;gBACG,UAAU,KAAK,OAAO,IAAI,aAAa,IAAI,CAC1C,oBAAC,MAAM,IACL,KAAK,EAAC,MAAM,cACF,uBAAuB,CAAC,mBAAmB,EACrD,OAAO,EAAE,cAAM,OAAA,QAAQ,CAAC,OAAO,CAAC,EAAjB,CAAiB,IAE/B,MAAM,CAAC,cAAc,CACf,CACV;gBACA,UAAU,KAAK,KAAK,IAAI,WAAW,IAAI,CACtC,oBAAC,MAAM,IACL,KAAK,EAAC,MAAM,cACF,uBAAuB,CAAC,iBAAiB,EACnD,OAAO,EAAE,cAAM,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe,IAE7B,MAAM,CAAC,YAAY,CACb,CACV,CACA,CACJ;YAEA,KAAK,CAAC,eAAe,IAAI,CACxB,oBAAC,MAAM,IACL,IAAI,EAAE,oBAAC,mBAAmB,OAAG,gBACjB,MAAM,CAAC,cAAc,cACvB,uBAAuB,CAAC,WAAW,EAC7C,OAAO,EAAE,cAAM,OAAA,qBAAqB,CAAC,KAAK,CAAC,EAA5B,CAA4B,IAE1C,CAAC,kBAAkB,IAAI,MAAM,CAAC,KAAK,CAC7B,CACV,CACG,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,IAAM,2BAA2B,GAAG,cAAM,OAAA,CACxC;QACE,oBAAC,eAAe,IACd,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,oBAAoB,GACzB;QACF,oBAAC,eAAe,IACd,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,WAAW,EAC1B,QAAQ,EAAE,WAAW,EACrB,GAAG,EAAE,kBAAkB,GACvB,CACD,CACJ,EAnByC,CAmBzC,CAAC;IAEF,OAAO,CACL,oBAAC,YAAY,CAAC,QAAQ,QACnB,UAAC,KAAK,IAAK,OAAA,CACV,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC;QAC1D,oBAAC,sBAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,2BAA2B;YACjE,oBAAC,aAAa,eAAK,KAAK;gBACtB,6BACE,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAClB,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC/B,GAAG,mIAAA,qCACY,EAA8B,yBAC5C,KADc,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAE9C,EACD,IAAI,EAAC,OAAO,sBACM,KAAK,CAAC,kBAAkB,CAAC,gBAC/B,KAAK,CAAC,YAAY,CAAC,qBACd,KAAK,CAAC,iBAAiB,CAAC,cAC/B,uBAAuB,CAAC,IAAI,EACtC,GAAG,EAAE,kBAAkB,EACvB,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;oBAE5B,KAAK,CAAC,QAAQ;oBAEd,KAAK,CAAC,yBAAyB,IAAI,QAAQ;wBAC1C,CAAC,CAAC,2BAA2B,EAAE;wBAC/B,CAAC,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CACzF,CACQ,CACgB,CACZ,CACzB,EA7BW,CA6BX,CACqB,CACzB,CAAC;IAEF,+EAA+E;IAC/E,SAAS,4BAA4B,CAAC,CAA+C;QACnF,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAM,cAAc,GAAG,CAAC,CAAC,MAAqB,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAM,IAAI,GAAG,MAAM,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC;QAC5E,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,SAAS,mBAAmB,CAC1B,KAAuB,EACvB,CAAQ,EACR,WAAmF;;QAEnF,IAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;QAEvB,IAAM,UAAU,GAAG,UAAU,KAAK,GAAG,CAAC;QACtC,IAAM,SAAS,GAAG,QAAQ,KAAK,GAAG,CAAC;QACnC,IAAM,aAAa,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE9F,IAAM,aAAa,GAAG,UAAU,KAAK,IAAI,CAAC;QAC1C,IAAM,oBAAoB,GACxB,aAAa;YACb,OAAO,CACL,CAAC,UAAU,KAAK,OAAO,IAAI,QAAQ,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC5E,CAAC,UAAU,KAAK,KAAK,IAAI,UAAU,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAC/E,CAAC;QAEJ,IAAI,gBAAgB,CAAC;QACrB,IAAI,iBAAiB,CAAC;QAEtB,IAAI,aAAa,EAAE,CAAC;YAClB,IAAM,wBAAwB,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACxF,IAAM,sBAAsB,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAEvF,IAAI,UAAU,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,UAAU,KAAK,KAAK,CAAC,EAAE,CAAC;gBACrF,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;YAED,IAAI,SAAS,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,UAAU,KAAK,OAAO,CAAC,EAAE,CAAC;gBACjF,iBAAiB,GAAG,IAAI,CAAC;YAC3B,CAAC;YAED,IAAM,YAAY,GAAG,UAAU,KAAK,GAAG,CAAC;YACxC,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,wBAAwB,EAAE,CAAC;oBAC7B,gBAAgB,GAAG,IAAI,CAAC;gBAC1B,CAAC;gBAED,IAAI,sBAAsB,EAAE,CAAC;oBAC3B,iBAAiB,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,EAAE,CAAC;gBACf,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,iBAAiB,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAM,cAAc,yBACf,KAAK,gBACP,gBAAgB,IAAG,KAAK,CAAC,IAAI,MAC/B,CAAC;QAEF,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC/C,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC;QAC7C,CAAC;QAED,OAAO,CACL,6BACE,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,gBAAgB,EAAE,EACzB,GAAG,gTAAA,8BACa,EAAsC,2CAC1B,EAA8C,8CAC3C,EAA8C,4CAChD,EAA+C,+CAC5C,EAA+C,iBAC9E,KALe,aAAa,IAAI,CAAC,CAAC,mBAAmB,EAC1B,gBAAgB,IAAI,CAAC,CAAC,wBAAwB,EAC3C,gBAAgB,IAAI,CAAC,CAAC,wBAAwB,EAChD,iBAAiB,IAAI,CAAC,CAAC,wBAAwB,EAC5C,iBAAiB,IAAI,CAAC,CAAC,wBAAwB;gBAG7E,GAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAG,UAAU,IAAI,SAAS;gBACxD,GAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAG,aAAa;gBACxD,GAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAG,oBAAoB;oBAEpE,cACS,OAAO,IAEhB,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,oBAAC,WAAW,eAAK,cAAc,EAAI,CAC5E,CACP,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CACH,CAAC","sourcesContent":["import React, { type AriaAttributes, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js';\nimport { MobilePopup } from '../../internal/MobilePopup/index.js';\nimport { NativeDateInput } from '../../internal/NativeDateInput/index.js';\nimport { Popup } from '../../internal/Popup/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { isIOS } from '../../lib/client.js';\nimport { isBetween, isGreater, isGreaterOrEqual, isLess, isLessOrEqual } from '../../lib/date/comparison.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport { LocaleContext } from '../../lib/locale/index.js';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport type { InstanceWithRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Button } from '../Button/index.js';\nimport { Calendar, CalendarDay } from '../Calendar/index.js';\nimport type { CalendarDayProps } from '../Calendar/index.js';\nimport { DateInput } from '../DateInput/index.js';\nimport type { DatePickerProps } from '../DatePicker/index.js';\nimport { useResponsiveLayout } from '../ResponsiveLayout/index.js';\nimport { getFontSize, getStyles } from './DateRangePicker.styles.js';\nimport { DateRangePickerContext } from './DateRangePickerContext.js';\nimport type { DateRangePickerContextProps } from './DateRangePickerContext.js';\nimport { DateRangePickerEnd, DateRangePickerStart } from './DateRangePickerInput.js';\nimport type { DateRangePickerInputType } from './DateRangePickerInput.js';\nimport { DateRangePickerSeparator } from './DateRangePickerSeparator.js';\nimport { getDateRangePickerTheme, getMobileDateRangePickerTheme } from './DateRangePickerTheme.js';\nimport { getStateForValue } from './helpers/getStateForValue.js';\nimport { validateDateRangePicker } from './helpers/validateDateRangePicker.js';\nimport { DateRangePickerLocaleHelper } from './locale/index.js';\n\nexport const DateRangePickerDataTids = {\n root: 'DateRangePicker__root',\n start: 'DateRangePicker__start',\n end: 'DateRangePicker__end',\n popup: 'DateRangePicker__popup',\n calendar: 'DateRangePicker__calendar',\n todayButton: 'DateRangePicker__todayButton',\n startOptionalButton: 'DateRangePicker__startOptionalButton',\n endOptionalButton: 'DateRangePicker__endOptionalButton',\n mobileStart: 'DateRangePicker__mobileStart',\n mobileEnd: 'DateRangePicker__mobileEnd',\n rangeStart: 'DateRangePicker__rangeStart',\n rangeEnd: 'DateRangePicker__rangeEnd',\n} as const;\n\nconst DayDateAttribute = 'data-date-range-picker-day';\n\nexport interface DateRangePickerProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<\n DatePickerProps,\n | 'size'\n | 'width'\n | 'renderDay'\n | 'menuPos'\n | 'menuAlign'\n | 'useMobileNativeDatePicker'\n | 'enableTodayLink'\n | 'onMonthChange'\n > {\n /**\n * Элемент, относительно которого открывается календарь.\n * Если передать значение `focused` — меню будет открываться у зафокусированного элемента.\n * Если передать ссылку на DOM элемент или ref — меню откроется относительно переданного элемента.\n */\n menuAnchorElement?: 'focused' | Element | React.ReactNode | React.RefObject<any>;\n /**\n * Элементы DateRangePicker:\n * `<DateRangePicker.Start />`\n * `<DateRangePicker.Separator />`\n * `<DateRangePicker.End />`\n */\n children: React.ReactNode;\n}\n\nexport interface DateRangePickerRef extends InstanceWithRootNode {\n open: (inputType?: DateRangePickerInputType) => void;\n close: () => void;\n scrollToMonth: (month: number, year: number) => void;\n}\n\nexport type DateRangePicker = DateRangePickerRef;\n\n/** Поле выбора периода дат. */\nexport const DateRangePicker = Object.assign(\n {\n Start: DateRangePickerStart,\n End: DateRangePickerEnd,\n Separator: DateRangePickerSeparator,\n validate: validateDateRangePicker,\n },\n forwardRefAndName<DateRangePickerRef, DateRangePickerProps>('DateRangePicker', (props: DateRangePickerProps, ref) => {\n const { css, cx } = useEmotion();\n const styles = useStyles(getStyles);\n const { isMobile } = useResponsiveLayout();\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const [startValue, setStartValue] = useState<string>();\n const [startOptional, setStartOptional] = useState(false);\n const [startDisabled, setStartDisabled] = useState(false);\n\n const [endValue, setEndValue] = useState<string>();\n const [endOptional, setEndOptional] = useState(false);\n const [endDisabled, setEndDisabled] = useState(false);\n\n const [minDate, setMinDate] = useState('');\n const [maxDate, setMaxDate] = useState('');\n\n const [hoveredDay, setHoveredDay] = useState<string | null>(null);\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\n const [focusInput, setFocusInput] = useState<DateRangePickerInputType | null>(null);\n\n const dateRangePickerRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<Calendar>(null);\n const startRef = useRef<DateInput>(null);\n const endRef = useRef<DateInput>(null);\n const mobileStartRef = useRef<DateInput>(null);\n const mobileEndRef = useRef<DateInput>(null);\n const mobileNativeStartRef = useRef<NativeDateInput>(null);\n const mobileNativeEndRef = useRef<NativeDateInput>(null);\n const isCalendarOpen = !startDisabled && !endDisabled && showCalendar;\n\n const updateDateRangeValues = (value = '') => {\n const currentValues = {\n currentStart: startValue,\n currentEnd: endValue,\n minDate,\n maxDate,\n };\n const updatedState = getStateForValue(focusInput, value, currentValues);\n\n setStartValue(updatedState.start);\n setEndValue(updatedState.end);\n\n if (updatedState.isOpen && updatedState.focus) {\n focus(updatedState.focus);\n }\n\n if (!updatedState.isOpen) {\n close();\n }\n };\n\n const open = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n setShowCalendar(true);\n };\n\n const close = () => {\n setShowCalendar(false);\n setHoveredDay(null);\n };\n\n const focus = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n };\n\n const setEmpty = (type: DateRangePickerInputType) => {\n switch (type) {\n case 'start':\n setStartValue('');\n focus('end');\n break;\n\n case 'end':\n setEndValue('');\n close();\n break;\n }\n };\n\n useImperativeHandle(\n ref,\n () => ({\n open,\n close,\n scrollToMonth: (month, year) => {\n calendarRef.current?.scrollToMonth?.(month, year);\n },\n getRootNode: () => dateRangePickerRef.current,\n }),\n [],\n );\n\n useLayoutEffect(() => {\n if (!focusInput) {\n return;\n }\n\n // fix DateInput flushSync warning in React 18\n const timeoutId = setTimeout(() => {\n const isStart = focusInput === 'start';\n let currentFieldRef;\n\n // Mobile Native Picker\n if (isMobile && props.useMobileNativeDatePicker) {\n currentFieldRef = isStart ? mobileNativeStartRef : mobileNativeEndRef;\n if (isIOS) {\n currentFieldRef.current?.focus();\n } else {\n // Android open native datepicker only via click\n currentFieldRef.current?.click();\n }\n return;\n }\n\n // Mobile\n if (isMobile) {\n currentFieldRef = isStart ? mobileStartRef : mobileEndRef;\n currentFieldRef.current?.focus();\n return;\n }\n\n // Desktop\n currentFieldRef = isStart ? startRef : endRef;\n currentFieldRef.current?.focus();\n });\n\n return () => clearTimeout(timeoutId);\n }, [focusInput, isMobile, props.useMobileNativeDatePicker]);\n\n const dateRangePickerContextProps: DateRangePickerContextProps = {\n startValue,\n startOptional,\n startDisabled,\n endValue,\n endOptional,\n endDisabled,\n minDate,\n maxDate,\n size: props.size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n };\n\n const renderCalendar = (theme: Theme, widthAuto = false) => (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: locale.months,\n dayCellChooseDateAriaLabel: locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: locale.selectMonthAriaLabel,\n selectYearAriaLabel: locale.selectYearAriaLabel,\n selectChosenAriaLabel: locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Calendar\n value={focusInput === 'start' ? startValue : endValue}\n minDate={minDate}\n maxDate={maxDate}\n renderDay={(dayProps) => renderCalendarRange(dayProps, theme, props.renderDay)}\n onValueChange={(value) => updateDateRangeValues(value)}\n ref={calendarRef}\n onMonthChange={props.onMonthChange}\n className={cx({ [styles.calendarWidthAuto()]: widthAuto })}\n />\n </LocaleContext.Provider>\n );\n\n const renderMobileCalendar = (theme: Theme) => (\n <MobilePopup\n opened\n headerChildComponent={\n <div className={cx(styles.root(theme), styles.inputWrapperWidthFull())}>\n <DateInput\n withIcon\n value={startValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'start' })}\n disabled={startDisabled}\n onValueChange={setStartValue}\n onFocus={() => setFocusInput('start')}\n ref={mobileStartRef}\n data-tid={DateRangePickerDataTids.mobileStart}\n />\n <DateRangePicker.Separator />\n <DateInput\n withIcon\n value={endValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'end' })}\n disabled={endDisabled}\n onValueChange={setEndValue}\n onFocus={() => setFocusInput('end')}\n ref={mobileEndRef}\n data-tid={DateRangePickerDataTids.mobileEnd}\n />\n </div>\n }\n onCloseRequest={() => close()}\n footerChildComponent={renderButtons()}\n >\n <ThemeContext.Provider value={getMobileDateRangePickerTheme(theme)}>\n {renderCalendar(theme, true)}\n </ThemeContext.Provider>\n </MobilePopup>\n );\n\n const getAnchorElement = () => {\n const { menuAnchorElement } = props;\n if (menuAnchorElement === 'focused') {\n return getRootNode(focusInput === 'start' ? startRef.current : endRef.current);\n }\n\n if (React.isValidElement(menuAnchorElement)) {\n return menuAnchorElement;\n }\n\n if (menuAnchorElement && typeof menuAnchorElement === 'object' && 'current' in menuAnchorElement) {\n return getRootNode(menuAnchorElement.current);\n }\n\n return getRootNode(startRef.current) || getRootNode(endRef.current) || getRootNode(dateRangePickerRef.current);\n };\n\n const renderDesktopCalendar = (theme: Theme) => (\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(props.menuPos, props.menuAlign)}\n data-tid={DateRangePickerDataTids.popup}\n anchorElement={getAnchorElement()}\n margin={parseInt(theme.datePickerMenuOffsetY)}\n >\n <div\n className={styles.calendarWrapper(theme)}\n onMouseDown={(e) => e.preventDefault()}\n onMouseMove={handleCalendarRangeMouseMove}\n >\n {renderCalendar(theme)}\n {renderButtons()}\n </div>\n </Popup>\n );\n\n const renderButtons = () => {\n const today = new InternalDate(locale)\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n const hasOptionalButtons = startOptional || endOptional;\n return (\n <div className={cx(styles.buttonWrap())}>\n {hasOptionalButtons && (\n <>\n {focusInput === 'start' && startOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.startOptionalButton}\n onClick={() => setEmpty('start')}\n >\n {locale.startDateEmpty}\n </Button>\n )}\n {focusInput === 'end' && endOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.endOptionalButton}\n onClick={() => setEmpty('end')}\n >\n {locale.endDateEmpty}\n </Button>\n )}\n </>\n )}\n\n {props.enableTodayLink && (\n <Button\n icon={<ArrowAUpIcon16Light />}\n aria-label={locale.todayAriaLabel}\n data-tid={DateRangePickerDataTids.todayButton}\n onClick={() => updateDateRangeValues(today)}\n >\n {!hasOptionalButtons && locale.today}\n </Button>\n )}\n </div>\n );\n };\n\n const renderMobileNativeDateInput = () => (\n <>\n <NativeDateInput\n value={startValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setStartValue}\n disabled={startDisabled}\n ref={mobileNativeStartRef}\n />\n <NativeDateInput\n value={endValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setEndValue}\n disabled={endDisabled}\n ref={mobileNativeEndRef}\n />\n </>\n );\n\n return (\n <ThemeContext.Consumer>\n {(theme) => (\n <ThemeContext.Provider value={getDateRangePickerTheme(theme)}>\n <DateRangePickerContext.Provider value={dateRangePickerContextProps}>\n <CommonWrapper {...props}>\n <div\n className={cx(\n styles.root(theme),\n styles.inputWrapperWidth(theme),\n css`\n font-size: ${getFontSize(theme, props.size)};\n `,\n )}\n role=\"group\"\n aria-describedby={props['aria-describedby']}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n data-tid={DateRangePickerDataTids.root}\n ref={dateRangePickerRef}\n style={{ width: props.width }}\n >\n {props.children}\n\n {props.useMobileNativeDatePicker && isMobile\n ? renderMobileNativeDateInput()\n : isCalendarOpen && (isMobile ? renderMobileCalendar(theme) : renderDesktopCalendar(theme))}\n </div>\n </CommonWrapper>\n </DateRangePickerContext.Provider>\n </ThemeContext.Provider>\n )}\n </ThemeContext.Consumer>\n );\n\n // Use parent mousemove event instead each CalendarDay's mouseenter / mouseover\n function handleCalendarRangeMouseMove(e: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (!startValue && !endValue) {\n return;\n }\n\n const hoveredElement = e.target as HTMLElement;\n if (!hoveredElement.hasAttribute(DayDateAttribute) && hoveredDay === null) {\n return;\n }\n\n const date = String(hoveredElement?.getAttribute(DayDateAttribute)) || null;\n setHoveredDay(date);\n }\n\n function renderCalendarRange(\n props: CalendarDayProps,\n t: Theme,\n renderDayFn: ((props: CalendarDayProps) => React.ReactElement<unknown>) | undefined,\n ) {\n const day = props.date;\n\n const isDayFirst = startValue === day;\n const isDayLast = endValue === day;\n const isDayInPeriod = Boolean(startValue && endValue && isBetween(day, startValue, endValue));\n\n const hasHoveredDay = hoveredDay !== null;\n const isDayInHoveredPeriod =\n hasHoveredDay &&\n Boolean(\n (focusInput === 'start' && endValue && isBetween(day, hoveredDay, endValue)) ||\n (focusInput === 'end' && startValue && isBetween(day, startValue, hoveredDay)),\n );\n\n let hasLeftRoundings;\n let hasRightRoundings;\n\n if (hasHoveredDay) {\n const isDayBeforeFirstInPeriod = startValue ? isLess(hoveredDay, startValue) : endValue;\n const isDayAfterLastInPeriod = endValue ? isGreater(hoveredDay, endValue) : startValue;\n\n if (isDayFirst && (isGreaterOrEqual(hoveredDay, startValue) || focusInput === 'end')) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast && (isLessOrEqual(hoveredDay, endValue) || focusInput === 'start')) {\n hasRightRoundings = true;\n }\n\n const isDayHovered = hoveredDay === day;\n if (isDayHovered) {\n if (isDayBeforeFirstInPeriod) {\n hasLeftRoundings = true;\n }\n\n if (isDayAfterLastInPeriod) {\n hasRightRoundings = true;\n }\n }\n } else {\n if (isDayFirst) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast) {\n hasRightRoundings = true;\n }\n }\n\n const renderDayProps = {\n ...props,\n [DayDateAttribute]: props.date,\n };\n\n let dataTid = null;\n if (isDayFirst) {\n dataTid = DateRangePickerDataTids.rangeStart;\n } else if (isDayLast) {\n dataTid = DateRangePickerDataTids.rangeEnd;\n }\n\n return (\n <div\n className={cx(\n styles.rangeCalendarDay(),\n css`\n background: ${isDayInPeriod && t.rangeCalendarCellBg};\n border-top-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-bottom-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-top-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n border-bottom-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n `,\n {\n [styles.rangeCalendarDayEnd(t)]: isDayFirst || isDayLast,\n [styles.rangeCalendarDayHoverInPeriod(t)]: isDayInPeriod,\n [styles.rangeCalendarDayInHoveredPeriod(t)]: isDayInHoveredPeriod,\n },\n )}\n data-tid={dataTid}\n >\n {renderDayFn ? renderDayFn(renderDayProps) : <CalendarDay {...renderDayProps} />}\n </div>\n );\n }\n }),\n);\n"]}
1
+ {"version":3,"file":"DateRangePicker.js","sourceRoot":"","sources":["../../../components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type AriaAttributes, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js';\nimport { MobilePopup } from '../../internal/MobilePopup/index.js';\nimport { NativeDateInput } from '../../internal/NativeDateInput/index.js';\nimport { Popup } from '../../internal/Popup/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { isIOS } from '../../lib/client.js';\nimport { isBetween, isGreater, isGreaterOrEqual, isLess, isLessOrEqual } from '../../lib/date/comparison.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport { LocaleContext } from '../../lib/locale/index.js';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport type { InstanceWithRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Button } from '../Button/index.js';\nimport { Calendar, CalendarDay } from '../Calendar/index.js';\nimport type { CalendarDayProps } from '../Calendar/index.js';\nimport { DateInput } from '../DateInput/index.js';\nimport type { DatePickerProps } from '../DatePicker/index.js';\nimport { useResponsiveLayout } from '../ResponsiveLayout/index.js';\nimport { getFontSize, getStyles } from './DateRangePicker.styles.js';\nimport { DateRangePickerContext } from './DateRangePickerContext.js';\nimport type { DateRangePickerContextProps } from './DateRangePickerContext.js';\nimport { DateRangePickerEnd, DateRangePickerStart } from './DateRangePickerInput.js';\nimport type { DateRangePickerInputType } from './DateRangePickerInput.js';\nimport { DateRangePickerSeparator } from './DateRangePickerSeparator.js';\nimport { getDateRangePickerTheme, getMobileDateRangePickerTheme } from './DateRangePickerTheme.js';\nimport { getStateForValue } from './helpers/getStateForValue.js';\nimport { validateDateRangePicker } from './helpers/validateDateRangePicker.js';\nimport { DateRangePickerLocaleHelper } from './locale/index.js';\n\nexport const DateRangePickerDataTids = {\n root: 'DateRangePicker__root',\n start: 'DateRangePicker__start',\n end: 'DateRangePicker__end',\n popup: 'DateRangePicker__popup',\n calendar: 'DateRangePicker__calendar',\n todayButton: 'DateRangePicker__todayButton',\n startOptionalButton: 'DateRangePicker__startOptionalButton',\n endOptionalButton: 'DateRangePicker__endOptionalButton',\n mobileStart: 'DateRangePicker__mobileStart',\n mobileEnd: 'DateRangePicker__mobileEnd',\n rangeStart: 'DateRangePicker__rangeStart',\n rangeEnd: 'DateRangePicker__rangeEnd',\n} as const;\n\nconst DayDateAttribute = 'data-date-range-picker-day';\n\nexport interface DateRangePickerProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<\n DatePickerProps,\n | 'size'\n | 'width'\n | 'renderDay'\n | 'menuPos'\n | 'menuAlign'\n | 'useMobileNativeDatePicker'\n | 'enableTodayLink'\n | 'onMonthChange'\n > {\n /**\n * Элемент относительно которого открывается календарь,\n * Если передать значение `focused` - меню будет открываться у зафокусированного элемента.\n * Если передать ссылку на DOM элемент или ref - меню откроется относительно переданного элемента.\n */\n menuAnchorElement?: 'focused' | Element | React.ReactNode | React.RefObject<any>;\n /**\n * Элементы DateRangePicker:\n * `<DateRangePicker.Start />`\n * `<DateRangePicker.Separator />`\n * `<DateRangePicker.End />`\n */\n children: React.ReactNode;\n}\n\nexport interface DateRangePickerRef extends InstanceWithRootNode {\n open: (inputType?: DateRangePickerInputType) => void;\n close: () => void;\n scrollToMonth: (month: number, year: number) => void;\n}\n\nexport type DateRangePicker = DateRangePickerRef;\n\nexport const DateRangePicker = Object.assign(\n {\n Start: DateRangePickerStart,\n End: DateRangePickerEnd,\n Separator: DateRangePickerSeparator,\n validate: validateDateRangePicker,\n },\n forwardRefAndName<DateRangePickerRef, DateRangePickerProps>('DateRangePicker', (props: DateRangePickerProps, ref) => {\n const { css, cx } = useEmotion();\n const styles = useStyles(getStyles);\n const { isMobile } = useResponsiveLayout();\n const locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);\n\n const [startValue, setStartValue] = useState<string>();\n const [startOptional, setStartOptional] = useState(false);\n const [startDisabled, setStartDisabled] = useState(false);\n\n const [endValue, setEndValue] = useState<string>();\n const [endOptional, setEndOptional] = useState(false);\n const [endDisabled, setEndDisabled] = useState(false);\n\n const [minDate, setMinDate] = useState('');\n const [maxDate, setMaxDate] = useState('');\n\n const [hoveredDay, setHoveredDay] = useState<string | null>(null);\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\n const [focusInput, setFocusInput] = useState<DateRangePickerInputType | null>(null);\n\n const dateRangePickerRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<Calendar>(null);\n const startRef = useRef<DateInput>(null);\n const endRef = useRef<DateInput>(null);\n const mobileStartRef = useRef<DateInput>(null);\n const mobileEndRef = useRef<DateInput>(null);\n const mobileNativeStartRef = useRef<NativeDateInput>(null);\n const mobileNativeEndRef = useRef<NativeDateInput>(null);\n const isCalendarOpen = !startDisabled && !endDisabled && showCalendar;\n\n const updateDateRangeValues = (value = '') => {\n const currentValues = {\n currentStart: startValue,\n currentEnd: endValue,\n minDate,\n maxDate,\n };\n const updatedState = getStateForValue(focusInput, value, currentValues);\n\n setStartValue(updatedState.start);\n setEndValue(updatedState.end);\n\n if (updatedState.isOpen && updatedState.focus) {\n focus(updatedState.focus);\n }\n\n if (!updatedState.isOpen) {\n close();\n }\n };\n\n const open = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n setShowCalendar(true);\n };\n\n const close = () => {\n setShowCalendar(false);\n setHoveredDay(null);\n };\n\n const focus = (inputType: DateRangePickerInputType = 'start') => {\n setFocusInput(inputType);\n };\n\n const setEmpty = (type: DateRangePickerInputType) => {\n switch (type) {\n case 'start':\n setStartValue('');\n focus('end');\n break;\n\n case 'end':\n setEndValue('');\n close();\n break;\n }\n };\n\n useImperativeHandle(\n ref,\n () => ({\n open,\n close,\n scrollToMonth: (month, year) => {\n calendarRef.current?.scrollToMonth?.(month, year);\n },\n getRootNode: () => dateRangePickerRef.current,\n }),\n [],\n );\n\n useLayoutEffect(() => {\n if (!focusInput) {\n return;\n }\n\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n const isStart = focusInput === 'start';\n let currentFieldRef;\n\n // Mobile Native Picker\n if (isMobile && props.useMobileNativeDatePicker) {\n currentFieldRef = isStart ? mobileNativeStartRef : mobileNativeEndRef;\n if (isIOS) {\n currentFieldRef.current?.focus();\n } else {\n // Android open native datepicker only via click\n currentFieldRef.current?.click();\n }\n return;\n }\n\n // Mobile\n if (isMobile) {\n currentFieldRef = isStart ? mobileStartRef : mobileEndRef;\n currentFieldRef.current?.focus();\n return;\n }\n\n // Desktop\n currentFieldRef = isStart ? startRef : endRef;\n currentFieldRef.current?.focus();\n });\n }, [focusInput]);\n\n const dateRangePickerContextProps: DateRangePickerContextProps = {\n startValue,\n startOptional,\n startDisabled,\n endValue,\n endOptional,\n endDisabled,\n minDate,\n maxDate,\n size: props.size,\n setStartValue,\n setStartOptional,\n setStartDisabled,\n setEndValue,\n setEndOptional,\n setEndDisabled,\n setMinDate,\n setMaxDate,\n setFocusInput,\n open,\n close,\n dateRangePickerRef,\n startRef,\n endRef,\n };\n\n const renderCalendar = (theme: Theme, widthAuto = false) => (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: locale.months,\n dayCellChooseDateAriaLabel: locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: locale.selectMonthAriaLabel,\n selectYearAriaLabel: locale.selectYearAriaLabel,\n selectChosenAriaLabel: locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <Calendar\n value={focusInput === 'start' ? startValue : endValue}\n minDate={minDate}\n maxDate={maxDate}\n renderDay={(dayProps) => renderCalendarRange(dayProps, theme, props.renderDay)}\n onValueChange={(value) => updateDateRangeValues(value)}\n ref={calendarRef}\n onMonthChange={props.onMonthChange}\n className={cx({ [styles.calendarWidthAuto()]: widthAuto })}\n />\n </LocaleContext.Provider>\n );\n\n const renderMobileCalendar = (theme: Theme) => (\n <MobilePopup\n opened\n verticalAlign={'center'}\n headerChildComponent={\n <div className={cx(styles.root(theme), styles.inputWrapperWidthFull())}>\n <DateInput\n withIcon\n value={startValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'start' })}\n disabled={startDisabled}\n onValueChange={setStartValue}\n onFocus={() => setFocusInput('start')}\n ref={mobileStartRef}\n data-tid={DateRangePickerDataTids.mobileStart}\n />\n <DateRangePicker.Separator />\n <DateInput\n withIcon\n value={endValue}\n width=\"auto\"\n size=\"medium\"\n className={cx({ [styles.inputVisuallyFocus(theme)]: focusInput === 'end' })}\n disabled={endDisabled}\n onValueChange={setEndValue}\n onFocus={() => setFocusInput('end')}\n ref={mobileEndRef}\n data-tid={DateRangePickerDataTids.mobileEnd}\n />\n </div>\n }\n onCloseRequest={() => close()}\n footerChildComponent={renderButtons()}\n >\n <ThemeContext.Provider value={getMobileDateRangePickerTheme(theme)}>\n {renderCalendar(theme, true)}\n </ThemeContext.Provider>\n </MobilePopup>\n );\n\n const getAnchorElement = () => {\n const { menuAnchorElement } = props;\n if (menuAnchorElement === 'focused') {\n return getRootNode(focusInput === 'start' ? startRef.current : endRef.current);\n }\n\n if (React.isValidElement(menuAnchorElement)) {\n return menuAnchorElement;\n }\n\n if (menuAnchorElement && typeof menuAnchorElement === 'object' && 'current' in menuAnchorElement) {\n return getRootNode(menuAnchorElement.current);\n }\n\n return getRootNode(startRef.current) || getRootNode(endRef.current) || getRootNode(dateRangePickerRef.current);\n };\n\n const renderDesktopCalendar = (theme: Theme) => (\n <Popup\n opened\n hasShadow\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(props.menuPos, props.menuAlign)}\n data-tid={DateRangePickerDataTids.root}\n anchorElement={getAnchorElement()}\n margin={parseInt(theme.datePickerMenuOffsetY)}\n >\n <div\n className={styles.calendarWrapper(theme)}\n onMouseDown={(e) => e.preventDefault()}\n onMouseMove={handleCalendarRangeMouseMove}\n >\n {renderCalendar(theme)}\n {renderButtons()}\n </div>\n </Popup>\n );\n\n const renderButtons = () => {\n const today = new InternalDate(locale)\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n const hasOptionalButtons = startOptional || endOptional;\n return (\n <div className={cx(styles.buttonWrap())}>\n {hasOptionalButtons && (\n <>\n {focusInput === 'start' && startOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.startOptionalButton}\n onClick={() => setEmpty('start')}\n >\n {locale.startDateEmpty}\n </Button>\n )}\n {focusInput === 'end' && endOptional && (\n <Button\n width=\"100%\"\n data-tid={DateRangePickerDataTids.endOptionalButton}\n onClick={() => setEmpty('end')}\n >\n {locale.endDateEmpty}\n </Button>\n )}\n </>\n )}\n\n {props.enableTodayLink && (\n <Button\n icon={<ArrowAUpIcon16Light />}\n aria-label={locale.todayAriaLabel}\n data-tid={DateRangePickerDataTids.todayButton}\n onClick={() => updateDateRangeValues(today)}\n >\n {!hasOptionalButtons && locale.today}\n </Button>\n )}\n </div>\n );\n };\n\n const renderMobileNativeDateInput = () => (\n <>\n <NativeDateInput\n value={startValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setStartValue}\n disabled={startDisabled}\n ref={mobileNativeStartRef}\n />\n <NativeDateInput\n value={endValue}\n minDate={minDate}\n maxDate={maxDate}\n onValueChange={setEndValue}\n disabled={endDisabled}\n ref={mobileNativeEndRef}\n />\n </>\n );\n\n return (\n <ThemeContext.Consumer>\n {(theme) => (\n <ThemeContext.Provider value={getDateRangePickerTheme(theme)}>\n <DateRangePickerContext.Provider value={dateRangePickerContextProps}>\n <CommonWrapper {...props}>\n <div\n className={cx(\n styles.root(theme),\n styles.inputWrapperWidth(theme),\n css`\n font-size: ${getFontSize(theme, props.size)};\n `,\n )}\n role=\"group\"\n aria-describedby={props['aria-describedby']}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n data-tid={DateRangePickerDataTids.root}\n ref={dateRangePickerRef}\n style={{ width: props.width }}\n >\n {props.children}\n\n {props.useMobileNativeDatePicker && isMobile\n ? renderMobileNativeDateInput()\n : isCalendarOpen && (isMobile ? renderMobileCalendar(theme) : renderDesktopCalendar(theme))}\n </div>\n </CommonWrapper>\n </DateRangePickerContext.Provider>\n </ThemeContext.Provider>\n )}\n </ThemeContext.Consumer>\n );\n\n // Use parent mousemove event instead each CalendarDay's mouseenter / mouseover\n function handleCalendarRangeMouseMove(e: React.MouseEvent<HTMLDivElement, MouseEvent>) {\n if (!startValue && !endValue) {\n return;\n }\n\n const hoveredElement = e.target as HTMLElement;\n if (!hoveredElement.hasAttribute(DayDateAttribute) && hoveredDay === null) {\n return;\n }\n\n const date = String(hoveredElement?.getAttribute(DayDateAttribute)) || null;\n setHoveredDay(date);\n }\n\n function renderCalendarRange(\n props: CalendarDayProps,\n t: Theme,\n renderDayFn: ((props: CalendarDayProps) => React.ReactElement<unknown>) | undefined,\n ) {\n const day = props.date;\n\n const isDayFirst = startValue === day;\n const isDayLast = endValue === day;\n const isDayInPeriod = Boolean(startValue && endValue && isBetween(day, startValue, endValue));\n\n const hasHoveredDay = hoveredDay !== null;\n const isDayInHoveredPeriod =\n hasHoveredDay &&\n Boolean(\n (focusInput === 'start' && endValue && isBetween(day, hoveredDay, endValue)) ||\n (focusInput === 'end' && startValue && isBetween(day, startValue, hoveredDay)),\n );\n\n let hasLeftRoundings;\n let hasRightRoundings;\n\n if (hasHoveredDay) {\n const isDayBeforeFirstInPeriod = startValue ? isLess(hoveredDay, startValue) : endValue;\n const isDayAfterLastInPeriod = endValue ? isGreater(hoveredDay, endValue) : startValue;\n\n if (isDayFirst && (isGreaterOrEqual(hoveredDay, startValue) || focusInput === 'end')) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast && (isLessOrEqual(hoveredDay, endValue) || focusInput === 'start')) {\n hasRightRoundings = true;\n }\n\n const isDayHovered = hoveredDay === day;\n if (isDayHovered) {\n if (isDayBeforeFirstInPeriod) {\n hasLeftRoundings = true;\n }\n\n if (isDayAfterLastInPeriod) {\n hasRightRoundings = true;\n }\n }\n } else {\n if (isDayFirst) {\n hasLeftRoundings = true;\n }\n\n if (isDayLast) {\n hasRightRoundings = true;\n }\n }\n\n const renderDayProps = {\n ...props,\n [DayDateAttribute]: props.date,\n };\n\n let dataTid = null;\n if (isDayFirst) {\n dataTid = DateRangePickerDataTids.rangeStart;\n } else if (isDayLast) {\n dataTid = DateRangePickerDataTids.rangeEnd;\n }\n\n return (\n <div\n className={cx(\n styles.rangeCalendarDay(),\n css`\n background: ${isDayInPeriod && t.rangeCalendarCellBg};\n border-top-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-bottom-left-radius: ${hasLeftRoundings && t.calendarCellBorderRadius};\n border-top-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n border-bottom-right-radius: ${hasRightRoundings && t.calendarCellBorderRadius};\n `,\n {\n [styles.rangeCalendarDayEnd(t)]: isDayFirst || isDayLast,\n [styles.rangeCalendarDayHoverInPeriod(t)]: isDayInPeriod,\n [styles.rangeCalendarDayInHoveredPeriod(t)]: isDayInHoveredPeriod,\n },\n )}\n data-tid={dataTid}\n >\n {renderDayFn ? renderDayFn(renderDayProps) : <CalendarDay {...renderDayProps} />}\n </div>\n );\n }\n }),\n);\n"]}
@@ -19,7 +19,7 @@ import { DateRangePickerDataTids } from './DateRangePicker.js';
19
19
  import { DateRangePickerContext } from './DateRangePickerContext.js';
20
20
  import { DateRangePickerLocaleHelper } from './locale/index.js';
21
21
  var DateRangePickerInput = forwardRef(function (props, ref) {
22
- var _a = useContext(DateRangePickerContext), minDate = _a.minDate, maxDate = _a.maxDate, startValue = _a.startValue, endValue = _a.endValue, size = _a.size, setStartValue = _a.setStartValue, setStartOptional = _a.setStartOptional, setStartDisabled = _a.setStartDisabled, setEndValue = _a.setEndValue, setEndOptional = _a.setEndOptional, setEndDisabled = _a.setEndDisabled, setMinDate = _a.setMinDate, setMaxDate = _a.setMaxDate, setFocusInput = _a.setFocusInput, open = _a.open, close = _a.close, startRef = _a.startRef, endRef = _a.endRef;
22
+ var _a = useContext(DateRangePickerContext), minDate = _a.minDate, maxDate = _a.maxDate, startValue = _a.startValue, endValue = _a.endValue, size = _a.size, setStartValue = _a.setStartValue, setStartOptional = _a.setStartOptional, setStartDisabled = _a.setStartDisabled, setEndValue = _a.setEndValue, setEndOptional = _a.setEndOptional, setEndDisabled = _a.setEndDisabled, setMinDate = _a.setMinDate, setMaxDate = _a.setMaxDate, setFocusInput = _a.setFocusInput, open = _a.open, close = _a.close, dateRangePickerRef = _a.dateRangePickerRef, startRef = _a.startRef, endRef = _a.endRef;
23
23
  var isStart = props.type === 'start';
24
24
  var isEnd = props.type === 'end';
25
25
  var locale = useLocaleForControl('DateRangePicker', DateRangePickerLocaleHelper);
@@ -76,18 +76,16 @@ var DateRangePickerInput = forwardRef(function (props, ref) {
76
76
  open(props.type);
77
77
  (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, e);
78
78
  }, onBlur: function (e) {
79
- var _a, _b, _c, _d, _e;
79
+ var _a, _b;
80
80
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
81
81
  if (isMobile) {
82
82
  return;
83
83
  }
84
84
  var nextFocusedElement = e.relatedTarget;
85
- var isFocusStart = (_c = (_b = startRef.current) === null || _b === void 0 ? void 0 : _b.getRootNode()) === null || _c === void 0 ? void 0 : _c.contains(nextFocusedElement);
86
- var isFocusEnd = (_e = (_d = endRef.current) === null || _d === void 0 ? void 0 : _d.getRootNode()) === null || _e === void 0 ? void 0 : _e.contains(nextFocusedElement);
87
- if (!isFocusStart && !isFocusEnd) {
85
+ if (!((_b = dateRangePickerRef.current) === null || _b === void 0 ? void 0 : _b.contains(nextFocusedElement))) {
88
86
  close();
89
- setFocusInput(null);
90
87
  }
88
+ setFocusInput(null);
91
89
  } });
92
90
  switch (props.type) {
93
91
  case 'start':