@skbkontur/react-ui 6.0.7-eab55.0 → 6.0.8

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 (283) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/components/Autocomplete/Autocomplete.js +4 -15
  3. package/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/components/Calendar/Calendar.d.ts +14 -14
  5. package/components/Calendar/Calendar.js +2 -2
  6. package/components/Calendar/Calendar.js.map +1 -1
  7. package/components/Calendar/CalendarDay.d.ts +2 -2
  8. package/components/Calendar/CalendarDay.js +1 -4
  9. package/components/Calendar/CalendarDay.js.map +1 -1
  10. package/components/Calendar/DayCellView.styles.d.ts +0 -1
  11. package/components/Calendar/DayCellView.styles.js +3 -6
  12. package/components/Calendar/DayCellView.styles.js.map +1 -1
  13. package/components/Center/Center.d.ts +3 -3
  14. package/components/Center/Center.js +2 -2
  15. package/components/Center/Center.js.map +1 -1
  16. package/components/Checkbox/Checkbox.d.ts +11 -14
  17. package/components/Checkbox/Checkbox.js +3 -6
  18. package/components/Checkbox/Checkbox.js.map +1 -1
  19. package/components/ComboBox/ComboBox.d.ts +3 -3
  20. package/components/ComboBox/ComboBox.js.map +1 -1
  21. package/components/DateInput/DateInput.d.ts +15 -15
  22. package/components/DateInput/DateInput.js +1 -1
  23. package/components/DateInput/DateInput.js.map +1 -1
  24. package/components/DatePicker/DatePicker.d.ts +14 -16
  25. package/components/DatePicker/DatePicker.js +4 -5
  26. package/components/DatePicker/DatePicker.js.map +1 -1
  27. package/components/DatePicker/MobilePicker.js +1 -1
  28. package/components/DatePicker/MobilePicker.js.map +1 -1
  29. package/components/DateRangePicker/DateRangePicker.d.ts +4 -3
  30. package/components/DateRangePicker/DateRangePicker.js +6 -4
  31. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  32. package/components/DateRangePicker/DateRangePickerInput.js +9 -6
  33. package/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
  34. package/components/Dropdown/Dropdown.d.ts +8 -15
  35. package/components/Dropdown/Dropdown.js +1 -8
  36. package/components/Dropdown/Dropdown.js.map +1 -1
  37. package/components/DropdownMenu/DropdownMenu.d.ts +2 -1
  38. package/components/DropdownMenu/DropdownMenu.js +2 -1
  39. package/components/DropdownMenu/DropdownMenu.js.map +1 -1
  40. package/components/FileUploader/FileUploader.d.ts +4 -6
  41. package/components/FileUploader/FileUploader.js +1 -3
  42. package/components/FileUploader/FileUploader.js.map +1 -1
  43. package/components/FileUploader/FileUploaderFile.d.ts +3 -3
  44. package/components/FileUploader/FileUploaderFile.js +1 -1
  45. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  46. package/components/Hint/Hint.js +10 -3
  47. package/components/Hint/Hint.js.map +1 -1
  48. package/components/Input/Input.d.ts +2 -2
  49. package/components/Input/Input.js.map +1 -1
  50. package/components/Loader/Loader.d.ts +4 -12
  51. package/components/Loader/Loader.js +7 -18
  52. package/components/Loader/Loader.js.map +1 -1
  53. package/components/MenuFooter/MenuFooter.d.ts +1 -1
  54. package/components/MenuFooter/MenuFooter.js +1 -1
  55. package/components/MenuFooter/MenuFooter.js.map +1 -1
  56. package/components/MenuHeader/MenuHeader.d.ts +2 -2
  57. package/components/MenuHeader/MenuHeader.js +1 -1
  58. package/components/MenuHeader/MenuHeader.js.map +1 -1
  59. package/components/MenuItem/MenuItem.d.ts +1 -1
  60. package/components/MenuItem/MenuItem.js +16 -24
  61. package/components/MenuItem/MenuItem.js.map +1 -1
  62. package/components/MenuItem/MenuItem.styles.d.ts +0 -3
  63. package/components/MenuItem/MenuItem.styles.js +16 -25
  64. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  65. package/components/MenuSeparator/MenuSeparator.d.ts +1 -1
  66. package/components/MenuSeparator/MenuSeparator.js +1 -1
  67. package/components/MenuSeparator/MenuSeparator.js.map +1 -1
  68. package/components/MiniModal/MiniModal.d.ts +1 -1
  69. package/components/MiniModal/MiniModal.js +1 -1
  70. package/components/MiniModal/MiniModal.js.map +1 -1
  71. package/components/MiniModal/MiniModalBody.d.ts +1 -1
  72. package/components/MiniModal/MiniModalBody.js +1 -1
  73. package/components/MiniModal/MiniModalBody.js.map +1 -1
  74. package/components/MiniModal/MiniModalFooter.d.ts +1 -1
  75. package/components/MiniModal/MiniModalFooter.js +1 -1
  76. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  77. package/components/MiniModal/MiniModalHeader.d.ts +1 -1
  78. package/components/MiniModal/MiniModalHeader.js +1 -1
  79. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  80. package/components/Paging/Paging.d.ts +2 -2
  81. package/components/Paging/Paging.js.map +1 -1
  82. package/components/Radio/Radio.d.ts +7 -7
  83. package/components/Radio/Radio.js.map +1 -1
  84. package/components/RadioGroup/RadioGroup.d.ts +2 -2
  85. package/components/RadioGroup/RadioGroup.js.map +1 -1
  86. package/components/Select/Select.d.ts +4 -4
  87. package/components/Select/Select.js +1 -11
  88. package/components/Select/Select.js.map +1 -1
  89. package/components/SingleToast/SingleToast.d.ts +7 -10
  90. package/components/SingleToast/SingleToast.js +7 -10
  91. package/components/SingleToast/SingleToast.js.map +1 -1
  92. package/components/Spinner/Spinner.d.ts +33 -23
  93. package/components/Spinner/Spinner.js +19 -23
  94. package/components/Spinner/Spinner.js.map +1 -1
  95. package/components/Spinner/Spinner.styles.d.ts +3 -0
  96. package/components/Spinner/Spinner.styles.js +15 -6
  97. package/components/Spinner/Spinner.styles.js.map +1 -1
  98. package/components/Sticky/Sticky.d.ts +0 -4
  99. package/components/Sticky/Sticky.js +0 -4
  100. package/components/Sticky/Sticky.js.map +1 -1
  101. package/components/Switcher/Switcher.d.ts +8 -10
  102. package/components/Switcher/Switcher.js +1 -3
  103. package/components/Switcher/Switcher.js.map +1 -1
  104. package/components/Textarea/Textarea.js +1 -1
  105. package/components/Textarea/Textarea.js.map +1 -1
  106. package/components/Textarea/Textarea.styles.d.ts +0 -1
  107. package/components/Textarea/Textarea.styles.js +4 -7
  108. package/components/Textarea/Textarea.styles.js.map +1 -1
  109. package/components/Textarea/TextareaCounter.d.ts +0 -2
  110. package/components/Textarea/TextareaCounter.js +4 -22
  111. package/components/Textarea/TextareaCounter.js.map +1 -1
  112. package/components/Toast/Toast.d.ts +14 -13
  113. package/components/Toast/Toast.js +3 -3
  114. package/components/Toast/Toast.js.map +1 -1
  115. package/components/Toast/ToastView.d.ts +5 -8
  116. package/components/Toast/ToastView.js +8 -28
  117. package/components/Toast/ToastView.js.map +1 -1
  118. package/components/Toast/ToastView.styles.d.ts +0 -7
  119. package/components/Toast/ToastView.styles.js +8 -30
  120. package/components/Toast/ToastView.styles.js.map +1 -1
  121. package/components/Tooltip/Tooltip.d.ts +4 -4
  122. package/components/Tooltip/Tooltip.js.map +1 -1
  123. package/index.d.ts +0 -1
  124. package/index.js +0 -1
  125. package/index.js.map +1 -1
  126. package/internal/CloseButtonIcon/CloseButtonIcon.js +1 -1
  127. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  128. package/internal/CommonWrapper/CommonWrapper.js +0 -5
  129. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  130. package/internal/CustomComboBox/ComboBoxMenu.js +1 -1
  131. package/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  132. package/internal/CustomComboBox/ComboBoxView.js +2 -13
  133. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  134. package/internal/Menu/Menu.js +0 -3
  135. package/internal/Menu/Menu.js.map +1 -1
  136. package/internal/Menu/Menu.styles.d.ts +0 -1
  137. package/internal/Menu/Menu.styles.js +10 -13
  138. package/internal/Menu/Menu.styles.js.map +1 -1
  139. package/internal/MenuMessage/MenuMessage.js +1 -17
  140. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  141. package/internal/MenuMessage/MenuMessage.styles.d.ts +0 -3
  142. package/internal/MenuMessage/MenuMessage.styles.js +4 -13
  143. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
  144. package/internal/MobilePopup/MobilePopup.d.ts +0 -8
  145. package/internal/MobilePopup/MobilePopup.js +11 -34
  146. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  147. package/internal/MobilePopup/MobilePopup.styles.d.ts +0 -7
  148. package/internal/MobilePopup/MobilePopup.styles.js +10 -34
  149. package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  150. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +1 -8
  151. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +1 -18
  152. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  153. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +0 -3
  154. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +4 -14
  155. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
  156. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +0 -4
  157. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +11 -48
  158. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  159. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +0 -6
  160. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +8 -28
  161. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  162. package/internal/Popup/Popup.d.ts +4 -6
  163. package/internal/Popup/Popup.js +13 -38
  164. package/internal/Popup/Popup.js.map +1 -1
  165. package/internal/Popup/PopupHelper.d.ts +4 -0
  166. package/internal/Popup/PopupHelper.js +31 -0
  167. package/internal/Popup/PopupHelper.js.map +1 -1
  168. package/internal/PopupMenu/PopupMenu.d.ts +2 -1
  169. package/internal/PopupMenu/PopupMenu.js +21 -18
  170. package/internal/PopupMenu/PopupMenu.js.map +1 -1
  171. package/internal/SpinnerIcon/SpinnerIcon.d.ts +3 -3
  172. package/internal/SpinnerIcon/SpinnerIcon.js +4 -4
  173. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  174. package/internal/icons2022/LoadingIcon.js +1 -1
  175. package/internal/icons2022/LoadingIcon.js.map +1 -1
  176. package/internal/themes/BasicTheme.d.ts +4 -51
  177. package/internal/themes/BasicTheme.js +6 -173
  178. package/internal/themes/BasicTheme.js.map +1 -1
  179. package/lib/getMenuPositions.js +11 -11
  180. package/lib/getMenuPositions.js.map +1 -1
  181. package/lib/theming/themes/DarkTheme.d.ts +0 -1
  182. package/lib/theming/themes/DarkTheme.js +1 -3
  183. package/lib/theming/themes/DarkTheme.js.map +1 -1
  184. package/lib/theming/themes/LightTheme.d.ts +0 -1
  185. package/lib/theming/themes/LightTheme.js +1 -3
  186. package/lib/theming/themes/LightTheme.js.map +1 -1
  187. package/package.json +1 -5
  188. package/components/TimePicker/TimeClockIcon.d.ts +0 -3
  189. package/components/TimePicker/TimeClockIcon.js +0 -11
  190. package/components/TimePicker/TimeClockIcon.js.map +0 -1
  191. package/components/TimePicker/TimeFragmentsView.d.ts +0 -15
  192. package/components/TimePicker/TimeFragmentsView.js +0 -72
  193. package/components/TimePicker/TimeFragmentsView.js.map +0 -1
  194. package/components/TimePicker/TimeFragmentsView.styles.d.ts +0 -12
  195. package/components/TimePicker/TimeFragmentsView.styles.js +0 -43
  196. package/components/TimePicker/TimeFragmentsView.styles.js.map +0 -1
  197. package/components/TimePicker/TimeInput.d.ts +0 -21
  198. package/components/TimePicker/TimeInput.js +0 -98
  199. package/components/TimePicker/TimeInput.js.map +0 -1
  200. package/components/TimePicker/TimePicker.d.ts +0 -59
  201. package/components/TimePicker/TimePicker.js +0 -478
  202. package/components/TimePicker/TimePicker.js.map +0 -1
  203. package/components/TimePicker/TimePicker.styles.d.ts +0 -11
  204. package/components/TimePicker/TimePicker.styles.js +0 -36
  205. package/components/TimePicker/TimePicker.styles.js.map +0 -1
  206. package/components/TimePicker/TimePickerMobilePopup.d.ts +0 -31
  207. package/components/TimePicker/TimePickerMobilePopup.js +0 -21
  208. package/components/TimePicker/TimePickerMobilePopup.js.map +0 -1
  209. package/components/TimePicker/TimePickerPopup.d.ts +0 -19
  210. package/components/TimePicker/TimePickerPopup.js +0 -18
  211. package/components/TimePicker/TimePickerPopup.js.map +0 -1
  212. package/components/TimePicker/TimePickerSlots.d.ts +0 -16
  213. package/components/TimePicker/TimePickerSlots.js +0 -67
  214. package/components/TimePicker/TimePickerSlots.js.map +0 -1
  215. package/components/TimePicker/helpers/TimePicker.constants.d.ts +0 -18
  216. package/components/TimePicker/helpers/TimePicker.constants.js +0 -41
  217. package/components/TimePicker/helpers/TimePicker.constants.js.map +0 -1
  218. package/components/TimePicker/helpers/TimePicker.editing.d.ts +0 -6
  219. package/components/TimePicker/helpers/TimePicker.editing.js +0 -86
  220. package/components/TimePicker/helpers/TimePicker.editing.js.map +0 -1
  221. package/components/TimePicker/helpers/TimePicker.layout.d.ts +0 -7
  222. package/components/TimePicker/helpers/TimePicker.layout.js +0 -17
  223. package/components/TimePicker/helpers/TimePicker.layout.js.map +0 -1
  224. package/components/TimePicker/helpers/TimePicker.selection.d.ts +0 -7
  225. package/components/TimePicker/helpers/TimePicker.selection.js +0 -51
  226. package/components/TimePicker/helpers/TimePicker.selection.js.map +0 -1
  227. package/components/TimePicker/helpers/TimePicker.shared.d.ts +0 -23
  228. package/components/TimePicker/helpers/TimePicker.shared.js +0 -50
  229. package/components/TimePicker/helpers/TimePicker.shared.js.map +0 -1
  230. package/components/TimePicker/helpers/TimePicker.value.d.ts +0 -8
  231. package/components/TimePicker/helpers/TimePicker.value.js +0 -61
  232. package/components/TimePicker/helpers/TimePicker.value.js.map +0 -1
  233. package/components/TimePicker/helpers/scrollSelectedSlotIntoView.d.ts +0 -1
  234. package/components/TimePicker/helpers/scrollSelectedSlotIntoView.js +0 -21
  235. package/components/TimePicker/helpers/scrollSelectedSlotIntoView.js.map +0 -1
  236. package/components/TimePicker/hooks/useTimePickerDropdown.d.ts +0 -17
  237. package/components/TimePicker/hooks/useTimePickerDropdown.js +0 -62
  238. package/components/TimePicker/hooks/useTimePickerDropdown.js.map +0 -1
  239. package/components/TimePicker/hooks/useTimePickerSelection.d.ts +0 -15
  240. package/components/TimePicker/hooks/useTimePickerSelection.js +0 -43
  241. package/components/TimePicker/hooks/useTimePickerSelection.js.map +0 -1
  242. package/components/TimePicker/hooks/useTimePickerValue.d.ts +0 -18
  243. package/components/TimePicker/hooks/useTimePickerValue.js +0 -48
  244. package/components/TimePicker/hooks/useTimePickerValue.js.map +0 -1
  245. package/components/TimePicker/index.d.ts +0 -2
  246. package/components/TimePicker/index.js +0 -2
  247. package/components/TimePicker/index.js.map +0 -1
  248. package/internal/NativeTimeInput/NativeTimeInput.d.ts +0 -16
  249. package/internal/NativeTimeInput/NativeTimeInput.js +0 -25
  250. package/internal/NativeTimeInput/NativeTimeInput.js.map +0 -1
  251. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +0 -3
  252. package/internal/NativeTimeInput/NativeTimeInput.styles.js +0 -15
  253. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +0 -1
  254. package/internal/NativeTimeInput/index.d.ts +0 -1
  255. package/internal/NativeTimeInput/index.js +0 -2
  256. package/internal/NativeTimeInput/index.js.map +0 -1
  257. package/internal/NativeTimeInput/utils.d.ts +0 -7
  258. package/internal/NativeTimeInput/utils.js +0 -28
  259. package/internal/NativeTimeInput/utils.js.map +0 -1
  260. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.d.ts +0 -2
  261. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js +0 -21
  262. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js.map +0 -1
  263. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.d.ts +0 -2
  264. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js +0 -21
  265. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js.map +0 -1
  266. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.d.ts +0 -2
  267. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js +0 -21
  268. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js.map +0 -1
  269. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.d.ts +0 -2
  270. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js +0 -20
  271. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js.map +0 -1
  272. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.d.ts +0 -2
  273. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js +0 -20
  274. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js.map +0 -1
  275. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.d.ts +0 -2
  276. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js +0 -20
  277. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js.map +0 -1
  278. package/internal/themes/DarkTheme6_1.d.ts +0 -1
  279. package/internal/themes/DarkTheme6_1.js +0 -164
  280. package/internal/themes/DarkTheme6_1.js.map +0 -1
  281. package/internal/themes/LightTheme6_1.d.ts +0 -1
  282. package/internal/themes/LightTheme6_1.js +0 -164
  283. package/internal/themes/LightTheme6_1.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DateInput.js","sourceRoot":"","sources":["../../../components/DateInput/DateInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport { InputLikeText } from '../../internal/InputLikeText/index.js';\nimport { ConditionalHandler } from '../../lib/ConditionalHandler.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants.js';\nimport { InternalDateComponentType } from '../../lib/date/types.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { REACT_MAJOR_VERSION } from '../../lib/react-is.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { DatePickerLocale } from '../DatePicker/locale/index.js';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale/index.js';\nimport { CalendarIcon } from './CalendarIcon.js';\nimport { DateFragmentsView } from './DateFragmentsView.js';\nimport { getStyles } from './DateInput.styles.js';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions.js';\nimport { InternalDateMediator } from './helpers/InternalDateMediator.js';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n root: 'DateInput__root',\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Устанавливает значение датаинпута. */\n value?: string;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy` */\n maxDate?: string;\n\n /** Задает ширину поля. */\n width?: string | number;\n\n /** Добавляет иконку календаря. */\n withIcon?: boolean;\n\n /** Задает размер поля. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается при потере датаинпутом фокуса. */\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при клике на датаинпут. */\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при получении датаинпутом фокуса. */\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при изменении value.\n * @param value - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (value: string) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'width'>>;\n\n/**\n * Компонент поля `DateInput` из DatePicker'а помогает выбирать дату с клавиатуры.\n */\n@withRenderEnvironment\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\n@withSize\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n public static displayName = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n width: 125,\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps(false);\n }\n !this.props.disabled && this.selectNode();\n }\n\n public selectNode = (): void => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps(false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur(): void {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus(): void {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink(): void {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\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 return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <InputLikeText\n data-tid={DateInputDataTids.root}\n id={this.props.id}\n width={width}\n ref={this.inputLikeTextRef}\n size={this.size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n aria-describedby={this.props['aria-describedby']}\n aria-label={this.props['aria-label']}\n aria-labelledby={this.props['aria-labelledby']}\n >\n <span className={this.cx(this.styles.value(), { [this.styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </FocusControlWrapper>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = <CalendarIcon size={size} />;\n const iconStyles = this.cx({\n [this.styles.icon(theme)]: true,\n [this.styles.iconSmall(theme)]: size === 'small',\n [this.styles.iconMedium(theme)]: size === 'medium',\n [this.styles.iconLarge(theme)]: size === 'large',\n [this.styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => this.updateValue({ focused: false, selected: null, inputMode: false }, false);\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.resetFocus();\n\n if (this.props.onBlur) {\n const restored = this.iDateMediator.restore();\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = this.globalObject.getSelection?.();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}, sync = true): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n const update = () => this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n\n if (sync && REACT_MAJOR_VERSION >= 18) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n };\n\n private updateFromProps = (sync: boolean): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue({}, sync);\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n if (this.props.onValueChange) {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value !== value) {\n this.props.onValueChange(value);\n }\n }\n\n // `this.blurEvent` is always null in `flushSync` without `setTimeout` due to sync update\n setTimeout(() => {\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n });\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n\n const { inputMode } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
1
+ {"version":3,"file":"DateInput.js","sourceRoot":"","sources":["../../../components/DateInput/DateInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport { InputLikeText } from '../../internal/InputLikeText/index.js';\nimport { ConditionalHandler } from '../../lib/ConditionalHandler.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants.js';\nimport { InternalDateComponentType } from '../../lib/date/types.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { REACT_MAJOR_VERSION } from '../../lib/react-is.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { DatePickerLocale } from '../DatePicker/locale/index.js';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale/index.js';\nimport { CalendarIcon } from './CalendarIcon.js';\nimport { DateFragmentsView } from './DateFragmentsView.js';\nimport { getStyles } from './DateInput.styles.js';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions.js';\nimport { InternalDateMediator } from './helpers/InternalDateMediator.js';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n root: 'DateInput__root',\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label' | 'aria-labelledby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Устанавливает фокус на поле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Значение поля. */\n value?: string;\n\n /** Меняет визуальное отображение поля на состояние ошибки. */\n error?: boolean;\n\n /** Меняет визуальное отображение поля на состояние предупреждения. */\n warning?: boolean;\n\n /** Блокирует поле. */\n disabled?: boolean;\n\n /** Минимальная дата в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Максимальная дата в формате `dd.mm.yyyy`. */\n maxDate?: string;\n\n /** Ширина поля. */\n width?: string | number;\n\n /** Добавляет иконку календаря. */\n withIcon?: boolean;\n\n /** Размер поля. */\n size?: SizeProp;\n\n /** Событие потери полем фокуса. */\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Событие нажатия на поле. */\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n\n /** Событие получения полем фокуса. */\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n\n /** Событие изменения value.\n * @param value - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (value: string) => void;\n\n /** Событие нажатия кнопки на клавиатуре. */\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'width'>>;\n\n/**\n * Поле ввода для выбора даты с клавиатуры. Используется в [поле с датой](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_date-components-datepicker--docs).\n */\n@withRenderEnvironment\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\n@withSize\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n public static displayName = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n width: 125,\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps(false);\n }\n !this.props.disabled && this.selectNode();\n }\n\n public selectNode = (): void => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps(false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur(): void {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus(): void {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink(): void {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\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 return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <InputLikeText\n data-tid={DateInputDataTids.root}\n id={this.props.id}\n width={width}\n ref={this.inputLikeTextRef}\n size={this.size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n aria-describedby={this.props['aria-describedby']}\n aria-label={this.props['aria-label']}\n aria-labelledby={this.props['aria-labelledby']}\n >\n <span className={this.cx(this.styles.value(), { [this.styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </FocusControlWrapper>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = <CalendarIcon size={size} />;\n const iconStyles = this.cx({\n [this.styles.icon(theme)]: true,\n [this.styles.iconSmall(theme)]: size === 'small',\n [this.styles.iconMedium(theme)]: size === 'medium',\n [this.styles.iconLarge(theme)]: size === 'large',\n [this.styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => this.updateValue({ focused: false, selected: null, inputMode: false }, false);\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.resetFocus();\n\n if (this.props.onBlur) {\n const restored = this.iDateMediator.restore();\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = this.globalObject.getSelection?.();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}, sync = true): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n const update = () => this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n\n if (sync && REACT_MAJOR_VERSION >= 18) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n };\n\n private updateFromProps = (sync: boolean): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue({}, sync);\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n if (this.props.onValueChange) {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value !== value) {\n this.props.onValueChange(value);\n }\n }\n\n // `this.blurEvent` is always null in `flushSync` without `setTimeout` due to sync update\n setTimeout(() => {\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n });\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n\n const { inputMode } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
@@ -7,28 +7,27 @@ 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
- /** Задает nекущую позицию выпадающего окна вручную. */
18
+ /** Расположение календаря над или под полем. */
19
19
  menuPos?: 'top' | 'bottom';
20
- /** Задает выравнивание меню. */
20
+ /** Выравнивание выпадающего окна с календарём. */
21
21
  menuAlign?: 'left' | 'right';
22
- /** Задает размер контрола. */
22
+ /** Размер поля с датой. */
23
23
  size?: SizeProp;
24
24
  /**
25
- * Строка формата `dd.mm.yyyy`
26
- * Задает значение автокомплита.
25
+ * Значение поля в формате `dd.mm.yyyy`.
27
26
  */
28
27
  value?: string | null;
29
- /** Переводит контрол в состояние валидации "предупреждение". */
28
+ /** Меняет визуальное отображение поля на состояние «предупреждение». */
30
29
  warning?: boolean;
31
- /** Задает ширину автокомплита. */
30
+ /** Ширина поля с датой. */
32
31
  width?: number | string;
33
32
  /** Задает функцию, которая вызывается при потере датапикером фокуса. */
34
33
  onBlur?: () => void;
@@ -63,11 +62,8 @@ export declare const DatePickerDataTids: {
63
62
  };
64
63
  type DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;
65
64
  /**
66
- * Поле `DatePicker` помогает вводить дату с клавиатуры или выбирать ее с помощью мыши.
65
+ * Поле с датой помогает вводить дату с клавиатуры или выбирать её с помощью мыши.
67
66
  *
68
- * Используйте поле с датой, когда нужно ввести дату в формате ДД.ММ.ГГГГ.
69
- *
70
- * Поле с датой отличается от обычного поля ввода наличием иконки, маски и блока календаря.
71
67
  */
72
68
  export declare class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {
73
69
  static __KONTUR_REACT_UI__: string;
@@ -92,17 +88,19 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
92
88
  componentDidMount(): void;
93
89
  componentDidUpdate(prevProps: DatePickerProps, prevState: DatePickerState): void;
94
90
  /**
91
+ * Программно снимает фокус с поля.
95
92
  * @public
96
93
  */
97
94
  blur(): void;
98
95
  /**
96
+ * Программно устанавливает фокус на поле.
99
97
  * @public
100
98
  */
101
99
  focus(opts?: {
102
100
  withoutOpenDropdown?: boolean;
103
101
  }): void;
104
102
  /**
105
- * Закрывает выпадашку выбора дня
103
+ * Закрывает раскрывающийся блок календаря с выбором дня.
106
104
  * @public
107
105
  */
108
106
  close(): void;
@@ -76,11 +76,8 @@ export var DatePickerDataTids = {
76
76
  pickerTodayWrapper: 'Picker__todayWrapper',
77
77
  };
78
78
  /**
79
- * Поле `DatePicker` помогает вводить дату с клавиатуры или выбирать ее с помощью мыши.
79
+ * Поле с датой помогает вводить дату с клавиатуры или выбирать её с помощью мыши.
80
80
  *
81
- * Используйте поле с датой, когда нужно ввести дату в формате ДД.ММ.ГГГГ.
82
- *
83
- * Поле с датой отличается от обычного поля ввода наличием иконки, маски и блока календаря.
84
81
  */
85
82
  var DatePicker = /** @class */ (function (_super) {
86
83
  __extends(DatePicker, _super);
@@ -207,6 +204,7 @@ var DatePicker = /** @class */ (function (_super) {
207
204
  }
208
205
  };
209
206
  /**
207
+ * Программно снимает фокус с поля.
210
208
  * @public
211
209
  */
212
210
  DatePicker.prototype.blur = function () {
@@ -216,6 +214,7 @@ var DatePicker = /** @class */ (function (_super) {
216
214
  this.handleBlur();
217
215
  };
218
216
  /**
217
+ * Программно устанавливает фокус на поле.
219
218
  * @public
220
219
  */
221
220
  DatePicker.prototype.focus = function (opts) {
@@ -230,7 +229,7 @@ var DatePicker = /** @class */ (function (_super) {
230
229
  }
231
230
  };
232
231
  /**
233
- * Закрывает выпадашку выбора дня
232
+ * Закрывает раскрывающийся блок календаря с выбором дня.
234
233
  * @public
235
234
  */
236
235
  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екущую позицию выпадающего окна вручную. */\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"]}
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"]}
@@ -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, 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 },
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 },
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 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"]}
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"]}
@@ -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,6 +40,7 @@ export interface DateRangePickerRef extends InstanceWithRootNode {
40
40
  scrollToMonth: (month: number, year: number) => void;
41
41
  }
42
42
  export type DateRangePicker = DateRangePickerRef;
43
+ /** Поле выбора периода дат. */
43
44
  export declare const DateRangePicker: {
44
45
  Start: import("../../lib/forwardRefAndName.js").ReactUIComponentWithRef<DateInput, {
45
46
  style?: React.CSSProperties | undefined;
@@ -58,6 +58,7 @@ export var DateRangePickerDataTids = {
58
58
  rangeEnd: 'DateRangePicker__rangeEnd',
59
59
  };
60
60
  var DayDateAttribute = 'data-date-range-picker-day';
61
+ /** Поле выбора периода дат. */
61
62
  export var DateRangePicker = Object.assign({
62
63
  Start: DateRangePickerStart,
63
64
  End: DateRangePickerEnd,
@@ -145,7 +146,7 @@ export var DateRangePicker = Object.assign({
145
146
  return;
146
147
  }
147
148
  // fix DateInput flushSync warning in React 18
148
- setTimeout(function () {
149
+ var timeoutId = setTimeout(function () {
149
150
  var _a, _b, _c, _d;
150
151
  var isStart = focusInput === 'start';
151
152
  var currentFieldRef;
@@ -171,7 +172,8 @@ export var DateRangePicker = Object.assign({
171
172
  currentFieldRef = isStart ? startRef : endRef;
172
173
  (_d = currentFieldRef.current) === null || _d === void 0 ? void 0 : _d.focus();
173
174
  });
174
- }, [focusInput]);
175
+ return function () { return clearTimeout(timeoutId); };
176
+ }, [focusInput, isMobile, props.useMobileNativeDatePicker]);
175
177
  var dateRangePickerContextProps = {
176
178
  startValue: startValue,
177
179
  startOptional: startOptional,
@@ -215,7 +217,7 @@ export var DateRangePicker = Object.assign({
215
217
  };
216
218
  var renderMobileCalendar = function (theme) {
217
219
  var _a, _b;
218
- return (React.createElement(MobilePopup, { opened: true, verticalAlign: 'center', headerChildComponent: React.createElement("div", { className: cx(styles.root(theme), styles.inputWrapperWidthFull()) },
220
+ return (React.createElement(MobilePopup, { opened: true, headerChildComponent: React.createElement("div", { className: cx(styles.root(theme), styles.inputWrapperWidthFull()) },
219
221
  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 }),
220
222
  React.createElement(DateRangePicker.Separator, null),
221
223
  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() },
@@ -234,7 +236,7 @@ export var DateRangePicker = Object.assign({
234
236
  }
235
237
  return getRootNode(startRef.current) || getRootNode(endRef.current) || getRootNode(dateRangePickerRef.current);
236
238
  };
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) },
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) },
238
240
  React.createElement("div", { className: styles.calendarWrapper(theme), onMouseDown: function (e) { return e.preventDefault(); }, onMouseMove: handleCalendarRangeMouseMove },
239
241
  renderCalendar(theme),
240
242
  renderButtons()))); };