@consta/uikit 3.15.1 → 3.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/Attach/package.json +1 -1
  2. package/Attachment/package.json +1 -1
  3. package/Avatar/package.json +1 -1
  4. package/Badge/package.json +1 -1
  5. package/BasicSelectDeprecated/package.json +1 -1
  6. package/Breadcrumbs/package.json +1 -1
  7. package/BreadcrumbsCanary/package.json +1 -1
  8. package/Button/package.json +1 -1
  9. package/CHANGELOG.md +26 -8
  10. package/Calendar/package.json +1 -1
  11. package/Card/package.json +1 -1
  12. package/Checkbox/package.json +1 -1
  13. package/CheckboxGroup/package.json +1 -1
  14. package/ChoiceGroup/package.json +1 -1
  15. package/Collapse/package.json +1 -1
  16. package/CollapseGroup/package.json +1 -1
  17. package/Combobox/package.json +1 -1
  18. package/ComboboxDeprecated/package.json +1 -1
  19. package/ContextMenu/package.json +1 -1
  20. package/DatePickerCanary/package.json +1 -1
  21. package/DateTimeCanary/package.json +1 -1
  22. package/DragNDropField/package.json +1 -1
  23. package/EventInterceptor/package.json +1 -1
  24. package/FieldCaption/package.json +1 -1
  25. package/FieldLabel/package.json +1 -1
  26. package/File/package.json +1 -1
  27. package/FileField/package.json +1 -1
  28. package/FileIcon/package.json +1 -1
  29. package/FileIconAvi/package.json +1 -1
  30. package/FileIconBmp/package.json +1 -1
  31. package/FileIconCsv/package.json +1 -1
  32. package/FileIconDoc/package.json +1 -1
  33. package/FileIconExe/package.json +1 -1
  34. package/FileIconGif/package.json +1 -1
  35. package/FileIconJpg/package.json +1 -1
  36. package/FileIconJson/package.json +1 -1
  37. package/FileIconLoading/package.json +1 -1
  38. package/FileIconMov/package.json +1 -1
  39. package/FileIconMp3/package.json +1 -1
  40. package/FileIconMp4/package.json +1 -1
  41. package/FileIconPdf/package.json +1 -1
  42. package/FileIconPng/package.json +1 -1
  43. package/FileIconPtt/package.json +1 -1
  44. package/FileIconRar/package.json +1 -1
  45. package/FileIconRtf/package.json +1 -1
  46. package/FileIconTiff/package.json +1 -1
  47. package/FileIconTxt/package.json +1 -1
  48. package/FileIconUndefined/package.json +1 -1
  49. package/FileIconWav/package.json +1 -1
  50. package/FileIconXls/package.json +1 -1
  51. package/FileIconZip/package.json +1 -1
  52. package/Grid/package.json +1 -1
  53. package/Header/package.json +1 -1
  54. package/Icon/package.json +1 -1
  55. package/IconAdd/package.json +1 -1
  56. package/IconAddToComparison/package.json +1 -1
  57. package/IconAlert/package.json +1 -1
  58. package/IconAlignBlocksLeft/package.json +1 -1
  59. package/IconAlignBlocksRight/package.json +1 -1
  60. package/IconAlignCenter/package.json +1 -1
  61. package/IconAlignJustify/package.json +1 -1
  62. package/IconAlignLeft/package.json +1 -1
  63. package/IconAlignRight/package.json +1 -1
  64. package/IconAllDone/package.json +1 -1
  65. package/IconArrowDown/package.json +1 -1
  66. package/IconArrowLeft/package.json +1 -1
  67. package/IconArrowRight/package.json +1 -1
  68. package/IconArrowUp/package.json +1 -1
  69. package/IconArtBrush/package.json +1 -1
  70. package/IconAttach/package.json +1 -1
  71. package/IconBackward/package.json +1 -1
  72. package/IconBag/package.json +1 -1
  73. package/IconBarrier/package.json +1 -1
  74. package/IconBento/package.json +1 -1
  75. package/IconBold/package.json +1 -1
  76. package/IconBook/package.json +1 -1
  77. package/IconBookmarkFilled/package.json +1 -1
  78. package/IconBookmarkStroked/package.json +1 -1
  79. package/IconCalculator/package.json +1 -1
  80. package/IconCalendar/package.json +1 -1
  81. package/IconCamera/package.json +1 -1
  82. package/IconCancel/package.json +1 -1
  83. package/IconCards/package.json +1 -1
  84. package/IconChat/package.json +1 -1
  85. package/IconCheck/package.json +1 -1
  86. package/IconClose/package.json +1 -1
  87. package/IconCollapse/package.json +1 -1
  88. package/IconColorFill/package.json +1 -1
  89. package/IconColorText/package.json +1 -1
  90. package/IconColumns/package.json +1 -1
  91. package/IconComment/package.json +1 -1
  92. package/IconConnection/package.json +1 -1
  93. package/IconCopy/package.json +1 -1
  94. package/IconCrown/package.json +1 -1
  95. package/IconCursorMouse/package.json +1 -1
  96. package/IconDataNull/package.json +1 -1
  97. package/IconDiamond/package.json +1 -1
  98. package/IconDinosaur/package.json +1 -1
  99. package/IconDisconnection/package.json +1 -1
  100. package/IconDocAdd/package.json +1 -1
  101. package/IconDocBlank/package.json +1 -1
  102. package/IconDocDelete/package.json +1 -1
  103. package/IconDocExport/package.json +1 -1
  104. package/IconDocFilled/package.json +1 -1
  105. package/IconDown/package.json +1 -1
  106. package/IconDownload/package.json +1 -1
  107. package/IconDrag/package.json +1 -1
  108. package/IconDraggable/package.json +1 -1
  109. package/IconDrillingRig/package.json +1 -1
  110. package/IconDrop/package.json +1 -1
  111. package/IconEdit/package.json +1 -1
  112. package/IconExit/package.json +1 -1
  113. package/IconExpand/package.json +1 -1
  114. package/IconEye/package.json +1 -1
  115. package/IconEyeClose/package.json +1 -1
  116. package/IconFavorite/package.json +1 -1
  117. package/IconFilter/package.json +1 -1
  118. package/IconFitToDefault/package.json +1 -1
  119. package/IconFlagFilled/package.json +1 -1
  120. package/IconFlagStroked/package.json +1 -1
  121. package/IconFolders/package.json +1 -1
  122. package/IconForward/package.json +1 -1
  123. package/IconFunnel/package.json +1 -1
  124. package/IconGas/package.json +1 -1
  125. package/IconGeo/package.json +1 -1
  126. package/IconGrouping/package.json +1 -1
  127. package/IconHamburger/package.json +1 -1
  128. package/IconHand/package.json +1 -1
  129. package/IconHealth/package.json +1 -1
  130. package/IconHome/package.json +1 -1
  131. package/IconInComparison/package.json +1 -1
  132. package/IconInfo/package.json +1 -1
  133. package/IconIntroduction/package.json +1 -1
  134. package/IconIpad/package.json +1 -1
  135. package/IconItalic/package.json +1 -1
  136. package/IconKebab/package.json +1 -1
  137. package/IconLaptop/package.json +1 -1
  138. package/IconLayers/package.json +1 -1
  139. package/IconLeaf/package.json +1 -1
  140. package/IconLightningBolt/package.json +1 -1
  141. package/IconLineAndBarChart/package.json +1 -1
  142. package/IconLink/package.json +1 -1
  143. package/IconList/package.json +1 -1
  144. package/IconListNumbered/package.json +1 -1
  145. package/IconLock/package.json +1 -1
  146. package/IconLogicalElement/package.json +1 -1
  147. package/IconMBU/package.json +1 -1
  148. package/IconMGRP/package.json +1 -1
  149. package/IconMLSP/package.json +1 -1
  150. package/IconMMP/package.json +1 -1
  151. package/IconMail/package.json +1 -1
  152. package/IconMap/package.json +1 -1
  153. package/IconMaxHeight/package.json +1 -1
  154. package/IconMaxWidth/package.json +1 -1
  155. package/IconMeatball/package.json +1 -1
  156. package/IconMic/package.json +1 -1
  157. package/IconMolecules/package.json +1 -1
  158. package/IconMoon/package.json +1 -1
  159. package/IconNodeEnd/package.json +1 -1
  160. package/IconNodeStart/package.json +1 -1
  161. package/IconNodeStep/package.json +1 -1
  162. package/IconNodes/package.json +1 -1
  163. package/IconOpenInNew/package.json +1 -1
  164. package/IconOperators/package.json +1 -1
  165. package/IconPanelBottom/package.json +1 -1
  166. package/IconPanelLeft/package.json +1 -1
  167. package/IconPanelRight/package.json +1 -1
  168. package/IconPanelTop/package.json +1 -1
  169. package/IconPaste/package.json +1 -1
  170. package/IconPause/package.json +1 -1
  171. package/IconPhone/package.json +1 -1
  172. package/IconPhoto/package.json +1 -1
  173. package/IconPlay/package.json +1 -1
  174. package/IconPressure/package.json +1 -1
  175. package/IconProcessing/package.json +1 -1
  176. package/IconQuestion/package.json +1 -1
  177. package/IconQuote/package.json +1 -1
  178. package/IconRUO/package.json +1 -1
  179. package/IconRUS/package.json +1 -1
  180. package/IconRecord/package.json +1 -1
  181. package/IconRemove/package.json +1 -1
  182. package/IconRemoveFromComparison/package.json +1 -1
  183. package/IconReply/package.json +1 -1
  184. package/IconResize/package.json +1 -1
  185. package/IconRestart/package.json +1 -1
  186. package/IconRevert/package.json +1 -1
  187. package/IconRing/package.json +1 -1
  188. package/IconRouble/package.json +1 -1
  189. package/IconRuler/package.json +1 -1
  190. package/IconSave/package.json +1 -1
  191. package/IconScreen/package.json +1 -1
  192. package/IconSearch/package.json +1 -1
  193. package/IconSelect/package.json +1 -1
  194. package/IconSelectOpen/package.json +1 -1
  195. package/IconSendMessage/package.json +1 -1
  196. package/IconSettings/package.json +1 -1
  197. package/IconShape/package.json +1 -1
  198. package/IconShuffle/package.json +1 -1
  199. package/IconSmile/package.json +1 -1
  200. package/IconSortDown/package.json +1 -1
  201. package/IconSortDownCenter/package.json +1 -1
  202. package/IconSortUp/package.json +1 -1
  203. package/IconSortUpCenter/package.json +1 -1
  204. package/IconStop/package.json +1 -1
  205. package/IconStorage/package.json +1 -1
  206. package/IconStrikethrough/package.json +1 -1
  207. package/IconSun/package.json +1 -1
  208. package/IconTable/package.json +1 -1
  209. package/IconTarget/package.json +1 -1
  210. package/IconTeam/package.json +1 -1
  211. package/IconTechResponse/package.json +1 -1
  212. package/IconTest/package.json +1 -1
  213. package/IconThumbUp/package.json +1 -1
  214. package/IconTie/package.json +1 -1
  215. package/IconTop/package.json +1 -1
  216. package/IconTrash/package.json +1 -1
  217. package/IconType/package.json +1 -1
  218. package/IconUnderline/package.json +1 -1
  219. package/IconUnlock/package.json +1 -1
  220. package/IconUnsort/package.json +1 -1
  221. package/IconUnsortCenter/package.json +1 -1
  222. package/IconUpload/package.json +1 -1
  223. package/IconUser/package.json +1 -1
  224. package/IconVZD/package.json +1 -1
  225. package/IconVideo/package.json +1 -1
  226. package/IconWarning/package.json +1 -1
  227. package/IconWatch/package.json +1 -1
  228. package/IconWideScreen/package.json +1 -1
  229. package/IconWorld/package.json +1 -1
  230. package/Informer/package.json +1 -1
  231. package/LayoutCanary/package.json +1 -1
  232. package/Loader/package.json +1 -1
  233. package/MixCard/package.json +1 -1
  234. package/MixFocus/package.json +1 -1
  235. package/MixPopoverAnimate/es.js +1 -0
  236. package/MixPopoverAnimate/index.d.ts +1 -0
  237. package/MixPopoverAnimate/index.js +4 -0
  238. package/{MixDropdownAnimate → MixPopoverAnimate}/package.json +2 -2
  239. package/MixSpace/package.json +1 -1
  240. package/MixVisuallyHidden/package.json +1 -1
  241. package/Modal/package.json +1 -1
  242. package/MultiComboboxDeprecated/package.json +1 -1
  243. package/Pagination/package.json +1 -1
  244. package/Popover/package.json +1 -1
  245. package/PortalWithTheme/package.json +1 -1
  246. package/ProgressSpin/package.json +1 -1
  247. package/ProgressStepBarCanary/package.json +1 -1
  248. package/Radio/package.json +1 -1
  249. package/RadioGroup/package.json +1 -1
  250. package/Responses/package.json +1 -1
  251. package/Responses403/package.json +1 -1
  252. package/Responses404/package.json +1 -1
  253. package/Responses500/package.json +1 -1
  254. package/Responses503/package.json +1 -1
  255. package/ResponsesConnectionError/package.json +1 -1
  256. package/ResponsesDeleted/package.json +1 -1
  257. package/ResponsesEmptyBox/package.json +1 -1
  258. package/ResponsesEmptyPockets/package.json +1 -1
  259. package/ResponsesExit/package.json +1 -1
  260. package/ResponsesImage/package.json +1 -1
  261. package/ResponsesImage403/package.json +1 -1
  262. package/ResponsesImage404/package.json +1 -1
  263. package/ResponsesImage500/package.json +1 -1
  264. package/ResponsesImage503/package.json +1 -1
  265. package/ResponsesImageConnectionError/package.json +1 -1
  266. package/ResponsesImageDeleted/package.json +1 -1
  267. package/ResponsesImageEmptyBox/package.json +1 -1
  268. package/ResponsesImageEmptyPockets/package.json +1 -1
  269. package/ResponsesImageNothingFound/package.json +1 -1
  270. package/ResponsesImageSuccess/package.json +1 -1
  271. package/ResponsesNothingFound/package.json +1 -1
  272. package/ResponsesSuccess/package.json +1 -1
  273. package/Select/package.json +1 -1
  274. package/Sidebar/package.json +1 -1
  275. package/Skeleton/package.json +1 -1
  276. package/SliderCanary/package.json +1 -1
  277. package/SnackBar/package.json +1 -1
  278. package/Steps/package.json +1 -1
  279. package/Switch/package.json +1 -1
  280. package/SwitchGroup/package.json +1 -1
  281. package/Table/package.json +1 -1
  282. package/Tabs/package.json +1 -1
  283. package/Tag/package.json +1 -1
  284. package/TagBase/package.json +1 -1
  285. package/Text/package.json +1 -1
  286. package/TextField/package.json +1 -1
  287. package/Theme/package.json +1 -1
  288. package/ThemeToggler/package.json +1 -1
  289. package/Timer/package.json +1 -1
  290. package/Tooltip/package.json +1 -1
  291. package/User/package.json +1 -1
  292. package/UserSelect/package.json +1 -1
  293. package/UserSelectDeprecated/package.json +1 -1
  294. package/__internal__/cjs-src/components/BreadcrumbsCanary/BreadcrumbsMore/BreadcrumbsMore.d.ts +6 -0
  295. package/__internal__/cjs-src/components/BreadcrumbsCanary/BreadcrumbsMore/BreadcrumbsMore.js +17 -4
  296. package/__internal__/cjs-src/components/Combobox/Combobox.js +4 -4
  297. package/__internal__/cjs-src/components/Combobox/helpers.d.ts +2 -0
  298. package/__internal__/cjs-src/components/ContextMenu/ContextMenu.js +1 -1
  299. package/__internal__/cjs-src/components/ContextMenu/helpers.d.ts +1 -0
  300. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerCanary.js +3 -1
  301. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerDropdown/DatePickerDropdown.css +0 -49
  302. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerDropdown/DatePickerDropdown.d.ts +1 -0
  303. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerDropdown/DatePickerDropdown.js +11 -6
  304. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.d.ts +0 -1
  305. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js +9 -13
  306. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateRange/helpers.d.ts +0 -3
  307. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateRange/helpers.js +0 -33
  308. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.d.ts +83 -0
  309. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js +98 -0
  310. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/helpers.d.ts +30 -0
  311. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/helpers.js +2 -0
  312. package/__internal__/cjs-src/components/DatePickerCanary/{DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.css → DatePickerMixRangeField/DatePickerMixRangeField.css} +16 -16
  313. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerMixRangeField/DatePickerMixRangeField.d.ts +2 -0
  314. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerMixRangeField/DatePickerMixRangeField.js +6 -0
  315. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeDate/DatePickerTypeDate.js +1 -1
  316. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeDateRange/DatePickerTypeDateRange.js +31 -34
  317. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeDateTime/DatePickerTypeDateTime.js +4 -5
  318. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.d.ts +2 -0
  319. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +95 -0
  320. package/__internal__/cjs-src/components/DatePickerCanary/helpers.d.ts +10 -7
  321. package/__internal__/cjs-src/components/DatePickerCanary/helpers.js +37 -2
  322. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeTypeDateTime/DateTimeTypeDateTime.js +7 -7
  323. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeTypeDateTime/useOnChange.d.ts +3 -2
  324. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeTypeDateTime/useOnChange.js +18 -4
  325. package/__internal__/cjs-src/components/DateTimeCanary/helpers/types.d.ts +3 -1
  326. package/__internal__/cjs-src/components/EventInterceptor/eventInterceptorMap.d.ts +1 -1
  327. package/__internal__/cjs-src/components/EventInterceptor/propsHandlers/useTextFieldEventsHandler.d.ts +1 -1
  328. package/__internal__/cjs-src/components/Select/Select.js +4 -4
  329. package/__internal__/cjs-src/components/Select/helpers.d.ts +2 -0
  330. package/__internal__/cjs-src/components/SelectComponents/SelectDropdown/SelectDropdown.css +2 -1
  331. package/__internal__/cjs-src/components/SelectComponents/SelectDropdown/SelectDropdown.d.ts +2 -0
  332. package/__internal__/cjs-src/components/SelectComponents/SelectDropdown/SelectDropdown.js +3 -2
  333. package/__internal__/cjs-src/components/SelectComponents/helpers.d.ts +1 -0
  334. package/__internal__/cjs-src/components/SelectComponents/helpers.js +2 -1
  335. package/__internal__/cjs-src/components/SliderCanary/SliderCanary.js +5 -3
  336. package/__internal__/cjs-src/components/SliderCanary/SliderInput/SliderInput.d.ts +1 -1
  337. package/__internal__/cjs-src/components/SliderCanary/SliderInput/SliderInput.js +1 -1
  338. package/__internal__/cjs-src/components/SliderCanary/useSlider/helper.js +4 -11
  339. package/__internal__/cjs-src/components/SliderCanary/useSlider/useSlider.js +7 -15
  340. package/__internal__/cjs-src/components/SliderCanary/useSliderStationing.js +4 -10
  341. package/__internal__/cjs-src/components/TextField/TextField.js +28 -16
  342. package/__internal__/cjs-src/components/TextField/helpers.d.ts +17 -2
  343. package/__internal__/cjs-src/components/TextField/helpers.js +52 -1
  344. package/__internal__/cjs-src/components/UserSelect/UserSelect.js +4 -4
  345. package/__internal__/cjs-src/components/UserSelect/helpers.d.ts +2 -0
  346. package/__internal__/cjs-src/hooks/useHideElementsInLine/useHideElementsInLine.d.ts +1 -1
  347. package/__internal__/cjs-src/hooks/useRefs/useRefs.d.ts +1 -1
  348. package/__internal__/cjs-src/hooks/useSelect/useSelect.d.ts +1 -0
  349. package/__internal__/cjs-src/hooks/useSelect/useSelect.js +4 -2
  350. package/__internal__/cjs-src/hooks/useSortSteps/useSortSteps.d.ts +7 -0
  351. package/__internal__/cjs-src/hooks/useSortSteps/useSortSteps.js +28 -0
  352. package/__internal__/cjs-src/hooks/useTimer/useTimer.js +6 -1
  353. package/__internal__/cjs-src/mixs/MixPopoverAnimate/MixPopoverAnimate.css +76 -0
  354. package/__internal__/cjs-src/mixs/MixPopoverAnimate/MixPopoverAnimate.d.ts +12 -0
  355. package/__internal__/cjs-src/mixs/MixPopoverAnimate/MixPopoverAnimate.js +10 -0
  356. package/__internal__/src/components/BreadcrumbsCanary/BreadcrumbsMore/BreadcrumbsMore.d.ts +6 -0
  357. package/__internal__/src/components/BreadcrumbsCanary/BreadcrumbsMore/BreadcrumbsMore.js +18 -5
  358. package/__internal__/src/components/Combobox/Combobox.js +5 -5
  359. package/__internal__/src/components/Combobox/helpers.d.ts +2 -0
  360. package/__internal__/src/components/ContextMenu/ContextMenu.js +1 -1
  361. package/__internal__/src/components/ContextMenu/helpers.d.ts +1 -0
  362. package/__internal__/src/components/DatePickerCanary/DatePickerCanary.js +3 -1
  363. package/__internal__/src/components/DatePickerCanary/DatePickerDropdown/DatePickerDropdown.css +0 -49
  364. package/__internal__/src/components/DatePickerCanary/DatePickerDropdown/DatePickerDropdown.d.ts +1 -0
  365. package/__internal__/src/components/DatePickerCanary/DatePickerDropdown/DatePickerDropdown.js +14 -9
  366. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.d.ts +0 -1
  367. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js +10 -14
  368. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateRange/helpers.d.ts +0 -3
  369. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateRange/helpers.js +0 -32
  370. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.d.ts +83 -0
  371. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js +95 -0
  372. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/helpers.d.ts +30 -0
  373. package/__internal__/src/components/DatePickerCanary/DatePickerFieldTypeDateTimeRange/helpers.js +0 -0
  374. package/__internal__/src/components/DatePickerCanary/{DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.css → DatePickerMixRangeField/DatePickerMixRangeField.css} +16 -16
  375. package/__internal__/src/components/DatePickerCanary/DatePickerMixRangeField/DatePickerMixRangeField.d.ts +2 -0
  376. package/__internal__/src/components/DatePickerCanary/DatePickerMixRangeField/DatePickerMixRangeField.js +3 -0
  377. package/__internal__/src/components/DatePickerCanary/DatePickerTypeDate/DatePickerTypeDate.js +1 -1
  378. package/__internal__/src/components/DatePickerCanary/DatePickerTypeDateRange/DatePickerTypeDateRange.js +31 -34
  379. package/__internal__/src/components/DatePickerCanary/DatePickerTypeDateTime/DatePickerTypeDateTime.js +4 -5
  380. package/__internal__/src/components/DatePickerCanary/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.d.ts +2 -0
  381. package/__internal__/src/components/DatePickerCanary/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +92 -0
  382. package/__internal__/src/components/DatePickerCanary/helpers.d.ts +10 -7
  383. package/__internal__/src/components/DatePickerCanary/helpers.js +36 -1
  384. package/__internal__/src/components/DateTimeCanary/DateTimeTypeDateTime/DateTimeTypeDateTime.js +7 -7
  385. package/__internal__/src/components/DateTimeCanary/DateTimeTypeDateTime/useOnChange.d.ts +3 -2
  386. package/__internal__/src/components/DateTimeCanary/DateTimeTypeDateTime/useOnChange.js +18 -4
  387. package/__internal__/src/components/DateTimeCanary/helpers/types.d.ts +3 -1
  388. package/__internal__/src/components/EventInterceptor/eventInterceptorMap.d.ts +1 -1
  389. package/__internal__/src/components/EventInterceptor/propsHandlers/useTextFieldEventsHandler.d.ts +1 -1
  390. package/__internal__/src/components/Select/Select.js +5 -5
  391. package/__internal__/src/components/Select/helpers.d.ts +2 -0
  392. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.css +2 -1
  393. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.d.ts +2 -0
  394. package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js +3 -2
  395. package/__internal__/src/components/SelectComponents/helpers.d.ts +1 -0
  396. package/__internal__/src/components/SelectComponents/helpers.js +1 -0
  397. package/__internal__/src/components/SliderCanary/SliderCanary.js +5 -3
  398. package/__internal__/src/components/SliderCanary/SliderInput/SliderInput.d.ts +1 -1
  399. package/__internal__/src/components/SliderCanary/SliderInput/SliderInput.js +1 -1
  400. package/__internal__/src/components/SliderCanary/useSlider/helper.js +5 -12
  401. package/__internal__/src/components/SliderCanary/useSlider/useSlider.js +7 -15
  402. package/__internal__/src/components/SliderCanary/useSliderStationing.js +4 -10
  403. package/__internal__/src/components/TextField/TextField.js +29 -17
  404. package/__internal__/src/components/TextField/helpers.d.ts +17 -2
  405. package/__internal__/src/components/TextField/helpers.js +51 -0
  406. package/__internal__/src/components/UserSelect/UserSelect.js +5 -5
  407. package/__internal__/src/components/UserSelect/helpers.d.ts +2 -0
  408. package/__internal__/src/hooks/useHideElementsInLine/useHideElementsInLine.d.ts +1 -1
  409. package/__internal__/src/hooks/useRefs/useRefs.d.ts +1 -1
  410. package/__internal__/src/hooks/useSelect/useSelect.d.ts +1 -0
  411. package/__internal__/src/hooks/useSelect/useSelect.js +4 -2
  412. package/__internal__/src/hooks/useSortSteps/useSortSteps.d.ts +7 -0
  413. package/__internal__/src/hooks/useSortSteps/useSortSteps.js +25 -0
  414. package/__internal__/src/hooks/useTimer/useTimer.js +6 -1
  415. package/__internal__/src/mixs/MixPopoverAnimate/MixPopoverAnimate.css +76 -0
  416. package/__internal__/src/mixs/MixPopoverAnimate/MixPopoverAnimate.d.ts +12 -0
  417. package/__internal__/src/mixs/MixPopoverAnimate/MixPopoverAnimate.js +7 -0
  418. package/createIcon/package.json +1 -1
  419. package/createResponsesImage/package.json +1 -1
  420. package/package.json +3 -2
  421. package/useBreakpoints/package.json +1 -1
  422. package/useChoiceGroup/package.json +1 -1
  423. package/useChoiceGroupIndexed/package.json +1 -1
  424. package/useClickOutside/package.json +1 -1
  425. package/useComponentSize/package.json +1 -1
  426. package/useDebounce/package.json +1 -1
  427. package/useFlag/package.json +1 -1
  428. package/useForkRef/package.json +1 -1
  429. package/useGlobalKeys/package.json +1 -1
  430. package/useHideElementsInLine/package.json +1 -1
  431. package/useKeys/package.json +1 -1
  432. package/useMutableRef/package.json +1 -1
  433. package/useOverflow/package.json +1 -1
  434. package/usePrevious/package.json +1 -1
  435. package/useRefs/package.json +1 -1
  436. package/useResizeObserved/package.json +1 -1
  437. package/useScrollElements/package.json +1 -1
  438. package/useScrollPosition/package.json +1 -1
  439. package/useSelect/package.json +1 -1
  440. package/useSortSteps/es.js +1 -0
  441. package/useSortSteps/index.d.ts +1 -0
  442. package/useSortSteps/index.js +4 -0
  443. package/useSortSteps/package.json +9 -0
  444. package/useThemeVars/package.json +1 -1
  445. package/useTimer/package.json +1 -1
  446. package/withTooltip/package.json +1 -1
  447. package/MixDropdownAnimate/es.js +0 -1
  448. package/MixDropdownAnimate/index.d.ts +0 -1
  449. package/MixDropdownAnimate/index.js +0 -4
  450. package/__internal__/cjs-src/mixs/MixDropdownAnimate/MixDropdownAnimate.css +0 -37
  451. package/__internal__/cjs-src/mixs/MixDropdownAnimate/MixDropdownAnimate.d.ts +0 -4
  452. package/__internal__/cjs-src/mixs/MixDropdownAnimate/MixDropdownAnimate.js +0 -9
  453. package/__internal__/src/mixs/MixDropdownAnimate/MixDropdownAnimate.css +0 -37
  454. package/__internal__/src/mixs/MixDropdownAnimate/MixDropdownAnimate.d.ts +0 -4
  455. package/__internal__/src/mixs/MixDropdownAnimate/MixDropdownAnimate.js +0 -6
@@ -42,14 +42,13 @@ export var DatePickerTypeDateTime = forwardRef(function (props, ref) {
42
42
  }
43
43
  }
44
44
  }, [props.value]);
45
- var handleClose = function () {
46
- setCalendarVisible.off();
47
- setCurrentVisibleDate(undefined);
48
- };
49
45
  useClickOutside({
50
46
  isActive: calendarVisible,
51
47
  ignoreClicksInsideRefs: [fieldRef, calendarRef],
52
- handler: handleClose
48
+ handler: function () {
49
+ setCalendarVisible.off();
50
+ setCurrentVisibleDate(props.value ? undefined : currentVisibleDateProp);
51
+ }
53
52
  });
54
53
  return (React.createElement(React.Fragment, null,
55
54
  React.createElement(DatePickerFieldTypeDateTime, __assign({}, otherProps, { ref: fieldRef, onFocus: onFocusHandler, multiplicityHours: multiplicityHours, multiplicitySeconds: multiplicitySeconds, multiplicityMinutes: multiplicityMinutes })),
@@ -0,0 +1,2 @@
1
+ import { DatePickerTypeComponent } from '../helpers';
2
+ export declare const DatePickerTypeDateTimeRange: DatePickerTypeComponent<'date-time-range'>;
@@ -0,0 +1,92 @@
1
+ import { __assign, __read, __rest } from "tslib";
2
+ import React, { forwardRef, useEffect, useRef, useState } from 'react';
3
+ import startOfMonth from 'date-fns/startOfMonth';
4
+ import { useClickOutside } from '../../../hooks/useClickOutside/useClickOutside';
5
+ import { useFlag } from '../../../hooks/useFlag/useFlag';
6
+ import { useForkRef } from '../../../hooks/useForkRef/useForkRef';
7
+ import { DatePickerDropdown, } from '../DatePickerDropdown/DatePickerDropdown';
8
+ import { DatePickerFieldTypeDateTimeRange } from '../DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange';
9
+ import { normalizeRangeValue } from '../helpers';
10
+ import { useCurrentVisibleDate } from '../useCurrentVisibleDate';
11
+ export var DatePickerTypeDateTimeRange = forwardRef(function (props, ref) {
12
+ var _a, _b, _c, _d;
13
+ var events = props.events, dateTimeView = props.dateTimeView, locale = props.locale, dropdownForm = props.dropdownForm, startFieldRightSide = props.startFieldRightSide, startFieldLeftSide = props.startFieldLeftSide, startFieldOnBlur = props.startFieldOnBlur, startFieldOnFocus = props.startFieldOnFocus, endFieldRightSide = props.endFieldRightSide, endFieldLeftSide = props.endFieldLeftSide, endFieldOnBlur = props.endFieldOnBlur, endFieldOnFocus = props.endFieldOnFocus, onFocus = props.onFocus, onBlur = props.onBlur, leftSide = props.leftSide, rightSide = props.rightSide, endFieldInputRefProp = props.endFieldInputRef, startFieldInputRefProp = props.startFieldInputRef, style = props.style, currentVisibleDateProp = props.currentVisibleDate, onChangeCurrentVisibleDateProp = props.onChangeCurrentVisibleDate, renderAdditionalControls = props.renderAdditionalControls, fieldProps = __rest(props, ["events", "dateTimeView", "locale", "dropdownForm", "startFieldRightSide", "startFieldLeftSide", "startFieldOnBlur", "startFieldOnFocus", "endFieldRightSide", "endFieldLeftSide", "endFieldOnBlur", "endFieldOnFocus", "onFocus", "onBlur", "leftSide", "rightSide", "endFieldInputRef", "startFieldInputRef", "style", "currentVisibleDate", "onChangeCurrentVisibleDate", "renderAdditionalControls"]);
14
+ var startFieldRef = useRef(null);
15
+ var endFieldRef = useRef(null);
16
+ var startFieldInputRef = useRef(null);
17
+ var endFieldInputRef = useRef(null);
18
+ var calendarRef = useRef(null);
19
+ var _e = __read(useState(false), 2), fieldFocused = _e[0], setFieldFocused = _e[1];
20
+ var startFocused = fieldFocused === 'start';
21
+ var endFocused = fieldFocused === 'end';
22
+ var hadleChange = function (_a) {
23
+ var _b, _c, _d, _e;
24
+ var e = _a.e, value = _a.value;
25
+ if (startFocused) {
26
+ (_b = props.onChange) === null || _b === void 0 ? void 0 : _b.call(props, { e: e, value: normalizeRangeValue([value, (_c = props === null || props === void 0 ? void 0 : props.value) === null || _c === void 0 ? void 0 : _c[1]]) });
27
+ }
28
+ if (endFocused) {
29
+ (_d = props.onChange) === null || _d === void 0 ? void 0 : _d.call(props, { e: e, value: normalizeRangeValue([(_e = props === null || props === void 0 ? void 0 : props.value) === null || _e === void 0 ? void 0 : _e[0], value]) });
30
+ }
31
+ };
32
+ var _f = __read(useFlag(false), 2), calendarVisible = _f[0], setCalendarVisible = _f[1];
33
+ var _g = __read(useCurrentVisibleDate(currentVisibleDateProp, onChangeCurrentVisibleDateProp), 2), currentVisibleDate = _g[0], setCurrentVisibleDate = _g[1];
34
+ var startFieldOnBlurHandler = function (e) {
35
+ onBlur && onBlur(e);
36
+ startFieldOnBlur && startFieldOnBlur(e);
37
+ };
38
+ var endFieldOnBlurHandler = function (e) {
39
+ onBlur && onBlur(e);
40
+ endFieldOnBlur && endFieldOnBlur(e);
41
+ };
42
+ var startFieldOnFocusHandler = function (e) {
43
+ setFieldFocused('start');
44
+ setCalendarVisible.on();
45
+ onFocus && onFocus(e);
46
+ startFieldOnFocus && startFieldOnFocus(e);
47
+ };
48
+ var endFieldOnFocusHandler = function (e) {
49
+ setFieldFocused('end');
50
+ setCalendarVisible.on();
51
+ onFocus && onFocus(e);
52
+ endFieldOnFocus && endFieldOnFocus(e);
53
+ };
54
+ // эфект для того чтобы календарь переключался при вводе с клавиатуры
55
+ useEffect(function () {
56
+ var _a, _b;
57
+ if (((_a = props.value) === null || _a === void 0 ? void 0 : _a[0]) && startFocused) {
58
+ var newVisibleDate = startOfMonth(props.value[0]);
59
+ if (newVisibleDate.getTime() !== (currentVisibleDate === null || currentVisibleDate === void 0 ? void 0 : currentVisibleDate.getTime())) {
60
+ setCurrentVisibleDate(newVisibleDate);
61
+ }
62
+ return;
63
+ }
64
+ if (!((_b = props.value) === null || _b === void 0 ? void 0 : _b[0]) && startFocused) {
65
+ setCurrentVisibleDate(currentVisibleDateProp);
66
+ }
67
+ }, [(_b = (_a = props.value) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.getTime(), calendarVisible, startFocused]);
68
+ useEffect(function () {
69
+ var _a, _b;
70
+ if (((_a = props.value) === null || _a === void 0 ? void 0 : _a[1]) && endFocused) {
71
+ var newVisibleDate = startOfMonth(props.value[1]);
72
+ if (newVisibleDate.getTime() !== (currentVisibleDate === null || currentVisibleDate === void 0 ? void 0 : currentVisibleDate.getTime())) {
73
+ setCurrentVisibleDate(newVisibleDate);
74
+ }
75
+ return;
76
+ }
77
+ if (!((_b = props.value) === null || _b === void 0 ? void 0 : _b[1]) && endFocused) {
78
+ setCurrentVisibleDate(currentVisibleDateProp);
79
+ }
80
+ }, [(_d = (_c = props.value) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d.getTime(), calendarVisible, endFocused]);
81
+ useClickOutside({
82
+ isActive: calendarVisible,
83
+ ignoreClicksInsideRefs: [startFieldRef, endFieldRef, calendarRef],
84
+ handler: function () {
85
+ setFieldFocused(false);
86
+ setCalendarVisible.off();
87
+ }
88
+ });
89
+ return (React.createElement(React.Fragment, null,
90
+ React.createElement(DatePickerFieldTypeDateTimeRange, __assign({}, fieldProps, { style: style, ref: ref, startFieldRef: startFieldRef, endFieldRef: endFieldRef, startFieldInputRef: useForkRef([startFieldInputRef, startFieldInputRefProp]), endFieldInputRef: useForkRef([endFieldInputRef, endFieldInputRefProp]), startFieldOnFocus: startFieldOnFocusHandler, endFieldOnFocus: endFieldOnFocusHandler, startFieldRightSide: startFieldRightSide, startFieldLeftSide: startFieldLeftSide || leftSide, endFieldRightSide: endFieldRightSide || rightSide, endFieldLeftSide: endFieldLeftSide, startFieldOnBlur: startFieldOnBlurHandler, endFieldOnBlur: endFieldOnBlurHandler, startFocused: startFocused, endFocused: endFocused })),
91
+ React.createElement(DatePickerDropdown, { type: "date-time", ref: calendarRef, anchorRef: startFieldRef, isOpen: calendarVisible, onChangeCurrentVisibleDate: setCurrentVisibleDate, currentVisibleDate: currentVisibleDate, value: props.value || undefined, timeFor: fieldFocused || undefined, view: dateTimeView, events: events, locale: locale, minDate: props.minDate, maxDate: props.maxDate, form: dropdownForm, onChange: hadleChange, renderAdditionalControls: renderAdditionalControls, zIndex: typeof (style === null || style === void 0 ? void 0 : style.zIndex) === 'number' ? style.zIndex + 1 : undefined })));
92
+ });
@@ -5,12 +5,13 @@ import { DateRange } from '../../utils/types/Date';
5
5
  import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';
6
6
  import { DateTimeAdditionalControlRenderProp, DateTimePropView } from '../DateTimeCanary/helpers';
7
7
  import { TextFieldPropForm, TextFieldPropSize, TextFieldPropStatus, TextFieldPropView, TextFieldPropWidth } from '../TextField/TextField';
8
- export declare const datePickerPropType: readonly ["date", "date-range", "date-time"];
8
+ export declare const datePickerPropType: readonly ["date", "date-range", "date-time", "date-time-range"];
9
9
  export declare type DatePickerPropType = typeof datePickerPropType[number];
10
10
  export declare const datePickerPropTypeDefault: "date";
11
11
  export declare type DatePickerPropDateTimeView = DateTimePropView;
12
+ declare type Range = 'date-range' | 'date-time-range';
12
13
  export declare const datePickerErrorTypes: readonly ["outOfRange", "invalidInputAttempt", "startDateIsGreaterThanEndDate"];
13
- export declare type DatePickerPropValue<TYPE extends DatePickerPropType> = (TYPE extends 'date' | 'date-time' ? Date : DateRange) | null;
14
+ export declare type DatePickerPropValue<TYPE extends DatePickerPropType> = (TYPE extends Range ? DateRange : Date) | null;
14
15
  export declare type DatePickerPropOnChange<TYPE extends DatePickerPropType> = (props: {
15
16
  value: DatePickerPropValue<TYPE>;
16
17
  e: React.MouseEvent<HTMLButtonElement, MouseEvent> | Event;
@@ -18,11 +19,11 @@ export declare type DatePickerPropOnChange<TYPE extends DatePickerPropType> = (p
18
19
  export declare const datePickerPropDropdownForm: readonly ["default", "brick", "round"];
19
20
  export declare type DatePickerPropDropdownForm = typeof datePickerPropDropdownForm[number];
20
21
  export declare const datePickerPropDropdownFormDefault: "default";
21
- declare type DatePickerPropCalendarWidth<TYPE> = TYPE extends 'date' | 'date-time' ? TextFieldPropWidth : never;
22
- declare type DatePickerPropCalendarInputRef<TYPE> = TYPE extends 'date' | 'date-time' ? React.Ref<HTMLInputElement> : never;
23
- declare type DatePickerPropCalendarStartInputRef<TYPE> = TYPE extends 'date-range' ? React.Ref<HTMLInputElement> : never;
24
- declare type DatePickerPropCalendarStartLeftSide<TYPE> = TYPE extends 'date-range' ? string | IconComponent : never;
25
- declare type DatePickerPropCalendarStartOnFocus<TYPE> = TYPE extends 'date-range' ? React.FocusEventHandler<HTMLElement> : never;
22
+ declare type DatePickerPropCalendarWidth<TYPE> = TYPE extends Range ? TextFieldPropWidth : never;
23
+ declare type DatePickerPropCalendarInputRef<TYPE> = TYPE extends Range ? never : React.Ref<HTMLInputElement>;
24
+ declare type DatePickerPropCalendarStartInputRef<TYPE> = TYPE extends Range ? React.Ref<HTMLInputElement> : never;
25
+ declare type DatePickerPropCalendarStartLeftSide<TYPE> = TYPE extends Range ? string | IconComponent : never;
26
+ declare type DatePickerPropCalendarStartOnFocus<TYPE> = TYPE extends Range ? React.FocusEventHandler<HTMLElement> : never;
26
27
  export declare type DatePickerProps<TYPE extends DatePickerPropType = 'date'> = PropsWithHTMLAttributesAndRef<{
27
28
  type?: TYPE;
28
29
  value?: DatePickerPropValue<TYPE>;
@@ -110,4 +111,6 @@ export declare const datePickerPropPlaceholderTypeDateTime: string;
110
111
  export declare const normalizeRangeValue: (dateRange: DateRange) => DateRange;
111
112
  export declare const getMultiplicityTime: (format: string, multiplicityHours: number | undefined, multiplicityMinutes: number | undefined, multiplicitySeconds: number | undefined) => (number | undefined)[];
112
113
  export declare const getTimeEnum: (length: number, multiplicity: number | undefined, startOfUnits: (date: Date) => Date, addUnits: (date: Date, amount: number) => Date, getItemLabel: (date: Date) => string) => string[];
114
+ export declare const getFormForStart: (form: TextFieldPropForm) => "default" | "round" | "brick" | "brickRound" | "roundBrick" | "brickDefault" | "defaultBrick" | "clearRound" | "roundClear" | "clearDefault" | "defaultClear" | "brickClear" | "clearBrick" | "clearClear";
115
+ export declare const getFormForEnd: (form: TextFieldPropForm) => "default" | "round" | "brick" | "brickRound" | "roundBrick" | "brickDefault" | "defaultBrick" | "clearRound" | "roundClear" | "clearDefault" | "defaultClear" | "brickClear" | "clearBrick" | "clearClear";
113
116
  export {};
@@ -1,6 +1,7 @@
1
1
  import { startOfToday } from 'date-fns';
2
2
  import { range } from '../../utils/array';
3
- export var datePickerPropType = ['date', 'date-range', 'date-time'];
3
+ import { getByMap } from '../../utils/getByMap';
4
+ export var datePickerPropType = ['date', 'date-range', 'date-time', 'date-time-range'];
4
5
  export var datePickerPropTypeDefault = datePickerPropType[0];
5
6
  export var datePickerErrorTypes = [
6
7
  'outOfRange',
@@ -43,3 +44,37 @@ export var getTimeEnum = function (length, multiplicity, startOfUnits, addUnits,
43
44
  return getItemLabel(addUnits(startDate, number * multiplicity));
44
45
  });
45
46
  };
47
+ var mapFormForStart = {
48
+ "default": 'defaultClear',
49
+ defaultClear: 'defaultClear',
50
+ defaultBrick: 'defaultClear',
51
+ brick: 'brickClear',
52
+ brickDefault: 'brickClear',
53
+ brickClear: 'brickClear',
54
+ brickRound: 'brickClear',
55
+ round: 'roundClear',
56
+ roundClear: 'roundClear',
57
+ roundBrick: 'roundClear',
58
+ clearRound: 'clearClear',
59
+ clearDefault: 'clearClear',
60
+ clearBrick: 'clearClear',
61
+ clearClear: 'clearClear'
62
+ };
63
+ var mapFormForEnd = {
64
+ "default": 'brickDefault',
65
+ defaultClear: 'brickClear',
66
+ defaultBrick: 'brick',
67
+ brick: 'brick',
68
+ brickDefault: 'brickDefault',
69
+ brickClear: 'brickClear',
70
+ brickRound: 'brickRound',
71
+ round: 'brickRound',
72
+ roundClear: 'brickClear',
73
+ roundBrick: 'brick',
74
+ clearRound: 'brickRound',
75
+ clearDefault: 'brickDefault',
76
+ clearBrick: 'brick',
77
+ clearClear: 'brickClear'
78
+ };
79
+ export var getFormForStart = function (form) { return getByMap(mapFormForStart, form); };
80
+ export var getFormForEnd = function (form) { return getByMap(mapFormForEnd, form); };
@@ -10,12 +10,12 @@ import { moveTypes } from '../helpers';
10
10
  import { useOnChange } from './useOnChange';
11
11
  var cnDateTimeTypeDateTime = cn('DateTimeTypeDateTime');
12
12
  export var DateTimeTypeDateTime = forwardRef(function (props, ref) {
13
- var className = props.className, onMoveProp = props.onMove, currentVisibleDate = props.currentVisibleDate, value = props.value, onChange = props.onChange, minDate = props.minDate, maxDate = props.maxDate, events = props.events, locale = props.locale, onChangeCurrentVisibleDate = props.onChangeCurrentVisibleDate, multiplicitySeconds = props.multiplicitySeconds, multiplicityMinutes = props.multiplicityMinutes, multiplicityHours = props.multiplicityHours, style = props.style, renderAdditionalControls = props.renderAdditionalControls, otherProps = __rest(props, ["className", "onMove", "currentVisibleDate", "value", "onChange", "minDate", "maxDate", "events", "locale", "onChangeCurrentVisibleDate", "multiplicitySeconds", "multiplicityMinutes", "multiplicityHours", "style", "renderAdditionalControls"]);
14
- var _a = __read(useState(moveTypes[2]), 2), moveType = _a[0], setMoveType = _a[1];
15
- var _b = __read(useState({
13
+ var className = props.className, onMoveProp = props.onMove, currentVisibleDate = props.currentVisibleDate, value = props.value, onChange = props.onChange, onChangeRange = props.onChangeRange, minDate = props.minDate, maxDate = props.maxDate, events = props.events, locale = props.locale, onChangeCurrentVisibleDate = props.onChangeCurrentVisibleDate, multiplicitySeconds = props.multiplicitySeconds, multiplicityMinutes = props.multiplicityMinutes, multiplicityHours = props.multiplicityHours, style = props.style, renderAdditionalControls = props.renderAdditionalControls, _a = props.timeFor, timeFor = _a === void 0 ? 'start' : _a, otherProps = __rest(props, ["className", "onMove", "currentVisibleDate", "value", "onChange", "onChangeRange", "minDate", "maxDate", "events", "locale", "onChangeCurrentVisibleDate", "multiplicitySeconds", "multiplicityMinutes", "multiplicityHours", "style", "renderAdditionalControls", "timeFor"]);
14
+ var _b = __read(useState(moveTypes[2]), 2), moveType = _b[0], setMoveType = _b[1];
15
+ var _c = __read(useState({
16
16
  '--root-padding-left': '0px'
17
- }), 2), cssVars = _b[0], setCssVars = _b[1];
18
- var _c = __read(useOnChange(onChange, value), 2), onDateChange = _c[0], onTimeChange = _c[1];
17
+ }), 2), cssVars = _c[0], setCssVars = _c[1];
18
+ var _d = __read(useOnChange(onChange, onChangeRange, value, timeFor), 4), onDateChange = _d[0], onDateChangeRange = _d[1], onTimeChange = _d[2], valueTime = _d[3];
19
19
  var rootRef = useRef(null);
20
20
  var onMove = function (type) {
21
21
  setMoveType(type);
@@ -31,7 +31,7 @@ export var DateTimeTypeDateTime = forwardRef(function (props, ref) {
31
31
  }, []);
32
32
  return (React.createElement(React.Fragment, null,
33
33
  React.createElement("div", __assign({}, otherProps, { className: cnDateTimeTypeDateTime({ withTime: withTime }, [className]), ref: useForkRef([rootRef, ref]), style: __assign(__assign({}, style), cssVars) }),
34
- React.createElement(DateTimeTypeDate, { className: cnDateTimeTypeDateTime('Date', { withTime: withTime }), onMove: onMove, currentVisibleDate: currentVisibleDate, value: value, onChange: onDateChange, minDate: minDate, maxDate: maxDate, events: events, locale: locale, renderAdditionalControls: withTime ? undefined : renderAdditionalControls, onChangeCurrentVisibleDate: onChangeCurrentVisibleDate }),
35
- withTime && (React.createElement(DateTimeTypeTime, { className: cnDateTimeTypeDateTime('Time'), value: value, onChange: onTimeChange, minDate: minDate, maxDate: maxDate, locale: locale, multiplicitySeconds: multiplicitySeconds, multiplicityMinutes: multiplicityMinutes, multiplicityHours: multiplicityHours }))),
34
+ React.createElement(DateTimeTypeDate, { className: cnDateTimeTypeDateTime('Date', { withTime: withTime }), onMove: onMove, currentVisibleDate: currentVisibleDate, value: value, onChange: onDateChange, onChangeRange: onDateChangeRange, minDate: minDate, maxDate: maxDate, events: events, locale: locale, renderAdditionalControls: withTime ? undefined : renderAdditionalControls, onChangeCurrentVisibleDate: onChangeCurrentVisibleDate }),
35
+ withTime && (React.createElement(DateTimeTypeTime, { className: cnDateTimeTypeDateTime('Time'), value: valueTime, onChange: onTimeChange, minDate: minDate, maxDate: maxDate, locale: locale, multiplicitySeconds: multiplicitySeconds, multiplicityMinutes: multiplicityMinutes, multiplicityHours: multiplicityHours }))),
36
36
  React.createElement(DateTimeAdditionalControls, { currentVisibleDate: currentVisibleDate, renderAdditionalControls: withTime ? renderAdditionalControls : undefined })));
37
37
  });
@@ -1,2 +1,3 @@
1
- import { DateTimePropOnChange } from '../helpers';
2
- export declare const useOnChange: (onChange: DateTimePropOnChange | undefined, value: Date | undefined) => DateTimePropOnChange[];
1
+ import { DateRange } from '../../../utils/types/Date';
2
+ import { DateTimePropOnChange, DateTimePropOnChangeRange } from '../helpers';
3
+ export declare const useOnChange: (onChange: DateTimePropOnChange | undefined, onChangeRange: DateTimePropOnChangeRange<'date-time'> | undefined, value: DateRange | Date | undefined, timeFor: 'start' | 'end') => [DateTimePropOnChange, DateTimePropOnChangeRange<'date-time'>, DateTimePropOnChange, Date | undefined];
@@ -8,9 +8,11 @@ var getTime = function (date) {
8
8
  }
9
9
  return [getHours(date), getMinutes(date), getSeconds(date)];
10
10
  };
11
- export var useOnChange = function (onChange, value) {
12
- var _a = __read(useState(value), 2), time = _a[0], setTime = _a[1];
11
+ export var useOnChange = function (onChange, onChangeRange, value, timeFor) {
12
+ var normalizeValue = Array.isArray(value) ? value[timeFor === 'start' ? 0 : 1] : value;
13
+ var _a = __read(useState(normalizeValue), 2), time = _a[0], setTime = _a[1];
13
14
  var onChangeRef = useMutableRef(onChange);
15
+ var onChangeRangeRef = useMutableRef(onChangeRange);
14
16
  var timeRef = useMutableRef(time);
15
17
  var onDateChange = useCallback(function (_a) {
16
18
  var _b;
@@ -18,11 +20,23 @@ export var useOnChange = function (onChange, value) {
18
20
  var _c = __read(getTime(timeRef.current), 3), hours = _c[0], minutes = _c[1], seconds = _c[2];
19
21
  (_b = onChangeRef.current) === null || _b === void 0 ? void 0 : _b.call(onChangeRef, { e: e, value: set(value, { hours: hours, minutes: minutes, seconds: seconds }) });
20
22
  }, []);
23
+ var onDateChangeRange = useCallback(function (_a) {
24
+ var _b;
25
+ var e = _a.e, value = _a.value;
26
+ var _c = __read(getTime(timeRef.current), 3), hours = _c[0], minutes = _c[1], seconds = _c[2];
27
+ (_b = onChangeRangeRef.current) === null || _b === void 0 ? void 0 : _b.call(onChangeRangeRef, {
28
+ e: e,
29
+ value: [
30
+ value[0] ? set(value[0], { hours: hours, minutes: minutes, seconds: seconds }) : undefined,
31
+ value[1] ? set(value[1], { hours: hours, minutes: minutes, seconds: seconds }) : undefined,
32
+ ]
33
+ });
34
+ }, []);
21
35
  var onTimeChange = useCallback(function (_a) {
22
36
  var _b;
23
37
  var e = _a.e, value = _a.value;
24
38
  (_b = onChangeRef.current) === null || _b === void 0 ? void 0 : _b.call(onChangeRef, { e: e, value: value });
25
39
  }, []);
26
- useEffect(function () { return setTime(value); }, [value === null || value === void 0 ? void 0 : value.getTime()]);
27
- return [onDateChange, onTimeChange];
40
+ useEffect(function () { return setTime(normalizeValue); }, [normalizeValue === null || normalizeValue === void 0 ? void 0 : normalizeValue.getTime()]);
41
+ return [onDateChange, onDateChangeRange, onTimeChange, normalizeValue];
28
42
  };
@@ -7,7 +7,7 @@ export declare const dateTimePropViewDefault: "classic";
7
7
  export declare const dateTimePropType: readonly ["date", "month", "year", "time", "date-time"];
8
8
  export declare type DateTimePropType = typeof dateTimePropType[number];
9
9
  export declare const dateTimePropTypeDefault: "date";
10
- export declare type СapableRangeType = 'date' | 'month' | 'year';
10
+ export declare type СapableRangeType = 'date' | 'month' | 'year' | 'date-time';
11
11
  export declare type DateTimePropValue<TYPE> = TYPE extends СapableRangeType ? Date | DateRange : Date;
12
12
  export declare type DateTimePropOnChange = (props: {
13
13
  value: Date;
@@ -27,6 +27,7 @@ declare type LocaleWords = {
27
27
  export declare type DateTimePropLocale = Locale & LocaleWords;
28
28
  export declare const moveTypes: readonly ["year", "month", "day", "time"];
29
29
  export declare type MoveType = typeof moveTypes[number];
30
+ declare type DateTimePropTimeFor<TYPE> = TYPE extends 'date-time' ? 'start' | 'end' : never;
30
31
  export declare type DateTimeProps<TYPE extends DateTimePropType = 'date'> = PropsWithHTMLAttributesAndRef<{
31
32
  currentVisibleDate?: Date;
32
33
  type?: TYPE;
@@ -45,6 +46,7 @@ export declare type DateTimeProps<TYPE extends DateTimePropType = 'date'> = Prop
45
46
  multiplicityHours?: number;
46
47
  onMove?: (type: MoveType) => void;
47
48
  renderAdditionalControls?: DateTimeAdditionalControlRenderProp;
49
+ timeFor?: DateTimePropTimeFor<TYPE>;
48
50
  }, HTMLDivElement>;
49
51
  export declare type DateTimeAdditionalControlRenderProp = React.ReactNode | React.ReactNode[] | AdditionalControlRenderType;
50
52
  export declare type AdditionalControlRenderType = (props: DateTimeAdditionalControlRenderProps) => React.ReactNode | React.ReactNode[];
@@ -60,7 +60,7 @@ export declare const eventInterceptorMap: {
60
60
  min?: string | number | undefined;
61
61
  readOnly?: boolean | undefined;
62
62
  required?: boolean | undefined;
63
- step?: string | number | undefined;
63
+ step?: string | number | number[] | undefined;
64
64
  tabIndex?: number | undefined;
65
65
  inputContainerRef?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
66
66
  inputRef?: ((instance: HTMLInputElement | HTMLTextAreaElement | null) => void) | import("react").RefObject<HTMLInputElement | HTMLTextAreaElement> | null | undefined;
@@ -70,7 +70,7 @@ export declare const useTextFieldEventsHandler: <P extends {
70
70
  min?: string | number | undefined;
71
71
  readOnly?: boolean | undefined;
72
72
  required?: boolean | undefined;
73
- step?: string | number | undefined;
73
+ step?: string | number | number[] | undefined;
74
74
  tabIndex?: number | undefined;
75
75
  inputContainerRef?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
76
76
  inputRef?: ((instance: HTMLInputElement | HTMLTextAreaElement | null) => void) | React.RefObject<HTMLInputElement | HTMLTextAreaElement> | null | undefined;
@@ -6,7 +6,7 @@ import { useSelect } from '../../hooks/useSelect/useSelect';
6
6
  import { IconSelect } from '../../icons/IconSelect/IconSelect';
7
7
  import { usePropsHandler } from '../EventInterceptor/usePropsHandler';
8
8
  import { cnSelect, COMPONENT_NAME } from '../SelectComponents/cnSelect';
9
- import { getSelectDropdownForm } from '../SelectComponents/helpers';
9
+ import { defaultLabelForEmptyItems, getSelectDropdownForm } from '../SelectComponents/helpers';
10
10
  import { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';
11
11
  import { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';
12
12
  import { SelectItem } from '../SelectComponents/SelectItem/SelectItem';
@@ -15,8 +15,8 @@ import { withDefaultGetters, } from './helpers';
15
15
  function SelectRender(props, ref) {
16
16
  var defaultDropdownRef = useRef(null);
17
17
  var controlRef = useRef(null);
18
- var _a = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef), placeholder = _a.placeholder, onBlur = _a.onBlur, onFocus = _a.onFocus, items = _a.items, onChange = _a.onChange, value = _a.value, required = _a.required, disabled = _a.disabled, ariaLabel = _a.ariaLabel, id = _a.id, _b = _a.dropdownRef, dropdownRef = _b === void 0 ? defaultDropdownRef : _b, _c = _a.form, form = _c === void 0 ? defaultPropForm : _c, _d = _a.view, view = _d === void 0 ? defaultPropView : _d, _e = _a.size, size = _e === void 0 ? defaultPropSize : _e, dropdownClassName = _a.dropdownClassName, name = _a.name, _f = _a.groups, groups = _f === void 0 ? [] : _f, getItemLabel = _a.getItemLabel, getItemKey = _a.getItemKey, getItemGroupKey = _a.getItemGroupKey, getItemDisabled = _a.getItemDisabled, getGroupKey = _a.getGroupKey, getGroupLabel = _a.getGroupLabel, renderItem = _a.renderItem, renderValueProp = _a.renderValue, inputRefProp = _a.inputRef, style = _a.style, restProps = __rest(_a, ["placeholder", "onBlur", "onFocus", "items", "onChange", "value", "required", "disabled", "ariaLabel", "id", "dropdownRef", "form", "view", "size", "dropdownClassName", "name", "groups", "getItemLabel", "getItemKey", "getItemGroupKey", "getItemDisabled", "getGroupKey", "getGroupLabel", "renderItem", "renderValue", "inputRef", "style"]);
19
- var _g = useSelect({
18
+ var _a = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef), placeholder = _a.placeholder, onBlur = _a.onBlur, onFocus = _a.onFocus, items = _a.items, onChange = _a.onChange, value = _a.value, required = _a.required, disabled = _a.disabled, ariaLabel = _a.ariaLabel, id = _a.id, _b = _a.dropdownRef, dropdownRef = _b === void 0 ? defaultDropdownRef : _b, _c = _a.form, form = _c === void 0 ? defaultPropForm : _c, _d = _a.view, view = _d === void 0 ? defaultPropView : _d, _e = _a.size, size = _e === void 0 ? defaultPropSize : _e, dropdownClassName = _a.dropdownClassName, name = _a.name, _f = _a.groups, groups = _f === void 0 ? [] : _f, getItemLabel = _a.getItemLabel, _g = _a.labelForEmptyItems, labelForEmptyItems = _g === void 0 ? defaultLabelForEmptyItems : _g, getItemKey = _a.getItemKey, getItemGroupKey = _a.getItemGroupKey, getItemDisabled = _a.getItemDisabled, getGroupKey = _a.getGroupKey, getGroupLabel = _a.getGroupLabel, renderItem = _a.renderItem, renderValueProp = _a.renderValue, inputRefProp = _a.inputRef, style = _a.style, restProps = __rest(_a, ["placeholder", "onBlur", "onFocus", "items", "onChange", "value", "required", "disabled", "ariaLabel", "id", "dropdownRef", "form", "view", "size", "dropdownClassName", "name", "groups", "getItemLabel", "labelForEmptyItems", "getItemKey", "getItemGroupKey", "getItemDisabled", "getGroupKey", "getGroupLabel", "renderItem", "renderValue", "inputRef", "style"]);
19
+ var _h = useSelect({
20
20
  items: items,
21
21
  groups: groups,
22
22
  value: value,
@@ -32,7 +32,7 @@ function SelectRender(props, ref) {
32
32
  multiple: false,
33
33
  onBlur: onBlur,
34
34
  onFocus: onFocus
35
- }), getKeyProps = _g.getKeyProps, getOptionProps = _g.getOptionProps, isOpen = _g.isOpen, visibleItems = _g.visibleItems, isFocused = _g.isFocused, handleInputFocus = _g.handleInputFocus, handleInputBlur = _g.handleInputBlur, handleToggleDropdown = _g.handleToggleDropdown, inputRef = _g.inputRef, handleInputClick = _g.handleInputClick, notFound = _g.notFound;
35
+ }), getKeyProps = _h.getKeyProps, getOptionProps = _h.getOptionProps, isOpen = _h.isOpen, visibleItems = _h.visibleItems, isFocused = _h.isFocused, handleInputFocus = _h.handleInputFocus, handleInputBlur = _h.handleInputBlur, handleToggleDropdown = _h.handleToggleDropdown, inputRef = _h.inputRef, handleInputClick = _h.handleInputClick, notFound = _h.notFound, hasItems = _h.hasItems;
36
36
  var dropdownForm = getSelectDropdownForm(form);
37
37
  var renderItemDefault = function (props) {
38
38
  var item = props.item, active = props.active, hovered = props.hovered, onClick = props.onClick, onMouseEnter = props.onMouseEnter;
@@ -53,7 +53,7 @@ function SelectRender(props, ref) {
53
53
  React.createElement("span", { className: cnSelect('Indicators') },
54
54
  React.createElement("button", { type: "button", className: cnSelect('IndicatorsDropdown'), tabIndex: -1, onClick: handleToggleDropdown },
55
55
  React.createElement(IconSelect, { size: "xs", className: cnSelect('DropdownIndicatorIcon') })))),
56
- React.createElement(SelectDropdown, { isOpen: isOpen, size: size, controlRef: controlRef, getOptionProps: getOptionProps, dropdownRef: dropdownRef, form: dropdownForm, className: dropdownClassName, renderItem: renderItem || renderItemDefault, getGroupLabel: getGroupLabel, visibleItems: visibleItems, notFound: notFound, style: typeof (style === null || style === void 0 ? void 0 : style.zIndex) === 'number' ? { zIndex: style.zIndex + 1 } : undefined })));
56
+ React.createElement(SelectDropdown, { isOpen: isOpen, size: size, controlRef: controlRef, getOptionProps: getOptionProps, dropdownRef: dropdownRef, form: dropdownForm, className: dropdownClassName, renderItem: renderItem || renderItemDefault, getGroupLabel: getGroupLabel, visibleItems: visibleItems, notFound: notFound, labelForEmptyItems: labelForEmptyItems, hasItems: hasItems, style: typeof (style === null || style === void 0 ? void 0 : style.zIndex) === 'number' ? { zIndex: style.zIndex + 1 } : undefined })));
57
57
  }
58
58
  export var Select = forwardRef(SelectRender);
59
59
  export * from './helpers';
@@ -42,6 +42,7 @@ export declare type SelectProps<ITEM = DefaultItem, GROUP = DefaultGroup> = Prop
42
42
  dropdownRef?: React.RefObject<HTMLDivElement>;
43
43
  required?: boolean;
44
44
  name?: string;
45
+ labelForEmptyItems?: string;
45
46
  value?: PropValue<ITEM>;
46
47
  renderItem?: PropRenderItem<ITEM>;
47
48
  renderValue?: PropRenderValue<ITEM>;
@@ -101,6 +102,7 @@ export declare function withDefaultGetters<ITEM, GROUP>(props: SelectProps<ITEM,
101
102
  dropdownRef?: React.RefObject<HTMLDivElement> | undefined;
102
103
  required?: boolean | undefined;
103
104
  name?: string | undefined;
105
+ labelForEmptyItems?: string | undefined;
104
106
  value?: PropValue<ITEM>;
105
107
  renderItem?: PropRenderItem<ITEM> | undefined;
106
108
  renderValue?: PropRenderValue<ITEM> | undefined;
@@ -104,7 +104,8 @@
104
104
  transform: translateY(var(--transition-spase));
105
105
  }
106
106
 
107
- .SelectDropdown-LabelForNotFound {
107
+ .SelectDropdown-LabelForNotFound,
108
+ .SelectDropdown-LabelForEmptyItems {
108
109
  padding: 0 var(--space-xs);
109
110
  }
110
111
 
@@ -23,7 +23,9 @@ declare type Props<ITEM, GROUP> = PropsWithJsxAttributes<{
23
23
  getGroupLabel?: (group: GROUP) => string;
24
24
  labelForCreate?: string;
25
25
  labelForNotFound?: string;
26
+ labelForEmptyItems?: string;
26
27
  notFound?: boolean;
28
+ hasItems?: boolean;
27
29
  }>;
28
30
  declare type SelectDropdown = <ITEM, GROUP>(props: Props<ITEM, GROUP>) => React.ReactElement | null;
29
31
  export declare const SelectDropdown: SelectDropdown;
@@ -15,7 +15,7 @@ export var defaultSelectDropdownPropForm = selectDropdownform[0];
15
15
  var cnSelectDropdown = cn('SelectDropdown');
16
16
  var cnSelectDropdownCssTransition = cnForCssTransition(cnSelectDropdown);
17
17
  export var SelectDropdown = function (props) {
18
- var controlRef = props.controlRef, size = props.size, getOptionProps = props.getOptionProps, dropdownRef = props.dropdownRef, labelForCreate = props.labelForCreate, className = props.className, labelForNotFound = props.labelForNotFound, form = props.form, isOpen = props.isOpen, renderItem = props.renderItem, visibleItems = props.visibleItems, getGroupLabel = props.getGroupLabel, notFound = props.notFound, ref = props.ref, otherProps = __rest(props, ["controlRef", "size", "getOptionProps", "dropdownRef", "labelForCreate", "className", "labelForNotFound", "form", "isOpen", "renderItem", "visibleItems", "getGroupLabel", "notFound", "ref"]);
18
+ var controlRef = props.controlRef, size = props.size, getOptionProps = props.getOptionProps, dropdownRef = props.dropdownRef, labelForCreate = props.labelForCreate, className = props.className, labelForNotFound = props.labelForNotFound, labelForEmptyItems = props.labelForEmptyItems, _a = props.hasItems, hasItems = _a === void 0 ? true : _a, form = props.form, isOpen = props.isOpen, renderItem = props.renderItem, visibleItems = props.visibleItems, getGroupLabel = props.getGroupLabel, notFound = props.notFound, ref = props.ref, otherProps = __rest(props, ["controlRef", "size", "getOptionProps", "dropdownRef", "labelForCreate", "className", "labelForNotFound", "labelForEmptyItems", "hasItems", "form", "isOpen", "renderItem", "visibleItems", "getGroupLabel", "notFound", "ref"]);
19
19
  var getIndex = fabricIndex(-1);
20
20
  var indent = form === 'round' ? 'increased' : 'normal';
21
21
  return (React.createElement(CSSTransition, { "in": isOpen, unmountOnExit: true, appear: true, classNames: cnSelectDropdownCssTransition, timeout: 200 },
@@ -31,5 +31,6 @@ export var SelectDropdown = function (props) {
31
31
  return (React.createElement(Fragment, { key: group.key + "-" + i }, renderItem(__assign({ item: item }, getOptionProps({ index: getIndex(), item: item })))));
32
32
  })));
33
33
  }),
34
- notFound && labelForNotFound && (React.createElement(Text, { className: cnSelectDropdown('LabelForNotFound') }, labelForNotFound))))));
34
+ notFound && labelForNotFound && (React.createElement(Text, { className: cnSelectDropdown('LabelForNotFound') }, labelForNotFound)),
35
+ !hasItems && labelForEmptyItems && (React.createElement(Text, { className: cnSelectDropdown('LabelForEmptyItems') }, labelForEmptyItems))))));
35
36
  };
@@ -3,4 +3,5 @@ import { PropForm } from './types';
3
3
  export declare function getSelectDropdownForm(form: PropForm): SelectDropdownPropForm;
4
4
  export declare const defaultlabelForNotFound = "\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E";
5
5
  export declare const defaultlabelForCreate = "+";
6
+ export declare const defaultLabelForEmptyItems = "\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u0443\u0441\u0442";
6
7
  export declare const getInputWidth: (controlInnerRef: React.RefObject<HTMLDivElement>, helperInputFakeElement: React.RefObject<HTMLDivElement>) => number;
@@ -18,6 +18,7 @@ export function getSelectDropdownForm(form) {
18
18
  }
19
19
  export var defaultlabelForNotFound = 'Не найдено';
20
20
  export var defaultlabelForCreate = '+';
21
+ export var defaultLabelForEmptyItems = 'Список пуст';
21
22
  export var getInputWidth = function (controlInnerRef, helperInputFakeElement) {
22
23
  if (!controlInnerRef.current || !helperInputFakeElement.current) {
23
24
  return 20;
@@ -2,6 +2,7 @@ import { __assign, __read, __rest } from "tslib";
2
2
  import './Slider.css';
3
3
  import React, { forwardRef, useRef } from 'react';
4
4
  import { useFlag } from '../../hooks/useFlag/useFlag';
5
+ import { useSortSteps } from '../../hooks/useSortSteps/useSortSteps';
5
6
  import { cn } from '../../utils/bem';
6
7
  import { getByMap } from '../../utils/getByMap';
7
8
  import { FieldCaption } from '../FieldCaption/FieldCaption';
@@ -25,6 +26,7 @@ function SliderRender(props, ref) {
25
26
  var leftButtonRef = useRef(null);
26
27
  var rightButtonRef = useRef(null);
27
28
  var sliderRef = useRef(null);
29
+ var sortedSteps = useSortSteps({ step: step, min: min, max: max });
28
30
  var IconRight = rightSide;
29
31
  var IconLeft = isNotRangeParams && props.leftSide && props.leftSide !== 'input' ? props.leftSide : undefined;
30
32
  var iconSize = getByMap(sizeMap, size);
@@ -34,13 +36,13 @@ function SliderRender(props, ref) {
34
36
  value: value,
35
37
  min: min,
36
38
  max: max,
37
- step: step,
39
+ step: sortedSteps,
38
40
  onChange: onChange,
39
41
  onAfterChange: onAfterChange,
40
42
  sliderRef: sliderRef,
41
43
  buttonRefs: [leftButtonRef, rightButtonRef]
42
44
  }), onKeyPress = _l.onKeyPress, onFocus = _l.onFocus, handlePress = _l.handlePress, popoverPosition = _l.popoverPosition, activeButton = _l.activeButton, currentValue = _l.currentValue;
43
- var _m = useSliderStationing(currentValue.length === 1 ? currentValue[0] : currentValue, min, max, view, range, step, [leftButtonRef, rightButtonRef], sliderRef), lineSizes = _m.lineSizes, buttonPositions = _m.buttonPositions;
45
+ var _m = useSliderStationing(currentValue.length === 1 ? currentValue[0] : currentValue, min, max, view, range, sortedSteps, [leftButtonRef, rightButtonRef], sliderRef), lineSizes = _m.lineSizes, buttonPositions = _m.buttonPositions;
44
46
  var changeHovered = function (status) {
45
47
  if (status)
46
48
  on();
@@ -51,7 +53,7 @@ function SliderRender(props, ref) {
51
53
  label && (React.createElement(FieldLabel, { className: cnSlider('Label'), size: size }, label)),
52
54
  React.createElement("div", { className: cnSlider('Container') },
53
55
  leftSide === 'input' && isNotRangeParams(props) && (React.createElement("div", { className: cnSlider('Side', { position: 'left' }) },
54
- React.createElement(SliderInput, { value: props.value, onChange: function (params) { var _a; return isNotRangeParams(props) && ((_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, params)); }, size: size, min: min, max: max, status: status, step: step, disabled: disabled }))),
56
+ React.createElement(SliderInput, { value: props.value, onChange: function (params) { var _a; return isNotRangeParams(props) && ((_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, params)); }, size: size, min: min, max: max, status: status, step: sortedSteps, disabled: disabled }))),
55
57
  IconLeft && (React.createElement("div", { className: cnSlider('Side', { position: 'left' }) },
56
58
  React.createElement(IconLeft, { size: iconSize, view: "secondary" }))),
57
59
  React.createElement("div", { className: cnSlider('Control'), ref: sliderRef },
@@ -6,7 +6,7 @@ declare type Props = Omit<TextFieldProps<'number'>, 'value' | 'onChange' | 'min'
6
6
  min?: number;
7
7
  max?: number;
8
8
  onChange?: (props: {
9
- e?: React.ChangeEvent | React.MouseEvent;
9
+ e?: React.ChangeEvent | React.MouseEvent | React.KeyboardEvent;
10
10
  value: number;
11
11
  }) => void;
12
12
  };
@@ -18,5 +18,5 @@ export var SliderInput = function (props) {
18
18
  setCurrentValue(validatedValue.toString());
19
19
  };
20
20
  useEffect(function () { return setCurrentValue(value.toString()); }, [value]);
21
- return (React.createElement(TextField, __assign({ onBlur: commitChange, type: "number", min: min, max: max, step: Array.isArray(step) ? 1 : step, onChange: handleChange, value: currentValue }, otherProps)));
21
+ return (React.createElement(TextField, __assign({ onBlur: commitChange, type: "number", min: min, max: max, step: step, onChange: handleChange, value: currentValue }, otherProps)));
22
22
  };
@@ -1,4 +1,4 @@
1
- import { __read, __spread } from "tslib";
1
+ import { __read } from "tslib";
2
2
  import { getSteps } from '../useSliderStationing';
3
3
  export var isRangeParams = function (params) {
4
4
  return !!params.range;
@@ -53,25 +53,18 @@ export var getValidValue = function (value, min, max, step) {
53
53
  return (Math.ceil(Number(value.toFixed(division ? division.length : 0)) / stepValue) * stepValue);
54
54
  }
55
55
  var resultValue_1 = value;
56
- var stepsArr_1 = step;
57
- if (step[0] !== min) {
58
- stepsArr_1 = __spread([min], stepsArr_1);
59
- }
60
- else if (step[step.length - 1] !== max) {
61
- stepsArr_1 = __spread(stepsArr_1, [max]);
62
- }
63
- stepsArr_1.forEach(function (stepPoint, index) {
56
+ step.forEach(function (stepPoint, index) {
64
57
  var minValue = min;
65
58
  var maxValue = max;
66
59
  if (index === 0) {
67
- maxValue = stepsArr_1[index + 1];
60
+ maxValue = step[index + 1];
68
61
  }
69
- else if (index === stepsArr_1.length - 1) {
62
+ else if (index === step.length - 1) {
70
63
  minValue = stepPoint;
71
64
  maxValue = max;
72
65
  }
73
66
  else {
74
- maxValue = stepsArr_1[index + 1];
67
+ maxValue = step[index + 1];
75
68
  minValue = stepPoint;
76
69
  }
77
70
  if (value <= maxValue && value >= minValue) {
@@ -52,7 +52,7 @@ export function useSlider(props) {
52
52
  });
53
53
  }, [step]);
54
54
  useEffect(function () {
55
- if (typeof value !== 'undefined' && typeof step !== 'undefined') {
55
+ if (typeof value !== 'undefined') {
56
56
  var targetValue = isRangeParams(props)
57
57
  ? [
58
58
  getValidValue(props.value[0], min, max, step),
@@ -93,32 +93,24 @@ export function useSlider(props) {
93
93
  }
94
94
  if (validKeyCode) {
95
95
  if (Array.isArray(step)) {
96
- var stepsArr_1 = __spread(step);
97
- if (step[0] !== minValue) {
98
- stepsArr_1 = __spread([minValue], stepsArr_1);
99
- }
100
- if (step[step.length - 1] !== maxValue) {
101
- stepsArr_1 = __spread(stepsArr_1, [maxValue]);
102
- }
103
- stepsArr_1.forEach(function (stepPoint, index) {
96
+ step.forEach(function (stepPoint, index) {
104
97
  if (typeof typeButton === 'number' && changedValue_1 === stepPoint) {
105
98
  if (stepIncrement_1 >= 0) {
106
99
  if (index === 0) {
107
- stepIncrement_1 = stepsArr_1[1] - minValue;
100
+ stepIncrement_1 = step[1] - minValue;
108
101
  }
109
102
  else {
110
103
  stepIncrement_1 =
111
- (typeof stepsArr_1[index + 1] !== 'undefined'
112
- ? stepsArr_1[index + 1]
113
- : maxValue) - stepPoint;
104
+ (typeof step[index + 1] !== 'undefined' ? step[index + 1] : maxValue) -
105
+ stepPoint;
114
106
  }
115
107
  }
116
108
  else if (index === 0) {
117
- stepIncrement_1 = minValue - stepsArr_1[1];
109
+ stepIncrement_1 = minValue - step[1];
118
110
  }
119
111
  else {
120
112
  stepIncrement_1 =
121
- (typeof stepsArr_1[index - 1] !== 'undefined' ? stepsArr_1[index - 1] : minValue) -
113
+ (typeof step[index - 1] !== 'undefined' ? step[index - 1] : minValue) -
122
114
  stepPoint;
123
115
  }
124
116
  }