@consta/uikit 3.23.1 → 3.24.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 (530) 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 +22 -9
  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/CheckboxGroupCanary/es.js +1 -0
  15. package/CheckboxGroupCanary/index.d.ts +1 -0
  16. package/CheckboxGroupCanary/index.js +4 -0
  17. package/CheckboxGroupCanary/package.json +9 -0
  18. package/ChoiceGroup/package.json +1 -1
  19. package/ChoiceGroupCanary/es.js +1 -0
  20. package/ChoiceGroupCanary/index.d.ts +1 -0
  21. package/ChoiceGroupCanary/index.js +4 -0
  22. package/ChoiceGroupCanary/package.json +9 -0
  23. package/Collapse/package.json +1 -1
  24. package/CollapseGroup/package.json +1 -1
  25. package/Combobox/package.json +1 -1
  26. package/ComboboxDeprecated/package.json +1 -1
  27. package/ContextMenu/package.json +1 -1
  28. package/ContextMenuCanary/package.json +1 -1
  29. package/DatePickerCanary/package.json +1 -1
  30. package/DateTimeCanary/package.json +1 -1
  31. package/DragNDropField/package.json +1 -1
  32. package/EventInterceptor/package.json +1 -1
  33. package/FieldCaption/package.json +1 -1
  34. package/FieldLabel/package.json +1 -1
  35. package/File/package.json +1 -1
  36. package/FileField/package.json +1 -1
  37. package/FileIcon/package.json +1 -1
  38. package/FileIconAvi/package.json +1 -1
  39. package/FileIconBmp/package.json +1 -1
  40. package/FileIconCsv/package.json +1 -1
  41. package/FileIconDoc/package.json +1 -1
  42. package/FileIconExe/package.json +1 -1
  43. package/FileIconGif/package.json +1 -1
  44. package/FileIconJpg/package.json +1 -1
  45. package/FileIconJson/package.json +1 -1
  46. package/FileIconLoading/package.json +1 -1
  47. package/FileIconMov/package.json +1 -1
  48. package/FileIconMp3/package.json +1 -1
  49. package/FileIconMp4/package.json +1 -1
  50. package/FileIconPdf/package.json +1 -1
  51. package/FileIconPng/package.json +1 -1
  52. package/FileIconPpt/package.json +1 -1
  53. package/FileIconRar/package.json +1 -1
  54. package/FileIconRtf/package.json +1 -1
  55. package/FileIconTiff/package.json +1 -1
  56. package/FileIconTxt/package.json +1 -1
  57. package/FileIconUndefined/package.json +1 -1
  58. package/FileIconWav/package.json +1 -1
  59. package/FileIconXls/package.json +1 -1
  60. package/FileIconZip/package.json +1 -1
  61. package/Grid/package.json +1 -1
  62. package/Header/package.json +1 -1
  63. package/Icon/package.json +1 -1
  64. package/IconAdd/package.json +1 -1
  65. package/IconAddToComparison/package.json +1 -1
  66. package/IconAlert/package.json +1 -1
  67. package/IconAlignBlocksLeft/package.json +1 -1
  68. package/IconAlignBlocksRight/package.json +1 -1
  69. package/IconAlignCenter/package.json +1 -1
  70. package/IconAlignJustify/package.json +1 -1
  71. package/IconAlignLeft/package.json +1 -1
  72. package/IconAlignRight/package.json +1 -1
  73. package/IconAllDone/package.json +1 -1
  74. package/IconArrowDown/package.json +1 -1
  75. package/IconArrowLeft/package.json +1 -1
  76. package/IconArrowRight/package.json +1 -1
  77. package/IconArrowUp/package.json +1 -1
  78. package/IconArtBrush/package.json +1 -1
  79. package/IconAttach/package.json +1 -1
  80. package/IconBackward/package.json +1 -1
  81. package/IconBag/package.json +1 -1
  82. package/IconBarrier/package.json +1 -1
  83. package/IconBento/package.json +1 -1
  84. package/IconBold/package.json +1 -1
  85. package/IconBook/package.json +1 -1
  86. package/IconBookmarkFilled/package.json +1 -1
  87. package/IconBookmarkStroked/package.json +1 -1
  88. package/IconCalculator/package.json +1 -1
  89. package/IconCalendar/package.json +1 -1
  90. package/IconCamera/package.json +1 -1
  91. package/IconCancel/package.json +1 -1
  92. package/IconCards/package.json +1 -1
  93. package/IconChat/package.json +1 -1
  94. package/IconCheck/package.json +1 -1
  95. package/IconClose/package.json +1 -1
  96. package/IconCollapse/package.json +1 -1
  97. package/IconColorFill/package.json +1 -1
  98. package/IconColorText/package.json +1 -1
  99. package/IconColumns/package.json +1 -1
  100. package/IconComment/package.json +1 -1
  101. package/IconConnection/package.json +1 -1
  102. package/IconCopy/package.json +1 -1
  103. package/IconCrown/package.json +1 -1
  104. package/IconCursorMouse/package.json +1 -1
  105. package/IconDataNull/package.json +1 -1
  106. package/IconDiamond/package.json +1 -1
  107. package/IconDinosaur/package.json +1 -1
  108. package/IconDisconnection/package.json +1 -1
  109. package/IconDocAdd/package.json +1 -1
  110. package/IconDocBlank/package.json +1 -1
  111. package/IconDocDelete/package.json +1 -1
  112. package/IconDocExport/package.json +1 -1
  113. package/IconDocFilled/package.json +1 -1
  114. package/IconDown/package.json +1 -1
  115. package/IconDownload/package.json +1 -1
  116. package/IconDrag/package.json +1 -1
  117. package/IconDraggable/package.json +1 -1
  118. package/IconDrillingRig/package.json +1 -1
  119. package/IconDrop/package.json +1 -1
  120. package/IconEdit/package.json +1 -1
  121. package/IconExit/package.json +1 -1
  122. package/IconExpand/package.json +1 -1
  123. package/IconEye/package.json +1 -1
  124. package/IconEyeClose/package.json +1 -1
  125. package/IconFacebook/package.json +1 -1
  126. package/IconFavorite/package.json +1 -1
  127. package/IconFilter/package.json +1 -1
  128. package/IconFitToDefault/package.json +1 -1
  129. package/IconFlagFilled/package.json +1 -1
  130. package/IconFlagStroked/package.json +1 -1
  131. package/IconFolders/package.json +1 -1
  132. package/IconForward/package.json +1 -1
  133. package/IconFunnel/package.json +1 -1
  134. package/IconGas/package.json +1 -1
  135. package/IconGeo/package.json +1 -1
  136. package/IconGrouping/package.json +1 -1
  137. package/IconHamburger/package.json +1 -1
  138. package/IconHand/package.json +1 -1
  139. package/IconHealth/package.json +1 -1
  140. package/IconHome/package.json +1 -1
  141. package/IconInComparison/package.json +1 -1
  142. package/IconInfo/package.json +1 -1
  143. package/IconInstagram/package.json +1 -1
  144. package/IconIntroduction/package.json +1 -1
  145. package/IconIpad/package.json +1 -1
  146. package/IconItalic/package.json +1 -1
  147. package/IconKebab/package.json +1 -1
  148. package/IconLaptop/package.json +1 -1
  149. package/IconLayers/package.json +1 -1
  150. package/IconLeaf/package.json +1 -1
  151. package/IconLightningBolt/package.json +1 -1
  152. package/IconLineAndBarChart/package.json +1 -1
  153. package/IconLink/package.json +1 -1
  154. package/IconList/package.json +1 -1
  155. package/IconListNumbered/package.json +1 -1
  156. package/IconLock/package.json +1 -1
  157. package/IconLogicalElement/package.json +1 -1
  158. package/IconMBU/package.json +1 -1
  159. package/IconMGRP/package.json +1 -1
  160. package/IconMLSP/package.json +1 -1
  161. package/IconMMP/package.json +1 -1
  162. package/IconMail/package.json +1 -1
  163. package/IconMap/package.json +1 -1
  164. package/IconMaxHeight/package.json +1 -1
  165. package/IconMaxWidth/package.json +1 -1
  166. package/IconMeatball/package.json +1 -1
  167. package/IconMic/package.json +1 -1
  168. package/IconMolecules/package.json +1 -1
  169. package/IconMoon/package.json +1 -1
  170. package/IconNodeEnd/package.json +1 -1
  171. package/IconNodeStart/package.json +1 -1
  172. package/IconNodeStep/package.json +1 -1
  173. package/IconNodes/package.json +1 -1
  174. package/IconOpenInNew/package.json +1 -1
  175. package/IconOperators/package.json +1 -1
  176. package/IconPanelBottom/package.json +1 -1
  177. package/IconPanelLeft/package.json +1 -1
  178. package/IconPanelRight/package.json +1 -1
  179. package/IconPanelTop/package.json +1 -1
  180. package/IconPaste/package.json +1 -1
  181. package/IconPause/package.json +1 -1
  182. package/IconPhone/package.json +1 -1
  183. package/IconPhoto/package.json +1 -1
  184. package/IconPicture/package.json +1 -1
  185. package/IconPlay/package.json +1 -1
  186. package/IconPressure/package.json +1 -1
  187. package/IconPriceLabel/package.json +1 -1
  188. package/IconProcessing/package.json +1 -1
  189. package/IconQuestion/package.json +1 -1
  190. package/IconQuote/package.json +1 -1
  191. package/IconRUO/package.json +1 -1
  192. package/IconRUS/package.json +1 -1
  193. package/IconRecord/package.json +1 -1
  194. package/IconRemove/package.json +1 -1
  195. package/IconRemoveFromComparison/package.json +1 -1
  196. package/IconReply/package.json +1 -1
  197. package/IconResize/package.json +1 -1
  198. package/IconRestart/package.json +1 -1
  199. package/IconRevert/package.json +1 -1
  200. package/IconRing/package.json +1 -1
  201. package/IconRouble/package.json +1 -1
  202. package/IconRuler/package.json +1 -1
  203. package/IconSave/package.json +1 -1
  204. package/IconScreen/package.json +1 -1
  205. package/IconSearch/package.json +1 -1
  206. package/IconSelect/package.json +1 -1
  207. package/IconSelectOpen/package.json +1 -1
  208. package/IconSendMessage/package.json +1 -1
  209. package/IconSettings/package.json +1 -1
  210. package/IconShape/package.json +1 -1
  211. package/IconShuffle/package.json +1 -1
  212. package/IconSmile/package.json +1 -1
  213. package/IconSortDown/package.json +1 -1
  214. package/IconSortDownCenter/package.json +1 -1
  215. package/IconSortUp/package.json +1 -1
  216. package/IconSortUpCenter/package.json +1 -1
  217. package/IconStop/package.json +1 -1
  218. package/IconStorage/package.json +1 -1
  219. package/IconStrikethrough/package.json +1 -1
  220. package/IconSun/package.json +1 -1
  221. package/IconTable/package.json +1 -1
  222. package/IconTable2/package.json +1 -1
  223. package/IconTarget/package.json +1 -1
  224. package/IconTeam/package.json +1 -1
  225. package/IconTechResponse/package.json +1 -1
  226. package/IconTest/package.json +1 -1
  227. package/IconThumbUp/package.json +1 -1
  228. package/IconTie/package.json +1 -1
  229. package/IconTop/package.json +1 -1
  230. package/IconTrash/package.json +1 -1
  231. package/IconType/package.json +1 -1
  232. package/IconUnderline/package.json +1 -1
  233. package/IconUnlock/package.json +1 -1
  234. package/IconUnsort/package.json +1 -1
  235. package/IconUnsortCenter/package.json +1 -1
  236. package/IconUpload/package.json +1 -1
  237. package/IconUser/package.json +1 -1
  238. package/IconVZD/package.json +1 -1
  239. package/IconVideo/package.json +1 -1
  240. package/IconVkontakte/package.json +1 -1
  241. package/IconWarning/package.json +1 -1
  242. package/IconWatch/package.json +1 -1
  243. package/IconWideScreen/package.json +1 -1
  244. package/IconWorld/package.json +1 -1
  245. package/IconWrench/package.json +1 -1
  246. package/IconYandexDzen/package.json +1 -1
  247. package/IconYoutube/package.json +1 -1
  248. package/Informer/package.json +1 -1
  249. package/LayoutCanary/package.json +1 -1
  250. package/Loader/package.json +1 -1
  251. package/MixCard/package.json +1 -1
  252. package/MixFocus/package.json +1 -1
  253. package/MixPopoverAnimate/package.json +1 -1
  254. package/MixPopoverArrow/package.json +1 -1
  255. package/MixSpace/package.json +1 -1
  256. package/MixVisuallyHidden/package.json +1 -1
  257. package/Modal/package.json +1 -1
  258. package/MultiComboboxDeprecated/package.json +1 -1
  259. package/Pagination/package.json +1 -1
  260. package/Popover/package.json +1 -1
  261. package/PortalWithTheme/package.json +1 -1
  262. package/ProgressSpin/package.json +1 -1
  263. package/ProgressStepBarCanary/package.json +1 -1
  264. package/Radio/package.json +1 -1
  265. package/RadioGroup/package.json +1 -1
  266. package/Responses/package.json +1 -1
  267. package/Responses403/package.json +1 -1
  268. package/Responses404/package.json +1 -1
  269. package/Responses500/package.json +1 -1
  270. package/Responses503/package.json +1 -1
  271. package/ResponsesConnectionError/package.json +1 -1
  272. package/ResponsesDeleted/package.json +1 -1
  273. package/ResponsesEmptyBox/package.json +1 -1
  274. package/ResponsesEmptyPockets/package.json +1 -1
  275. package/ResponsesExit/package.json +1 -1
  276. package/ResponsesImage/package.json +1 -1
  277. package/ResponsesImage403/package.json +1 -1
  278. package/ResponsesImage404/package.json +1 -1
  279. package/ResponsesImage500/package.json +1 -1
  280. package/ResponsesImage503/package.json +1 -1
  281. package/ResponsesImageConnectionError/package.json +1 -1
  282. package/ResponsesImageDeleted/package.json +1 -1
  283. package/ResponsesImageEmptyBox/package.json +1 -1
  284. package/ResponsesImageEmptyPockets/package.json +1 -1
  285. package/ResponsesImageNothingFound/package.json +1 -1
  286. package/ResponsesImageSuccess/package.json +1 -1
  287. package/ResponsesNothingFound/package.json +1 -1
  288. package/ResponsesSuccess/package.json +1 -1
  289. package/Select/package.json +1 -1
  290. package/Sidebar/package.json +1 -1
  291. package/Skeleton/package.json +1 -1
  292. package/SliderCanary/package.json +1 -1
  293. package/SnackBar/package.json +1 -1
  294. package/Steps/package.json +1 -1
  295. package/StepsCanary/package.json +1 -1
  296. package/Switch/package.json +1 -1
  297. package/SwitchGroup/package.json +1 -1
  298. package/SwitchGroupCanary/es.js +1 -0
  299. package/SwitchGroupCanary/index.d.ts +1 -0
  300. package/SwitchGroupCanary/index.js +4 -0
  301. package/SwitchGroupCanary/package.json +9 -0
  302. package/Table/package.json +1 -1
  303. package/Tabs/package.json +1 -1
  304. package/TabsCanary/es.js +1 -0
  305. package/TabsCanary/index.d.ts +1 -0
  306. package/TabsCanary/index.js +4 -0
  307. package/TabsCanary/package.json +9 -0
  308. package/Tag/package.json +1 -1
  309. package/TagBase/package.json +1 -1
  310. package/Text/package.json +1 -1
  311. package/TextField/package.json +1 -1
  312. package/Theme/package.json +1 -1
  313. package/ThemeToggler/package.json +1 -1
  314. package/Timer/package.json +1 -1
  315. package/Tooltip/package.json +1 -1
  316. package/User/package.json +1 -1
  317. package/UserSelect/package.json +1 -1
  318. package/UserSelectDeprecated/package.json +1 -1
  319. package/__internal__/cjs-src/components/CheckboxGroupCanary/CheckboxGroup.css +35 -0
  320. package/__internal__/cjs-src/components/CheckboxGroupCanary/CheckboxGroupCanary.d.ts +5 -0
  321. package/__internal__/cjs-src/components/CheckboxGroupCanary/CheckboxGroupCanary.js +27 -0
  322. package/__internal__/cjs-src/components/CheckboxGroupCanary/helper.d.ts +274 -0
  323. package/__internal__/cjs-src/components/CheckboxGroupCanary/helper.js +11 -0
  324. package/__internal__/cjs-src/components/CheckboxGroupCanary/types.d.ts +38 -0
  325. package/__internal__/cjs-src/components/CheckboxGroupCanary/types.js +9 -0
  326. package/__internal__/cjs-src/components/ChoiceGroupCanary/ChoiceGroup.css +231 -0
  327. package/__internal__/cjs-src/components/ChoiceGroupCanary/ChoiceGroupCanary.d.ts +5 -0
  328. package/__internal__/cjs-src/components/ChoiceGroupCanary/ChoiceGroupCanary.js +43 -0
  329. package/__internal__/cjs-src/components/ChoiceGroupCanary/Item/ChoiceGroup-Item.d.ts +15 -0
  330. package/__internal__/cjs-src/components/ChoiceGroupCanary/Item/ChoiceGroup-Item.js +17 -0
  331. package/__internal__/cjs-src/components/ChoiceGroupCanary/helper.d.ts +277 -0
  332. package/__internal__/cjs-src/components/ChoiceGroupCanary/helper.js +12 -0
  333. package/__internal__/cjs-src/components/ChoiceGroupCanary/types.d.ts +63 -0
  334. package/__internal__/cjs-src/components/ChoiceGroupCanary/types.js +11 -0
  335. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerAdditionalControls/DatePickerAdditionalControls.css +36 -0
  336. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerAdditionalControls/DatePickerAdditionalControls.d.ts +12 -0
  337. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerAdditionalControls/DatePickerAdditionalControls.js +21 -0
  338. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerDropdown/DatePickerDropdown.d.ts +5 -5
  339. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerDropdown/DatePickerDropdown.js +18 -2
  340. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeDate/DatePickerTypeDate.js +22 -17
  341. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeDateRange/DatePickerTypeDateRange.js +23 -22
  342. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeDateTime/DatePickerTypeDateTime.js +21 -16
  343. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +19 -18
  344. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeMonth/DatePickerTypeMonth.js +26 -20
  345. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js +32 -30
  346. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeTime/DatePickerTypeTime.js +7 -6
  347. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeYear/DatePickerTypeYear.js +22 -17
  348. package/__internal__/cjs-src/components/DatePickerCanary/DatePickerTypeYearRange/DatePickerTypeYearRange.js +21 -20
  349. package/__internal__/cjs-src/components/DatePickerCanary/helpers.d.ts +2 -0
  350. package/__internal__/cjs-src/components/DatePickerCanary/helpers.js +4 -1
  351. package/__internal__/cjs-src/components/DatePickerCanary/types.d.ts +8 -2
  352. package/__internal__/cjs-src/components/DatePickerCanary/types.js +3 -1
  353. package/__internal__/cjs-src/components/DatePickerCanary/useCurrentVisibleDate.d.ts +5 -2
  354. package/__internal__/cjs-src/components/DatePickerCanary/useCurrentVisibleDate.js +8 -5
  355. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeSlider/DateTimeSlider.css +1 -1
  356. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeTypeDate/DateTimeTypeDate.js +13 -17
  357. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeTypeDateTime/DateTimeTypeDateTime.js +3 -5
  358. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeTypeMonth/DateTimeTypeMonth.js +4 -8
  359. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeTypeTime/DateTimeTypeTime.js +2 -4
  360. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeTypeYear/DateTimeTypeYear.js +10 -15
  361. package/__internal__/cjs-src/components/DateTimeCanary/helpers/types.d.ts +0 -6
  362. package/__internal__/cjs-src/components/DateTimeCanary/helpers/useCurrentVisibleDate.d.ts +6 -2
  363. package/__internal__/cjs-src/components/DateTimeCanary/helpers/useCurrentVisibleDate.js +8 -5
  364. package/__internal__/cjs-src/components/Popover/Popover.css +36 -2
  365. package/__internal__/cjs-src/components/Popover/Popover.js +1 -6
  366. package/__internal__/cjs-src/components/Popover/helpers.d.ts +2 -3
  367. package/__internal__/cjs-src/components/Popover/helpers.js +6 -8
  368. package/__internal__/cjs-src/components/RadioGroupCanary/RadioGroup.css +35 -0
  369. package/__internal__/cjs-src/components/RadioGroupCanary/RadioGroupCannary.d.ts +5 -0
  370. package/__internal__/cjs-src/components/RadioGroupCanary/RadioGroupCannary.js +27 -0
  371. package/__internal__/cjs-src/components/RadioGroupCanary/helper.d.ts +275 -0
  372. package/__internal__/cjs-src/components/RadioGroupCanary/helper.js +9 -0
  373. package/__internal__/cjs-src/components/RadioGroupCanary/types.d.ts +42 -0
  374. package/__internal__/cjs-src/components/RadioGroupCanary/types.js +11 -0
  375. package/__internal__/cjs-src/components/SwitchGroupCanary/SwitchGroup.css +35 -0
  376. package/__internal__/cjs-src/components/SwitchGroupCanary/SwitchGroupCanary.d.ts +5 -0
  377. package/__internal__/cjs-src/components/SwitchGroupCanary/SwitchGroupCanary.js +27 -0
  378. package/__internal__/cjs-src/components/SwitchGroupCanary/helpers.d.ts +274 -0
  379. package/__internal__/cjs-src/components/SwitchGroupCanary/helpers.js +11 -0
  380. package/__internal__/cjs-src/components/SwitchGroupCanary/types.d.ts +38 -0
  381. package/__internal__/cjs-src/components/SwitchGroupCanary/types.js +9 -0
  382. package/__internal__/cjs-src/components/TabsCanary/FitModeDropdownWrapper/TabsFitModeDropdownWrapper.css +24 -0
  383. package/__internal__/cjs-src/components/TabsCanary/FitModeDropdownWrapper/TabsFitModeDropdownWrapper.d.ts +4 -0
  384. package/__internal__/cjs-src/components/TabsCanary/FitModeDropdownWrapper/TabsFitModeDropdownWrapper.js +40 -0
  385. package/__internal__/cjs-src/components/TabsCanary/FitModeDropdownWrapper/useFittingItems.d.ts +15 -0
  386. package/__internal__/cjs-src/components/TabsCanary/FitModeDropdownWrapper/useFittingItems.js +51 -0
  387. package/__internal__/cjs-src/components/TabsCanary/FitModeScrollWrapper/TabsFitModeScrollWrapper.css +57 -0
  388. package/__internal__/cjs-src/components/TabsCanary/FitModeScrollWrapper/TabsFitModeScrollWrapper.d.ts +4 -0
  389. package/__internal__/cjs-src/components/TabsCanary/FitModeScrollWrapper/TabsFitModeScrollWrapper.js +66 -0
  390. package/__internal__/cjs-src/components/TabsCanary/Line/TabsLine.css +51 -0
  391. package/__internal__/cjs-src/components/TabsCanary/Line/TabsLine.d.ts +11 -0
  392. package/__internal__/cjs-src/components/TabsCanary/Line/TabsLine.js +30 -0
  393. package/__internal__/cjs-src/components/TabsCanary/MoreItems/TabsMoreItems.css +45 -0
  394. package/__internal__/cjs-src/components/TabsCanary/MoreItems/TabsMoreItems.d.ts +3 -0
  395. package/__internal__/cjs-src/components/TabsCanary/MoreItems/TabsMoreItems.js +52 -0
  396. package/__internal__/cjs-src/components/TabsCanary/Tab/TabsTab.css +69 -0
  397. package/__internal__/cjs-src/components/TabsCanary/Tab/TabsTab.d.ts +5 -0
  398. package/__internal__/cjs-src/components/TabsCanary/Tab/TabsTab.js +21 -0
  399. package/__internal__/cjs-src/components/TabsCanary/Tabs.css +57 -0
  400. package/__internal__/cjs-src/components/TabsCanary/TabsCanary.d.ts +7 -0
  401. package/__internal__/cjs-src/components/TabsCanary/TabsCanary.js +71 -0
  402. package/__internal__/cjs-src/components/TabsCanary/helpers.d.ts +552 -0
  403. package/__internal__/cjs-src/components/TabsCanary/helpers.js +51 -0
  404. package/__internal__/cjs-src/components/TabsCanary/types.d.ts +97 -0
  405. package/__internal__/cjs-src/components/TabsCanary/types.js +11 -0
  406. package/__internal__/cjs-src/utils/getByMap.d.ts +1 -1
  407. package/__internal__/cjs-src/utils/getByMap.js +4 -4
  408. package/__internal__/cjs-src/utils/getGroups.js +5 -1
  409. package/__internal__/src/components/CheckboxGroupCanary/CheckboxGroup.css +35 -0
  410. package/__internal__/src/components/CheckboxGroupCanary/CheckboxGroupCanary.d.ts +5 -0
  411. package/__internal__/src/components/CheckboxGroupCanary/CheckboxGroupCanary.js +24 -0
  412. package/__internal__/src/components/CheckboxGroupCanary/helper.d.ts +274 -0
  413. package/__internal__/src/components/CheckboxGroupCanary/helper.js +8 -0
  414. package/__internal__/src/components/CheckboxGroupCanary/types.d.ts +38 -0
  415. package/__internal__/src/components/CheckboxGroupCanary/types.js +6 -0
  416. package/__internal__/src/components/ChoiceGroupCanary/ChoiceGroup.css +231 -0
  417. package/__internal__/src/components/ChoiceGroupCanary/ChoiceGroupCanary.d.ts +5 -0
  418. package/__internal__/src/components/ChoiceGroupCanary/ChoiceGroupCanary.js +40 -0
  419. package/__internal__/src/components/ChoiceGroupCanary/Item/ChoiceGroup-Item.d.ts +15 -0
  420. package/__internal__/src/components/ChoiceGroupCanary/Item/ChoiceGroup-Item.js +14 -0
  421. package/__internal__/src/components/ChoiceGroupCanary/helper.d.ts +277 -0
  422. package/__internal__/src/components/ChoiceGroupCanary/helper.js +9 -0
  423. package/__internal__/src/components/ChoiceGroupCanary/types.d.ts +63 -0
  424. package/__internal__/src/components/ChoiceGroupCanary/types.js +8 -0
  425. package/__internal__/src/components/DatePickerCanary/DatePickerAdditionalControls/DatePickerAdditionalControls.css +36 -0
  426. package/__internal__/src/components/DatePickerCanary/DatePickerAdditionalControls/DatePickerAdditionalControls.d.ts +12 -0
  427. package/__internal__/src/components/DatePickerCanary/DatePickerAdditionalControls/DatePickerAdditionalControls.js +18 -0
  428. package/__internal__/src/components/DatePickerCanary/DatePickerDropdown/DatePickerDropdown.d.ts +5 -5
  429. package/__internal__/src/components/DatePickerCanary/DatePickerDropdown/DatePickerDropdown.js +19 -3
  430. package/__internal__/src/components/DatePickerCanary/DatePickerTypeDate/DatePickerTypeDate.js +23 -18
  431. package/__internal__/src/components/DatePickerCanary/DatePickerTypeDateRange/DatePickerTypeDateRange.js +25 -24
  432. package/__internal__/src/components/DatePickerCanary/DatePickerTypeDateTime/DatePickerTypeDateTime.js +23 -18
  433. package/__internal__/src/components/DatePickerCanary/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +21 -20
  434. package/__internal__/src/components/DatePickerCanary/DatePickerTypeMonth/DatePickerTypeMonth.js +25 -19
  435. package/__internal__/src/components/DatePickerCanary/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js +30 -28
  436. package/__internal__/src/components/DatePickerCanary/DatePickerTypeTime/DatePickerTypeTime.js +8 -7
  437. package/__internal__/src/components/DatePickerCanary/DatePickerTypeYear/DatePickerTypeYear.js +23 -18
  438. package/__internal__/src/components/DatePickerCanary/DatePickerTypeYearRange/DatePickerTypeYearRange.js +22 -21
  439. package/__internal__/src/components/DatePickerCanary/helpers.d.ts +2 -0
  440. package/__internal__/src/components/DatePickerCanary/helpers.js +3 -0
  441. package/__internal__/src/components/DatePickerCanary/types.d.ts +8 -2
  442. package/__internal__/src/components/DatePickerCanary/types.js +2 -0
  443. package/__internal__/src/components/DatePickerCanary/useCurrentVisibleDate.d.ts +5 -2
  444. package/__internal__/src/components/DatePickerCanary/useCurrentVisibleDate.js +9 -6
  445. package/__internal__/src/components/DateTimeCanary/DateTimeSlider/DateTimeSlider.css +1 -1
  446. package/__internal__/src/components/DateTimeCanary/DateTimeTypeDate/DateTimeTypeDate.js +13 -17
  447. package/__internal__/src/components/DateTimeCanary/DateTimeTypeDateTime/DateTimeTypeDateTime.js +3 -5
  448. package/__internal__/src/components/DateTimeCanary/DateTimeTypeMonth/DateTimeTypeMonth.js +4 -8
  449. package/__internal__/src/components/DateTimeCanary/DateTimeTypeTime/DateTimeTypeTime.js +2 -4
  450. package/__internal__/src/components/DateTimeCanary/DateTimeTypeYear/DateTimeTypeYear.js +10 -15
  451. package/__internal__/src/components/DateTimeCanary/helpers/types.d.ts +0 -6
  452. package/__internal__/src/components/DateTimeCanary/helpers/useCurrentVisibleDate.d.ts +6 -2
  453. package/__internal__/src/components/DateTimeCanary/helpers/useCurrentVisibleDate.js +7 -4
  454. package/__internal__/src/components/Popover/Popover.css +36 -2
  455. package/__internal__/src/components/Popover/Popover.js +1 -6
  456. package/__internal__/src/components/Popover/helpers.d.ts +2 -3
  457. package/__internal__/src/components/Popover/helpers.js +6 -8
  458. package/__internal__/src/components/RadioGroupCanary/RadioGroup.css +35 -0
  459. package/__internal__/src/components/RadioGroupCanary/RadioGroupCannary.d.ts +5 -0
  460. package/__internal__/src/components/RadioGroupCanary/RadioGroupCannary.js +24 -0
  461. package/__internal__/src/components/RadioGroupCanary/helper.d.ts +275 -0
  462. package/__internal__/src/components/RadioGroupCanary/helper.js +6 -0
  463. package/__internal__/src/components/RadioGroupCanary/types.d.ts +42 -0
  464. package/__internal__/src/components/RadioGroupCanary/types.js +8 -0
  465. package/__internal__/src/components/SwitchGroupCanary/SwitchGroup.css +35 -0
  466. package/__internal__/src/components/SwitchGroupCanary/SwitchGroupCanary.d.ts +5 -0
  467. package/__internal__/src/components/SwitchGroupCanary/SwitchGroupCanary.js +24 -0
  468. package/__internal__/src/components/SwitchGroupCanary/helpers.d.ts +274 -0
  469. package/__internal__/src/components/SwitchGroupCanary/helpers.js +8 -0
  470. package/__internal__/src/components/SwitchGroupCanary/types.d.ts +38 -0
  471. package/__internal__/src/components/SwitchGroupCanary/types.js +6 -0
  472. package/__internal__/src/components/TabsCanary/FitModeDropdownWrapper/TabsFitModeDropdownWrapper.css +24 -0
  473. package/__internal__/src/components/TabsCanary/FitModeDropdownWrapper/TabsFitModeDropdownWrapper.d.ts +4 -0
  474. package/__internal__/src/components/TabsCanary/FitModeDropdownWrapper/TabsFitModeDropdownWrapper.js +37 -0
  475. package/__internal__/src/components/TabsCanary/FitModeDropdownWrapper/useFittingItems.d.ts +15 -0
  476. package/__internal__/src/components/TabsCanary/FitModeDropdownWrapper/useFittingItems.js +48 -0
  477. package/__internal__/src/components/TabsCanary/FitModeScrollWrapper/TabsFitModeScrollWrapper.css +57 -0
  478. package/__internal__/src/components/TabsCanary/FitModeScrollWrapper/TabsFitModeScrollWrapper.d.ts +4 -0
  479. package/__internal__/src/components/TabsCanary/FitModeScrollWrapper/TabsFitModeScrollWrapper.js +63 -0
  480. package/__internal__/src/components/TabsCanary/Line/TabsLine.css +51 -0
  481. package/__internal__/src/components/TabsCanary/Line/TabsLine.d.ts +11 -0
  482. package/__internal__/src/components/TabsCanary/Line/TabsLine.js +26 -0
  483. package/__internal__/src/components/TabsCanary/MoreItems/TabsMoreItems.css +45 -0
  484. package/__internal__/src/components/TabsCanary/MoreItems/TabsMoreItems.d.ts +3 -0
  485. package/__internal__/src/components/TabsCanary/MoreItems/TabsMoreItems.js +49 -0
  486. package/__internal__/src/components/TabsCanary/Tab/TabsTab.css +69 -0
  487. package/__internal__/src/components/TabsCanary/Tab/TabsTab.d.ts +5 -0
  488. package/__internal__/src/components/TabsCanary/Tab/TabsTab.js +17 -0
  489. package/__internal__/src/components/TabsCanary/Tabs.css +57 -0
  490. package/__internal__/src/components/TabsCanary/TabsCanary.d.ts +7 -0
  491. package/__internal__/src/components/TabsCanary/TabsCanary.js +67 -0
  492. package/__internal__/src/components/TabsCanary/helpers.d.ts +552 -0
  493. package/__internal__/src/components/TabsCanary/helpers.js +48 -0
  494. package/__internal__/src/components/TabsCanary/types.d.ts +97 -0
  495. package/__internal__/src/components/TabsCanary/types.js +8 -0
  496. package/__internal__/src/utils/getByMap.d.ts +1 -1
  497. package/__internal__/src/utils/getByMap.js +4 -4
  498. package/__internal__/src/utils/getGroups.js +5 -1
  499. package/createIcon/package.json +1 -1
  500. package/createResponsesImage/package.json +1 -1
  501. package/package.json +5 -1
  502. package/useBreakpoints/package.json +1 -1
  503. package/useChoiceGroup/package.json +1 -1
  504. package/useChoiceGroupIndexed/package.json +1 -1
  505. package/useClickOutside/package.json +1 -1
  506. package/useComponentSize/package.json +1 -1
  507. package/useDebounce/package.json +1 -1
  508. package/useFlag/package.json +1 -1
  509. package/useForkRef/package.json +1 -1
  510. package/useGlobalKeys/package.json +1 -1
  511. package/useHideElementsInLine/package.json +1 -1
  512. package/useKeys/package.json +1 -1
  513. package/useMutableRef/package.json +1 -1
  514. package/useOverflow/package.json +1 -1
  515. package/usePrevious/package.json +1 -1
  516. package/useRefs/package.json +1 -1
  517. package/useResizeObserved/package.json +1 -1
  518. package/useScrollElements/package.json +1 -1
  519. package/useScrollPosition/package.json +1 -1
  520. package/useSelect/package.json +1 -1
  521. package/useSortSteps/package.json +1 -1
  522. package/useThemeVars/package.json +1 -1
  523. package/useTimer/package.json +1 -1
  524. package/withTooltip/package.json +1 -1
  525. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeAdditionalControls/DateTimeAdditionalControls.css +0 -9
  526. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeAdditionalControls/DateTimeAdditionalControls.d.ts +0 -9
  527. package/__internal__/cjs-src/components/DateTimeCanary/DateTimeAdditionalControls/DateTimeAdditionalControls.js +0 -21
  528. package/__internal__/src/components/DateTimeCanary/DateTimeAdditionalControls/DateTimeAdditionalControls.css +0 -9
  529. package/__internal__/src/components/DateTimeCanary/DateTimeAdditionalControls/DateTimeAdditionalControls.d.ts +0 -9
  530. package/__internal__/src/components/DateTimeCanary/DateTimeAdditionalControls/DateTimeAdditionalControls.js +0 -17
@@ -0,0 +1,63 @@
1
+ /// <reference types="react" />
2
+ import { IconComponent, IconPropSize } from '../../icons/Icon/Icon';
3
+ import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';
4
+ export declare type ChoiceGroupDefaultItem = {
5
+ label: string;
6
+ icon?: IconComponent;
7
+ disabled?: boolean;
8
+ };
9
+ export declare const choiceGroupForms: readonly ["default", "brick", "round"];
10
+ export declare type ChoiceGroupPropForm = typeof choiceGroupForms[number];
11
+ export declare const choiceGroupDefaultForm: ChoiceGroupPropForm;
12
+ export declare const choiceGroupSizes: readonly ["xs", "s", "m", "l"];
13
+ export declare type ChoiceGroupPropSize = typeof choiceGroupSizes[number];
14
+ export declare const choiceGroupDefaultSize: ChoiceGroupPropSize;
15
+ export declare const choiceGroupViews: readonly ["primary", "ghost", "secondary"];
16
+ export declare type ChoiceGroupPropView = typeof choiceGroupViews[number];
17
+ export declare const choiceGroupDefaultView: ChoiceGroupPropView;
18
+ export declare const choiceGroupWidth: readonly ["default", "full"];
19
+ export declare type СhoiceGroupPropWidth = typeof choiceGroupWidth[number];
20
+ export declare const choiceGroupWidthDefault: СhoiceGroupPropWidth;
21
+ export declare type ChoiceGroupPropGetItemLabel<ITEM> = (item: ITEM) => string | number;
22
+ export declare type ChoiceGroupPropGetItemIcon<ITEM> = (item: ITEM) => IconComponent | undefined;
23
+ export declare type ChoiceGroupPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;
24
+ export declare type ChoiceGroupPropValue<ITEM, MULTIPLE extends boolean> = (MULTIPLE extends true ? ITEM[] : ITEM) | null;
25
+ export declare type ChoiceGroupPropOnChange<ITEM, MULTIPLE extends boolean> = (props: {
26
+ e: React.ChangeEvent<HTMLInputElement>;
27
+ value: MULTIPLE extends true ? ITEM[] | null : ITEM;
28
+ }) => void;
29
+ export declare type ChoiceGroupProps<ITEM = ChoiceGroupDefaultItem, MULTIPLE extends boolean = false> = PropsWithHTMLAttributesAndRef<{
30
+ size?: ChoiceGroupPropSize;
31
+ form?: ChoiceGroupPropForm;
32
+ view?: ChoiceGroupPropView;
33
+ width?: СhoiceGroupPropWidth;
34
+ onlyIcon?: boolean;
35
+ iconSize?: IconPropSize;
36
+ items: ITEM[];
37
+ getItemLabel?: ChoiceGroupPropGetItemLabel<ITEM>;
38
+ getItemIcon?: ChoiceGroupPropGetItemIcon<ITEM>;
39
+ name: string;
40
+ disabled?: boolean;
41
+ getItemDisabled?: ChoiceGroupPropGetItemDisabled<ITEM>;
42
+ value?: ChoiceGroupPropValue<ITEM, MULTIPLE>;
43
+ onChange?: ChoiceGroupPropOnChange<ITEM, MULTIPLE>;
44
+ multiple?: MULTIPLE;
45
+ truncate?: boolean;
46
+ children?: never;
47
+ }, HTMLDivElement> & (ITEM extends {
48
+ label: ChoiceGroupDefaultItem['label'];
49
+ } ? {} : {
50
+ getItemLabel: ChoiceGroupPropGetItemLabel<ITEM>;
51
+ });
52
+ export declare type ChoiceGroupItemProps = {
53
+ icon?: IconComponent;
54
+ onlyIcon?: boolean;
55
+ iconSize?: IconPropSize;
56
+ label: string;
57
+ name: string;
58
+ onChange: React.ChangeEventHandler<HTMLInputElement>;
59
+ checked: boolean;
60
+ multiple: boolean;
61
+ disabled?: boolean;
62
+ };
63
+ export declare type ChoiceGroupComponent = <ITEM, MULTIPLE extends boolean = false>(props: ChoiceGroupProps<ITEM, MULTIPLE>) => React.ReactElement | null;
@@ -0,0 +1,8 @@
1
+ export var choiceGroupForms = ['default', 'brick', 'round'];
2
+ export var choiceGroupDefaultForm = 'default';
3
+ export var choiceGroupSizes = ['xs', 's', 'm', 'l'];
4
+ export var choiceGroupDefaultSize = 'm';
5
+ export var choiceGroupViews = ['primary', 'ghost', 'secondary'];
6
+ export var choiceGroupDefaultView = 'primary';
7
+ export var choiceGroupWidth = ['default', 'full'];
8
+ export var choiceGroupWidthDefault = choiceGroupWidth[0];
@@ -0,0 +1,36 @@
1
+ .DatePickerAdditionalControls {
2
+ --date-picker-cell-width: calc(var(--control-height-s) + (var(--space-3xs) * 2));
3
+ padding-top: var(--space-l);
4
+ }
5
+
6
+ .DatePickerAdditionalControls_type_date.DatePickerAdditionalControls_view_classic,
7
+ .DatePickerAdditionalControls_type_year.DatePickerAdditionalControls_view_classic,
8
+ .DatePickerAdditionalControls_type_month.DatePickerAdditionalControls_view_classic {
9
+ width: calc(var(--date-picker-cell-width) * 7);
10
+ }
11
+
12
+ .DatePickerAdditionalControls_type_date.DatePickerAdditionalControls_view_book,
13
+ .DatePickerAdditionalControls_type_year.DatePickerAdditionalControls_view_book,
14
+ .DatePickerAdditionalControls_type_month.DatePickerAdditionalControls_view_book,
15
+ .DatePickerAdditionalControls_type_date.DatePickerAdditionalControls_view_slider,
16
+ .DatePickerAdditionalControls_type_year.DatePickerAdditionalControls_view_slider,
17
+ .DatePickerAdditionalControls_type_month.DatePickerAdditionalControls_view_slider {
18
+ width: calc(var(--date-picker-cell-width) * 14 + var(--space-m));
19
+ }
20
+
21
+ .DatePickerAdditionalControls_type_time {
22
+ width: calc(var(--date-picker-cell-width) * 3);
23
+ }
24
+
25
+ .DatePickerAdditionalControls_type_date-time {
26
+ width: calc(var(--date-picker-cell-width) * 10 + var(--space-s) * 2);
27
+ }
28
+
29
+ .DatePickerAdditionalControls_contentType_array {
30
+ display: -webkit-box;
31
+ display: -ms-flexbox;
32
+ display: flex;
33
+ gap: var(--space-s);
34
+ -ms-flex-wrap: wrap;
35
+ flex-wrap: wrap;
36
+ }
@@ -0,0 +1,12 @@
1
+ import './DatePickerAdditionalControls.css';
2
+ import React from 'react';
3
+ import { PropsWithHTMLAttributes } from '../../../utils/types/PropsWithHTMLAttributes';
4
+ import { DatePickerAdditionalControlRenderProp, DatePickerPropDateTimeView, DatePickerPropType } from '../types';
5
+ declare type Props = PropsWithHTMLAttributes<{
6
+ renderAdditionalControls?: DatePickerAdditionalControlRenderProp;
7
+ currentVisibleDate?: Date;
8
+ type: DatePickerPropType;
9
+ view: DatePickerPropDateTimeView;
10
+ }, HTMLDivElement>;
11
+ export declare const DatePickerAdditionalControls: React.FC<Props>;
12
+ export {};
@@ -0,0 +1,18 @@
1
+ import { __assign, __rest } from "tslib";
2
+ import './DatePickerAdditionalControls.css';
3
+ import React from 'react';
4
+ import { cn } from '../../../utils/bem';
5
+ function isRenderFn(fn) {
6
+ return fn.call !== undefined;
7
+ }
8
+ var cnDatePickerAdditionalControls = cn('DatePickerAdditionalControls');
9
+ export var DatePickerAdditionalControls = function (props) {
10
+ var renderAdditionalControls = props.renderAdditionalControls, currentVisibleDate = props.currentVisibleDate, className = props.className, type = props.type, view = props.view, otherProps = __rest(props, ["renderAdditionalControls", "currentVisibleDate", "className", "type", "view"]);
11
+ if (typeof renderAdditionalControls !== 'undefined') {
12
+ var content = isRenderFn(renderAdditionalControls)
13
+ ? renderAdditionalControls({ currentVisibleDate: currentVisibleDate })
14
+ : renderAdditionalControls;
15
+ return (React.createElement("div", __assign({}, otherProps, { className: cnDatePickerAdditionalControls({ type: type, view: view, contentType: Array.isArray(content) && 'array' }, [className]) }), content));
16
+ }
17
+ return null;
18
+ };
@@ -2,26 +2,26 @@ import './DatePickerDropdown.css';
2
2
  import React from 'react';
3
3
  import { DateRange } from '../../../utils/types/Date';
4
4
  import { PropsWithHTMLAttributesAndRef } from '../../../utils/types/PropsWithHTMLAttributes';
5
- import { DateTimeAdditionalControlRenderProp, DateTimePropOnChange, DateTimePropType } from '../../DateTimeCanary/DateTimeCanary';
6
- import { DatePickerPropDateTimeView, DatePickerPropDropdownForm } from '../types';
5
+ import { DateTimePropOnChange, DateTimePropType } from '../../DateTimeCanary/DateTimeCanary';
6
+ import { DatePickerAdditionalControlRenderProp, DatePickerPropDateTimeView, DatePickerPropDropdownForm } from '../types';
7
7
  export declare type DatePickerDropdownPropOnChange = DateTimePropOnChange;
8
8
  export declare type DatePickerDropdownProps = PropsWithHTMLAttributesAndRef<{
9
9
  anchorRef: React.RefObject<HTMLElement>;
10
10
  currentVisibleDate?: Date;
11
- type?: DateTimePropType;
11
+ type: DateTimePropType;
12
12
  value?: Date | DateRange;
13
13
  onChange?: DatePickerDropdownPropOnChange;
14
14
  minDate?: Date;
15
15
  maxDate?: Date;
16
16
  events?: Date[];
17
- view?: DatePickerPropDateTimeView;
17
+ view: DatePickerPropDateTimeView;
18
18
  locale?: Locale;
19
19
  children?: never;
20
20
  form?: DatePickerPropDropdownForm;
21
21
  isOpen?: boolean;
22
22
  onChangeCurrentVisibleDate?: (date: Date) => void;
23
23
  zIndex?: number;
24
- renderAdditionalControls?: DateTimeAdditionalControlRenderProp;
24
+ renderAdditionalControls?: DatePickerAdditionalControlRenderProp;
25
25
  multiplicitySeconds?: number;
26
26
  multiplicityMinutes?: number;
27
27
  multiplicityHours?: number;
@@ -1,24 +1,40 @@
1
1
  import { __assign, __read, __rest } from "tslib";
2
2
  import './DatePickerDropdown.css';
3
- import React, { forwardRef, useRef, useState } from 'react';
3
+ import React, { forwardRef, useCallback, useRef, useState } from 'react';
4
4
  import { Transition } from 'react-transition-group';
5
+ import { useFlag } from '../../../hooks/useFlag/useFlag';
5
6
  import { useForkRef } from '../../../hooks/useForkRef/useForkRef';
6
7
  import { animateTimeout, cnMixPopoverAnimate, } from '../../../mixs/MixPopoverAnimate/MixPopoverAnimate';
7
8
  import { cn } from '../../../utils/bem';
8
9
  import { DateTime, } from '../../DateTimeCanary/DateTimeCanary';
9
10
  import { Popover } from '../../Popover/Popover';
11
+ import { DatePickerAdditionalControls } from '../DatePickerAdditionalControls/DatePickerAdditionalControls';
10
12
  import { datePickerPropDropdownFormDefault, } from '../types';
13
+ var moveMap = {
14
+ 'year': 'year',
15
+ 'month': 'month',
16
+ 'date': 'day',
17
+ 'time': 'time',
18
+ 'date-time': 'day'
19
+ };
11
20
  var cnDatePickerDropdown = cn('DatePickerDropdown');
12
21
  export var DatePickerDropdown = forwardRef(function (props, componentRef) {
13
- var _a = props.form, form = _a === void 0 ? datePickerPropDropdownFormDefault : _a, anchorRef = props.anchorRef, isOpen = props.isOpen, className = props.className, zIndex = props.zIndex, otherProps = __rest(props, ["form", "anchorRef", "isOpen", "className", "zIndex"]);
22
+ var _a = props.form, form = _a === void 0 ? datePickerPropDropdownFormDefault : _a, anchorRef = props.anchorRef, isOpen = props.isOpen, className = props.className, zIndex = props.zIndex, renderAdditionalControls = props.renderAdditionalControls, otherProps = __rest(props, ["form", "anchorRef", "isOpen", "className", "zIndex", "renderAdditionalControls"]);
14
23
  var rootRef = useRef(null);
15
24
  var _b = __read(useState(), 2), direction = _b[0], setDirection = _b[1];
25
+ var _c = __read(useFlag(true), 2), visibleAdditionalControls = _c[0], setVisibleAdditionalControls = _c[1];
26
+ var onMove = useCallback(function (to) {
27
+ to === moveMap[props.type]
28
+ ? setVisibleAdditionalControls.on()
29
+ : setVisibleAdditionalControls.off();
30
+ }, [props.type]);
16
31
  var ref = useForkRef([componentRef, rootRef]);
17
32
  return (React.createElement(Transition, { "in": isOpen, unmountOnExit: true, timeout: animateTimeout, nodeRef: rootRef }, function (animate) {
18
33
  return (React.createElement(Popover, { ref: ref, anchorRef: anchorRef, className: cnDatePickerDropdown({ form: form }, [
19
34
  className,
20
35
  cnMixPopoverAnimate({ direction: direction, animate: animate }),
21
36
  ]), direction: "downStartLeft", spareDirection: "downStartLeft", possibleDirections: ['downStartLeft', 'upStartLeft', 'downStartRight', 'upStartRight'], style: { zIndex: zIndex }, role: "listbox", onSetDirection: setDirection },
22
- React.createElement(DateTime, __assign({}, otherProps))));
37
+ React.createElement(DateTime, __assign({}, otherProps, { onMove: onMove })),
38
+ visibleAdditionalControls && (React.createElement(DatePickerAdditionalControls, { currentVisibleDate: props.currentVisibleDate, renderAdditionalControls: renderAdditionalControls, type: props.type, view: props.view }))));
23
39
  }));
24
40
  });
@@ -1,5 +1,5 @@
1
1
  import { __assign, __read, __rest } from "tslib";
2
- import React, { forwardRef, useEffect, useRef, useState } from 'react';
2
+ import React, { forwardRef, useEffect, useRef } from 'react';
3
3
  import addMonths from 'date-fns/addMonths';
4
4
  import startOfMonth from 'date-fns/startOfMonth';
5
5
  import { useClickOutside } from '../../../hooks/useClickOutside/useClickOutside';
@@ -7,14 +7,23 @@ import { useFlag } from '../../../hooks/useFlag/useFlag';
7
7
  import { setRef } from '../../../utils/setRef';
8
8
  import { DatePickerDropdown } from '../DatePickerDropdown/DatePickerDropdown';
9
9
  import { DatePickerFieldTypeDate } from '../DatePickerFieldTypeDate/DatePickerFieldTypeDate';
10
+ import { getDropdownZIndex } from '../helpers';
11
+ import { datePickerPropDateTimeViewDefault } from '../types';
10
12
  import { useCurrentVisibleDate } from '../useCurrentVisibleDate';
11
13
  export var DatePickerTypeDate = forwardRef(function (props, ref) {
12
- var events = props.events, dateTimeView = props.dateTimeView, locale = props.locale, dropdownForm = props.dropdownForm, onFocus = props.onFocus, currentVisibleDateProp = props.currentVisibleDate, onChangeCurrentVisibleDateProp = props.onChangeCurrentVisibleDate, renderAdditionalControls = props.renderAdditionalControls, style = props.style, otherProps = __rest(props, ["events", "dateTimeView", "locale", "dropdownForm", "onFocus", "currentVisibleDate", "onChangeCurrentVisibleDate", "renderAdditionalControls", "style"]);
14
+ var events = props.events, _a = props.dateTimeView, dateTimeView = _a === void 0 ? datePickerPropDateTimeViewDefault : _a, locale = props.locale, dropdownForm = props.dropdownForm, onFocus = props.onFocus, currentVisibleDateProp = props.currentVisibleDate, onChangeCurrentVisibleDate = props.onChangeCurrentVisibleDate, renderAdditionalControls = props.renderAdditionalControls, otherProps = __rest(props, ["events", "dateTimeView", "locale", "dropdownForm", "onFocus", "currentVisibleDate", "onChangeCurrentVisibleDate", "renderAdditionalControls"]);
13
15
  var fieldRef = useRef(null);
14
16
  var calendarRef = useRef(null);
15
- var _a = __read(useFlag(false), 2), calendarVisible = _a[0], setCalendarVisible = _a[1];
16
- var _b = __read(useCurrentVisibleDate(currentVisibleDateProp, onChangeCurrentVisibleDateProp), 2), currentVisibleDate = _b[0], setCurrentVisibleDate = _b[1];
17
- var _c = __read(useState(), 2), calendarVisibleDate = _c[0], setCalendarVisibleDate = _c[1];
17
+ var _b = __read(useFlag(false), 2), calendarVisible = _b[0], setCalendarVisible = _b[1];
18
+ var _c = __read(useCurrentVisibleDate({
19
+ currentVisibleDate: currentVisibleDateProp,
20
+ maxDate: props.maxDate,
21
+ minDate: props.minDate,
22
+ value: props.value,
23
+ startOfUnit: startOfMonth,
24
+ onChangeCurrentVisibleDate: onChangeCurrentVisibleDate,
25
+ calendarVisible: calendarVisible
26
+ }), 2), currentVisibleDate = _c[0], setCurrentVisibleDate = _c[1];
18
27
  var onFocusHandler = function (e) {
19
28
  onFocus && onFocus(e);
20
29
  setCalendarVisible.on();
@@ -25,35 +34,31 @@ export var DatePickerTypeDate = forwardRef(function (props, ref) {
25
34
  }
26
35
  }, [ref, fieldRef]);
27
36
  useEffect(function () {
28
- if (props.value && props.dateTimeView === 'classic' && calendarVisibleDate) {
37
+ if (props.value && dateTimeView === 'classic' && currentVisibleDate) {
29
38
  var newVisibleDate = startOfMonth(props.value);
30
- if (newVisibleDate.getTime() !== calendarVisibleDate.getTime()) {
39
+ if (newVisibleDate.getTime() !== currentVisibleDate.getTime()) {
31
40
  setCurrentVisibleDate(newVisibleDate);
32
41
  }
33
42
  return;
34
43
  }
35
- if (props.value && props.dateTimeView !== 'classic' && calendarVisibleDate) {
44
+ if (props.value && dateTimeView !== 'classic' && currentVisibleDate) {
36
45
  var newVisibleDate = startOfMonth(props.value);
37
- if (newVisibleDate.getTime() !== calendarVisibleDate.getTime() &&
38
- newVisibleDate.getTime() !== addMonths(calendarVisibleDate, 1).getTime()) {
46
+ if (newVisibleDate.getTime() !== currentVisibleDate.getTime() &&
47
+ newVisibleDate.getTime() !== addMonths(currentVisibleDate, 1).getTime()) {
39
48
  setCurrentVisibleDate(newVisibleDate);
40
49
  }
41
50
  }
42
51
  }, [props.value]);
43
- var handleClose = function () {
44
- setCalendarVisible.off();
45
- setCurrentVisibleDate(props.value ? undefined : currentVisibleDateProp);
46
- };
47
52
  useClickOutside({
48
53
  isActive: calendarVisible,
49
54
  ignoreClicksInsideRefs: [fieldRef, calendarRef],
50
- handler: handleClose
55
+ handler: setCalendarVisible.off
51
56
  });
52
57
  return (React.createElement(React.Fragment, null,
53
- React.createElement(DatePickerFieldTypeDate, __assign({}, otherProps, { ref: fieldRef, onFocus: onFocusHandler, style: style })),
58
+ React.createElement(DatePickerFieldTypeDate, __assign({}, otherProps, { ref: fieldRef, onFocus: onFocusHandler })),
54
59
  React.createElement(DatePickerDropdown, { ref: calendarRef, anchorRef: fieldRef, isOpen: calendarVisible, value: props.value || undefined, type: "date", view: dateTimeView, events: events, locale: locale, minDate: props.minDate, maxDate: props.maxDate, currentVisibleDate: currentVisibleDate, form: dropdownForm, onChange: function (params) {
55
60
  var _a;
56
61
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, params);
57
- handleClose();
58
- }, renderAdditionalControls: renderAdditionalControls, zIndex: typeof (style === null || style === void 0 ? void 0 : style.zIndex) === 'number' ? style.zIndex + 1 : undefined, onChangeCurrentVisibleDate: setCalendarVisibleDate })));
62
+ setCalendarVisible.off();
63
+ }, renderAdditionalControls: renderAdditionalControls, zIndex: getDropdownZIndex(props.style), onChangeCurrentVisibleDate: setCurrentVisibleDate })));
59
64
  });
@@ -1,5 +1,5 @@
1
1
  import { __assign, __read, __rest } from "tslib";
2
- import React, { forwardRef, useEffect, useRef, useState } from 'react';
2
+ import React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
3
3
  import addMonths from 'date-fns/addMonths';
4
4
  import startOfMonth from 'date-fns/startOfMonth';
5
5
  import { useClickOutside } from '../../../hooks/useClickOutside/useClickOutside';
@@ -7,17 +7,18 @@ import { useFlag } from '../../../hooks/useFlag/useFlag';
7
7
  import { useForkRef } from '../../../hooks/useForkRef/useForkRef';
8
8
  import { DatePickerDropdown, } from '../DatePickerDropdown/DatePickerDropdown';
9
9
  import { DatePickerFieldTypeDateRange } from '../DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange';
10
- import { getFieldName, normalizeRangeValue } from '../helpers';
10
+ import { getDropdownZIndex, getFieldName, normalizeRangeValue } from '../helpers';
11
+ import { datePickerPropDateTimeViewDefault } from '../types';
11
12
  import { useCurrentVisibleDate } from '../useCurrentVisibleDate';
12
13
  export var DatePickerTypeDateRange = forwardRef(function (props, ref) {
13
14
  var _a, _b, _c, _d;
14
- var events = props.events, dateTimeView = props.dateTimeView, locale = props.locale, dropdownForm = props.dropdownForm, onFocus = props.onFocus, onBlur = props.onBlur, leftSide = props.leftSide, rightSide = props.rightSide, style = props.style, currentVisibleDateProp = props.currentVisibleDate, onChangeCurrentVisibleDateProp = props.onChangeCurrentVisibleDate, renderAdditionalControls = props.renderAdditionalControls, inputRef = props.inputRef, name = props.name, fieldProps = __rest(props, ["events", "dateTimeView", "locale", "dropdownForm", "onFocus", "onBlur", "leftSide", "rightSide", "style", "currentVisibleDate", "onChangeCurrentVisibleDate", "renderAdditionalControls", "inputRef", "name"]);
15
+ var events = props.events, _e = props.dateTimeView, dateTimeView = _e === void 0 ? datePickerPropDateTimeViewDefault : _e, locale = props.locale, dropdownForm = props.dropdownForm, onFocus = props.onFocus, onBlur = props.onBlur, leftSide = props.leftSide, rightSide = props.rightSide, currentVisibleDateProp = props.currentVisibleDate, onChangeCurrentVisibleDate = props.onChangeCurrentVisibleDate, renderAdditionalControls = props.renderAdditionalControls, inputRef = props.inputRef, name = props.name, fieldProps = __rest(props, ["events", "dateTimeView", "locale", "dropdownForm", "onFocus", "onBlur", "leftSide", "rightSide", "currentVisibleDate", "onChangeCurrentVisibleDate", "renderAdditionalControls", "inputRef", "name"]);
15
16
  var startFieldRef = useRef(null);
16
17
  var endFieldRef = useRef(null);
17
18
  var startFieldInputRef = useRef(null);
18
19
  var endFieldInputRef = useRef(null);
19
20
  var calendarRef = useRef(null);
20
- var _e = __read(useState(false), 2), fieldFocused = _e[0], setFieldFocused = _e[1];
21
+ var _f = __read(useState(false), 2), fieldFocused = _f[0], setFieldFocused = _f[1];
21
22
  var startFocused = fieldFocused === 'start';
22
23
  var endFocused = fieldFocused === 'end';
23
24
  var hadleChange = function (_a) {
@@ -30,8 +31,16 @@ export var DatePickerTypeDateRange = forwardRef(function (props, ref) {
30
31
  (_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]) });
31
32
  }
32
33
  };
33
- var _f = __read(useFlag(false), 2), calendarVisible = _f[0], setCalendarVisible = _f[1];
34
- var _g = __read(useCurrentVisibleDate(currentVisibleDateProp, onChangeCurrentVisibleDateProp), 2), currentVisibleDate = _g[0], setCurrentVisibleDate = _g[1];
34
+ var _g = __read(useFlag(false), 2), calendarVisible = _g[0], setCalendarVisible = _g[1];
35
+ var _h = __read(useCurrentVisibleDate({
36
+ currentVisibleDate: currentVisibleDateProp,
37
+ maxDate: props.maxDate,
38
+ minDate: props.minDate,
39
+ value: props.value,
40
+ startOfUnit: startOfMonth,
41
+ onChangeCurrentVisibleDate: onChangeCurrentVisibleDate,
42
+ calendarVisible: calendarVisible
43
+ }), 2), currentVisibleDate = _h[0], setCurrentVisibleDate = _h[1];
35
44
  var startFieldOnBlurHandler = function (e) { var _a; return Array.isArray(onBlur) ? (_a = onBlur[0]) === null || _a === void 0 ? void 0 : _a.call(onBlur, e) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(e); };
36
45
  var endFieldOnBlurHandler = function (e) { var _a; return Array.isArray(onBlur) ? (_a = onBlur[1]) === null || _a === void 0 ? void 0 : _a.call(onBlur, e) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(e); };
37
46
  var startFieldOnFocusHandler = function (e) {
@@ -48,58 +57,50 @@ export var DatePickerTypeDateRange = forwardRef(function (props, ref) {
48
57
  };
49
58
  // эфект для того чтобы календарь переключался при вводе с клавиатуры
50
59
  useEffect(function () {
51
- var _a, _b, _c;
52
- if (((_a = props.value) === null || _a === void 0 ? void 0 : _a[0]) && props.dateTimeView === 'classic' && startFocused) {
60
+ var _a, _b;
61
+ if (((_a = props.value) === null || _a === void 0 ? void 0 : _a[0]) && dateTimeView === 'classic' && startFocused) {
53
62
  var newVisibleDate = startOfMonth(props.value[0]);
54
63
  if (newVisibleDate.getTime() !== (currentVisibleDate === null || currentVisibleDate === void 0 ? void 0 : currentVisibleDate.getTime())) {
55
64
  setCurrentVisibleDate(newVisibleDate);
56
65
  }
57
66
  return;
58
67
  }
59
- if (((_b = props.value) === null || _b === void 0 ? void 0 : _b[0]) && props.dateTimeView !== 'classic' && startFocused) {
68
+ if (((_b = props.value) === null || _b === void 0 ? void 0 : _b[0]) && dateTimeView !== 'classic' && startFocused) {
60
69
  var newVisibleDate = startOfMonth(props.value[0]);
61
70
  if (newVisibleDate.getTime() !== (currentVisibleDate === null || currentVisibleDate === void 0 ? void 0 : currentVisibleDate.getTime()) &&
62
71
  newVisibleDate.getTime() !==
63
72
  (currentVisibleDate && addMonths(currentVisibleDate, 1).getTime())) {
64
73
  setCurrentVisibleDate(newVisibleDate);
65
74
  }
66
- return;
67
- }
68
- if (!((_c = props.value) === null || _c === void 0 ? void 0 : _c[0]) && startFocused) {
69
- setCurrentVisibleDate(currentVisibleDateProp);
70
75
  }
71
76
  }, [(_b = (_a = props.value) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.getTime(), calendarVisible, startFocused]);
72
77
  useEffect(function () {
73
- var _a, _b, _c;
74
- if (((_a = props.value) === null || _a === void 0 ? void 0 : _a[1]) && props.dateTimeView === 'classic' && endFocused) {
78
+ var _a, _b;
79
+ if (((_a = props.value) === null || _a === void 0 ? void 0 : _a[1]) && dateTimeView === 'classic' && endFocused) {
75
80
  var newVisibleDate = startOfMonth(props.value[1]);
76
81
  if (newVisibleDate.getTime() !== (currentVisibleDate === null || currentVisibleDate === void 0 ? void 0 : currentVisibleDate.getTime())) {
77
82
  setCurrentVisibleDate(newVisibleDate);
78
83
  }
79
84
  return;
80
85
  }
81
- if (((_b = props.value) === null || _b === void 0 ? void 0 : _b[1]) && props.dateTimeView !== 'classic' && endFocused) {
86
+ if (((_b = props.value) === null || _b === void 0 ? void 0 : _b[1]) && dateTimeView !== 'classic' && endFocused) {
82
87
  var newVisibleDate = startOfMonth(props.value[1]);
83
88
  if (newVisibleDate.getTime() !== (currentVisibleDate === null || currentVisibleDate === void 0 ? void 0 : currentVisibleDate.getTime()) &&
84
89
  newVisibleDate.getTime() !==
85
90
  (currentVisibleDate && addMonths(currentVisibleDate, 1).getTime())) {
86
91
  setCurrentVisibleDate(addMonths(newVisibleDate, -1));
87
92
  }
88
- return;
89
- }
90
- if (!((_c = props.value) === null || _c === void 0 ? void 0 : _c[1]) && endFocused) {
91
- setCurrentVisibleDate(currentVisibleDateProp);
92
93
  }
93
94
  }, [(_d = (_c = props.value) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d.getTime(), calendarVisible, endFocused]);
94
95
  useClickOutside({
95
96
  isActive: calendarVisible,
96
97
  ignoreClicksInsideRefs: [startFieldRef, endFieldRef, calendarRef],
97
- handler: function () {
98
+ handler: useCallback(function () {
98
99
  setFieldFocused(false);
99
100
  setCalendarVisible.off();
100
- }
101
+ }, [])
101
102
  });
102
103
  return (React.createElement(React.Fragment, null,
103
- React.createElement(DatePickerFieldTypeDateRange, __assign({}, fieldProps, { style: style, ref: ref, startFieldRef: startFieldRef, endFieldRef: endFieldRef, startFieldInputRef: useForkRef([startFieldInputRef, inputRef === null || inputRef === void 0 ? void 0 : inputRef[0]]), endFieldInputRef: useForkRef([endFieldInputRef, inputRef === null || inputRef === void 0 ? void 0 : inputRef[1]]), startFieldOnFocus: startFieldOnFocusHandler, endFieldOnFocus: endFieldOnFocusHandler, startFieldLeftSide: Array.isArray(leftSide) ? leftSide === null || leftSide === void 0 ? void 0 : leftSide[0] : leftSide, startFieldRightSide: Array.isArray(rightSide) ? rightSide === null || rightSide === void 0 ? void 0 : rightSide[0] : undefined, endFieldLeftSide: Array.isArray(leftSide) ? leftSide === null || leftSide === void 0 ? void 0 : leftSide[1] : undefined, endFieldRightSide: Array.isArray(rightSide) ? rightSide === null || rightSide === void 0 ? void 0 : rightSide[1] : rightSide, startFieldOnBlur: startFieldOnBlurHandler, endFieldOnBlur: endFieldOnBlurHandler, startFocused: startFocused, endFocused: endFocused, startFieldName: getFieldName(name, 0), endFieldName: getFieldName(name, 1) })),
104
- React.createElement(DatePickerDropdown, { type: "date", ref: calendarRef, anchorRef: startFieldRef, isOpen: calendarVisible, onChangeCurrentVisibleDate: setCurrentVisibleDate, currentVisibleDate: currentVisibleDate, value: props.value || 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 })));
104
+ React.createElement(DatePickerFieldTypeDateRange, __assign({}, fieldProps, { ref: ref, startFieldRef: startFieldRef, endFieldRef: endFieldRef, startFieldInputRef: useForkRef([startFieldInputRef, inputRef === null || inputRef === void 0 ? void 0 : inputRef[0]]), endFieldInputRef: useForkRef([endFieldInputRef, inputRef === null || inputRef === void 0 ? void 0 : inputRef[1]]), startFieldOnFocus: startFieldOnFocusHandler, endFieldOnFocus: endFieldOnFocusHandler, startFieldLeftSide: Array.isArray(leftSide) ? leftSide === null || leftSide === void 0 ? void 0 : leftSide[0] : leftSide, startFieldRightSide: Array.isArray(rightSide) ? rightSide === null || rightSide === void 0 ? void 0 : rightSide[0] : undefined, endFieldLeftSide: Array.isArray(leftSide) ? leftSide === null || leftSide === void 0 ? void 0 : leftSide[1] : undefined, endFieldRightSide: Array.isArray(rightSide) ? rightSide === null || rightSide === void 0 ? void 0 : rightSide[1] : rightSide, startFieldOnBlur: startFieldOnBlurHandler, endFieldOnBlur: endFieldOnBlurHandler, startFocused: startFocused, endFocused: endFocused, startFieldName: getFieldName(name, 0), endFieldName: getFieldName(name, 1) })),
105
+ React.createElement(DatePickerDropdown, { type: "date", ref: calendarRef, anchorRef: startFieldRef, isOpen: calendarVisible, onChangeCurrentVisibleDate: setCurrentVisibleDate, currentVisibleDate: currentVisibleDate, value: props.value || undefined, view: dateTimeView, events: events, locale: locale, minDate: props.minDate, maxDate: props.maxDate, form: dropdownForm, onChange: hadleChange, renderAdditionalControls: renderAdditionalControls, zIndex: getDropdownZIndex(props.style) })));
105
106
  });
@@ -1,5 +1,5 @@
1
1
  import { __assign, __read, __rest } from "tslib";
2
- import React, { forwardRef, useEffect, useRef, useState } from 'react';
2
+ import React, { forwardRef, useEffect, useRef } from 'react';
3
3
  import addMonths from 'date-fns/addMonths';
4
4
  import startOfMonth from 'date-fns/startOfMonth';
5
5
  import { useClickOutside } from '../../../hooks/useClickOutside/useClickOutside';
@@ -7,16 +7,24 @@ import { useFlag } from '../../../hooks/useFlag/useFlag';
7
7
  import { setRef } from '../../../utils/setRef';
8
8
  import { DatePickerDropdown } from '../DatePickerDropdown/DatePickerDropdown';
9
9
  import { DatePickerFieldTypeDateTime } from '../DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime';
10
- import { datePickerPropFormatTypeDateTime, getMultiplicityTime } from '../helpers';
10
+ import { datePickerPropFormatTypeDateTime, getDropdownZIndex, getMultiplicityTime, } from '../helpers';
11
+ import { datePickerPropDateTimeViewDefault } from '../types';
11
12
  import { useCurrentVisibleDate } from '../useCurrentVisibleDate';
12
13
  export var DatePickerTypeDateTime = forwardRef(function (props, ref) {
13
- var events = props.events, dateTimeView = props.dateTimeView, locale = props.locale, dropdownForm = props.dropdownForm, onFocus = props.onFocus, currentVisibleDateProp = props.currentVisibleDate, onChangeCurrentVisibleDateProp = props.onChangeCurrentVisibleDate, multiplicityHoursProp = props.multiplicityHours, multiplicityMinutesProp = props.multiplicityMinutes, multiplicitySecondsProp = props.multiplicitySeconds, renderAdditionalControls = props.renderAdditionalControls, style = props.style, otherProps = __rest(props, ["events", "dateTimeView", "locale", "dropdownForm", "onFocus", "currentVisibleDate", "onChangeCurrentVisibleDate", "multiplicityHours", "multiplicityMinutes", "multiplicitySeconds", "renderAdditionalControls", "style"]);
14
- var _a = __read(getMultiplicityTime(otherProps.format || datePickerPropFormatTypeDateTime, multiplicityHoursProp, multiplicityMinutesProp, multiplicitySecondsProp), 3), multiplicityHours = _a[0], multiplicityMinutes = _a[1], multiplicitySeconds = _a[2];
14
+ var events = props.events, _a = props.dateTimeView, dateTimeView = _a === void 0 ? datePickerPropDateTimeViewDefault : _a, locale = props.locale, dropdownForm = props.dropdownForm, onFocus = props.onFocus, currentVisibleDateProp = props.currentVisibleDate, onChangeCurrentVisibleDate = props.onChangeCurrentVisibleDate, multiplicityHoursProp = props.multiplicityHours, multiplicityMinutesProp = props.multiplicityMinutes, multiplicitySecondsProp = props.multiplicitySeconds, renderAdditionalControls = props.renderAdditionalControls, otherProps = __rest(props, ["events", "dateTimeView", "locale", "dropdownForm", "onFocus", "currentVisibleDate", "onChangeCurrentVisibleDate", "multiplicityHours", "multiplicityMinutes", "multiplicitySeconds", "renderAdditionalControls"]);
15
+ var _b = __read(getMultiplicityTime(otherProps.format || datePickerPropFormatTypeDateTime, multiplicityHoursProp, multiplicityMinutesProp, multiplicitySecondsProp), 3), multiplicityHours = _b[0], multiplicityMinutes = _b[1], multiplicitySeconds = _b[2];
15
16
  var fieldRef = useRef(null);
16
17
  var calendarRef = useRef(null);
17
- var _b = __read(useFlag(false), 2), calendarVisible = _b[0], setCalendarVisible = _b[1];
18
- var _c = __read(useCurrentVisibleDate(currentVisibleDateProp, onChangeCurrentVisibleDateProp), 2), currentVisibleDate = _c[0], setCurrentVisibleDate = _c[1];
19
- var _d = __read(useState(), 2), calendarVisibleDate = _d[0], setCalendarVisibleDate = _d[1];
18
+ var _c = __read(useFlag(false), 2), calendarVisible = _c[0], setCalendarVisible = _c[1];
19
+ var _d = __read(useCurrentVisibleDate({
20
+ currentVisibleDate: currentVisibleDateProp,
21
+ maxDate: props.maxDate,
22
+ minDate: props.minDate,
23
+ value: props.value,
24
+ startOfUnit: startOfMonth,
25
+ onChangeCurrentVisibleDate: onChangeCurrentVisibleDate,
26
+ calendarVisible: calendarVisible
27
+ }), 2), currentVisibleDate = _d[0], setCurrentVisibleDate = _d[1];
20
28
  var onFocusHandler = function (e) {
21
29
  onFocus && onFocus(e);
22
30
  setCalendarVisible.on();
@@ -27,17 +35,17 @@ export var DatePickerTypeDateTime = forwardRef(function (props, ref) {
27
35
  }
28
36
  }, [ref, fieldRef]);
29
37
  useEffect(function () {
30
- if (props.value && props.dateTimeView === 'classic' && calendarVisibleDate) {
38
+ if (props.value && dateTimeView === 'classic' && currentVisibleDate) {
31
39
  var newVisibleDate = startOfMonth(props.value);
32
- if (newVisibleDate.getTime() !== calendarVisibleDate.getTime()) {
40
+ if (newVisibleDate.getTime() !== currentVisibleDate.getTime()) {
33
41
  setCurrentVisibleDate(newVisibleDate);
34
42
  }
35
43
  return;
36
44
  }
37
- if (props.value && props.dateTimeView !== 'classic' && calendarVisibleDate) {
45
+ if (props.value && dateTimeView !== 'classic' && currentVisibleDate) {
38
46
  var newVisibleDate = startOfMonth(props.value);
39
- if (newVisibleDate.getTime() !== calendarVisibleDate.getTime() &&
40
- newVisibleDate.getTime() !== addMonths(calendarVisibleDate, 1).getTime()) {
47
+ if (newVisibleDate.getTime() !== currentVisibleDate.getTime() &&
48
+ newVisibleDate.getTime() !== addMonths(currentVisibleDate, 1).getTime()) {
41
49
  setCurrentVisibleDate(newVisibleDate);
42
50
  }
43
51
  }
@@ -45,12 +53,9 @@ export var DatePickerTypeDateTime = forwardRef(function (props, ref) {
45
53
  useClickOutside({
46
54
  isActive: calendarVisible,
47
55
  ignoreClicksInsideRefs: [fieldRef, calendarRef],
48
- handler: function () {
49
- setCalendarVisible.off();
50
- setCurrentVisibleDate(props.value ? undefined : currentVisibleDateProp);
51
- }
56
+ handler: setCalendarVisible.off
52
57
  });
53
58
  return (React.createElement(React.Fragment, null,
54
- React.createElement(DatePickerFieldTypeDateTime, __assign({}, otherProps, { ref: fieldRef, onFocus: onFocusHandler, multiplicityHours: multiplicityHours, multiplicitySeconds: multiplicitySeconds, multiplicityMinutes: multiplicityMinutes, style: style })),
55
- React.createElement(DatePickerDropdown, { ref: calendarRef, anchorRef: fieldRef, isOpen: calendarVisible, value: props.value || undefined, type: "date-time", view: dateTimeView, events: events, locale: locale, minDate: props.minDate, maxDate: props.maxDate, currentVisibleDate: currentVisibleDate, form: dropdownForm, onChange: props.onChange, renderAdditionalControls: renderAdditionalControls, onChangeCurrentVisibleDate: setCalendarVisibleDate, multiplicityHours: multiplicityHours, multiplicitySeconds: multiplicitySeconds, multiplicityMinutes: multiplicityMinutes, zIndex: typeof (style === null || style === void 0 ? void 0 : style.zIndex) === 'number' ? style.zIndex + 1 : undefined })));
59
+ React.createElement(DatePickerFieldTypeDateTime, __assign({}, otherProps, { ref: fieldRef, onFocus: onFocusHandler, multiplicityHours: multiplicityHours, multiplicitySeconds: multiplicitySeconds, multiplicityMinutes: multiplicityMinutes })),
60
+ React.createElement(DatePickerDropdown, { ref: calendarRef, anchorRef: fieldRef, isOpen: calendarVisible, value: props.value || undefined, type: "date-time", view: dateTimeView, events: events, locale: locale, minDate: props.minDate, maxDate: props.maxDate, currentVisibleDate: currentVisibleDate, form: dropdownForm, onChange: props.onChange, renderAdditionalControls: renderAdditionalControls, onChangeCurrentVisibleDate: setCurrentVisibleDate, multiplicityHours: multiplicityHours, multiplicitySeconds: multiplicitySeconds, multiplicityMinutes: multiplicityMinutes, zIndex: getDropdownZIndex(props.style) })));
56
61
  });
@@ -1,22 +1,23 @@
1
1
  import { __assign, __read, __rest } from "tslib";
2
- import React, { forwardRef, useEffect, useRef, useState } from 'react';
2
+ import React, { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
3
3
  import startOfMonth from 'date-fns/startOfMonth';
4
4
  import { useClickOutside } from '../../../hooks/useClickOutside/useClickOutside';
5
5
  import { useFlag } from '../../../hooks/useFlag/useFlag';
6
6
  import { useForkRef } from '../../../hooks/useForkRef/useForkRef';
7
7
  import { DatePickerDropdown, } from '../DatePickerDropdown/DatePickerDropdown';
8
8
  import { DatePickerFieldTypeDateTimeRange } from '../DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange';
9
- import { getFieldName, normalizeRangeValue } from '../helpers';
9
+ import { getDropdownZIndex, getFieldName, normalizeRangeValue } from '../helpers';
10
+ import { datePickerPropDateTimeViewDefault } from '../types';
10
11
  import { useCurrentVisibleDate } from '../useCurrentVisibleDate';
11
12
  export var DatePickerTypeDateTimeRange = forwardRef(function (props, ref) {
12
13
  var _a, _b, _c, _d;
13
- var events = props.events, dateTimeView = props.dateTimeView, locale = props.locale, dropdownForm = props.dropdownForm, onFocus = props.onFocus, onBlur = props.onBlur, leftSide = props.leftSide, rightSide = props.rightSide, style = props.style, currentVisibleDateProp = props.currentVisibleDate, onChangeCurrentVisibleDateProp = props.onChangeCurrentVisibleDate, renderAdditionalControls = props.renderAdditionalControls, inputRef = props.inputRef, name = props.name, multiplicityMinutes = props.multiplicityMinutes, multiplicitySeconds = props.multiplicitySeconds, multiplicityHours = props.multiplicityHours, fieldProps = __rest(props, ["events", "dateTimeView", "locale", "dropdownForm", "onFocus", "onBlur", "leftSide", "rightSide", "style", "currentVisibleDate", "onChangeCurrentVisibleDate", "renderAdditionalControls", "inputRef", "name", "multiplicityMinutes", "multiplicitySeconds", "multiplicityHours"]);
14
+ var events = props.events, _e = props.dateTimeView, dateTimeView = _e === void 0 ? datePickerPropDateTimeViewDefault : _e, locale = props.locale, dropdownForm = props.dropdownForm, onFocus = props.onFocus, onBlur = props.onBlur, leftSide = props.leftSide, rightSide = props.rightSide, currentVisibleDateProp = props.currentVisibleDate, onChangeCurrentVisibleDate = props.onChangeCurrentVisibleDate, renderAdditionalControls = props.renderAdditionalControls, inputRef = props.inputRef, name = props.name, multiplicityMinutes = props.multiplicityMinutes, multiplicitySeconds = props.multiplicitySeconds, multiplicityHours = props.multiplicityHours, fieldProps = __rest(props, ["events", "dateTimeView", "locale", "dropdownForm", "onFocus", "onBlur", "leftSide", "rightSide", "currentVisibleDate", "onChangeCurrentVisibleDate", "renderAdditionalControls", "inputRef", "name", "multiplicityMinutes", "multiplicitySeconds", "multiplicityHours"]);
14
15
  var startFieldRef = useRef(null);
15
16
  var endFieldRef = useRef(null);
16
17
  var startFieldInputRef = useRef(null);
17
18
  var endFieldInputRef = useRef(null);
18
19
  var calendarRef = useRef(null);
19
- var _e = __read(useState(false), 2), fieldFocused = _e[0], setFieldFocused = _e[1];
20
+ var _f = __read(useState(false), 2), fieldFocused = _f[0], setFieldFocused = _f[1];
20
21
  var startFocused = fieldFocused === 'start';
21
22
  var endFocused = fieldFocused === 'end';
22
23
  var hadleChange = function (_a) {
@@ -29,8 +30,16 @@ export var DatePickerTypeDateTimeRange = forwardRef(function (props, ref) {
29
30
  (_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
  }
31
32
  };
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];
33
+ var _g = __read(useFlag(false), 2), calendarVisible = _g[0], setCalendarVisible = _g[1];
34
+ var _h = __read(useCurrentVisibleDate({
35
+ currentVisibleDate: currentVisibleDateProp,
36
+ maxDate: props.maxDate,
37
+ minDate: props.minDate,
38
+ value: props.value,
39
+ startOfUnit: startOfMonth,
40
+ onChangeCurrentVisibleDate: onChangeCurrentVisibleDate,
41
+ calendarVisible: calendarVisible
42
+ }), 2), currentVisibleDate = _h[0], setCurrentVisibleDate = _h[1];
34
43
  var startFieldOnBlurHandler = function (e) { var _a; return Array.isArray(onBlur) ? (_a = onBlur[0]) === null || _a === void 0 ? void 0 : _a.call(onBlur, e) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(e); };
35
44
  var endFieldOnBlurHandler = function (e) { var _a; return Array.isArray(onBlur) ? (_a = onBlur[1]) === null || _a === void 0 ? void 0 : _a.call(onBlur, e) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(e); };
36
45
  var startFieldOnFocusHandler = function (e) {
@@ -47,40 +56,32 @@ export var DatePickerTypeDateTimeRange = forwardRef(function (props, ref) {
47
56
  };
48
57
  // эфект для того чтобы календарь переключался при вводе с клавиатуры
49
58
  useEffect(function () {
50
- var _a, _b;
59
+ var _a;
51
60
  if (((_a = props.value) === null || _a === void 0 ? void 0 : _a[0]) && startFocused) {
52
61
  var newVisibleDate = startOfMonth(props.value[0]);
53
62
  if (newVisibleDate.getTime() !== (currentVisibleDate === null || currentVisibleDate === void 0 ? void 0 : currentVisibleDate.getTime())) {
54
63
  setCurrentVisibleDate(newVisibleDate);
55
64
  }
56
- return;
57
- }
58
- if (!((_b = props.value) === null || _b === void 0 ? void 0 : _b[0]) && startFocused) {
59
- setCurrentVisibleDate(currentVisibleDateProp);
60
65
  }
61
66
  }, [(_b = (_a = props.value) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.getTime(), calendarVisible, startFocused]);
62
67
  useEffect(function () {
63
- var _a, _b;
68
+ var _a;
64
69
  if (((_a = props.value) === null || _a === void 0 ? void 0 : _a[1]) && endFocused) {
65
70
  var newVisibleDate = startOfMonth(props.value[1]);
66
71
  if (newVisibleDate.getTime() !== (currentVisibleDate === null || currentVisibleDate === void 0 ? void 0 : currentVisibleDate.getTime())) {
67
72
  setCurrentVisibleDate(newVisibleDate);
68
73
  }
69
- return;
70
- }
71
- if (!((_b = props.value) === null || _b === void 0 ? void 0 : _b[1]) && endFocused) {
72
- setCurrentVisibleDate(currentVisibleDateProp);
73
74
  }
74
75
  }, [(_d = (_c = props.value) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d.getTime(), calendarVisible, endFocused]);
75
76
  useClickOutside({
76
77
  isActive: calendarVisible,
77
78
  ignoreClicksInsideRefs: [startFieldRef, endFieldRef, calendarRef],
78
- handler: function () {
79
+ handler: useCallback(function () {
79
80
  setFieldFocused(false);
80
81
  setCalendarVisible.off();
81
- }
82
+ }, [])
82
83
  });
83
84
  return (React.createElement(React.Fragment, null,
84
- React.createElement(DatePickerFieldTypeDateTimeRange, __assign({}, fieldProps, { style: style, ref: ref, startFieldRef: startFieldRef, endFieldRef: endFieldRef, startFieldInputRef: useForkRef([startFieldInputRef, inputRef === null || inputRef === void 0 ? void 0 : inputRef[0]]), endFieldInputRef: useForkRef([endFieldInputRef, inputRef === null || inputRef === void 0 ? void 0 : inputRef[1]]), startFieldOnFocus: startFieldOnFocusHandler, endFieldOnFocus: endFieldOnFocusHandler, startFieldLeftSide: Array.isArray(leftSide) ? leftSide === null || leftSide === void 0 ? void 0 : leftSide[0] : leftSide, startFieldRightSide: Array.isArray(rightSide) ? rightSide === null || rightSide === void 0 ? void 0 : rightSide[0] : undefined, endFieldLeftSide: Array.isArray(leftSide) ? leftSide === null || leftSide === void 0 ? void 0 : leftSide[1] : undefined, endFieldRightSide: Array.isArray(rightSide) ? rightSide === null || rightSide === void 0 ? void 0 : rightSide[1] : rightSide, startFieldOnBlur: startFieldOnBlurHandler, endFieldOnBlur: endFieldOnBlurHandler, startFocused: startFocused, endFocused: endFocused, startFieldName: getFieldName(name, 0), endFieldName: getFieldName(name, 1) })),
85
- 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, multiplicityMinutes: multiplicityMinutes, multiplicitySeconds: multiplicitySeconds, multiplicityHours: multiplicityHours, zIndex: typeof (style === null || style === void 0 ? void 0 : style.zIndex) === 'number' ? style.zIndex + 1 : undefined })));
85
+ React.createElement(DatePickerFieldTypeDateTimeRange, __assign({}, fieldProps, { ref: ref, startFieldRef: startFieldRef, endFieldRef: endFieldRef, startFieldInputRef: useForkRef([startFieldInputRef, inputRef === null || inputRef === void 0 ? void 0 : inputRef[0]]), endFieldInputRef: useForkRef([endFieldInputRef, inputRef === null || inputRef === void 0 ? void 0 : inputRef[1]]), startFieldOnFocus: startFieldOnFocusHandler, endFieldOnFocus: endFieldOnFocusHandler, startFieldLeftSide: Array.isArray(leftSide) ? leftSide === null || leftSide === void 0 ? void 0 : leftSide[0] : leftSide, startFieldRightSide: Array.isArray(rightSide) ? rightSide === null || rightSide === void 0 ? void 0 : rightSide[0] : undefined, endFieldLeftSide: Array.isArray(leftSide) ? leftSide === null || leftSide === void 0 ? void 0 : leftSide[1] : undefined, endFieldRightSide: Array.isArray(rightSide) ? rightSide === null || rightSide === void 0 ? void 0 : rightSide[1] : rightSide, startFieldOnBlur: startFieldOnBlurHandler, endFieldOnBlur: endFieldOnBlurHandler, startFocused: startFocused, endFocused: endFocused, startFieldName: getFieldName(name, 0), endFieldName: getFieldName(name, 1) })),
86
+ 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, multiplicityMinutes: multiplicityMinutes, multiplicitySeconds: multiplicitySeconds, multiplicityHours: multiplicityHours, zIndex: getDropdownZIndex(props.style) })));
86
87
  });