@salutejs/plasma-new-hope 0.162.3-canary.1448.11254553277.0 → 0.163.0-canary.1475.11258202491.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (487) hide show
  1. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +1 -0
  2. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js.map +1 -1
  3. package/cjs/components/Attach/Attach.js +4 -3
  4. package/cjs/components/Attach/Attach.js.map +1 -1
  5. package/cjs/components/Attach/components/AttachButton/AttachButton.js +1 -0
  6. package/cjs/components/Attach/components/AttachButton/AttachButton.js.map +1 -1
  7. package/cjs/components/Attach/ui/Button/Button.styles.js +1 -0
  8. package/cjs/components/Attach/ui/Button/Button.styles.js.map +1 -1
  9. package/cjs/components/Attach/ui/Cell/Cell.styles.js +2 -0
  10. package/cjs/components/Attach/ui/Cell/Cell.styles.js.map +1 -1
  11. package/cjs/components/Attach/ui/IconButton/IconButton.styles.js +1 -0
  12. package/cjs/components/Attach/ui/IconButton/IconButton.styles.js.map +1 -1
  13. package/cjs/components/Attach/utils/getFileicon.js +4 -3
  14. package/cjs/components/Attach/utils/getFileicon.js.map +1 -1
  15. package/cjs/components/Attach/utils/index.js +3 -0
  16. package/cjs/components/Attach/utils/index.js.map +1 -1
  17. package/cjs/components/Autocomplete/Autocomplete.js +6 -5
  18. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  19. package/cjs/components/Autocomplete/Autocomplete.styles.js +3 -2
  20. package/cjs/components/Autocomplete/Autocomplete.styles.js.map +1 -1
  21. package/cjs/components/Autocomplete/ui/TextField/TextField.styles.js +2 -1
  22. package/cjs/components/Autocomplete/ui/TextField/TextField.styles.js.map +1 -1
  23. package/cjs/components/Avatar/Avatar.js +3 -2
  24. package/cjs/components/Avatar/Avatar.js.map +1 -1
  25. package/cjs/components/Breadcrumbs/Breadcrumbs.styles.js +4 -2
  26. package/cjs/components/Breadcrumbs/Breadcrumbs.styles.js.map +1 -1
  27. package/cjs/components/Button/Button.styles.js +3 -0
  28. package/cjs/components/Button/Button.styles.js.map +1 -1
  29. package/cjs/components/Calendar/CalendarBase/CalendarBase.js +5 -5
  30. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +8 -8
  31. package/cjs/components/Calendar/hooks/useDays.js +2 -2
  32. package/cjs/components/Calendar/hooks/useKeyNavigation.js +1 -1
  33. package/cjs/components/Calendar/hooks/useMonths.js +2 -2
  34. package/cjs/components/Calendar/hooks/useQuarters.js +2 -2
  35. package/cjs/components/Calendar/hooks/useYears.js +2 -2
  36. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +4 -4
  37. package/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.js +6 -5
  38. package/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.js.map +1 -1
  39. package/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js +1 -0
  40. package/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js.map +1 -1
  41. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +4 -4
  42. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +4 -4
  43. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +4 -4
  44. package/cjs/components/Combobox/ComboboxNew/Combobox.js +12 -11
  45. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  46. package/cjs/components/Combobox/ComboboxNew/Combobox.styles.js +4 -2
  47. package/cjs/components/Combobox/ComboboxNew/Combobox.styles.js.map +1 -1
  48. package/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js +2 -0
  49. package/cjs/components/Combobox/ComboboxNew/hooks/getPathMaps.js.map +1 -1
  50. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -1
  51. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  52. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +6 -5
  53. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
  54. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.styles.js +3 -1
  55. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.styles.js.map +1 -1
  56. package/cjs/components/Combobox/ComboboxNew/ui/Target/Target.styles.js +2 -1
  57. package/cjs/components/Combobox/ComboboxNew/ui/Target/Target.styles.js.map +1 -1
  58. package/cjs/components/Combobox/ComboboxOld/Combobox.js +10 -4
  59. package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  60. package/cjs/components/Combobox/ComboboxOld/Combobox.styles.js +1 -0
  61. package/cjs/components/Combobox/ComboboxOld/Combobox.styles.js.map +1 -1
  62. package/cjs/components/Combobox/ComboboxOld/hooks/useFocusController.js +1 -0
  63. package/cjs/components/Combobox/ComboboxOld/hooks/useFocusController.js.map +1 -1
  64. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxChip/ComboboxChip.styles.js +2 -1
  65. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxChip/ComboboxChip.styles.js.map +1 -1
  66. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.js +10 -1
  67. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.js.map +1 -1
  68. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.js +10 -1
  69. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.js.map +1 -1
  70. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.js +10 -1
  71. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.js.map +1 -1
  72. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.js +10 -1
  73. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.js.map +1 -1
  74. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.styles.js +2 -0
  75. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.styles.js.map +1 -1
  76. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxTarget/ComboboxTarget.js +1 -1
  77. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxTarget/ComboboxTarget.styles.js +2 -1
  78. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxTarget/ComboboxTarget.styles.js.map +1 -1
  79. package/cjs/components/DatePicker/DatePickerBase.styles.js +7 -1
  80. package/cjs/components/DatePicker/DatePickerBase.styles.js.map +1 -1
  81. package/cjs/components/DatePicker/RangeDate/RangeDate.js +62 -11
  82. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  83. package/cjs/components/DatePicker/RangeDate/RangeDate.styles.js +1 -0
  84. package/cjs/components/DatePicker/RangeDate/RangeDate.styles.js.map +1 -1
  85. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +10 -3
  86. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  87. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +5 -2
  88. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js.map +1 -1
  89. package/cjs/components/DatePicker/SingleDate/SingleDate.js +25 -7
  90. package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  91. package/cjs/components/DatePicker/SingleDate/SingleDate.styles.js +1 -0
  92. package/cjs/components/DatePicker/SingleDate/SingleDate.styles.js.map +1 -1
  93. package/cjs/components/DatePicker/hooks/useDatePicker.js +20 -48
  94. package/cjs/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  95. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  96. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  97. package/cjs/components/DatePicker/utils/dateHelper.js +31 -0
  98. package/cjs/components/DatePicker/utils/dateHelper.js.map +1 -1
  99. package/cjs/components/Drawer/Drawer.js +10 -5
  100. package/cjs/components/Drawer/Drawer.js.map +1 -1
  101. package/cjs/components/Drawer/Drawer.styles.js +4 -0
  102. package/cjs/components/Drawer/Drawer.styles.js.map +1 -1
  103. package/cjs/components/Drawer/hooks/useDrawer.js +4 -0
  104. package/cjs/components/Drawer/hooks/useDrawer.js.map +1 -1
  105. package/cjs/components/Drawer/ui/DrawerContent/DrawerContent.js +7 -0
  106. package/cjs/components/Drawer/ui/DrawerContent/DrawerContent.js.map +1 -1
  107. package/cjs/components/Drawer/ui/DrawerFooter/DrawerFooter.js +7 -0
  108. package/cjs/components/Drawer/ui/DrawerFooter/DrawerFooter.js.map +1 -1
  109. package/cjs/components/Drawer/ui/DrawerHeader/DrawerHeader.js +3 -0
  110. package/cjs/components/Drawer/ui/DrawerHeader/DrawerHeader.js.map +1 -1
  111. package/cjs/components/Dropdown/Dropdown.js +10 -3
  112. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  113. package/cjs/components/Dropdown/Dropdown.styles.js +3 -2
  114. package/cjs/components/Dropdown/Dropdown.styles.js.map +1 -1
  115. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +9 -1
  116. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  117. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -1
  118. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  119. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +2 -0
  120. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js.map +1 -1
  121. package/cjs/components/Dropdown/ui/DropdownOld/Dropdown.styles.js +1 -0
  122. package/cjs/components/Dropdown/ui/DropdownOld/Dropdown.styles.js.map +1 -1
  123. package/cjs/components/Editable/Editable.js +4 -3
  124. package/cjs/components/Editable/Editable.js.map +1 -1
  125. package/cjs/components/Editable/utils/clearSelection.js +2 -0
  126. package/cjs/components/Editable/utils/clearSelection.js.map +1 -1
  127. package/cjs/components/Editable/utils/selectText.js +2 -0
  128. package/cjs/components/Editable/utils/selectText.js.map +1 -1
  129. package/cjs/components/EmptyState/EmptyState.styles.js +2 -1
  130. package/cjs/components/EmptyState/EmptyState.styles.js.map +1 -1
  131. package/cjs/components/IconButton/IconButton.js +1 -1
  132. package/cjs/components/IconButton/IconButton.styles.js +8 -0
  133. package/cjs/components/IconButton/IconButton.styles.js.map +1 -1
  134. package/cjs/components/Modal/Modal.js +8 -6
  135. package/cjs/components/Modal/Modal.js.map +1 -1
  136. package/cjs/components/Modal/hooks/useModal.js +4 -0
  137. package/cjs/components/Modal/hooks/useModal.js.map +1 -1
  138. package/cjs/components/Notification/Notification.styles.js +3 -2
  139. package/cjs/components/Notification/Notification.styles.js.map +1 -1
  140. package/cjs/components/Notification/NotificationsPortal.js +4 -3
  141. package/cjs/components/Notification/NotificationsPortal.js.map +1 -1
  142. package/cjs/components/Pagination/Pagination.styles.js +2 -1
  143. package/cjs/components/Pagination/Pagination.styles.js.map +1 -1
  144. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js +2 -1
  145. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js.map +1 -1
  146. package/cjs/components/Panel/ui/PanelHeader/PanelHeader.js +2 -1
  147. package/cjs/components/Panel/ui/PanelHeader/PanelHeader.js.map +1 -1
  148. package/cjs/components/Panel/ui/PanelHeader/PanelHeader.styles.js +2 -1
  149. package/cjs/components/Panel/ui/PanelHeader/PanelHeader.styles.js.map +1 -1
  150. package/cjs/components/Popover/Popover.js +1 -1
  151. package/cjs/components/Popup/Popup.js +2 -2
  152. package/cjs/components/Popup/PopupContext.js +1 -1
  153. package/cjs/components/Range/Range.styles.js +1 -0
  154. package/cjs/components/Range/Range.styles.js.map +1 -1
  155. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -2
  156. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  157. package/cjs/components/Select/Select.js +12 -11
  158. package/cjs/components/Select/Select.js.map +1 -1
  159. package/cjs/components/Select/Select.styles.js +5 -2
  160. package/cjs/components/Select/Select.styles.js.map +1 -1
  161. package/cjs/components/Select/hooks/usePathMaps.js +2 -0
  162. package/cjs/components/Select/hooks/usePathMaps.js.map +1 -1
  163. package/cjs/components/Select/ui/Inner/Inner.js +2 -1
  164. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  165. package/cjs/components/Select/ui/Inner/ui/Item/Item.js +5 -4
  166. package/cjs/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
  167. package/cjs/components/Select/ui/Inner/ui/Item/Item.styles.js +1 -0
  168. package/cjs/components/Select/ui/Inner/ui/Item/Item.styles.js.map +1 -1
  169. package/cjs/components/Select/ui/Target/ui/Button/Button.js +1 -1
  170. package/cjs/components/Select/ui/Target/ui/Button/Button.styles.js +3 -1
  171. package/cjs/components/Select/ui/Target/ui/Button/Button.styles.js.map +1 -1
  172. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +2 -2
  173. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.styles.js +4 -1
  174. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.styles.js.map +1 -1
  175. package/cjs/components/Select/ui/Target/ui/Textfield/ui/Chip/Chip.styles.js +2 -1
  176. package/cjs/components/Select/ui/Target/ui/Textfield/ui/Chip/Chip.styles.js.map +1 -1
  177. package/cjs/components/Select/utils/getButtonLabel.js +2 -0
  178. package/cjs/components/Select/utils/getButtonLabel.js.map +1 -1
  179. package/cjs/components/Sheet/Sheet.js +3 -3
  180. package/cjs/components/Skeleton/LineSkeleton/LineSkeleton.js +4 -2
  181. package/cjs/components/Skeleton/LineSkeleton/LineSkeleton.js.map +1 -1
  182. package/cjs/components/Skeleton/RectSkeleton/RectSkeleton.js +4 -2
  183. package/cjs/components/Skeleton/RectSkeleton/RectSkeleton.js.map +1 -1
  184. package/cjs/components/Slider/Slider.js +6 -0
  185. package/cjs/components/Slider/Slider.js.map +1 -1
  186. package/cjs/components/Slider/components/Double/Double.js +2 -1
  187. package/cjs/components/Slider/components/Double/Double.js.map +1 -1
  188. package/cjs/components/Slider/components/Double/Double.styles.js +1 -0
  189. package/cjs/components/Slider/components/Double/Double.styles.js.map +1 -1
  190. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +3 -0
  191. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js.map +1 -1
  192. package/cjs/components/Slider/components/Single/Single.js +2 -1
  193. package/cjs/components/Slider/components/Single/Single.js.map +1 -1
  194. package/cjs/components/Slider/components/SliderBase/SliderBase.js +1 -1
  195. package/cjs/components/Steps/Steps.js +1 -1
  196. package/cjs/components/Steps/ui/StepItem/StepItem.styles.js +1 -0
  197. package/cjs/components/Steps/ui/StepItem/StepItem.styles.js.map +1 -1
  198. package/cjs/components/Tabs/ui/Tabs/Tabs.js +3 -2
  199. package/cjs/components/Tabs/ui/Tabs/Tabs.js.map +1 -1
  200. package/cjs/components/TextArea/TextArea.js +1 -1
  201. package/cjs/components/TextField/TextField.js +1 -1
  202. package/cjs/components/TextField/ui/TextFieldChip/TextFieldChip.styles.js +2 -1
  203. package/cjs/components/TextField/ui/TextFieldChip/TextFieldChip.styles.js.map +1 -1
  204. package/cjs/components/Toast/Toast.styles.js +1 -1
  205. package/cjs/components/Toast/ToastController.js +1 -1
  206. package/cjs/components/Toast/utils.js +2 -1
  207. package/cjs/components/Toast/utils.js.map +1 -1
  208. package/cjs/components/Toolbar/ui/ToolbarDivider/ToolbarDivider.js +1 -1
  209. package/cjs/components/Tooltip/Tooltip.js +3 -2
  210. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  211. package/cjs/engines/index.js +2 -0
  212. package/cjs/engines/index.js.map +1 -1
  213. package/cjs/hooks/useIsomorphicLayoutEffect.js +1 -0
  214. package/cjs/hooks/useIsomorphicLayoutEffect.js.map +1 -1
  215. package/cjs/index.js +51 -48
  216. package/cjs/index.js.map +1 -1
  217. package/cjs/utils/index.js +5 -0
  218. package/cjs/utils/index.js.map +1 -1
  219. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +62 -11
  220. package/emotion/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +8 -2
  221. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +25 -7
  222. package/emotion/cjs/components/DatePicker/hooks/useDatePicker.js +20 -48
  223. package/emotion/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  224. package/emotion/cjs/components/DatePicker/utils/dateHelper.js +31 -1
  225. package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +2 -0
  226. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +64 -13
  227. package/emotion/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +8 -2
  228. package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +26 -8
  229. package/emotion/es/components/DatePicker/hooks/useDatePicker.js +21 -49
  230. package/emotion/es/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  231. package/emotion/es/components/DatePicker/utils/dateHelper.js +30 -0
  232. package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +2 -0
  233. package/emotion/package.json +1 -2
  234. package/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +1 -0
  235. package/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js.map +1 -1
  236. package/es/components/Attach/Attach.js +4 -3
  237. package/es/components/Attach/Attach.js.map +1 -1
  238. package/es/components/Attach/components/AttachButton/AttachButton.js +1 -0
  239. package/es/components/Attach/components/AttachButton/AttachButton.js.map +1 -1
  240. package/es/components/Attach/ui/Button/Button.styles.js +1 -0
  241. package/es/components/Attach/ui/Button/Button.styles.js.map +1 -1
  242. package/es/components/Attach/ui/Cell/Cell.styles.js +2 -0
  243. package/es/components/Attach/ui/Cell/Cell.styles.js.map +1 -1
  244. package/es/components/Attach/ui/IconButton/IconButton.styles.js +1 -0
  245. package/es/components/Attach/ui/IconButton/IconButton.styles.js.map +1 -1
  246. package/es/components/Attach/utils/getFileicon.js +4 -3
  247. package/es/components/Attach/utils/getFileicon.js.map +1 -1
  248. package/es/components/Attach/utils/index.js +3 -0
  249. package/es/components/Attach/utils/index.js.map +1 -1
  250. package/es/components/Autocomplete/Autocomplete.js +6 -5
  251. package/es/components/Autocomplete/Autocomplete.js.map +1 -1
  252. package/es/components/Autocomplete/Autocomplete.styles.js +3 -2
  253. package/es/components/Autocomplete/Autocomplete.styles.js.map +1 -1
  254. package/es/components/Autocomplete/ui/TextField/TextField.styles.js +2 -1
  255. package/es/components/Autocomplete/ui/TextField/TextField.styles.js.map +1 -1
  256. package/es/components/Avatar/Avatar.js +3 -2
  257. package/es/components/Avatar/Avatar.js.map +1 -1
  258. package/es/components/Breadcrumbs/Breadcrumbs.styles.js +4 -2
  259. package/es/components/Breadcrumbs/Breadcrumbs.styles.js.map +1 -1
  260. package/es/components/Button/Button.styles.js +3 -0
  261. package/es/components/Button/Button.styles.js.map +1 -1
  262. package/es/components/Calendar/CalendarBase/CalendarBase.js +5 -5
  263. package/es/components/Calendar/CalendarDouble/CalendarDouble.js +8 -8
  264. package/es/components/Calendar/hooks/useDays.js +2 -2
  265. package/es/components/Calendar/hooks/useKeyNavigation.js +1 -1
  266. package/es/components/Calendar/hooks/useMonths.js +2 -2
  267. package/es/components/Calendar/hooks/useQuarters.js +2 -2
  268. package/es/components/Calendar/hooks/useYears.js +2 -2
  269. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js +4 -4
  270. package/es/components/Calendar/ui/CalendarHeader/CalendarHeader.js +6 -5
  271. package/es/components/Calendar/ui/CalendarHeader/CalendarHeader.js.map +1 -1
  272. package/es/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js +1 -0
  273. package/es/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js.map +1 -1
  274. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +4 -4
  275. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +4 -4
  276. package/es/components/Calendar/ui/CalendarYears/CalendarYears.js +4 -4
  277. package/es/components/Combobox/ComboboxNew/Combobox.js +12 -11
  278. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  279. package/es/components/Combobox/ComboboxNew/Combobox.styles.js +4 -2
  280. package/es/components/Combobox/ComboboxNew/Combobox.styles.js.map +1 -1
  281. package/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js +2 -0
  282. package/es/components/Combobox/ComboboxNew/hooks/getPathMaps.js.map +1 -1
  283. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -1
  284. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  285. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +6 -5
  286. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
  287. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.styles.js +3 -1
  288. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.styles.js.map +1 -1
  289. package/es/components/Combobox/ComboboxNew/ui/Target/Target.styles.js +2 -1
  290. package/es/components/Combobox/ComboboxNew/ui/Target/Target.styles.js.map +1 -1
  291. package/es/components/Combobox/ComboboxOld/Combobox.js +10 -4
  292. package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  293. package/es/components/Combobox/ComboboxOld/Combobox.styles.js +1 -0
  294. package/es/components/Combobox/ComboboxOld/Combobox.styles.js.map +1 -1
  295. package/es/components/Combobox/ComboboxOld/hooks/useFocusController.js +1 -0
  296. package/es/components/Combobox/ComboboxOld/hooks/useFocusController.js.map +1 -1
  297. package/es/components/Combobox/ComboboxOld/ui/ComboboxChip/ComboboxChip.styles.js +2 -1
  298. package/es/components/Combobox/ComboboxOld/ui/ComboboxChip/ComboboxChip.styles.js.map +1 -1
  299. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.js +10 -1
  300. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.js.map +1 -1
  301. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.js +10 -1
  302. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.js.map +1 -1
  303. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.js +10 -1
  304. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.js.map +1 -1
  305. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.js +10 -1
  306. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.js.map +1 -1
  307. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.styles.js +2 -0
  308. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.styles.js.map +1 -1
  309. package/es/components/Combobox/ComboboxOld/ui/ComboboxTarget/ComboboxTarget.js +1 -1
  310. package/es/components/Combobox/ComboboxOld/ui/ComboboxTarget/ComboboxTarget.styles.js +2 -1
  311. package/es/components/Combobox/ComboboxOld/ui/ComboboxTarget/ComboboxTarget.styles.js.map +1 -1
  312. package/es/components/DatePicker/DatePickerBase.styles.js +7 -1
  313. package/es/components/DatePicker/DatePickerBase.styles.js.map +1 -1
  314. package/es/components/DatePicker/RangeDate/RangeDate.js +64 -13
  315. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  316. package/es/components/DatePicker/RangeDate/RangeDate.styles.js +1 -0
  317. package/es/components/DatePicker/RangeDate/RangeDate.styles.js.map +1 -1
  318. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +10 -3
  319. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  320. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +5 -2
  321. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js.map +1 -1
  322. package/es/components/DatePicker/SingleDate/SingleDate.js +26 -8
  323. package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  324. package/es/components/DatePicker/SingleDate/SingleDate.styles.js +1 -0
  325. package/es/components/DatePicker/SingleDate/SingleDate.styles.js.map +1 -1
  326. package/es/components/DatePicker/hooks/useDatePicker.js +21 -49
  327. package/es/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  328. package/es/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  329. package/es/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  330. package/es/components/DatePicker/utils/dateHelper.js +31 -1
  331. package/es/components/DatePicker/utils/dateHelper.js.map +1 -1
  332. package/es/components/Drawer/Drawer.js +10 -5
  333. package/es/components/Drawer/Drawer.js.map +1 -1
  334. package/es/components/Drawer/Drawer.styles.js +4 -0
  335. package/es/components/Drawer/Drawer.styles.js.map +1 -1
  336. package/es/components/Drawer/hooks/useDrawer.js +4 -0
  337. package/es/components/Drawer/hooks/useDrawer.js.map +1 -1
  338. package/es/components/Drawer/ui/DrawerContent/DrawerContent.js +7 -0
  339. package/es/components/Drawer/ui/DrawerContent/DrawerContent.js.map +1 -1
  340. package/es/components/Drawer/ui/DrawerFooter/DrawerFooter.js +7 -0
  341. package/es/components/Drawer/ui/DrawerFooter/DrawerFooter.js.map +1 -1
  342. package/es/components/Drawer/ui/DrawerHeader/DrawerHeader.js +3 -0
  343. package/es/components/Drawer/ui/DrawerHeader/DrawerHeader.js.map +1 -1
  344. package/es/components/Dropdown/Dropdown.js +10 -3
  345. package/es/components/Dropdown/Dropdown.js.map +1 -1
  346. package/es/components/Dropdown/Dropdown.styles.js +3 -2
  347. package/es/components/Dropdown/Dropdown.styles.js.map +1 -1
  348. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +9 -1
  349. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  350. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -1
  351. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  352. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js +2 -0
  353. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItem.styles.js.map +1 -1
  354. package/es/components/Dropdown/ui/DropdownOld/Dropdown.styles.js +1 -0
  355. package/es/components/Dropdown/ui/DropdownOld/Dropdown.styles.js.map +1 -1
  356. package/es/components/Editable/Editable.js +4 -3
  357. package/es/components/Editable/Editable.js.map +1 -1
  358. package/es/components/Editable/utils/clearSelection.js +2 -0
  359. package/es/components/Editable/utils/clearSelection.js.map +1 -1
  360. package/es/components/Editable/utils/selectText.js +2 -0
  361. package/es/components/Editable/utils/selectText.js.map +1 -1
  362. package/es/components/EmptyState/EmptyState.styles.js +2 -1
  363. package/es/components/EmptyState/EmptyState.styles.js.map +1 -1
  364. package/es/components/IconButton/IconButton.js +1 -1
  365. package/es/components/IconButton/IconButton.styles.js +8 -0
  366. package/es/components/IconButton/IconButton.styles.js.map +1 -1
  367. package/es/components/Modal/Modal.js +8 -6
  368. package/es/components/Modal/Modal.js.map +1 -1
  369. package/es/components/Modal/hooks/useModal.js +4 -0
  370. package/es/components/Modal/hooks/useModal.js.map +1 -1
  371. package/es/components/Notification/Notification.styles.js +3 -2
  372. package/es/components/Notification/Notification.styles.js.map +1 -1
  373. package/es/components/Notification/NotificationsPortal.js +4 -3
  374. package/es/components/Notification/NotificationsPortal.js.map +1 -1
  375. package/es/components/Pagination/Pagination.styles.js +2 -1
  376. package/es/components/Pagination/Pagination.styles.js.map +1 -1
  377. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js +2 -1
  378. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.js.map +1 -1
  379. package/es/components/Panel/ui/PanelHeader/PanelHeader.js +2 -1
  380. package/es/components/Panel/ui/PanelHeader/PanelHeader.js.map +1 -1
  381. package/es/components/Panel/ui/PanelHeader/PanelHeader.styles.js +2 -1
  382. package/es/components/Panel/ui/PanelHeader/PanelHeader.styles.js.map +1 -1
  383. package/es/components/Popover/Popover.js +1 -1
  384. package/es/components/Popup/Popup.js +2 -2
  385. package/es/components/Popup/PopupContext.js +1 -1
  386. package/es/components/Range/Range.styles.js +1 -0
  387. package/es/components/Range/Range.styles.js.map +1 -1
  388. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -2
  389. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  390. package/es/components/Select/Select.js +12 -11
  391. package/es/components/Select/Select.js.map +1 -1
  392. package/es/components/Select/Select.styles.js +5 -2
  393. package/es/components/Select/Select.styles.js.map +1 -1
  394. package/es/components/Select/hooks/usePathMaps.js +2 -0
  395. package/es/components/Select/hooks/usePathMaps.js.map +1 -1
  396. package/es/components/Select/ui/Inner/Inner.js +2 -1
  397. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  398. package/es/components/Select/ui/Inner/ui/Item/Item.js +5 -4
  399. package/es/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
  400. package/es/components/Select/ui/Inner/ui/Item/Item.styles.js +1 -0
  401. package/es/components/Select/ui/Inner/ui/Item/Item.styles.js.map +1 -1
  402. package/es/components/Select/ui/Target/ui/Button/Button.js +1 -1
  403. package/es/components/Select/ui/Target/ui/Button/Button.styles.js +3 -1
  404. package/es/components/Select/ui/Target/ui/Button/Button.styles.js.map +1 -1
  405. package/es/components/Select/ui/Target/ui/Textfield/Textfield.js +2 -2
  406. package/es/components/Select/ui/Target/ui/Textfield/Textfield.styles.js +4 -1
  407. package/es/components/Select/ui/Target/ui/Textfield/Textfield.styles.js.map +1 -1
  408. package/es/components/Select/ui/Target/ui/Textfield/ui/Chip/Chip.styles.js +2 -1
  409. package/es/components/Select/ui/Target/ui/Textfield/ui/Chip/Chip.styles.js.map +1 -1
  410. package/es/components/Select/utils/getButtonLabel.js +2 -0
  411. package/es/components/Select/utils/getButtonLabel.js.map +1 -1
  412. package/es/components/Sheet/Sheet.js +3 -3
  413. package/es/components/Skeleton/LineSkeleton/LineSkeleton.js +4 -2
  414. package/es/components/Skeleton/LineSkeleton/LineSkeleton.js.map +1 -1
  415. package/es/components/Skeleton/RectSkeleton/RectSkeleton.js +4 -2
  416. package/es/components/Skeleton/RectSkeleton/RectSkeleton.js.map +1 -1
  417. package/es/components/Slider/Slider.js +6 -0
  418. package/es/components/Slider/Slider.js.map +1 -1
  419. package/es/components/Slider/components/Double/Double.js +2 -1
  420. package/es/components/Slider/components/Double/Double.js.map +1 -1
  421. package/es/components/Slider/components/Double/Double.styles.js +1 -0
  422. package/es/components/Slider/components/Double/Double.styles.js.map +1 -1
  423. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +3 -0
  424. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js.map +1 -1
  425. package/es/components/Slider/components/Single/Single.js +2 -1
  426. package/es/components/Slider/components/Single/Single.js.map +1 -1
  427. package/es/components/Slider/components/SliderBase/SliderBase.js +1 -1
  428. package/es/components/Steps/Steps.js +1 -1
  429. package/es/components/Steps/ui/StepItem/StepItem.styles.js +1 -0
  430. package/es/components/Steps/ui/StepItem/StepItem.styles.js.map +1 -1
  431. package/es/components/Tabs/ui/Tabs/Tabs.js +3 -2
  432. package/es/components/Tabs/ui/Tabs/Tabs.js.map +1 -1
  433. package/es/components/TextArea/TextArea.js +1 -1
  434. package/es/components/TextField/TextField.js +1 -1
  435. package/es/components/TextField/ui/TextFieldChip/TextFieldChip.styles.js +2 -1
  436. package/es/components/TextField/ui/TextFieldChip/TextFieldChip.styles.js.map +1 -1
  437. package/es/components/Toast/Toast.styles.js +1 -1
  438. package/es/components/Toast/ToastController.js +1 -1
  439. package/es/components/Toast/utils.js +2 -1
  440. package/es/components/Toast/utils.js.map +1 -1
  441. package/es/components/Toolbar/ui/ToolbarDivider/ToolbarDivider.js +1 -1
  442. package/es/components/Tooltip/Tooltip.js +3 -2
  443. package/es/components/Tooltip/Tooltip.js.map +1 -1
  444. package/es/engines/index.js +2 -0
  445. package/es/engines/index.js.map +1 -1
  446. package/es/hooks/useIsomorphicLayoutEffect.js +1 -0
  447. package/es/hooks/useIsomorphicLayoutEffect.js.map +1 -1
  448. package/es/index.js +24 -21
  449. package/es/index.js.map +1 -1
  450. package/es/utils/index.js +3 -0
  451. package/es/utils/index.js.map +1 -1
  452. package/package.json +2 -5
  453. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +62 -11
  454. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +8 -2
  455. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +25 -7
  456. package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +20 -48
  457. package/styled-components/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  458. package/styled-components/cjs/components/DatePicker/utils/dateHelper.js +31 -1
  459. package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +2 -0
  460. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +64 -13
  461. package/styled-components/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +8 -2
  462. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +26 -8
  463. package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +21 -49
  464. package/styled-components/es/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  465. package/styled-components/es/components/DatePicker/utils/dateHelper.js +30 -0
  466. package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +2 -0
  467. package/styled-components/package.json +1 -2
  468. package/types/components/DatePicker/DatePickerBase.types.d.ts +7 -5
  469. package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
  470. package/types/components/DatePicker/RangeDate/RangeDate.d.ts +8 -8
  471. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  472. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +14 -4
  473. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  474. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.d.ts +1 -1
  475. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.d.ts.map +1 -1
  476. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  477. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +12 -2
  478. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  479. package/types/components/DatePicker/hooks/useDatePicker.d.ts +2 -3
  480. package/types/components/DatePicker/hooks/useDatePicker.d.ts.map +1 -1
  481. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts +3 -1
  482. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts.map +1 -1
  483. package/types/components/DatePicker/utils/dateHelper.d.ts +10 -0
  484. package/types/components/DatePicker/utils/dateHelper.d.ts.map +1 -1
  485. package/types/components/Popover/Popover.types.d.ts +1 -1
  486. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts +4 -4
  487. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +4 -4
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getMaskedDateOnInput = exports.getDateFromFormat = exports.getDateFormatDelimiter = exports.formatInputValue = exports.formatCalendarValue = void 0;
6
+ exports.validateDateWithFullMonth = exports.getMaskedDateOnInput = exports.getDateFromFormat = exports.getDateFormatDelimiter = exports.formatInputValue = exports.formatCalendarValue = void 0;
7
7
  var _datejs = /*#__PURE__*/require("../../../utils/datejs");
8
8
  var formatInputValue = exports.formatInputValue = function formatInputValue(_ref) {
9
9
  var value = _ref.value,
@@ -84,4 +84,34 @@ var getMaskedDateOnInput = exports.getMaskedDateOnInput = function getMaskedDate
84
84
  return value + delimiter;
85
85
  }
86
86
  return value;
87
+ };
88
+ var validateDateWithFullMonth = exports.validateDateWithFullMonth = function validateDateWithFullMonth(_ref2) {
89
+ var currentValue = _ref2.currentValue,
90
+ format = _ref2.format,
91
+ lang = _ref2.lang;
92
+ /**
93
+ * NOTE: если в формате даты есть месяц в полном названии или сокращенном,
94
+ * нужно дополнительно проводить валидацию на полноту введенной даты.
95
+ * Иначе dayjs циклически будет пытаться отформатировать некорректную дату.
96
+ */
97
+ var hasMonthFullName = /M{3,4}/g.test(format);
98
+ if (!hasMonthFullName) {
99
+ return {
100
+ hasMonthFullName: hasMonthFullName,
101
+ isValidMonth: false,
102
+ isLengthEqual: false
103
+ };
104
+ }
105
+ _datejs.customDayjs.locale(lang);
106
+ var firstIndexOfMonth = format.indexOf('M');
107
+ var lastIndexOfMonth = currentValue.indexOf(getDateFormatDelimiter(format), firstIndexOfMonth);
108
+ var fullMonthName = !lastIndexOfMonth ? currentValue.slice(firstIndexOfMonth) : currentValue.slice(firstIndexOfMonth, lastIndexOfMonth);
109
+ var monthFormatting = format.replace(/[^M]/g, '');
110
+ var isValidMonth = (0, _datejs.customDayjs)("01 ".concat(fullMonthName, " 1970"), "DD ".concat(monthFormatting, " YYYY"), true).isValid();
111
+ var isLengthEqual = format.length - monthFormatting.length === currentValue.length - fullMonthName.length;
112
+ return {
113
+ hasMonthFullName: hasMonthFullName,
114
+ isValidMonth: isValidMonth,
115
+ isLengthEqual: isLengthEqual
116
+ };
87
117
  };
@@ -139,6 +139,7 @@ export const Default: StoryObj<StoryPropsDefault> = {
139
139
  valueSuccess: false,
140
140
  lang: 'ru',
141
141
  format: 'DD.MM.YYYY',
142
+ closeOnEsc: true,
142
143
  },
143
144
  render: (args) => <StoryDefault {...args} />,
144
145
  };
@@ -269,6 +270,7 @@ export const Range: StoryObj<StoryPropsRange> = {
269
270
  size: 'l',
270
271
  view: 'default',
271
272
  isDoubleCalendar: false,
273
+ closeOnEsc: true,
272
274
  dividerVariant: 'dash',
273
275
  min: new Date(2024, 1, 1),
274
276
  max: new Date(2024, 12, 29),
@@ -1,4 +1,4 @@
1
- var _excluded = ["className", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChange", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
1
+ var _excluded = ["className", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "frame", "usePortal", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChange", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -10,11 +10,12 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
10
10
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
11
11
  import React, { createRef, forwardRef, useCallback, useEffect, useRef, useState } from 'react';
12
12
  import { cx, noop } from '../../../utils';
13
- import { formatCalendarValue, formatInputValue, getDateFormatDelimiter } from '../utils/dateHelper';
13
+ import { formatCalendarValue, formatInputValue, getDateFormatDelimiter, getDateFromFormat } from '../utils/dateHelper';
14
14
  import { useDatePicker } from '../hooks/useDatePicker';
15
15
  import { classes } from '../DatePicker.tokens';
16
- import { useKeyNavigation } from '../hooks/useKeyboardNavigation';
16
+ import { keys, useKeyNavigation } from '../hooks/useKeyboardNavigation';
17
17
  import { InputHidden } from '../DatePickerBase.styles';
18
+ import { getSortedValues } from '../../Calendar/utils';
18
19
  import { base as sizeCSS } from './variations/_size/base';
19
20
  import { base as viewCSS } from './variations/_view/base';
20
21
  import { base as disabledCSS } from './variations/_disabled/base';
@@ -80,6 +81,10 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
80
81
  disabledYearList = _ref.disabledYearList,
81
82
  _ref$type = _ref.type,
82
83
  type = _ref$type === void 0 ? 'Days' : _ref$type,
84
+ _ref$frame = _ref.frame,
85
+ frame = _ref$frame === void 0 ? 'document' : _ref$frame,
86
+ _ref$usePortal = _ref.usePortal,
87
+ usePortal = _ref$usePortal === void 0 ? false : _ref$usePortal,
83
88
  _ref$placement = _ref.placement,
84
89
  placement = _ref$placement === void 0 ? ['top', 'bottom'] : _ref$placement,
85
90
  _ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
@@ -95,8 +100,8 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
95
100
  onCommitSecondDate = _ref.onCommitSecondDate,
96
101
  onFocusFirstTextfield = _ref.onFocusFirstTextfield,
97
102
  onFocusSecondTextfield = _ref.onFocusSecondTextfield,
98
- onBlurFirstTextfield = _ref.onBlurFirstTextfield,
99
- onBlurSecondTextfield = _ref.onBlurSecondTextfield,
103
+ _onBlurFirstTextfield = _ref.onBlurFirstTextfield,
104
+ _onBlurSecondTextfield = _ref.onBlurSecondTextfield,
100
105
  rest = _objectWithoutProperties(_ref, _excluded);
101
106
  var rangeRef = ref && 'current' in ref ? ref : /*#__PURE__*/createRef();
102
107
  var rootRef = useRef(null);
@@ -167,7 +172,6 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
167
172
  currentValue: inputFirstValue,
168
173
  setInputValue: setFirstInputValue,
169
174
  setCalendarValue: setCalendarFirstValue,
170
- setIsInnerOpen: setIsInnerOpen,
171
175
  dateFormatDelimiter: dateFormatDelimiter,
172
176
  format: format,
173
177
  lang: lang,
@@ -176,7 +180,6 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
176
180
  maskWithFormat: maskWithFormat,
177
181
  valueError: firstValueError,
178
182
  valueSuccess: firstValueSuccess,
179
- inputRef: firstInputRef,
180
183
  name: name,
181
184
  onChangeValue: onChangeFirstValue,
182
185
  onCommitDate: onCommitFirstDate
@@ -187,7 +190,6 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
187
190
  currentValue: inputSecondValue,
188
191
  setInputValue: setSecondInputValue,
189
192
  setCalendarValue: setCalendarSecondValue,
190
- setIsInnerOpen: setIsInnerOpen,
191
193
  dateFormatDelimiter: dateFormatDelimiter,
192
194
  format: format,
193
195
  lang: lang,
@@ -196,7 +198,6 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
196
198
  maskWithFormat: maskWithFormat,
197
199
  valueError: secondValueError,
198
200
  valueSuccess: secondValueSuccess,
199
- inputRef: secondInputRef,
200
201
  onChangeValue: onChangeSecondValue,
201
202
  onCommitDate: onCommitSecondDate
202
203
  }),
@@ -207,15 +208,59 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
207
208
  if (disabled || readOnly) {
208
209
  return;
209
210
  }
210
- var isCalendarOpen = firstInputRef !== null && firstInputRef !== void 0 && (_firstInputRef$curren = firstInputRef.current) !== null && _firstInputRef$curren !== void 0 && _firstInputRef$curren.contains(event.target || null) || secondInputRef !== null && secondInputRef !== void 0 && (_secondInputRef$curre = secondInputRef.current) !== null && _secondInputRef$curre !== void 0 && _secondInputRef$curre.contains(event.target || null) ? true : opened;
211
+ var isCalendarOpen = (firstInputRef !== null && firstInputRef !== void 0 && (_firstInputRef$curren = firstInputRef.current) !== null && _firstInputRef$curren !== void 0 && _firstInputRef$curren.contains(event.target || null) || secondInputRef !== null && secondInputRef !== void 0 && (_secondInputRef$curre = secondInputRef.current) !== null && _secondInputRef$curre !== void 0 && _secondInputRef$curre.contains(event.target || null)) && event.code !== keys.Escape ? true : opened;
212
+ if (!isCalendarOpen) {
213
+ if (calendarFirstValue && !calendarSecondValue) {
214
+ var _secondInputRef$curre2;
215
+ secondInputRef === null || secondInputRef === void 0 || (_secondInputRef$curre2 = secondInputRef.current) === null || _secondInputRef$curre2 === void 0 || _secondInputRef$curre2.focus();
216
+ }
217
+ if (calendarSecondValue || !calendarFirstValue) {
218
+ var _firstInputRef$curren2;
219
+ firstInputRef === null || firstInputRef === void 0 || (_firstInputRef$curren2 = firstInputRef.current) === null || _firstInputRef$curren2 === void 0 || _firstInputRef$curren2.focus();
220
+ }
221
+ }
211
222
  if (onToggle) {
212
223
  return onToggle(isCalendarOpen, event);
213
224
  }
214
225
  setIsInnerOpen(isCalendarOpen);
215
226
  };
227
+ var handleBlur = function handleBlur(event, outerHandler) {
228
+ if (!inputFirstValue || !inputSecondValue) {
229
+ outerHandler === null || outerHandler === void 0 || outerHandler(event);
230
+ return;
231
+ }
232
+ var _getDateFromFormat = getDateFromFormat(inputFirstValue, format, lang),
233
+ firstDate = _getDateFromFormat.value,
234
+ firstIsSuccess = _getDateFromFormat.isSuccess;
235
+ var _getDateFromFormat2 = getDateFromFormat(inputSecondValue, format, lang),
236
+ secondDate = _getDateFromFormat2.value,
237
+ secondIsSuccess = _getDateFromFormat2.isSuccess;
238
+ if (!firstIsSuccess || !secondIsSuccess) {
239
+ outerHandler === null || outerHandler === void 0 || outerHandler(event);
240
+ return;
241
+ }
242
+ var _getSortedValues = getSortedValues([new Date(firstDate), new Date(secondDate)]),
243
+ _getSortedValues2 = _slicedToArray(_getSortedValues, 2),
244
+ startValue = _getSortedValues2[0],
245
+ endValue = _getSortedValues2[1];
246
+ setFirstInputValue(formatInputValue({
247
+ value: startValue,
248
+ format: format,
249
+ lang: lang
250
+ }));
251
+ setSecondInputValue(formatInputValue({
252
+ value: endValue,
253
+ format: format,
254
+ lang: lang
255
+ }));
256
+ setCalendarFirstValue(formatCalendarValue(startValue, format, lang));
257
+ setCalendarSecondValue(formatCalendarValue(endValue, format, lang));
258
+ outerHandler === null || outerHandler === void 0 || outerHandler(event);
259
+ };
216
260
  var _useKeyNavigation = useKeyNavigation({
217
261
  isCalendarOpen: isInnerOpen,
218
- onToggle: handleToggle
262
+ onToggle: handleToggle,
263
+ closeOnEsc: closeOnEsc
219
264
  }),
220
265
  onKeyDown = _useKeyNavigation.onKeyDown;
221
266
  var RangeComponent = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledRange, {
@@ -261,8 +306,12 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
261
306
  },
262
307
  onFocusFirstTextfield: onFocusFirstTextfield,
263
308
  onFocusSecondTextfield: onFocusSecondTextfield,
264
- onBlurFirstTextfield: onBlurFirstTextfield,
265
- onBlurSecondTextfield: onBlurSecondTextfield,
309
+ onBlurFirstTextfield: function onBlurFirstTextfield(event) {
310
+ return handleBlur(event, _onBlurFirstTextfield);
311
+ },
312
+ onBlurSecondTextfield: function onBlurSecondTextfield(event) {
313
+ return handleBlur(event, _onBlurSecondTextfield);
314
+ },
266
315
  onKeyDown: onKeyDown
267
316
  }));
268
317
  useEffect(function () {
@@ -327,6 +376,8 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
327
376
  disabledYearList: disabledYearList,
328
377
  min: min,
329
378
  max: max,
379
+ frame: frame,
380
+ usePortal: usePortal,
330
381
  placement: placement,
331
382
  closeOnOverlayClick: closeOnOverlayClick,
332
383
  closeOnEsc: closeOnEsc,
@@ -19,6 +19,10 @@ export var RangeDatePopover = function RangeDatePopover(_ref) {
19
19
  disabledQuarterList = _ref.disabledQuarterList,
20
20
  eventYearList = _ref.eventYearList,
21
21
  disabledYearList = _ref.disabledYearList,
22
+ _ref$frame = _ref.frame,
23
+ frame = _ref$frame === void 0 ? 'document' : _ref$frame,
24
+ _ref$usePortal = _ref.usePortal,
25
+ usePortal = _ref$usePortal === void 0 ? false : _ref$usePortal,
22
26
  _ref$placement = _ref.placement,
23
27
  placement = _ref$placement === void 0 ? ['top', 'bottom'] : _ref$placement,
24
28
  _ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
@@ -36,7 +40,8 @@ export var RangeDatePopover = function RangeDatePopover(_ref) {
36
40
  if (isDoubleCalendar) {
37
41
  return /*#__PURE__*/React.createElement(StyledPopover, {
38
42
  opened: innerIsOpen,
39
- usePortal: false,
43
+ frame: frame,
44
+ usePortal: usePortal,
40
45
  onToggle: onToggle,
41
46
  offset: offset,
42
47
  placement: getPlacements(placement),
@@ -66,7 +71,8 @@ export var RangeDatePopover = function RangeDatePopover(_ref) {
66
71
  }
67
72
  return /*#__PURE__*/React.createElement(StyledPopover, {
68
73
  opened: innerIsOpen,
69
- usePortal: false,
74
+ frame: frame,
75
+ usePortal: usePortal,
70
76
  onToggle: onToggle,
71
77
  offset: offset,
72
78
  placement: getPlacements(placement),
@@ -1,4 +1,4 @@
1
- var _excluded = ["className", "opened", "label", "labelPlacement", "placeholder", "leftHelper", "contentLeft", "contentRight", "textBefore", "textAfter", "view", "size", "readOnly", "disabled", "name", "defaultDate", "valueError", "valueSuccess", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "placement", "closeOnOverlayClick", "offset", "onChangeValue", "onCommitDate", "onToggle", "onFocus", "onBlur", "onChange"];
1
+ var _excluded = ["className", "opened", "label", "labelPlacement", "placeholder", "leftHelper", "contentLeft", "contentRight", "textBefore", "textAfter", "view", "size", "readOnly", "disabled", "name", "defaultDate", "valueError", "valueSuccess", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "frame", "usePortal", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onChangeValue", "onCommitDate", "onToggle", "onFocus", "onBlur", "onChange"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -14,7 +14,7 @@ import { formatCalendarValue, formatInputValue, getDateFormatDelimiter } from '.
14
14
  import { useDatePicker } from '../hooks/useDatePicker';
15
15
  import { classes } from '../DatePicker.tokens';
16
16
  import { InputHidden, StyledCalendar } from '../DatePickerBase.styles';
17
- import { useKeyNavigation } from '../hooks/useKeyboardNavigation';
17
+ import { keys, useKeyNavigation } from '../hooks/useKeyboardNavigation';
18
18
  import { base as sizeCSS } from './variations/_size/base';
19
19
  import { base as viewCSS } from './variations/_view/base';
20
20
  import { base as disabledCSS } from './variations/_disabled/base';
@@ -64,10 +64,16 @@ export var datePickerRoot = function datePickerRoot(Root) {
64
64
  disabledYearList = _ref.disabledYearList,
65
65
  _ref$type = _ref.type,
66
66
  type = _ref$type === void 0 ? 'Days' : _ref$type,
67
+ _ref$frame = _ref.frame,
68
+ frame = _ref$frame === void 0 ? 'document' : _ref$frame,
69
+ _ref$usePortal = _ref.usePortal,
70
+ usePortal = _ref$usePortal === void 0 ? false : _ref$usePortal,
67
71
  _ref$placement = _ref.placement,
68
72
  placement = _ref$placement === void 0 ? ['top', 'bottom'] : _ref$placement,
69
73
  _ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
70
74
  closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? true : _ref$closeOnOverlayCl,
75
+ _ref$closeOnEsc = _ref.closeOnEsc,
76
+ closeOnEsc = _ref$closeOnEsc === void 0 ? true : _ref$closeOnEsc,
71
77
  offset = _ref.offset,
72
78
  onChangeValue = _ref.onChangeValue,
73
79
  onCommitDate = _ref.onCommitDate,
@@ -102,7 +108,6 @@ export var datePickerRoot = function datePickerRoot(Root) {
102
108
  currentValue: inputValue,
103
109
  setInputValue: setInputValue,
104
110
  setCalendarValue: setCalendarValue,
105
- setIsInnerOpen: setIsInnerOpen,
106
111
  dateFormatDelimiter: dateFormatDelimiter,
107
112
  format: format,
108
113
  lang: lang,
@@ -111,21 +116,33 @@ export var datePickerRoot = function datePickerRoot(Root) {
111
116
  maskWithFormat: maskWithFormat,
112
117
  valueError: valueError,
113
118
  valueSuccess: valueSuccess,
114
- inputRef: inputRef,
115
119
  name: name,
116
- onToggle: onToggle,
117
120
  onChangeValue: onChangeValue,
118
121
  onCommitDate: onCommitDate,
119
122
  onChange: onChange
120
123
  }),
121
124
  datePickerErrorClass = _useDatePicker.datePickerErrorClass,
122
125
  datePickerSuccessClass = _useDatePicker.datePickerSuccessClass,
123
- handleToggle = _useDatePicker.handleToggle,
124
126
  handleChangeValue = _useDatePicker.handleChangeValue,
125
127
  handleCommitDate = _useDatePicker.handleCommitDate;
128
+ var handleToggle = function handleToggle(opened, event) {
129
+ if (disabled || readOnly) {
130
+ return;
131
+ }
132
+ var isCalendarOpen = event.target === (inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) && event.code !== keys.Escape ? true : opened;
133
+ if (!isCalendarOpen && inputValue) {
134
+ var _inputRef$current;
135
+ inputRef === null || inputRef === void 0 || (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
136
+ }
137
+ if (onToggle) {
138
+ return onToggle(isCalendarOpen, event);
139
+ }
140
+ setIsInnerOpen(isCalendarOpen);
141
+ };
126
142
  var _useKeyNavigation = useKeyNavigation({
127
143
  isCalendarOpen: isInnerOpen,
128
- onToggle: handleToggle
144
+ onToggle: handleToggle,
145
+ closeOnEsc: closeOnEsc
129
146
  }),
130
147
  onKeyDown = _useKeyNavigation.onKeyDown;
131
148
  var DatePickerInput = /*#__PURE__*/React.createElement(StyledInput, _extends({
@@ -181,7 +198,8 @@ export var datePickerRoot = function datePickerRoot(Root) {
181
198
  ref: ref
182
199
  }, rest), !innerLabelPlacement && label && /*#__PURE__*/React.createElement(StyledLabel, null, label), /*#__PURE__*/React.createElement(StyledPopover, {
183
200
  opened: isInnerOpen,
184
- usePortal: false,
201
+ usePortal: usePortal,
202
+ frame: frame,
185
203
  onToggle: handleToggle,
186
204
  offset: offset,
187
205
  placement: getPlacements(placement),
@@ -1,11 +1,9 @@
1
1
  import { classes } from '../DatePicker.tokens';
2
- import { formatCalendarValue, formatInputValue, getDateFromFormat, getMaskedDateOnInput } from '../utils/dateHelper';
3
- import { customDayjs } from '../../../utils/datejs';
2
+ import { formatCalendarValue, formatInputValue, getDateFromFormat, getMaskedDateOnInput, validateDateWithFullMonth } from '../utils/dateHelper';
4
3
  export var useDatePicker = function useDatePicker(_ref) {
5
4
  var currentValue = _ref.currentValue,
6
5
  setInputValue = _ref.setInputValue,
7
6
  setCalendarValue = _ref.setCalendarValue,
8
- setIsInnerOpen = _ref.setIsInnerOpen,
9
7
  dateFormatDelimiter = _ref.dateFormatDelimiter,
10
8
  format = _ref.format,
11
9
  _ref$lang = _ref.lang,
@@ -15,24 +13,12 @@ export var useDatePicker = function useDatePicker(_ref) {
15
13
  maskWithFormat = _ref.maskWithFormat,
16
14
  valueError = _ref.valueError,
17
15
  valueSuccess = _ref.valueSuccess,
18
- inputRef = _ref.inputRef,
19
16
  name = _ref.name,
20
- onToggle = _ref.onToggle,
21
17
  onChangeValue = _ref.onChangeValue,
22
18
  onCommitDate = _ref.onCommitDate,
23
19
  onChange = _ref.onChange;
24
20
  var datePickerErrorClass = valueError ? classes.datePickerError : undefined;
25
21
  var datePickerSuccessClass = valueSuccess ? classes.datePickerSuccess : undefined;
26
- var handleToggle = function handleToggle(opened, event) {
27
- if (disabled || readOnly) {
28
- return;
29
- }
30
- var isCalendarOpen = event.target === (inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) ? true : opened;
31
- if (onToggle) {
32
- return onToggle(isCalendarOpen, event);
33
- }
34
- setIsInnerOpen(isCalendarOpen);
35
- };
36
22
  var handleChangeValue = function handleChangeValue(event) {
37
23
  if (disabled || readOnly) {
38
24
  return;
@@ -55,24 +41,14 @@ export var useDatePicker = function useDatePicker(_ref) {
55
41
  });
56
42
  return;
57
43
  }
58
-
59
- /**
60
- * NOTE: если в формате даты есть месяц в полном названии или сокращенном,
61
- * нужно дополнительно проводить валидацию на полноту введенной даты.
62
- * Иначе dayjs циклически будет пытаться отформатировать некорректную дату.
63
- */
64
- var hasMonthFullName = /M{3,4}/g.test(format);
65
- var isValidMonth;
66
- var isLengthEqual;
67
- if (hasMonthFullName) {
68
- customDayjs.locale(lang);
69
- var firstIndexOfMonth = format.indexOf('M');
70
- var lastIndexOfMonth = newValue.indexOf(dateFormatDelimiter(), firstIndexOfMonth);
71
- var fullMonthName = !lastIndexOfMonth ? newValue.slice(firstIndexOfMonth) : newValue.slice(firstIndexOfMonth, lastIndexOfMonth);
72
- var monthFormatting = format.replace(/[^M]/g, '');
73
- isValidMonth = customDayjs("01 ".concat(fullMonthName, " 1970"), "DD ".concat(monthFormatting, " YYYY"), true).isValid();
74
- isLengthEqual = format.length - monthFormatting.length === newValue.length - fullMonthName.length;
75
- }
44
+ var _validateDateWithFull = validateDateWithFullMonth({
45
+ currentValue: newValue,
46
+ format: format,
47
+ lang: lang
48
+ }),
49
+ hasMonthFullName = _validateDateWithFull.hasMonthFullName,
50
+ isValidMonth = _validateDateWithFull.isValidMonth,
51
+ isLengthEqual = _validateDateWithFull.isLengthEqual;
76
52
  if (!hasMonthFullName && (newValue === null || newValue === void 0 ? void 0 : newValue.length) === (format === null || format === void 0 ? void 0 : format.length) || isValidMonth && isLengthEqual) {
77
53
  setCalendarValue(formatCalendarValue(newValue, format, lang));
78
54
  }
@@ -102,20 +78,18 @@ export var useDatePicker = function useDatePicker(_ref) {
102
78
  return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true);
103
79
  }
104
80
  if (isCalendarValue) {
105
- setCalendarValue(formatCalendarValue(date, format, lang));
106
- setInputValue(formatInputValue({
81
+ var _formattedInputValue = formatInputValue({
107
82
  value: date,
108
83
  format: format,
109
84
  lang: lang
110
- }));
85
+ });
86
+ setCalendarValue(formatCalendarValue(date, format, lang));
87
+ setInputValue(_formattedInputValue);
111
88
  onCommitDate === null || onCommitDate === void 0 || onCommitDate(date, false, true, dateInfo);
89
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, _formattedInputValue);
112
90
  onChange === null || onChange === void 0 || onChange({
113
91
  target: {
114
- value: formatInputValue({
115
- value: date,
116
- format: format,
117
- lang: lang
118
- }),
92
+ value: _formattedInputValue,
119
93
  name: name
120
94
  }
121
95
  });
@@ -126,19 +100,18 @@ export var useDatePicker = function useDatePicker(_ref) {
126
100
  newDate = _getDateFromFormat.value,
127
101
  isError = _getDateFromFormat.isError,
128
102
  isSuccess = _getDateFromFormat.isSuccess;
129
- setCalendarValue(formatCalendarValue(newDate, format, lang));
130
- setInputValue(formatInputValue({
103
+ var formattedInputValue = formatInputValue({
131
104
  value: newDate,
132
105
  format: format,
133
106
  lang: lang
134
- }));
107
+ });
108
+ setCalendarValue(formatCalendarValue(newDate, format, lang));
109
+ setInputValue(formattedInputValue);
135
110
  onCommitDate === null || onCommitDate === void 0 || onCommitDate(newDate, isError, isSuccess);
111
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, formattedInputValue);
136
112
  onChange === null || onChange === void 0 || onChange({
137
113
  target: {
138
- value: formatInputValue({
139
- value: date,
140
- format: format
141
- }),
114
+ value: formattedInputValue,
142
115
  name: name
143
116
  }
144
117
  });
@@ -146,7 +119,6 @@ export var useDatePicker = function useDatePicker(_ref) {
146
119
  return {
147
120
  datePickerErrorClass: datePickerErrorClass,
148
121
  datePickerSuccessClass: datePickerSuccessClass,
149
- handleToggle: handleToggle,
150
122
  handleChangeValue: handleChangeValue,
151
123
  handleCommitDate: handleCommitDate
152
124
  };
@@ -1,8 +1,10 @@
1
1
  export var keys = {
2
- Space: 'Space'
2
+ Space: 'Space',
3
+ Escape: 'Escape'
3
4
  };
4
5
  export var useKeyNavigation = function useKeyNavigation(_ref) {
5
6
  var isCalendarOpen = _ref.isCalendarOpen,
7
+ closeOnEsc = _ref.closeOnEsc,
6
8
  onToggle = _ref.onToggle;
7
9
  var onKeyDown = function onKeyDown(event) {
8
10
  switch (event.code) {
@@ -14,6 +16,14 @@ export var useKeyNavigation = function useKeyNavigation(_ref) {
14
16
  }
15
17
  break;
16
18
  }
19
+ case keys.Escape:
20
+ {
21
+ if (isCalendarOpen && closeOnEsc) {
22
+ event.preventDefault();
23
+ onToggle(false, event);
24
+ }
25
+ break;
26
+ }
17
27
  default:
18
28
  {
19
29
  break;
@@ -78,4 +78,34 @@ export var getMaskedDateOnInput = function getMaskedDateOnInput(value, format, d
78
78
  return value + delimiter;
79
79
  }
80
80
  return value;
81
+ };
82
+ export var validateDateWithFullMonth = function validateDateWithFullMonth(_ref2) {
83
+ var currentValue = _ref2.currentValue,
84
+ format = _ref2.format,
85
+ lang = _ref2.lang;
86
+ /**
87
+ * NOTE: если в формате даты есть месяц в полном названии или сокращенном,
88
+ * нужно дополнительно проводить валидацию на полноту введенной даты.
89
+ * Иначе dayjs циклически будет пытаться отформатировать некорректную дату.
90
+ */
91
+ var hasMonthFullName = /M{3,4}/g.test(format);
92
+ if (!hasMonthFullName) {
93
+ return {
94
+ hasMonthFullName: hasMonthFullName,
95
+ isValidMonth: false,
96
+ isLengthEqual: false
97
+ };
98
+ }
99
+ customDayjs.locale(lang);
100
+ var firstIndexOfMonth = format.indexOf('M');
101
+ var lastIndexOfMonth = currentValue.indexOf(getDateFormatDelimiter(format), firstIndexOfMonth);
102
+ var fullMonthName = !lastIndexOfMonth ? currentValue.slice(firstIndexOfMonth) : currentValue.slice(firstIndexOfMonth, lastIndexOfMonth);
103
+ var monthFormatting = format.replace(/[^M]/g, '');
104
+ var isValidMonth = customDayjs("01 ".concat(fullMonthName, " 1970"), "DD ".concat(monthFormatting, " YYYY"), true).isValid();
105
+ var isLengthEqual = format.length - monthFormatting.length === currentValue.length - fullMonthName.length;
106
+ return {
107
+ hasMonthFullName: hasMonthFullName,
108
+ isValidMonth: isValidMonth,
109
+ isLengthEqual: isLengthEqual
110
+ };
81
111
  };
@@ -139,6 +139,7 @@ export const Default: StoryObj<StoryPropsDefault> = {
139
139
  valueSuccess: false,
140
140
  lang: 'ru',
141
141
  format: 'DD.MM.YYYY',
142
+ closeOnEsc: true,
142
143
  },
143
144
  render: (args) => <StoryDefault {...args} />,
144
145
  };
@@ -269,6 +270,7 @@ export const Range: StoryObj<StoryPropsRange> = {
269
270
  size: 'l',
270
271
  view: 'default',
271
272
  isDoubleCalendar: false,
273
+ closeOnEsc: true,
272
274
  dividerVariant: 'dash',
273
275
  min: new Date(2024, 1, 1),
274
276
  max: new Date(2024, 12, 29),
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "module": "es/index.js",
3
3
  "main": "cjs/index.js",
4
- "types": "../types/index.d.ts",
5
- "sideEffects": false
4
+ "types": "../types/index.d.ts"
6
5
  }
@@ -1,4 +1,4 @@
1
- import type { Dispatch, MutableRefObject, SetStateAction, SyntheticEvent, ChangeEvent } from 'react';
1
+ import type { Dispatch, SetStateAction, ChangeEvent } from 'react';
2
2
  import type { CalendarStateType } from '../Calendar';
3
3
  import type { DateInfo, DisabledDay, EventDay } from '../Calendar/Calendar.types';
4
4
  import type { Langs } from './utils/dateHelper';
@@ -87,7 +87,6 @@ export declare type UseDatePickerProps = {
87
87
  currentValue: string;
88
88
  setInputValue: Dispatch<SetStateAction<string>>;
89
89
  setCalendarValue: Dispatch<SetStateAction<Date | undefined>>;
90
- setIsInnerOpen: Dispatch<SetStateAction<boolean>>;
91
90
  dateFormatDelimiter: () => string;
92
91
  format?: string;
93
92
  lang?: Langs;
@@ -96,10 +95,8 @@ export declare type UseDatePickerProps = {
96
95
  maskWithFormat?: boolean;
97
96
  valueError?: boolean;
98
97
  valueSuccess?: boolean;
99
- inputRef?: MutableRefObject<HTMLInputElement | null>;
100
98
  name?: string;
101
- onToggle?: (isOpen: boolean, event: SyntheticEvent | Event) => void;
102
- onChangeValue?: (event: ChangeEvent<HTMLInputElement>, value?: string) => void;
99
+ onChangeValue?: (event: ChangeEvent<HTMLInputElement> | null, value?: string) => void;
103
100
  onCommitDate?: (value: Date | string, error?: boolean, success?: boolean, dateInfo?: DateInfo) => void;
104
101
  onChange?: (event: {
105
102
  target: {
@@ -108,4 +105,9 @@ export declare type UseDatePickerProps = {
108
105
  };
109
106
  }) => void;
110
107
  };
108
+ export declare type ValidateDateArgs = {
109
+ currentValue: string;
110
+ format: string;
111
+ lang?: Langs;
112
+ };
111
113
  //# sourceMappingURL=DatePickerBase.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerBase.types.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePickerBase.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerBase.types.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePickerBase.types.ts"],"names":[],"mappings":"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"}