@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
@@ -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,9 +1,10 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- exports.getTimeEnum = exports.getMultiplicityTime = exports.normalizeRangeValue = exports.datePickerPropPlaceholderTypeDateTime = exports.datePickerPropFormatTypeDateTime = exports.datePickerPropPlaceholderTypeDate = exports.datePickerPropFormatTypeDate = exports.datePickerPropSeparatorDefault = exports.datePickerPropDropdownFormDefault = exports.datePickerPropDropdownForm = exports.datePickerErrorTypes = exports.datePickerPropTypeDefault = exports.datePickerPropType = void 0;
3
+ exports.getFormForEnd = exports.getFormForStart = exports.getTimeEnum = exports.getMultiplicityTime = exports.normalizeRangeValue = exports.datePickerPropPlaceholderTypeDateTime = exports.datePickerPropFormatTypeDateTime = exports.datePickerPropPlaceholderTypeDate = exports.datePickerPropFormatTypeDate = exports.datePickerPropSeparatorDefault = exports.datePickerPropDropdownFormDefault = exports.datePickerPropDropdownForm = exports.datePickerErrorTypes = exports.datePickerPropTypeDefault = exports.datePickerPropType = void 0;
4
4
  var date_fns_1 = require("date-fns");
5
5
  var array_1 = require("../../utils/array");
6
- exports.datePickerPropType = ['date', 'date-range', 'date-time'];
6
+ var getByMap_1 = require("../../utils/getByMap");
7
+ exports.datePickerPropType = ['date', 'date-range', 'date-time', 'date-time-range'];
7
8
  exports.datePickerPropTypeDefault = exports.datePickerPropType[0];
8
9
  exports.datePickerErrorTypes = [
9
10
  'outOfRange',
@@ -46,3 +47,37 @@ exports.getTimeEnum = function (length, multiplicity, startOfUnits, addUnits, ge
46
47
  return getItemLabel(addUnits(startDate, number * multiplicity));
47
48
  });
48
49
  };
50
+ var mapFormForStart = {
51
+ "default": 'defaultClear',
52
+ defaultClear: 'defaultClear',
53
+ defaultBrick: 'defaultClear',
54
+ brick: 'brickClear',
55
+ brickDefault: 'brickClear',
56
+ brickClear: 'brickClear',
57
+ brickRound: 'brickClear',
58
+ round: 'roundClear',
59
+ roundClear: 'roundClear',
60
+ roundBrick: 'roundClear',
61
+ clearRound: 'clearClear',
62
+ clearDefault: 'clearClear',
63
+ clearBrick: 'clearClear',
64
+ clearClear: 'clearClear'
65
+ };
66
+ var mapFormForEnd = {
67
+ "default": 'brickDefault',
68
+ defaultClear: 'brickClear',
69
+ defaultBrick: 'brick',
70
+ brick: 'brick',
71
+ brickDefault: 'brickDefault',
72
+ brickClear: 'brickClear',
73
+ brickRound: 'brickRound',
74
+ round: 'brickRound',
75
+ roundClear: 'brickClear',
76
+ roundBrick: 'brick',
77
+ clearRound: 'brickRound',
78
+ clearDefault: 'brickDefault',
79
+ clearBrick: 'brick',
80
+ clearClear: 'brickClear'
81
+ };
82
+ exports.getFormForStart = function (form) { return getByMap_1.getByMap(mapFormForStart, form); };
83
+ exports.getFormForEnd = function (form) { return getByMap_1.getByMap(mapFormForEnd, form); };
@@ -13,12 +13,12 @@ var helpers_1 = require("../helpers");
13
13
  var useOnChange_1 = require("./useOnChange");
14
14
  var cnDateTimeTypeDateTime = bem_1.cn('DateTimeTypeDateTime');
15
15
  exports.DateTimeTypeDateTime = react_1.forwardRef(function (props, ref) {
16
- 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 = tslib_1.__rest(props, ["className", "onMove", "currentVisibleDate", "value", "onChange", "minDate", "maxDate", "events", "locale", "onChangeCurrentVisibleDate", "multiplicitySeconds", "multiplicityMinutes", "multiplicityHours", "style", "renderAdditionalControls"]);
17
- var _a = tslib_1.__read(react_1.useState(helpers_1.moveTypes[2]), 2), moveType = _a[0], setMoveType = _a[1];
18
- var _b = tslib_1.__read(react_1.useState({
16
+ 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 = tslib_1.__rest(props, ["className", "onMove", "currentVisibleDate", "value", "onChange", "onChangeRange", "minDate", "maxDate", "events", "locale", "onChangeCurrentVisibleDate", "multiplicitySeconds", "multiplicityMinutes", "multiplicityHours", "style", "renderAdditionalControls", "timeFor"]);
17
+ var _b = tslib_1.__read(react_1.useState(helpers_1.moveTypes[2]), 2), moveType = _b[0], setMoveType = _b[1];
18
+ var _c = tslib_1.__read(react_1.useState({
19
19
  '--root-padding-left': '0px'
20
- }), 2), cssVars = _b[0], setCssVars = _b[1];
21
- var _c = tslib_1.__read(useOnChange_1.useOnChange(onChange, value), 2), onDateChange = _c[0], onTimeChange = _c[1];
20
+ }), 2), cssVars = _c[0], setCssVars = _c[1];
21
+ var _d = tslib_1.__read(useOnChange_1.useOnChange(onChange, onChangeRange, value, timeFor), 4), onDateChange = _d[0], onDateChangeRange = _d[1], onTimeChange = _d[2], valueTime = _d[3];
22
22
  var rootRef = react_1.useRef(null);
23
23
  var onMove = function (type) {
24
24
  setMoveType(type);
@@ -34,7 +34,7 @@ exports.DateTimeTypeDateTime = react_1.forwardRef(function (props, ref) {
34
34
  }, []);
35
35
  return (react_1["default"].createElement(react_1["default"].Fragment, null,
36
36
  react_1["default"].createElement("div", tslib_1.__assign({}, otherProps, { className: cnDateTimeTypeDateTime({ withTime: withTime }, [className]), ref: useForkRef_1.useForkRef([rootRef, ref]), style: tslib_1.__assign(tslib_1.__assign({}, style), cssVars) }),
37
- react_1["default"].createElement(DateTimeTypeDate_1.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 }),
38
- withTime && (react_1["default"].createElement(DateTimeTypeTime_1.DateTimeTypeTime, { className: cnDateTimeTypeDateTime('Time'), value: value, onChange: onTimeChange, minDate: minDate, maxDate: maxDate, locale: locale, multiplicitySeconds: multiplicitySeconds, multiplicityMinutes: multiplicityMinutes, multiplicityHours: multiplicityHours }))),
37
+ react_1["default"].createElement(DateTimeTypeDate_1.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 }),
38
+ withTime && (react_1["default"].createElement(DateTimeTypeTime_1.DateTimeTypeTime, { className: cnDateTimeTypeDateTime('Time'), value: valueTime, onChange: onTimeChange, minDate: minDate, maxDate: maxDate, locale: locale, multiplicitySeconds: multiplicitySeconds, multiplicityMinutes: multiplicityMinutes, multiplicityHours: multiplicityHours }))),
39
39
  react_1["default"].createElement(DateTimeAdditionalControls_1.DateTimeAdditionalControls, { currentVisibleDate: currentVisibleDate, renderAdditionalControls: withTime ? renderAdditionalControls : undefined })));
40
40
  });
@@ -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];
@@ -11,9 +11,11 @@ var getTime = function (date) {
11
11
  }
12
12
  return [date_fns_1.getHours(date), date_fns_1.getMinutes(date), date_fns_1.getSeconds(date)];
13
13
  };
14
- exports.useOnChange = function (onChange, value) {
15
- var _a = tslib_1.__read(react_1.useState(value), 2), time = _a[0], setTime = _a[1];
14
+ exports.useOnChange = function (onChange, onChangeRange, value, timeFor) {
15
+ var normalizeValue = Array.isArray(value) ? value[timeFor === 'start' ? 0 : 1] : value;
16
+ var _a = tslib_1.__read(react_1.useState(normalizeValue), 2), time = _a[0], setTime = _a[1];
16
17
  var onChangeRef = useMutableRef_1.useMutableRef(onChange);
18
+ var onChangeRangeRef = useMutableRef_1.useMutableRef(onChangeRange);
17
19
  var timeRef = useMutableRef_1.useMutableRef(time);
18
20
  var onDateChange = react_1.useCallback(function (_a) {
19
21
  var _b;
@@ -21,11 +23,23 @@ exports.useOnChange = function (onChange, value) {
21
23
  var _c = tslib_1.__read(getTime(timeRef.current), 3), hours = _c[0], minutes = _c[1], seconds = _c[2];
22
24
  (_b = onChangeRef.current) === null || _b === void 0 ? void 0 : _b.call(onChangeRef, { e: e, value: date_fns_1.set(value, { hours: hours, minutes: minutes, seconds: seconds }) });
23
25
  }, []);
26
+ var onDateChangeRange = react_1.useCallback(function (_a) {
27
+ var _b;
28
+ var e = _a.e, value = _a.value;
29
+ var _c = tslib_1.__read(getTime(timeRef.current), 3), hours = _c[0], minutes = _c[1], seconds = _c[2];
30
+ (_b = onChangeRangeRef.current) === null || _b === void 0 ? void 0 : _b.call(onChangeRangeRef, {
31
+ e: e,
32
+ value: [
33
+ value[0] ? date_fns_1.set(value[0], { hours: hours, minutes: minutes, seconds: seconds }) : undefined,
34
+ value[1] ? date_fns_1.set(value[1], { hours: hours, minutes: minutes, seconds: seconds }) : undefined,
35
+ ]
36
+ });
37
+ }, []);
24
38
  var onTimeChange = react_1.useCallback(function (_a) {
25
39
  var _b;
26
40
  var e = _a.e, value = _a.value;
27
41
  (_b = onChangeRef.current) === null || _b === void 0 ? void 0 : _b.call(onChangeRef, { e: e, value: value });
28
42
  }, []);
29
- react_1.useEffect(function () { return setTime(value); }, [value === null || value === void 0 ? void 0 : value.getTime()]);
30
- return [onDateChange, onTimeChange];
43
+ react_1.useEffect(function () { return setTime(normalizeValue); }, [normalizeValue === null || normalizeValue === void 0 ? void 0 : normalizeValue.getTime()]);
44
+ return [onDateChange, onDateChangeRange, onTimeChange, normalizeValue];
31
45
  };
@@ -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;
@@ -18,8 +18,8 @@ var helpers_2 = require("./helpers");
18
18
  function SelectRender(props, ref) {
19
19
  var defaultDropdownRef = react_1.useRef(null);
20
20
  var controlRef = react_1.useRef(null);
21
- var _a = usePropsHandler_1.usePropsHandler(cnSelect_1.COMPONENT_NAME, helpers_2.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 ? types_1.defaultPropForm : _c, _d = _a.view, view = _d === void 0 ? types_1.defaultPropView : _d, _e = _a.size, size = _e === void 0 ? types_1.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 = tslib_1.__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"]);
22
- var _g = useSelect_1.useSelect({
21
+ var _a = usePropsHandler_1.usePropsHandler(cnSelect_1.COMPONENT_NAME, helpers_2.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 ? types_1.defaultPropForm : _c, _d = _a.view, view = _d === void 0 ? types_1.defaultPropView : _d, _e = _a.size, size = _e === void 0 ? types_1.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 ? helpers_1.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 = tslib_1.__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"]);
22
+ var _h = useSelect_1.useSelect({
23
23
  items: items,
24
24
  groups: groups,
25
25
  value: value,
@@ -35,7 +35,7 @@ function SelectRender(props, ref) {
35
35
  multiple: false,
36
36
  onBlur: onBlur,
37
37
  onFocus: onFocus
38
- }), 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;
38
+ }), 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;
39
39
  var dropdownForm = helpers_1.getSelectDropdownForm(form);
40
40
  var renderItemDefault = function (props) {
41
41
  var item = props.item, active = props.active, hovered = props.hovered, onClick = props.onClick, onMouseEnter = props.onMouseEnter;
@@ -56,7 +56,7 @@ function SelectRender(props, ref) {
56
56
  react_1["default"].createElement("span", { className: cnSelect_1.cnSelect('Indicators') },
57
57
  react_1["default"].createElement("button", { type: "button", className: cnSelect_1.cnSelect('IndicatorsDropdown'), tabIndex: -1, onClick: handleToggleDropdown },
58
58
  react_1["default"].createElement(IconSelect_1.IconSelect, { size: "xs", className: cnSelect_1.cnSelect('DropdownIndicatorIcon') })))),
59
- react_1["default"].createElement(SelectDropdown_1.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 })));
59
+ react_1["default"].createElement(SelectDropdown_1.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 })));
60
60
  }
61
61
  exports.Select = react_1.forwardRef(SelectRender);
62
62
  tslib_1.__exportStar(require("./helpers"), exports);
@@ -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;
@@ -18,7 +18,7 @@ exports.defaultSelectDropdownPropForm = exports.selectDropdownform[0];
18
18
  var cnSelectDropdown = bem_1.cn('SelectDropdown');
19
19
  var cnSelectDropdownCssTransition = cnForCssTransition_1.cnForCssTransition(cnSelectDropdown);
20
20
  exports.SelectDropdown = function (props) {
21
- 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 = tslib_1.__rest(props, ["controlRef", "size", "getOptionProps", "dropdownRef", "labelForCreate", "className", "labelForNotFound", "form", "isOpen", "renderItem", "visibleItems", "getGroupLabel", "notFound", "ref"]);
21
+ 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 = tslib_1.__rest(props, ["controlRef", "size", "getOptionProps", "dropdownRef", "labelForCreate", "className", "labelForNotFound", "labelForEmptyItems", "hasItems", "form", "isOpen", "renderItem", "visibleItems", "getGroupLabel", "notFound", "ref"]);
22
22
  var getIndex = fabricIndex_1.fabricIndex(-1);
23
23
  var indent = form === 'round' ? 'increased' : 'normal';
24
24
  return (react_1["default"].createElement(react_transition_group_1.CSSTransition, { "in": isOpen, unmountOnExit: true, appear: true, classNames: cnSelectDropdownCssTransition, timeout: 200 },
@@ -34,5 +34,6 @@ exports.SelectDropdown = function (props) {
34
34
  return (react_1["default"].createElement(react_1.Fragment, { key: group.key + "-" + i }, renderItem(tslib_1.__assign({ item: item }, getOptionProps({ index: getIndex(), item: item })))));
35
35
  })));
36
36
  }),
37
- notFound && labelForNotFound && (react_1["default"].createElement(Text_1.Text, { className: cnSelectDropdown('LabelForNotFound') }, labelForNotFound))))));
37
+ notFound && labelForNotFound && (react_1["default"].createElement(Text_1.Text, { className: cnSelectDropdown('LabelForNotFound') }, labelForNotFound)),
38
+ !hasItems && labelForEmptyItems && (react_1["default"].createElement(Text_1.Text, { className: cnSelectDropdown('LabelForEmptyItems') }, labelForEmptyItems))))));
38
39
  };
@@ -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;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- exports.getInputWidth = exports.defaultlabelForCreate = exports.defaultlabelForNotFound = exports.getSelectDropdownForm = void 0;
3
+ exports.getInputWidth = exports.defaultLabelForEmptyItems = exports.defaultlabelForCreate = exports.defaultlabelForNotFound = exports.getSelectDropdownForm = void 0;
4
4
  var SelectDropdown_1 = require("./SelectDropdown/SelectDropdown");
5
5
  var mapDropdownForms = {
6
6
  "default": SelectDropdown_1.selectDropdownform[0],
@@ -22,6 +22,7 @@ function getSelectDropdownForm(form) {
22
22
  exports.getSelectDropdownForm = getSelectDropdownForm;
23
23
  exports.defaultlabelForNotFound = 'Не найдено';
24
24
  exports.defaultlabelForCreate = '+';
25
+ exports.defaultLabelForEmptyItems = 'Список пуст';
25
26
  exports.getInputWidth = function (controlInnerRef, helperInputFakeElement) {
26
27
  if (!controlInnerRef.current || !helperInputFakeElement.current) {
27
28
  return 20;
@@ -5,6 +5,7 @@ var tslib_1 = require("tslib");
5
5
  require("./Slider.css");
6
6
  var react_1 = tslib_1.__importStar(require("react"));
7
7
  var useFlag_1 = require("../../hooks/useFlag/useFlag");
8
+ var useSortSteps_1 = require("../../hooks/useSortSteps/useSortSteps");
8
9
  var bem_1 = require("../../utils/bem");
9
10
  var getByMap_1 = require("../../utils/getByMap");
10
11
  var FieldCaption_1 = require("../FieldCaption/FieldCaption");
@@ -28,6 +29,7 @@ function SliderRender(props, ref) {
28
29
  var leftButtonRef = react_1.useRef(null);
29
30
  var rightButtonRef = react_1.useRef(null);
30
31
  var sliderRef = react_1.useRef(null);
32
+ var sortedSteps = useSortSteps_1.useSortSteps({ step: step, min: min, max: max });
31
33
  var IconRight = rightSide;
32
34
  var IconLeft = helper_1.isNotRangeParams && props.leftSide && props.leftSide !== 'input' ? props.leftSide : undefined;
33
35
  var iconSize = getByMap_1.getByMap(sizeMap, size);
@@ -37,13 +39,13 @@ function SliderRender(props, ref) {
37
39
  value: value,
38
40
  min: min,
39
41
  max: max,
40
- step: step,
42
+ step: sortedSteps,
41
43
  onChange: onChange,
42
44
  onAfterChange: onAfterChange,
43
45
  sliderRef: sliderRef,
44
46
  buttonRefs: [leftButtonRef, rightButtonRef]
45
47
  }), onKeyPress = _l.onKeyPress, onFocus = _l.onFocus, handlePress = _l.handlePress, popoverPosition = _l.popoverPosition, activeButton = _l.activeButton, currentValue = _l.currentValue;
46
- var _m = useSliderStationing_1.useSliderStationing(currentValue.length === 1 ? currentValue[0] : currentValue, min, max, view, range, step, [leftButtonRef, rightButtonRef], sliderRef), lineSizes = _m.lineSizes, buttonPositions = _m.buttonPositions;
48
+ var _m = useSliderStationing_1.useSliderStationing(currentValue.length === 1 ? currentValue[0] : currentValue, min, max, view, range, sortedSteps, [leftButtonRef, rightButtonRef], sliderRef), lineSizes = _m.lineSizes, buttonPositions = _m.buttonPositions;
47
49
  var changeHovered = function (status) {
48
50
  if (status)
49
51
  on();
@@ -54,7 +56,7 @@ function SliderRender(props, ref) {
54
56
  label && (react_1["default"].createElement(FieldLabel_1.FieldLabel, { className: cnSlider('Label'), size: size }, label)),
55
57
  react_1["default"].createElement("div", { className: cnSlider('Container') },
56
58
  leftSide === 'input' && helper_1.isNotRangeParams(props) && (react_1["default"].createElement("div", { className: cnSlider('Side', { position: 'left' }) },
57
- react_1["default"].createElement(SliderInput_1.SliderInput, { value: props.value, onChange: function (params) { var _a; return helper_1.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 }))),
59
+ react_1["default"].createElement(SliderInput_1.SliderInput, { value: props.value, onChange: function (params) { var _a; return helper_1.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 }))),
58
60
  IconLeft && (react_1["default"].createElement("div", { className: cnSlider('Side', { position: 'left' }) },
59
61
  react_1["default"].createElement(IconLeft, { size: iconSize, view: "secondary" }))),
60
62
  react_1["default"].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
  };
@@ -21,5 +21,5 @@ exports.SliderInput = function (props) {
21
21
  setCurrentValue(validatedValue.toString());
22
22
  };
23
23
  react_1.useEffect(function () { return setCurrentValue(value.toString()); }, [value]);
24
- return (react_1["default"].createElement(TextField_1.TextField, tslib_1.__assign({ onBlur: commitChange, type: "number", min: min, max: max, step: Array.isArray(step) ? 1 : step, onChange: handleChange, value: currentValue }, otherProps)));
24
+ return (react_1["default"].createElement(TextField_1.TextField, tslib_1.__assign({ onBlur: commitChange, type: "number", min: min, max: max, step: step, onChange: handleChange, value: currentValue }, otherProps)));
25
25
  };
@@ -56,25 +56,18 @@ exports.getValidValue = function (value, min, max, step) {
56
56
  return (Math.ceil(Number(value.toFixed(division ? division.length : 0)) / stepValue) * stepValue);
57
57
  }
58
58
  var resultValue_1 = value;
59
- var stepsArr_1 = step;
60
- if (step[0] !== min) {
61
- stepsArr_1 = tslib_1.__spread([min], stepsArr_1);
62
- }
63
- else if (step[step.length - 1] !== max) {
64
- stepsArr_1 = tslib_1.__spread(stepsArr_1, [max]);
65
- }
66
- stepsArr_1.forEach(function (stepPoint, index) {
59
+ step.forEach(function (stepPoint, index) {
67
60
  var minValue = min;
68
61
  var maxValue = max;
69
62
  if (index === 0) {
70
- maxValue = stepsArr_1[index + 1];
63
+ maxValue = step[index + 1];
71
64
  }
72
- else if (index === stepsArr_1.length - 1) {
65
+ else if (index === step.length - 1) {
73
66
  minValue = stepPoint;
74
67
  maxValue = max;
75
68
  }
76
69
  else {
77
- maxValue = stepsArr_1[index + 1];
70
+ maxValue = step[index + 1];
78
71
  minValue = stepPoint;
79
72
  }
80
73
  if (value <= maxValue && value >= minValue) {
@@ -55,7 +55,7 @@ function useSlider(props) {
55
55
  });
56
56
  }, [step]);
57
57
  react_1.useEffect(function () {
58
- if (typeof value !== 'undefined' && typeof step !== 'undefined') {
58
+ if (typeof value !== 'undefined') {
59
59
  var targetValue = helper_1.isRangeParams(props)
60
60
  ? [
61
61
  helper_1.getValidValue(props.value[0], min, max, step),
@@ -96,32 +96,24 @@ function useSlider(props) {
96
96
  }
97
97
  if (validKeyCode) {
98
98
  if (Array.isArray(step)) {
99
- var stepsArr_1 = tslib_1.__spread(step);
100
- if (step[0] !== minValue) {
101
- stepsArr_1 = tslib_1.__spread([minValue], stepsArr_1);
102
- }
103
- if (step[step.length - 1] !== maxValue) {
104
- stepsArr_1 = tslib_1.__spread(stepsArr_1, [maxValue]);
105
- }
106
- stepsArr_1.forEach(function (stepPoint, index) {
99
+ step.forEach(function (stepPoint, index) {
107
100
  if (typeof typeButton === 'number' && changedValue_1 === stepPoint) {
108
101
  if (stepIncrement_1 >= 0) {
109
102
  if (index === 0) {
110
- stepIncrement_1 = stepsArr_1[1] - minValue;
103
+ stepIncrement_1 = step[1] - minValue;
111
104
  }
112
105
  else {
113
106
  stepIncrement_1 =
114
- (typeof stepsArr_1[index + 1] !== 'undefined'
115
- ? stepsArr_1[index + 1]
116
- : maxValue) - stepPoint;
107
+ (typeof step[index + 1] !== 'undefined' ? step[index + 1] : maxValue) -
108
+ stepPoint;
117
109
  }
118
110
  }
119
111
  else if (index === 0) {
120
- stepIncrement_1 = minValue - stepsArr_1[1];
112
+ stepIncrement_1 = minValue - step[1];
121
113
  }
122
114
  else {
123
115
  stepIncrement_1 =
124
- (typeof stepsArr_1[index - 1] !== 'undefined' ? stepsArr_1[index - 1] : minValue) -
116
+ (typeof step[index - 1] !== 'undefined' ? step[index - 1] : minValue) -
125
117
  stepPoint;
126
118
  }
127
119
  }
@@ -7,17 +7,10 @@ exports.getSteps = function (step, min, max) {
7
7
  var stepsArray = [];
8
8
  var size = min;
9
9
  if (Array.isArray(step)) {
10
- step.forEach(function (stepSize) {
10
+ for (var i = 0; i < step.length - 1; i++) {
11
11
  stepsArray.push({
12
- min: size,
13
- max: stepSize
14
- });
15
- size += stepSize - size;
16
- });
17
- if (size !== max) {
18
- stepsArray.push({
19
- min: size,
20
- max: max
12
+ min: step[i],
13
+ max: step[i + 1]
21
14
  });
22
15
  }
23
16
  }
@@ -33,6 +26,7 @@ exports.getSteps = function (step, min, max) {
33
26
  return stepsArray;
34
27
  };
35
28
  exports.useSliderStationing = function (value, min, max, view, range, step, buttonRefs, sliderLineRef) {
29
+ if (step === void 0) { step = 1; }
36
30
  var _a = tslib_1.__read(react_1.useState([]), 2), lineSizes = _a[0], setLineSizes = _a[1];
37
31
  var _b = tslib_1.__read(react_1.useState([]), 2), buttonPositions = _b[0], setButtonPositions = _b[1];
38
32
  var calculateLines = function () {
@@ -6,6 +6,7 @@ require("./TextField.css");
6
6
  var react_1 = tslib_1.__importStar(require("react"));
7
7
  var react_textarea_autosize_1 = tslib_1.__importDefault(require("react-textarea-autosize"));
8
8
  var useForkRef_1 = require("../../hooks/useForkRef/useForkRef");
9
+ var useSortSteps_1 = require("../../hooks/useSortSteps/useSortSteps");
9
10
  var IconClose_1 = require("../../icons/IconClose/IconClose");
10
11
  var IconSelect_1 = require("../../icons/IconSelect/IconSelect");
11
12
  var IconSelectOpen_1 = require("../../icons/IconSelectOpen/IconSelectOpen");
@@ -28,6 +29,7 @@ function TextFieldRender(props, ref) {
28
29
  var leftSideIsString = typeof leftSide === 'string';
29
30
  var rightSideIsString = typeof rightSide === 'string';
30
31
  var iconSize = getByMap_1.getByMap(helpers_1.sizeMap, size, iconSizeProp);
32
+ var sortedSteps = useSortSteps_1.useSortSteps({ step: step, min: Number(min), max: Number(max) });
31
33
  var handleChange = function (e) {
32
34
  var value = e.target.value;
33
35
  !disabled && (onChange === null || onChange === void 0 ? void 0 : onChange({ e: e, id: id, name: name, value: value || null }));
@@ -66,6 +68,16 @@ function TextFieldRender(props, ref) {
66
68
  });
67
69
  }
68
70
  }, []);
71
+ var onKeyDown = function (e) {
72
+ var flag = helpers_1.getIncrementFlag(e);
73
+ if (type === 'number' && typeof flag === 'boolean' && !disabled) {
74
+ e.preventDefault();
75
+ onChange === null || onChange === void 0 ? void 0 : onChange({
76
+ e: e,
77
+ value: getValueByStep(flag).toString()
78
+ });
79
+ }
80
+ };
69
81
  var textareaProps = {
70
82
  rows: rows,
71
83
  cols: cols,
@@ -77,7 +89,8 @@ function TextFieldRender(props, ref) {
77
89
  type: type,
78
90
  max: max,
79
91
  min: min,
80
- step: step,
92
+ step: !Array.isArray(sortedSteps) ? sortedSteps : 0,
93
+ onKeyDown: onKeyDown,
81
94
  ref: useForkRef_1.useForkRef([inputRef, inputRefProp])
82
95
  };
83
96
  var handleClear = function (e) {
@@ -86,23 +99,22 @@ function TextFieldRender(props, ref) {
86
99
  value: ''
87
100
  });
88
101
  };
89
- var changeNumberValue = function (e, isIncrement) {
102
+ var getValueByStep = function (isIncrement) {
90
103
  var _a;
104
+ return Array.isArray(sortedSteps)
105
+ ? (_a = helpers_1.getValueByStepArray({
106
+ min: min,
107
+ max: max,
108
+ value: value,
109
+ isIncrement: isIncrement,
110
+ steps: sortedSteps
111
+ })) !== null && _a !== void 0 ? _a : 0 : helpers_1.getValueByStepNumber({ value: value, step: sortedSteps, isIncrement: isIncrement, min: min, max: max });
112
+ };
113
+ var changeNumberValue = function (e, isIncrement) {
91
114
  if (isIncrement === void 0) { isIncrement = true; }
92
- var currentValue = value || 0;
93
- currentValue = isIncrement
94
- ? Number(currentValue) + Number(step)
95
- : Number(currentValue) - Number(step);
96
115
  onChange === null || onChange === void 0 ? void 0 : onChange({
97
116
  e: e,
98
- value: currentValue.toFixed(Number((_a =
99
- /* Необходимо для того, чтобы избежать ситуации, когда по нажатию
100
- на кнопку прибавляется число с погрешностью.
101
- Здесь мы берем разрядность дробной части шага и ограничиваем
102
- результирующее число этой разрядностью */
103
- Number(step)
104
- .toString()
105
- .split('.')[1]) === null || _a === void 0 ? void 0 : _a.length) || 0)
117
+ value: getValueByStep(isIncrement).toString()
106
118
  });
107
119
  };
108
120
  var rootProps = {
@@ -131,9 +143,9 @@ function TextFieldRender(props, ref) {
131
143
  }), title: typeof leftSide === 'string' ? leftSide : undefined }, leftSideIsString ? (leftSide) : (react_1["default"].createElement(LeftIcon, { className: exports.cnTextField('Icon'), size: iconSize })))),
132
144
  textarea ? (react_1["default"].createElement(react_textarea_autosize_1["default"], tslib_1.__assign({}, commonProps, textareaProps))) : (react_1["default"].createElement("input", tslib_1.__assign({}, commonProps, inputProps))),
133
145
  type === 'number' && (react_1["default"].createElement("div", { className: exports.cnTextField('Counter') },
134
- react_1["default"].createElement("button", { onClick: function (e) { return changeNumberValue(e, true); }, type: "button", className: exports.cnTextField('CounterButton') },
146
+ react_1["default"].createElement("button", { onFocus: handleFocus, onClick: function (e) { return changeNumberValue(e, true); }, type: "button", className: exports.cnTextField('CounterButton') },
135
147
  react_1["default"].createElement(IconSelectOpen_1.IconSelectOpen, { size: "xs" })),
136
- react_1["default"].createElement("button", { onClick: function (e) { return changeNumberValue(e, false); }, type: "button", className: exports.cnTextField('CounterButton') },
148
+ react_1["default"].createElement("button", { onFocus: handleFocus, onClick: function (e) { return changeNumberValue(e, false); }, type: "button", className: exports.cnTextField('CounterButton') },
137
149
  react_1["default"].createElement(IconSelect_1.IconSelect, { size: "xs" })))),
138
150
  value && withClearButton && type !== 'number' && (react_1["default"].createElement("button", { type: "button", disabled: disabled, onClick: handleClear, className: exports.cnTextField('ClearButton') },
139
151
  react_1["default"].createElement(IconClose_1.IconClose, { size: "xs", className: exports.cnTextField('ClearButtonIcon') }))),