@onesy/ui-react 1.0.130 → 1.0.131

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 (444) hide show
  1. package/Accordion/Accordion.js +342 -242
  2. package/Accordion/index.js +12 -7
  3. package/AdvancedTextField/AdvancedTextField.js +165 -157
  4. package/AdvancedTextField/index.js +12 -7
  5. package/Append/Append.js +502 -519
  6. package/Append/index.js +12 -7
  7. package/AreaChart/AreaChart.js +53 -40
  8. package/AreaChart/index.js +12 -7
  9. package/AreaChartItem/AreaChartItem.js +325 -237
  10. package/AreaChartItem/index.js +12 -7
  11. package/AudioPlayer/AudioPlayer.js +683 -466
  12. package/AudioPlayer/index.js +12 -7
  13. package/AudioRecorder/AudioRecorder.js +359 -259
  14. package/AudioRecorder/index.js +12 -7
  15. package/AutoComplete/AutoComplete.js +693 -568
  16. package/AutoComplete/index.js +12 -7
  17. package/AutoCompleteCountry/AutoCompleteCountry.js +99 -62
  18. package/AutoCompleteCountry/index.js +12 -7
  19. package/AutoCompleteCurrency/AutoCompleteCurrency.js +73 -61
  20. package/AutoCompleteCurrency/index.js +12 -7
  21. package/Avatar/Avatar.js +113 -86
  22. package/Avatar/index.js +12 -7
  23. package/AvatarGroup/AvatarGroup.js +104 -87
  24. package/AvatarGroup/index.js +12 -7
  25. package/Backdrop/Backdrop.js +160 -139
  26. package/Backdrop/index.js +12 -7
  27. package/Badge/Badge.js +116 -96
  28. package/Badge/index.js +12 -7
  29. package/Banner/Banner.js +126 -85
  30. package/Banner/index.js +12 -7
  31. package/BottomAppBar/BottomAppBar.js +89 -60
  32. package/BottomAppBar/index.js +12 -7
  33. package/BottomSheet/BottomSheet.js +66 -59
  34. package/BottomSheet/index.js +12 -7
  35. package/Box/Box.js +43 -35
  36. package/Box/index.js +12 -7
  37. package/Breadcrumbs/Breadcrumbs.js +168 -144
  38. package/Breadcrumbs/index.js +12 -7
  39. package/BubbleChart/BubbleChart.js +261 -132
  40. package/BubbleChart/index.js +12 -7
  41. package/BubbleChartItem/BubbleChartItem.js +228 -161
  42. package/BubbleChartItem/index.js +12 -7
  43. package/Button/Button.js +488 -467
  44. package/Button/index.js +12 -7
  45. package/Buttons/Buttons.js +366 -293
  46. package/Buttons/index.js +12 -7
  47. package/Calendar/Calendar.js +715 -452
  48. package/Calendar/index.js +12 -7
  49. package/CalendarAvailability/CalendarAvailability.js +709 -388
  50. package/CalendarAvailability/index.js +12 -7
  51. package/CalendarMenu/CalendarMenu.js +430 -303
  52. package/CalendarMenu/index.js +12 -7
  53. package/CalendarMonth/CalendarMonth.js +537 -498
  54. package/CalendarMonth/index.js +12 -7
  55. package/CalendarViews/CalendarViews.js +403 -254
  56. package/CalendarViews/index.js +12 -7
  57. package/CalendarWeek/CalendarWeek.js +536 -395
  58. package/CalendarWeek/index.js +12 -7
  59. package/Card/Card.js +133 -101
  60. package/Card/index.js +12 -7
  61. package/CardButton/CardButton.js +78 -58
  62. package/CardButton/index.js +12 -7
  63. package/CardFooter/CardFooter.js +58 -39
  64. package/CardFooter/index.js +12 -7
  65. package/CardHeader/CardHeader.js +61 -44
  66. package/CardHeader/index.js +12 -7
  67. package/CardImage/CardImage.js +80 -67
  68. package/CardImage/index.js +12 -7
  69. package/CardMain/CardMain.js +53 -39
  70. package/CardMain/index.js +12 -7
  71. package/Carousel/Carousel.js +1025 -913
  72. package/Carousel/index.js +12 -7
  73. package/Chart/Chart.js +1325 -1174
  74. package/Chart/index.js +12 -7
  75. package/Checkbox/Checkbox.js +339 -325
  76. package/Checkbox/index.js +12 -7
  77. package/Chip/Chip.js +131 -102
  78. package/Chip/index.js +12 -7
  79. package/Chips/Chips.js +121 -94
  80. package/Chips/index.js +12 -7
  81. package/ClickListener/ClickListener.js +86 -89
  82. package/ClickListener/index.js +12 -7
  83. package/Clock/Clock.js +470 -417
  84. package/Clock/index.js +12 -7
  85. package/ColorTextField/ColorTextField.js +234 -171
  86. package/ColorTextField/index.js +12 -7
  87. package/ColumnChart/ColumnChart.js +63 -46
  88. package/ColumnChart/index.js +12 -7
  89. package/ColumnChartItem/ColumnChartItem.js +208 -149
  90. package/ColumnChartItem/index.js +12 -7
  91. package/Confirm/Confirm.js +184 -129
  92. package/Confirm/Context.js +9 -7
  93. package/Confirm/index.js +32 -13
  94. package/Confirm/useConfirm.js +11 -10
  95. package/Container/Container.js +154 -133
  96. package/Container/index.js +12 -7
  97. package/CookieBanner/CookieBanner.js +142 -76
  98. package/CookieBanner/index.js +12 -7
  99. package/Countdown/Countdown.js +403 -255
  100. package/Countdown/index.js +12 -7
  101. package/DatePicker/DatePicker.js +802 -547
  102. package/DatePicker/index.js +12 -7
  103. package/DateRangePicker/DateRangePicker.js +44 -37
  104. package/DateRangePicker/index.js +12 -7
  105. package/DateTimePicker/DateTimePicker.js +672 -459
  106. package/DateTimePicker/index.js +12 -7
  107. package/DateTimeRangePicker/DateTimeRangePicker.js +44 -37
  108. package/DateTimeRangePicker/index.js +12 -7
  109. package/Divider/Divider.js +198 -185
  110. package/Divider/index.js +12 -7
  111. package/DonutChart/DonutChart.js +49 -42
  112. package/DonutChart/index.js +12 -7
  113. package/DragAndDropList/DragAndDropList.js +160 -156
  114. package/DragAndDropList/index.js +12 -7
  115. package/Drawing/Drawing.js +850 -523
  116. package/Drawing/index.js +12 -7
  117. package/DropZone/DropZone.js +239 -201
  118. package/DropZone/index.js +12 -7
  119. package/Emojis/Emojis.js +409 -317
  120. package/Emojis/emojis_list.js +7279 -9250
  121. package/Emojis/index.js +19 -9
  122. package/Expand/Expand.js +201 -149
  123. package/Expand/index.js +12 -7
  124. package/Fab/Fab.js +46 -26
  125. package/Fab/index.js +12 -7
  126. package/Fade/Fade.js +131 -101
  127. package/Fade/index.js +12 -7
  128. package/FileChoose/FileChoose.js +218 -150
  129. package/FileChoose/index.js +12 -7
  130. package/Focus/Focus.js +87 -88
  131. package/Focus/index.js +12 -7
  132. package/Form/Form.js +194 -120
  133. package/Form/index.js +12 -7
  134. package/FormRow/FormRow.js +123 -78
  135. package/FormRow/index.js +12 -7
  136. package/Forms/Forms.js +55 -41
  137. package/Forms/index.js +12 -7
  138. package/Frame/Frame.js +212 -150
  139. package/Frame/index.js +12 -7
  140. package/Grid/Grid.js +231 -166
  141. package/Grid/index.js +12 -7
  142. package/Grow/Grow.js +137 -109
  143. package/Grow/index.js +12 -7
  144. package/HTMLCanvas/HTMLCanvas.js +752 -542
  145. package/HTMLCanvas/index.js +24 -21
  146. package/IFrame/IFrame.js +122 -104
  147. package/IFrame/index.js +12 -7
  148. package/Icon/Icon.js +112 -95
  149. package/Icon/index.js +24 -21
  150. package/IconButton/IconButton.js +49 -37
  151. package/IconButton/index.js +12 -7
  152. package/Image/Image.js +285 -252
  153. package/Image/index.js +12 -7
  154. package/ImageCrop/ImageCrop.js +1073 -1048
  155. package/ImageCrop/index.js +12 -7
  156. package/ImageEdit/ImageEdit.js +1088 -783
  157. package/ImageEdit/index.js +12 -7
  158. package/ImageGallery/ImageGallery.js +518 -473
  159. package/ImageGallery/index.js +12 -7
  160. package/ImageList/ImageList.js +136 -129
  161. package/ImageList/index.js +12 -7
  162. package/ImageListItem/ImageListItem.js +101 -87
  163. package/ImageListItem/index.js +12 -7
  164. package/ImageListItemBox/ImageListItemBox.js +61 -50
  165. package/ImageListItemBox/index.js +12 -7
  166. package/Info/Info.js +99 -63
  167. package/Info/index.js +12 -7
  168. package/Interaction/Interaction.js +405 -345
  169. package/Interaction/index.js +12 -7
  170. package/Keyframes/Context.js +9 -7
  171. package/Keyframes/Keyframes.js +189 -174
  172. package/Keyframes/index.js +42 -25
  173. package/Keyframes/useKeyframes.js +11 -10
  174. package/Label/Label.js +177 -151
  175. package/Label/index.js +12 -7
  176. package/Labels/Labels.js +126 -98
  177. package/Labels/index.js +12 -7
  178. package/Line/Line.js +296 -174
  179. package/Line/index.js +12 -7
  180. package/LineChart/LineChart.js +57 -40
  181. package/LineChart/index.js +12 -7
  182. package/LineChartItem/LineChartItem.js +239 -177
  183. package/LineChartItem/index.js +12 -7
  184. package/LinearMeter/LinearMeter.js +453 -377
  185. package/LinearMeter/index.js +12 -7
  186. package/LinearProgress/LinearProgress.js +324 -255
  187. package/LinearProgress/index.js +12 -7
  188. package/Link/Link.js +182 -127
  189. package/Link/index.js +12 -7
  190. package/Links/Links.js +277 -156
  191. package/Links/index.js +12 -7
  192. package/List/List.js +148 -113
  193. package/List/index.js +12 -7
  194. package/ListItem/ListItem.js +388 -362
  195. package/ListItem/index.js +12 -7
  196. package/ListSubheader/ListSubheader.js +52 -44
  197. package/ListSubheader/index.js +12 -7
  198. package/MainProgress/Context.js +9 -7
  199. package/MainProgress/MainProgress.js +193 -161
  200. package/MainProgress/index.js +32 -13
  201. package/MainProgress/useMainProgress.js +11 -10
  202. package/Markdown/Markdown.js +676 -704
  203. package/Markdown/index.js +12 -7
  204. package/Masonry/Masonry.js +207 -181
  205. package/Masonry/index.js +12 -7
  206. package/Medias/Medias.js +436 -398
  207. package/Medias/index.js +12 -7
  208. package/Menu/Menu.js +278 -243
  209. package/Menu/index.js +12 -7
  210. package/MenuDesktop/MenuDesktop.js +496 -419
  211. package/MenuDesktop/index.js +12 -7
  212. package/MenuItem/MenuItem.js +286 -231
  213. package/MenuItem/index.js +12 -7
  214. package/Meta/Meta.js +78 -54
  215. package/Meta/index.js +12 -7
  216. package/Modal/Modal.js +333 -272
  217. package/Modal/index.js +12 -7
  218. package/ModalFooter/ModalFooter.js +50 -39
  219. package/ModalFooter/index.js +12 -7
  220. package/ModalHeader/ModalHeader.js +51 -39
  221. package/ModalHeader/index.js +12 -7
  222. package/ModalIcon/ModalIcon.js +29 -23
  223. package/ModalIcon/index.js +12 -7
  224. package/ModalMain/ModalMain.js +50 -41
  225. package/ModalMain/index.js +12 -7
  226. package/ModalText/ModalText.js +47 -37
  227. package/ModalText/index.js +12 -7
  228. package/ModalTitle/ModalTitle.js +47 -37
  229. package/ModalTitle/index.js +12 -7
  230. package/MoreOptions/MoreOptions.js +72 -52
  231. package/MoreOptions/index.js +12 -7
  232. package/Move/Move.js +166 -141
  233. package/Move/index.js +12 -7
  234. package/NavigationBar/NavigationBar.js +133 -109
  235. package/NavigationBar/index.js +12 -7
  236. package/NavigationDrawer/NavigationDrawer.js +241 -211
  237. package/NavigationDrawer/index.js +12 -7
  238. package/NavigationItem/NavigationItem.js +293 -262
  239. package/NavigationItem/index.js +12 -7
  240. package/NavigationRail/NavigationRail.js +187 -150
  241. package/NavigationRail/index.js +12 -7
  242. package/NotFound/NotFound.js +89 -66
  243. package/NotFound/index.js +12 -7
  244. package/NumericTextField/NumericTextField.js +217 -212
  245. package/NumericTextField/index.js +12 -7
  246. package/Page/Page.js +131 -67
  247. package/Page/index.js +12 -7
  248. package/PageTransition/PageTransition.js +112 -102
  249. package/PageTransition/index.js +12 -7
  250. package/Pagination/Pagination.js +153 -98
  251. package/Pagination/index.js +12 -7
  252. package/PaginationItem/PaginationItem.js +85 -65
  253. package/PaginationItem/index.js +12 -7
  254. package/Parallax/Parallax.js +138 -145
  255. package/Parallax/index.js +12 -7
  256. package/Path/Path.js +40 -35
  257. package/Path/index.js +12 -7
  258. package/PieChart/PieChart.js +382 -267
  259. package/PieChart/index.js +12 -7
  260. package/Placeholder/Placeholder.js +125 -117
  261. package/Placeholder/index.js +12 -7
  262. package/Portal/Portal.js +37 -38
  263. package/Portal/index.js +12 -7
  264. package/Properties/Properties.js +85 -64
  265. package/Properties/index.js +12 -7
  266. package/Property/Property.js +120 -108
  267. package/Property/index.js +12 -7
  268. package/Radio/Radio.js +211 -181
  269. package/Radio/index.js +12 -7
  270. package/Radios/Radios.js +124 -92
  271. package/Radios/index.js +12 -7
  272. package/Rating/Rating.js +353 -360
  273. package/Rating/index.js +12 -7
  274. package/Reset/Reset.js +19 -24
  275. package/Reset/index.js +12 -7
  276. package/Reveal/Reveal.js +98 -89
  277. package/Reveal/index.js +12 -7
  278. package/RichTextEditor/RichTextEditor.js +1764 -972
  279. package/RichTextEditor/index.js +12 -7
  280. package/RoundMeter/RoundMeter.js +629 -537
  281. package/RoundMeter/index.js +12 -7
  282. package/RoundProgress/RoundProgress.js +233 -174
  283. package/RoundProgress/index.js +12 -7
  284. package/ScatterChart/ScatterChart.js +53 -40
  285. package/ScatterChart/index.js +12 -7
  286. package/ScatterChartItem/ScatterChartItem.js +214 -153
  287. package/ScatterChartItem/index.js +12 -7
  288. package/ScreenCapture/ScreenCapture.js +427 -335
  289. package/ScreenCapture/index.js +12 -7
  290. package/Section/Section.js +380 -319
  291. package/Section/index.js +12 -7
  292. package/SectionAction/SectionAction.js +72 -61
  293. package/SectionAction/index.js +12 -7
  294. package/SectionBoxes/SectionBoxes.js +240 -208
  295. package/SectionBoxes/index.js +12 -7
  296. package/SectionCards/SectionCards.js +256 -217
  297. package/SectionCards/index.js +12 -7
  298. package/SectionCarousel/SectionCarousel.js +284 -242
  299. package/SectionCarousel/index.js +12 -7
  300. package/SectionContact/SectionContact.js +174 -116
  301. package/SectionContact/index.js +12 -7
  302. package/SectionImageGallery/SectionImageGallery.js +64 -51
  303. package/SectionImageGallery/index.js +12 -7
  304. package/SectionLogos/SectionLogos.js +123 -109
  305. package/SectionLogos/index.js +12 -7
  306. package/SectionMedia/SectionMedia.js +170 -152
  307. package/SectionMedia/index.js +12 -7
  308. package/SectionReviews/SectionReviews.js +170 -129
  309. package/SectionReviews/index.js +12 -7
  310. package/SectionTextMedia/SectionTextMedia.js +187 -142
  311. package/SectionTextMedia/index.js +12 -7
  312. package/SectionTimeline/SectionTimeline.js +126 -95
  313. package/SectionTimeline/index.js +12 -7
  314. package/SectionWatch/SectionWatch.js +65 -53
  315. package/SectionWatch/index.js +12 -7
  316. package/Select/Select.js +517 -406
  317. package/Select/index.js +12 -7
  318. package/Share/Share.js +458 -319
  319. package/Share/index.js +12 -7
  320. package/Slide/Slide.js +184 -140
  321. package/Slide/index.js +12 -7
  322. package/Slider/Slider.js +927 -837
  323. package/Slider/index.js +12 -7
  324. package/SmartTextField/SmartTextField.js +1406 -1014
  325. package/SmartTextField/index.js +12 -7
  326. package/Snackbar/Snackbar.js +227 -185
  327. package/Snackbar/index.js +12 -7
  328. package/Snackbars/Context.js +9 -7
  329. package/Snackbars/Snackbars.js +234 -210
  330. package/Snackbars/index.js +32 -13
  331. package/Snackbars/useSnackbars.js +11 -10
  332. package/Space/Space.js +1683 -968
  333. package/Space/index.js +24 -21
  334. package/SpeechToText/SpeechToText.js +207 -172
  335. package/SpeechToText/index.js +12 -7
  336. package/SpeedDial/SpeedDial.js +434 -398
  337. package/SpeedDial/index.js +12 -7
  338. package/SpeedDialItem/SpeedDialItem.js +89 -63
  339. package/SpeedDialItem/index.js +12 -7
  340. package/SpyScroll/SpyScroll.js +154 -142
  341. package/SpyScroll/index.js +12 -7
  342. package/Step/Step.js +181 -127
  343. package/Step/index.js +12 -7
  344. package/Stepper/Stepper.js +159 -139
  345. package/Stepper/index.js +12 -7
  346. package/Surface/Surface.js +760 -798
  347. package/Surface/index.js +12 -7
  348. package/Switch/Switch.js +688 -532
  349. package/Switch/index.js +12 -7
  350. package/Tab/Tab.js +185 -150
  351. package/Tab/index.js +12 -7
  352. package/Table/Table.js +100 -77
  353. package/Table/index.js +12 -7
  354. package/TableBody/TableBody.js +76 -63
  355. package/TableBody/index.js +12 -7
  356. package/TableCell/TableCell.js +258 -220
  357. package/TableCell/index.js +12 -7
  358. package/TableFooter/TableFooter.js +60 -48
  359. package/TableFooter/index.js +12 -7
  360. package/TableHead/TableHead.js +139 -120
  361. package/TableHead/index.js +12 -7
  362. package/TableHeader/TableHeader.js +65 -50
  363. package/TableHeader/index.js +12 -7
  364. package/TablePagination/TablePagination.js +171 -98
  365. package/TablePagination/index.js +12 -7
  366. package/TableRow/TableRow.js +77 -64
  367. package/TableRow/index.js +12 -7
  368. package/Tabs/Tabs.js +425 -377
  369. package/Tabs/index.js +12 -7
  370. package/Text/Text.js +131 -113
  371. package/Text/index.js +12 -7
  372. package/TextField/TextField.js +940 -879
  373. package/TextField/index.js +12 -7
  374. package/TextToSpeech/TextToSpeech.js +176 -153
  375. package/TextToSpeech/index.js +12 -7
  376. package/TimePicker/TimePicker.js +985 -718
  377. package/TimePicker/index.js +12 -7
  378. package/TimeRangePicker/TimeRangePicker.js +44 -37
  379. package/TimeRangePicker/index.js +12 -7
  380. package/Timeline/Timeline.js +54 -42
  381. package/Timeline/index.js +12 -7
  382. package/TimelineItem/TimelineItem.js +144 -147
  383. package/TimelineItem/index.js +12 -7
  384. package/Timer/Timer.js +321 -204
  385. package/Timer/index.js +12 -7
  386. package/ToggleButton/ToggleButton.js +67 -58
  387. package/ToggleButton/index.js +12 -7
  388. package/ToggleButtons/ToggleButtons.js +46 -37
  389. package/ToggleButtons/index.js +12 -7
  390. package/Tooltip/Tooltip.js +489 -454
  391. package/Tooltip/index.js +12 -7
  392. package/TopAppBar/TopAppBar.js +237 -197
  393. package/TopAppBar/index.js +12 -7
  394. package/Transition/Context.js +9 -7
  395. package/Transition/Transition.js +321 -339
  396. package/Transition/index.js +42 -25
  397. package/Transition/useTransition.js +11 -10
  398. package/Transitions/Transitions.js +215 -179
  399. package/Transitions/index.js +12 -7
  400. package/Tree/Tree.js +375 -312
  401. package/Tree/index.js +12 -7
  402. package/Type/Type.js +251 -152
  403. package/Type/index.js +12 -7
  404. package/VideoPlayer/VideoPlayer.js +866 -656
  405. package/VideoPlayer/index.js +12 -7
  406. package/ViewSplit/ViewSplit.js +413 -387
  407. package/ViewSplit/index.js +12 -7
  408. package/Watch/Watch.js +436 -290
  409. package/Watch/index.js +12 -7
  410. package/Weather/Weather.js +294 -247
  411. package/Weather/index.js +12 -7
  412. package/Whiteboard/Whiteboard.js +1392 -1292
  413. package/Whiteboard/index.js +12 -7
  414. package/Widgets/Context.js +9 -7
  415. package/Widgets/Widgets.js +220 -168
  416. package/Widgets/index.js +32 -13
  417. package/Widgets/useWidgets.js +11 -10
  418. package/WindowSplit/WindowSplit.js +381 -336
  419. package/WindowSplit/index.js +12 -7
  420. package/Zoom/Zoom.js +126 -99
  421. package/Zoom/index.js +12 -7
  422. package/esm/Buttons/Buttons.js +1 -1
  423. package/esm/index.js +1 -1
  424. package/index.js +4053 -660
  425. package/package.json +1 -1
  426. package/types.js +4 -1
  427. package/useForm/index.js +25 -11
  428. package/useForm/useForm.js +203 -174
  429. package/useForm/validate.js +215 -203
  430. package/useLocation/index.js +12 -7
  431. package/useLocation/useLocation.js +54 -49
  432. package/useMediaQuery/index.js +12 -7
  433. package/useMediaQuery/useMediaQuery.js +44 -43
  434. package/useQuery/index.js +12 -7
  435. package/useQuery/useQuery.js +14 -10
  436. package/useScroll/index.js +12 -7
  437. package/useScroll/useScroll.js +61 -56
  438. package/useSubscription/index.js +12 -7
  439. package/useSubscription/useSubscription.js +35 -35
  440. package/useSwipe/index.js +12 -7
  441. package/useSwipe/useSwipe.js +157 -131
  442. package/useVisible/index.js +12 -7
  443. package/useVisible/useVisible.js +86 -76
  444. package/utils.js +1224 -1362
@@ -1,740 +1,1007 @@
1
1
  "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- const jsx_runtime_1 = require("react/jsx-runtime");
18
- const react_1 = __importDefault(require("react"));
19
- const utils_1 = require("@onesy/utils");
20
- const date_1 = require("@onesy/date");
21
- const style_react_1 = require("@onesy/style-react");
22
- const IconMaterialScheduleW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialScheduleW100"));
23
- const IconMaterialKeyboardAltW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialKeyboardAltW100"));
24
- const IconButton_1 = __importDefault(require("../IconButton"));
25
- const AdvancedTextField_1 = __importDefault(require("../AdvancedTextField"));
26
- const Modal_1 = __importDefault(require("../Modal"));
27
- const ClickListener_1 = __importDefault(require("../ClickListener"));
28
- const Tooltip_1 = __importDefault(require("../Tooltip"));
29
- const Surface_1 = __importDefault(require("../Surface"));
30
- const Line_1 = __importDefault(require("../Line"));
31
- const Type_1 = __importDefault(require("../Type"));
32
- const ToggleButtons_1 = __importDefault(require("../ToggleButtons"));
33
- const ToggleButton_1 = __importDefault(require("../ToggleButton"));
34
- const Button_1 = __importDefault(require("../Button"));
35
- const Slide_1 = __importDefault(require("../Slide"));
36
- const Clock_1 = __importDefault(require("../Clock"));
37
- const Tabs_1 = __importDefault(require("../Tabs"));
38
- const Tab_1 = __importDefault(require("../Tab"));
39
- const useMediaQuery_1 = __importDefault(require("../useMediaQuery"));
40
- const DatePicker_1 = require("../DatePicker/DatePicker");
41
- const utils_2 = require("../utils");
42
- const useStyle = (0, style_react_1.style)(theme => ({
43
- root: {},
44
- main: {},
45
- main_size_small: {
46
- borderRadius: theme.methods.shape.radius.value(2.5, 'px'),
47
- },
48
- main_size_regular: {
49
- borderRadius: theme.methods.shape.radius.value(3.5, 'px')
50
- },
51
- main_size_large: {
52
- borderRadius: theme.methods.shape.radius.value(4.5, 'px')
53
- },
54
- heading: {
55
- width: '100%'
56
- },
57
- heading_size_small: {
58
- padding: `${theme.methods.space.value(2, 'px')} ${theme.methods.space.value(2, 'px')} 0`
59
- },
60
- heading_size_regular: {
61
- padding: `${theme.methods.space.value(3, 'px')} ${theme.methods.space.value(3, 'px')} 0`
62
- },
63
- heading_size_large: {
64
- padding: `${theme.methods.space.value(4, 'px')} ${theme.methods.space.value(4, 'px')} 0`
65
- },
66
- inputs: {
67
- width: '100%'
68
- },
69
- middle: {
70
- width: '100%'
71
- },
72
- middle_size_small: {
73
- padding: `0 ${theme.methods.space.value(2, 'px')}`,
74
- marginTop: '16px'
75
- },
76
- middle_size_regular: {
77
- padding: `0 ${theme.methods.space.value(3, 'px')}`,
78
- marginTop: '24px'
79
- },
80
- middle_size_large: {
81
- padding: `0 ${theme.methods.space.value(4, 'px')}`,
82
- marginTop: '32px'
83
- },
84
- input: {
85
- flex: '1 1 auto',
86
- '& .onesy-TextField-helper-text': {
87
- color: theme.palette.text.default.primary
88
- }
89
- },
90
- input_size_small: {
91
- maxWidth: '72px',
92
- width: '100%',
93
- '& .onesy-TextField-input-wrapper': {
94
- paddingInline: '0px',
95
- paddingBlock: `${theme.methods.space.value(1, 'px')} ${theme.methods.space.value(0.5, 'px')}`,
96
- height: '64px'
97
- },
98
- '& .onesy-TextField-input': Object.assign(Object.assign({}, theme.typography.values.d3), { lineHeight: '1', textAlign: 'center' }),
99
- '& .onesy-TextField-footer': {
100
- marginTop: '4px',
101
- padding: '0px'
102
- }
103
- },
104
- input_size_regular: {
105
- maxWidth: '96px',
106
- width: '100%',
107
- '& .onesy-TextField-input-wrapper': {
108
- paddingInline: '0px',
109
- paddingBlock: `${theme.methods.space.value(1.5, 'px')} ${theme.methods.space.value(1, 'px')}`,
110
- height: '72px'
111
- },
112
- '& .onesy-TextField-input': Object.assign(Object.assign({}, theme.typography.values.d2), { lineHeight: '1', textAlign: 'center' }),
113
- '& .onesy-TextField-footer': {
114
- marginTop: '8px',
115
- padding: '0px'
116
- }
117
- },
118
- input_size_large: {
119
- maxWidth: '120px',
120
- width: '100%',
121
- '& .onesy-TextField-input-wrapper': {
122
- paddingInline: '0px',
123
- paddingBlock: `${theme.methods.space.value(2, 'px')} ${theme.methods.space.value(1.5, 'px')}`,
124
- height: '80px'
125
- },
126
- '& .onesy-TextField-input': Object.assign(Object.assign({}, theme.typography.values.d1), { lineHeight: '1', textAlign: 'center' }),
127
- '& .onesy-TextField-footer': {
128
- marginTop: '12px',
129
- padding: '0px'
130
- }
131
- },
132
- button: {
133
- padding: '0',
134
- paddingTop: theme.methods.space.value(0.5, 'px'),
135
- borderRadius: theme.methods.shape.radius.value('sm', 'px'),
136
- cursor: 'pointer',
137
- userSelect: 'none',
138
- flex: '1 1'
139
- },
140
- button_size_small: {
141
- height: '64px',
142
- width: '82px',
143
- '& .onesy-Button-label': Object.assign(Object.assign({}, theme.typography.values.d3), { lineHeight: '1' })
144
- },
145
- button_size_regular: {
146
- height: '72px',
147
- width: '96px',
148
- '& .onesy-Button-label': Object.assign(Object.assign({}, theme.typography.values.d2), { lineHeight: '1' })
149
- },
150
- button_size_large: {
151
- height: '96px',
152
- width: '110px',
153
- '& .onesy-Button-label': Object.assign(Object.assign({}, theme.typography.values.d1), { lineHeight: '1' })
154
- },
155
- inputSeparator: {
156
- paddingInline: theme.methods.space.value(0.75, 'px'),
157
- userSelect: 'none'
158
- },
159
- toggleButtons: {
160
- '& > *': {
161
- flex: '1 1 auto'
162
- }
163
- },
164
- toggleButtons_orientation_vertical_size_small: {
165
- minWidth: '48px',
166
- height: '64px'
167
- },
168
- toggleButtons_orientation_vertical_size_regular: {
169
- minWidth: '56px',
170
- height: '72px'
171
- },
172
- toggleButtons_orientation_vertical_size_large: {
173
- minWidth: '68px',
174
- height: '80px'
175
- },
176
- toggleButtons_orientation_horizontal_size_small: {
177
- height: '30px'
178
- },
179
- toggleButtons_orientation_horizontal_size_regular: {
180
- height: '38px'
181
- },
182
- toggleButtons_orientation_horizontal_size_large: {
183
- height: '46px'
184
- },
185
- toggleButton: {},
186
- tabs: {},
187
- tabs_padding: {
188
- marginTop: 12
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _utils = require("@onesy/utils");
13
+ var _date = require("@onesy/date");
14
+ var _styleReact = require("@onesy/style-react");
15
+ var _IconMaterialScheduleW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialScheduleW100"));
16
+ var _IconMaterialKeyboardAltW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialKeyboardAltW100"));
17
+ var _IconButton = _interopRequireDefault(require("../IconButton"));
18
+ var _AdvancedTextField = _interopRequireDefault(require("../AdvancedTextField"));
19
+ var _Modal = _interopRequireDefault(require("../Modal"));
20
+ var _ClickListener = _interopRequireDefault(require("../ClickListener"));
21
+ var _Tooltip = _interopRequireDefault(require("../Tooltip"));
22
+ var _Surface = _interopRequireDefault(require("../Surface"));
23
+ var _Line = _interopRequireDefault(require("../Line"));
24
+ var _Type = _interopRequireDefault(require("../Type"));
25
+ var _ToggleButtons = _interopRequireDefault(require("../ToggleButtons"));
26
+ var _ToggleButton = _interopRequireDefault(require("../ToggleButton"));
27
+ var _Button = _interopRequireDefault(require("../Button"));
28
+ var _Slide = _interopRequireDefault(require("../Slide"));
29
+ var _Clock = _interopRequireDefault(require("../Clock"));
30
+ var _Tabs = _interopRequireDefault(require("../Tabs"));
31
+ var _Tab = _interopRequireDefault(require("../Tab"));
32
+ var _useMediaQuery = _interopRequireDefault(require("../useMediaQuery"));
33
+ var _DatePicker = require("../DatePicker/DatePicker");
34
+ var _utils2 = require("../utils");
35
+ const _excluded = ["tonal", "color", "version", "value", "valueDefault", "onChange", "selecting", "selectingDefault", "onChangeSelecting", "size", "range", "now", "label", "min", "max", "validate", "autoNext", "autoCloseOnLast", "openMobile", "openDesktop", "selectModalSubHeadingText", "selectModalSubHeadingTextRange", "inputModalSubHeadingText", "inputModalSubHeadingTextRange", "orientation", "format", "hour", "minute", "second", "switch", "static", "today", "clear", "placeholder", "heading", "actions", "fullWidth", "readOnly", "disabled", "valid", "onClick", "onClose", "onCancel", "onNow", "onToday", "onClear", "onOk", "renderValue", "Icon", "IconEnter", "WrapperProps", "MainProps", "ModalProps", "MiddleProps", "ButtonProps", "TooltipProps", "ToggleButtonsProps", "ToggleButtonProps", "IconButtonProps", "InputProps", "ClockProps", "TabsProps", "TabFromProps", "TabToProps", "AdvancedTextFieldProps", "IconProps", "className"];
36
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
37
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38
+ const useStyle = (0, _styleReact.style)(theme => ({
39
+ root: {},
40
+ main: {},
41
+ main_size_small: {
42
+ borderRadius: theme.methods.shape.radius.value(2.5, 'px')
43
+ },
44
+ main_size_regular: {
45
+ borderRadius: theme.methods.shape.radius.value(3.5, 'px')
46
+ },
47
+ main_size_large: {
48
+ borderRadius: theme.methods.shape.radius.value(4.5, 'px')
49
+ },
50
+ heading: {
51
+ width: '100%'
52
+ },
53
+ heading_size_small: {
54
+ padding: `${theme.methods.space.value(2, 'px')} ${theme.methods.space.value(2, 'px')} 0`
55
+ },
56
+ heading_size_regular: {
57
+ padding: `${theme.methods.space.value(3, 'px')} ${theme.methods.space.value(3, 'px')} 0`
58
+ },
59
+ heading_size_large: {
60
+ padding: `${theme.methods.space.value(4, 'px')} ${theme.methods.space.value(4, 'px')} 0`
61
+ },
62
+ inputs: {
63
+ width: '100%'
64
+ },
65
+ middle: {
66
+ width: '100%'
67
+ },
68
+ middle_size_small: {
69
+ padding: `0 ${theme.methods.space.value(2, 'px')}`,
70
+ marginTop: '16px'
71
+ },
72
+ middle_size_regular: {
73
+ padding: `0 ${theme.methods.space.value(3, 'px')}`,
74
+ marginTop: '24px'
75
+ },
76
+ middle_size_large: {
77
+ padding: `0 ${theme.methods.space.value(4, 'px')}`,
78
+ marginTop: '32px'
79
+ },
80
+ input: {
81
+ flex: '1 1 auto',
82
+ '& .onesy-TextField-helper-text': {
83
+ color: theme.palette.text.default.primary
84
+ }
85
+ },
86
+ input_size_small: {
87
+ maxWidth: '72px',
88
+ width: '100%',
89
+ '& .onesy-TextField-input-wrapper': {
90
+ paddingInline: '0px',
91
+ paddingBlock: `${theme.methods.space.value(1, 'px')} ${theme.methods.space.value(0.5, 'px')}`,
92
+ height: '64px'
189
93
  },
190
- footer: {},
191
- footer_size_small: {
192
- padding: `0px ${theme.methods.space.value(1, 'px')} ${theme.methods.space.value(1, 'px')}`,
193
- marginTop: '16px'
94
+ '& .onesy-TextField-input': _objectSpread(_objectSpread({}, theme.typography.values.d3), {}, {
95
+ lineHeight: '1',
96
+ textAlign: 'center'
97
+ }),
98
+ '& .onesy-TextField-footer': {
99
+ marginTop: '4px',
100
+ padding: '0px'
101
+ }
102
+ },
103
+ input_size_regular: {
104
+ maxWidth: '96px',
105
+ width: '100%',
106
+ '& .onesy-TextField-input-wrapper': {
107
+ paddingInline: '0px',
108
+ paddingBlock: `${theme.methods.space.value(1.5, 'px')} ${theme.methods.space.value(1, 'px')}`,
109
+ height: '72px'
194
110
  },
195
- footer_size_regular: {
196
- padding: `0px ${theme.methods.space.value(2, 'px')} ${theme.methods.space.value(2, 'px')}`,
197
- marginTop: '24px'
111
+ '& .onesy-TextField-input': _objectSpread(_objectSpread({}, theme.typography.values.d2), {}, {
112
+ lineHeight: '1',
113
+ textAlign: 'center'
114
+ }),
115
+ '& .onesy-TextField-footer': {
116
+ marginTop: '8px',
117
+ padding: '0px'
118
+ }
119
+ },
120
+ input_size_large: {
121
+ maxWidth: '120px',
122
+ width: '100%',
123
+ '& .onesy-TextField-input-wrapper': {
124
+ paddingInline: '0px',
125
+ paddingBlock: `${theme.methods.space.value(2, 'px')} ${theme.methods.space.value(1.5, 'px')}`,
126
+ height: '80px'
198
127
  },
199
- footer_size_large: {
200
- padding: `0px ${theme.methods.space.value(3, 'px')} ${theme.methods.space.value(3, 'px')}`,
201
- marginTop: '32px'
128
+ '& .onesy-TextField-input': _objectSpread(_objectSpread({}, theme.typography.values.d1), {}, {
129
+ lineHeight: '1',
130
+ textAlign: 'center'
131
+ }),
132
+ '& .onesy-TextField-footer': {
133
+ marginTop: '12px',
134
+ padding: '0px'
202
135
  }
203
- }), { name: 'onesy-TimePicker' });
204
- const TimePicker = react_1.default.forwardRef((props__, ref) => {
205
- const theme = (0, style_react_1.useOnesyTheme)();
206
- const l = theme.l;
207
- const props = react_1.default.useMemo(() => { var _a, _b, _c, _d, _e, _f, _g, _h; return (Object.assign(Object.assign(Object.assign({}, (_d = (_c = (_b = (_a = theme === null || theme === void 0 ? void 0 : theme.ui) === null || _a === void 0 ? void 0 : _a.elements) === null || _b === void 0 ? void 0 : _b.all) === null || _c === void 0 ? void 0 : _c.props) === null || _d === void 0 ? void 0 : _d.default), (_h = (_g = (_f = (_e = theme === null || theme === void 0 ? void 0 : theme.ui) === null || _e === void 0 ? void 0 : _e.elements) === null || _f === void 0 ? void 0 : _f.onesyTimePicker) === null || _g === void 0 ? void 0 : _g.props) === null || _h === void 0 ? void 0 : _h.default), props__)); }, [props__]);
208
- const Line = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Line) || Line_1.default; }, [theme]);
209
- const IconButton = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.IconButton) || IconButton_1.default; }, [theme]);
210
- const AdvancedTextField = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.AdvancedTextField) || AdvancedTextField_1.default; }, [theme]);
211
- const Modal = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Modal) || Modal_1.default; }, [theme]);
212
- const ClickListener = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ClickListener) || ClickListener_1.default; }, [theme]);
213
- const Tooltip = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Tooltip) || Tooltip_1.default; }, [theme]);
214
- const Surface = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Surface) || Surface_1.default; }, [theme]);
215
- const Type = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Type) || Type_1.default; }, [theme]);
216
- const ToggleButton = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ToggleButton) || ToggleButton_1.default; }, [theme]);
217
- const ToggleButtons = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ToggleButtons) || ToggleButtons_1.default; }, [theme]);
218
- const Button = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Button) || Button_1.default; }, [theme]);
219
- const Slide = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Slide) || Slide_1.default; }, [theme]);
220
- const Clock = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Clock) || Clock_1.default; }, [theme]);
221
- const Tab = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Tab) || Tab_1.default; }, [theme]);
222
- const Tabs = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Tabs) || Tabs_1.default; }, [theme]);
223
- const { tonal = true, color = 'primary', version: version_ = 'auto', value: value_, valueDefault, onChange, selecting: selecting_, selectingDefault, onChangeSelecting, size = 'regular', range, now, label, min, max, validate, autoNext: autoNext_, autoCloseOnLast: autoCloseOnLast_, openMobile = 'select', openDesktop = 'select', selectModalSubHeadingText = l('Select time'), selectModalSubHeadingTextRange = `${l('Select from')}${DatePicker_1.SEPARATOR}${l('to time')}`, inputModalSubHeadingText = l('Enter time'), inputModalSubHeadingTextRange = `${l('Enter from')}${DatePicker_1.SEPARATOR}${l('to time')}`, orientation: orientation_, format = '12', hour = true, minute = true, second = false, switch: switch__, static: static_, today, clear = true, placeholder: placeholder_, heading: heading_ = true, actions: actions_ = true, fullWidth, readOnly, disabled, valid: valid_, onClick: onClick_, onClose: onClose_, onCancel: onCancel_, onNow: onNow_, onToday: onToday_, onClear: onClear_, onOk: onOk_, renderValue, Icon: Icon_ = IconMaterialScheduleW100_1.default, IconEnter = IconMaterialKeyboardAltW100_1.default, WrapperProps, MainProps, ModalProps, MiddleProps, ButtonProps, TooltipProps, ToggleButtonsProps, ToggleButtonProps, IconButtonProps, InputProps, ClockProps, TabsProps, TabFromProps, TabToProps, AdvancedTextFieldProps, IconProps, className } = props, other = __rest(props, ["tonal", "color", "version", "value", "valueDefault", "onChange", "selecting", "selectingDefault", "onChangeSelecting", "size", "range", "now", "label", "min", "max", "validate", "autoNext", "autoCloseOnLast", "openMobile", "openDesktop", "selectModalSubHeadingText", "selectModalSubHeadingTextRange", "inputModalSubHeadingText", "inputModalSubHeadingTextRange", "orientation", "format", "hour", "minute", "second", "switch", "static", "today", "clear", "placeholder", "heading", "actions", "fullWidth", "readOnly", "disabled", "valid", "onClick", "onClose", "onCancel", "onNow", "onToday", "onClear", "onOk", "renderValue", "Icon", "IconEnter", "WrapperProps", "MainProps", "ModalProps", "MiddleProps", "ButtonProps", "TooltipProps", "ToggleButtonsProps", "ToggleButtonProps", "IconButtonProps", "InputProps", "ClockProps", "TabsProps", "TabFromProps", "TabToProps", "AdvancedTextFieldProps", "IconProps", "className"]);
224
- const { classes } = useStyle();
225
- const refs = {
226
- root: react_1.default.useRef(undefined),
227
- mode: react_1.default.useRef(undefined),
228
- value: react_1.default.useRef(undefined),
229
- dayTime: react_1.default.useRef(undefined)
230
- };
231
- const keys = react_1.default.useMemo(() => {
232
- const result = [];
233
- const items = [switch__, orientation_, autoNext_, autoCloseOnLast_];
234
- items.forEach(item => {
235
- if ((0, utils_1.is)('object', item))
236
- Object.keys(item).filter(key => theme.breakpoints.media[key]).forEach(key => result.push(key));
237
- });
238
- return (0, utils_1.unique)(result);
239
- }, [switch__, orientation_, autoNext_, autoCloseOnLast_]);
240
- const breakpoints = {};
241
- keys.forEach(key => {
242
- breakpoints[key] = (0, useMediaQuery_1.default)(theme.breakpoints.media[key], { element: refs.root.current });
243
- });
244
- const switch_ = (0, utils_2.valueBreakpoints)(switch__, true, breakpoints, theme);
245
- const orientation = (0, utils_2.valueBreakpoints)(orientation_, 'vertical', breakpoints, theme);
246
- const autoNext = (0, utils_2.valueBreakpoints)(autoNext_, undefined, breakpoints, theme);
247
- const autoCloseOnLast = (0, utils_2.valueBreakpoints)(autoCloseOnLast_, undefined, breakpoints, theme);
248
- const touch = (0, useMediaQuery_1.default)('(pointer: coarse)', { element: refs.root.current });
249
- const [value, setValue] = react_1.default.useState(() => {
250
- const valueResult = (valueDefault !== undefined ? valueDefault : value_) || (now && (range ? [new date_1.OnesyDate(), new date_1.OnesyDate()] : [new date_1.OnesyDate()]));
251
- return ((0, utils_1.is)('array', valueResult) ? valueResult : [valueResult]).filter(Boolean);
136
+ },
137
+ button: {
138
+ padding: '0',
139
+ paddingTop: theme.methods.space.value(0.5, 'px'),
140
+ borderRadius: theme.methods.shape.radius.value('sm', 'px'),
141
+ cursor: 'pointer',
142
+ userSelect: 'none',
143
+ flex: '1 1'
144
+ },
145
+ button_size_small: {
146
+ height: '64px',
147
+ width: '82px',
148
+ '& .onesy-Button-label': _objectSpread(_objectSpread({}, theme.typography.values.d3), {}, {
149
+ lineHeight: '1'
150
+ })
151
+ },
152
+ button_size_regular: {
153
+ height: '72px',
154
+ width: '96px',
155
+ '& .onesy-Button-label': _objectSpread(_objectSpread({}, theme.typography.values.d2), {}, {
156
+ lineHeight: '1'
157
+ })
158
+ },
159
+ button_size_large: {
160
+ height: '96px',
161
+ width: '110px',
162
+ '& .onesy-Button-label': _objectSpread(_objectSpread({}, theme.typography.values.d1), {}, {
163
+ lineHeight: '1'
164
+ })
165
+ },
166
+ inputSeparator: {
167
+ paddingInline: theme.methods.space.value(0.75, 'px'),
168
+ userSelect: 'none'
169
+ },
170
+ toggleButtons: {
171
+ '& > *': {
172
+ flex: '1 1 auto'
173
+ }
174
+ },
175
+ toggleButtons_orientation_vertical_size_small: {
176
+ minWidth: '48px',
177
+ height: '64px'
178
+ },
179
+ toggleButtons_orientation_vertical_size_regular: {
180
+ minWidth: '56px',
181
+ height: '72px'
182
+ },
183
+ toggleButtons_orientation_vertical_size_large: {
184
+ minWidth: '68px',
185
+ height: '80px'
186
+ },
187
+ toggleButtons_orientation_horizontal_size_small: {
188
+ height: '30px'
189
+ },
190
+ toggleButtons_orientation_horizontal_size_regular: {
191
+ height: '38px'
192
+ },
193
+ toggleButtons_orientation_horizontal_size_large: {
194
+ height: '46px'
195
+ },
196
+ toggleButton: {},
197
+ tabs: {},
198
+ tabs_padding: {
199
+ marginTop: 12
200
+ },
201
+ footer: {},
202
+ footer_size_small: {
203
+ padding: `0px ${theme.methods.space.value(1, 'px')} ${theme.methods.space.value(1, 'px')}`,
204
+ marginTop: '16px'
205
+ },
206
+ footer_size_regular: {
207
+ padding: `0px ${theme.methods.space.value(2, 'px')} ${theme.methods.space.value(2, 'px')}`,
208
+ marginTop: '24px'
209
+ },
210
+ footer_size_large: {
211
+ padding: `0px ${theme.methods.space.value(3, 'px')} ${theme.methods.space.value(3, 'px')}`,
212
+ marginTop: '32px'
213
+ }
214
+ }), {
215
+ name: 'onesy-TimePicker'
216
+ });
217
+ const TimePicker = /*#__PURE__*/_react.default.forwardRef((props__, ref) => {
218
+ const theme = (0, _styleReact.useOnesyTheme)();
219
+ const l = theme.l;
220
+ const props = _react.default.useMemo(() => {
221
+ var _theme$ui, _theme$ui2;
222
+ return _objectSpread(_objectSpread(_objectSpread({}, theme === null || theme === void 0 || (_theme$ui = theme.ui) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.elements) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.all) === null || _theme$ui === void 0 || (_theme$ui = _theme$ui.props) === null || _theme$ui === void 0 ? void 0 : _theme$ui.default), theme === null || theme === void 0 || (_theme$ui2 = theme.ui) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.elements) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.onesyTimePicker) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.props) === null || _theme$ui2 === void 0 ? void 0 : _theme$ui2.default), props__);
223
+ }, [props__]);
224
+ const Line = _react.default.useMemo(() => {
225
+ var _theme$elements;
226
+ return (theme === null || theme === void 0 || (_theme$elements = theme.elements) === null || _theme$elements === void 0 ? void 0 : _theme$elements.Line) || _Line.default;
227
+ }, [theme]);
228
+ const IconButton = _react.default.useMemo(() => {
229
+ var _theme$elements2;
230
+ return (theme === null || theme === void 0 || (_theme$elements2 = theme.elements) === null || _theme$elements2 === void 0 ? void 0 : _theme$elements2.IconButton) || _IconButton.default;
231
+ }, [theme]);
232
+ const AdvancedTextField = _react.default.useMemo(() => {
233
+ var _theme$elements3;
234
+ return (theme === null || theme === void 0 || (_theme$elements3 = theme.elements) === null || _theme$elements3 === void 0 ? void 0 : _theme$elements3.AdvancedTextField) || _AdvancedTextField.default;
235
+ }, [theme]);
236
+ const Modal = _react.default.useMemo(() => {
237
+ var _theme$elements4;
238
+ return (theme === null || theme === void 0 || (_theme$elements4 = theme.elements) === null || _theme$elements4 === void 0 ? void 0 : _theme$elements4.Modal) || _Modal.default;
239
+ }, [theme]);
240
+ const ClickListener = _react.default.useMemo(() => {
241
+ var _theme$elements5;
242
+ return (theme === null || theme === void 0 || (_theme$elements5 = theme.elements) === null || _theme$elements5 === void 0 ? void 0 : _theme$elements5.ClickListener) || _ClickListener.default;
243
+ }, [theme]);
244
+ const Tooltip = _react.default.useMemo(() => {
245
+ var _theme$elements6;
246
+ return (theme === null || theme === void 0 || (_theme$elements6 = theme.elements) === null || _theme$elements6 === void 0 ? void 0 : _theme$elements6.Tooltip) || _Tooltip.default;
247
+ }, [theme]);
248
+ const Surface = _react.default.useMemo(() => {
249
+ var _theme$elements7;
250
+ return (theme === null || theme === void 0 || (_theme$elements7 = theme.elements) === null || _theme$elements7 === void 0 ? void 0 : _theme$elements7.Surface) || _Surface.default;
251
+ }, [theme]);
252
+ const Type = _react.default.useMemo(() => {
253
+ var _theme$elements8;
254
+ return (theme === null || theme === void 0 || (_theme$elements8 = theme.elements) === null || _theme$elements8 === void 0 ? void 0 : _theme$elements8.Type) || _Type.default;
255
+ }, [theme]);
256
+ const ToggleButton = _react.default.useMemo(() => {
257
+ var _theme$elements9;
258
+ return (theme === null || theme === void 0 || (_theme$elements9 = theme.elements) === null || _theme$elements9 === void 0 ? void 0 : _theme$elements9.ToggleButton) || _ToggleButton.default;
259
+ }, [theme]);
260
+ const ToggleButtons = _react.default.useMemo(() => {
261
+ var _theme$elements10;
262
+ return (theme === null || theme === void 0 || (_theme$elements10 = theme.elements) === null || _theme$elements10 === void 0 ? void 0 : _theme$elements10.ToggleButtons) || _ToggleButtons.default;
263
+ }, [theme]);
264
+ const Button = _react.default.useMemo(() => {
265
+ var _theme$elements11;
266
+ return (theme === null || theme === void 0 || (_theme$elements11 = theme.elements) === null || _theme$elements11 === void 0 ? void 0 : _theme$elements11.Button) || _Button.default;
267
+ }, [theme]);
268
+ const Slide = _react.default.useMemo(() => {
269
+ var _theme$elements12;
270
+ return (theme === null || theme === void 0 || (_theme$elements12 = theme.elements) === null || _theme$elements12 === void 0 ? void 0 : _theme$elements12.Slide) || _Slide.default;
271
+ }, [theme]);
272
+ const Clock = _react.default.useMemo(() => {
273
+ var _theme$elements13;
274
+ return (theme === null || theme === void 0 || (_theme$elements13 = theme.elements) === null || _theme$elements13 === void 0 ? void 0 : _theme$elements13.Clock) || _Clock.default;
275
+ }, [theme]);
276
+ const Tab = _react.default.useMemo(() => {
277
+ var _theme$elements14;
278
+ return (theme === null || theme === void 0 || (_theme$elements14 = theme.elements) === null || _theme$elements14 === void 0 ? void 0 : _theme$elements14.Tab) || _Tab.default;
279
+ }, [theme]);
280
+ const Tabs = _react.default.useMemo(() => {
281
+ var _theme$elements15;
282
+ return (theme === null || theme === void 0 || (_theme$elements15 = theme.elements) === null || _theme$elements15 === void 0 ? void 0 : _theme$elements15.Tabs) || _Tabs.default;
283
+ }, [theme]);
284
+ const {
285
+ tonal = true,
286
+ color = 'primary',
287
+ version: version_ = 'auto',
288
+ value: value_,
289
+ valueDefault,
290
+ onChange,
291
+ selecting: selecting_,
292
+ selectingDefault,
293
+ onChangeSelecting,
294
+ size = 'regular',
295
+ range,
296
+ now,
297
+ label,
298
+ min,
299
+ max,
300
+ validate,
301
+ autoNext: autoNext_,
302
+ autoCloseOnLast: autoCloseOnLast_,
303
+ openMobile = 'select',
304
+ openDesktop = 'select',
305
+ selectModalSubHeadingText = l('Select time'),
306
+ selectModalSubHeadingTextRange = `${l('Select from')}${_DatePicker.SEPARATOR}${l('to time')}`,
307
+ inputModalSubHeadingText = l('Enter time'),
308
+ inputModalSubHeadingTextRange = `${l('Enter from')}${_DatePicker.SEPARATOR}${l('to time')}`,
309
+ orientation: orientation_,
310
+ format = '12',
311
+ hour = true,
312
+ minute = true,
313
+ second = false,
314
+ switch: switch__,
315
+ static: static_,
316
+ today,
317
+ clear = true,
318
+ placeholder: placeholder_,
319
+ heading: heading_ = true,
320
+ actions: actions_ = true,
321
+ fullWidth,
322
+ readOnly,
323
+ disabled,
324
+ valid: valid_,
325
+ onClick: onClick_,
326
+ onClose: onClose_,
327
+ onCancel: onCancel_,
328
+ onNow: onNow_,
329
+ onToday: onToday_,
330
+ onClear: onClear_,
331
+ onOk: onOk_,
332
+ renderValue,
333
+ Icon: Icon_ = _IconMaterialScheduleW.default,
334
+ IconEnter = _IconMaterialKeyboardAltW.default,
335
+ WrapperProps,
336
+ MainProps,
337
+ ModalProps,
338
+ MiddleProps,
339
+ ButtonProps,
340
+ TooltipProps,
341
+ ToggleButtonsProps,
342
+ ToggleButtonProps,
343
+ IconButtonProps,
344
+ InputProps,
345
+ ClockProps,
346
+ TabsProps,
347
+ TabFromProps,
348
+ TabToProps,
349
+ AdvancedTextFieldProps,
350
+ IconProps,
351
+ className
352
+ } = props,
353
+ other = (0, _objectWithoutProperties2.default)(props, _excluded);
354
+ const {
355
+ classes
356
+ } = useStyle();
357
+ const refs = {
358
+ root: _react.default.useRef(undefined),
359
+ mode: _react.default.useRef(undefined),
360
+ value: _react.default.useRef(undefined),
361
+ dayTime: _react.default.useRef(undefined)
362
+ };
363
+ const keys = _react.default.useMemo(() => {
364
+ const result = [];
365
+ const items = [switch__, orientation_, autoNext_, autoCloseOnLast_];
366
+ items.forEach(item => {
367
+ if ((0, _utils.is)('object', item)) Object.keys(item).filter(key => theme.breakpoints.media[key]).forEach(key => result.push(key));
252
368
  });
253
- const [selecting, setSelecting] = react_1.default.useState(() => {
254
- const valueResult = (selectingDefault !== undefined ? selectingDefault : selecting_) || ['hour', 'hour'];
255
- return ((0, utils_1.is)('array', valueResult) ? valueResult : [valueResult]).filter(Boolean);
369
+ return (0, _utils.unique)(result);
370
+ }, [switch__, orientation_, autoNext_, autoCloseOnLast_]);
371
+ const breakpoints = {};
372
+ keys.forEach(key => {
373
+ breakpoints[key] = (0, _useMediaQuery.default)(theme.breakpoints.media[key], {
374
+ element: refs.root.current
256
375
  });
257
- const [open, setOpen] = react_1.default.useState(false);
258
- const [mode, setMode] = react_1.default.useState((touch ? openMobile : openDesktop) || 'select');
259
- const [error, setError] = react_1.default.useState(false);
260
- const [dayTime, setDayTime] = react_1.default.useState(Array.from({ length: 2 }).map(item => (0, date_1.format)(new date_1.OnesyDate(), 'a')));
261
- const [tab, setTab] = react_1.default.useState(0);
262
- refs.value.current = value;
263
- refs.mode.current = mode;
264
- refs.dayTime.current = dayTime;
265
- const valueToInput = react_1.default.useCallback((valueNew = refs.value.current) => {
266
- let result = '';
267
- const [from, to] = (0, utils_1.is)('array', valueNew) ? valueNew : [valueNew];
268
- if (!(from || to))
269
- return '';
270
- const method = (item) => {
271
- let formatValue = '';
272
- if (format === '12')
273
- formatValue += `hh`;
274
- else
275
- formatValue += `HH`;
276
- if (minute)
277
- formatValue += `:mm`;
278
- if (second)
279
- formatValue += `:ss`;
280
- if (format === '12')
281
- formatValue += ` a`;
282
- return (0, date_1.format)(item, formatValue);
283
- };
284
- result += `${method(from)}`;
285
- if (range && to)
286
- result += `${DatePicker_1.SEPARATOR}${method(to)}`;
287
- return result;
288
- }, [value, format, hour, minute, second, range]);
289
- const [input, setInput] = react_1.default.useState(valueToInput());
290
- let version = version_;
291
- if (version === 'auto') {
292
- if (touch)
293
- version = 'mobile';
294
- else
295
- version = 'desktop';
296
- }
297
- const onUpdateValue = (valueNew_) => {
298
- const valueNew = (0, utils_1.is)('array', valueNew_) ? valueNew_ : [valueNew_];
299
- // Update value
300
- setValue(valueNew);
301
- // Update input
302
- setInput(valueToInput(valueNew));
303
- // Update dayTime
304
- setDayTime(valueNew.map(item => (0, date_1.format)(item, 'a')));
376
+ });
377
+ const switch_ = (0, _utils2.valueBreakpoints)(switch__, true, breakpoints, theme);
378
+ const orientation = (0, _utils2.valueBreakpoints)(orientation_, 'vertical', breakpoints, theme);
379
+ const autoNext = (0, _utils2.valueBreakpoints)(autoNext_, undefined, breakpoints, theme);
380
+ const autoCloseOnLast = (0, _utils2.valueBreakpoints)(autoCloseOnLast_, undefined, breakpoints, theme);
381
+ const touch = (0, _useMediaQuery.default)('(pointer: coarse)', {
382
+ element: refs.root.current
383
+ });
384
+ const [value, setValue] = _react.default.useState(() => {
385
+ const valueResult = (valueDefault !== undefined ? valueDefault : value_) || now && (range ? [new _date.OnesyDate(), new _date.OnesyDate()] : [new _date.OnesyDate()]);
386
+ return ((0, _utils.is)('array', valueResult) ? valueResult : [valueResult]).filter(Boolean);
387
+ });
388
+ const [selecting, setSelecting] = _react.default.useState(() => {
389
+ const valueResult = (selectingDefault !== undefined ? selectingDefault : selecting_) || ['hour', 'hour'];
390
+ return ((0, _utils.is)('array', valueResult) ? valueResult : [valueResult]).filter(Boolean);
391
+ });
392
+ const [open, setOpen] = _react.default.useState(false);
393
+ const [mode, setMode] = _react.default.useState((touch ? openMobile : openDesktop) || 'select');
394
+ const [error, setError] = _react.default.useState(false);
395
+ const [dayTime, setDayTime] = _react.default.useState(Array.from({
396
+ length: 2
397
+ }).map(item => (0, _date.format)(new _date.OnesyDate(), 'a')));
398
+ const [tab, setTab] = _react.default.useState(0);
399
+ refs.value.current = value;
400
+ refs.mode.current = mode;
401
+ refs.dayTime.current = dayTime;
402
+ const valueToInput = _react.default.useCallback((valueNew = refs.value.current) => {
403
+ let result = '';
404
+ const [from, to] = (0, _utils.is)('array', valueNew) ? valueNew : [valueNew];
405
+ if (!(from || to)) return '';
406
+ const method = item => {
407
+ let formatValue = '';
408
+ if (format === '12') formatValue += `hh`;else formatValue += `HH`;
409
+ if (minute) formatValue += `:mm`;
410
+ if (second) formatValue += `:ss`;
411
+ if (format === '12') formatValue += ` a`;
412
+ return (0, _date.format)(item, formatValue);
305
413
  };
306
- const errorCheck = react_1.default.useCallback((valueNew = value) => {
307
- // Error
308
- setError((valueNew || []).some((item, index) => !valid(item)));
309
- }, [value]);
310
- // Init
311
- react_1.default.useEffect(() => {
312
- // Error
313
- errorCheck();
314
- }, []);
315
- // Value
316
- react_1.default.useEffect(() => {
317
- if (value_ !== undefined && value_ !== value)
318
- onUpdateValue((((0, utils_1.is)('array', value_) ? value_ : [value_]).filter(Boolean)));
319
- }, [value_]);
320
- const onUpdate = react_1.default.useCallback((valueNew_) => {
321
- const valueNew = resolve(valueNew_);
322
- // Inner update
323
- if (!props.hasOwnProperty('value'))
324
- setValue(valueNew);
325
- if ((0, utils_1.is)('function', onChange))
326
- onChange(!range ? valueNew[0] : valueNew);
327
- }, [value, range, onChange]);
328
- const onUpdateSelecting = react_1.default.useCallback((valueNew_, index) => {
329
- const valueNew = [...selecting];
330
- valueNew[index] = valueNew_;
331
- // Inner update
332
- if (!props.hasOwnProperty('selecting'))
333
- setSelecting(valueNew);
334
- if ((0, utils_1.is)('function', onChangeSelecting))
335
- onChangeSelecting(valueNew);
336
- }, [onChangeSelecting]);
337
- const valid = react_1.default.useCallback((...args) => {
338
- if ((0, utils_1.is)('function', valid_))
339
- return valid_(...args);
340
- const onesyDate = args[0];
341
- if (min || max || validate) {
342
- let response = true;
343
- if ((0, utils_1.is)('function', validate))
344
- response = validate(onesyDate);
345
- if (min !== undefined)
346
- response = response && (0, date_1.is)(onesyDate, 'after or same', min);
347
- if (max !== undefined)
348
- response = response && (0, date_1.is)(onesyDate, 'before or same', max);
349
- return response;
350
- }
351
- return true;
352
- }, [valid_, min, max, validate]);
353
- const textToOnesyDate = react_1.default.useCallback((valueNew) => {
354
- const [times, dayTime_] = (valueNew || '').split(' ');
355
- const values = times.split(':');
356
- let valueTime;
357
- let onesyDate = new date_1.OnesyDate();
358
- if (hour) {
359
- valueTime = values[0];
360
- if ((0, utils_1.is)('string', valueTime) && valueTime.startsWith('0'))
361
- valueTime = valueTime.slice(1);
362
- valueTime = +valueTime;
363
- onesyDate = (0, date_1.set)((format === '12' && dayTime_ === 'pm') ? valueTime + 12 : valueTime, 'hour', onesyDate);
364
- }
365
- if (minute) {
366
- valueTime = values[!hour ? 0 : 1];
367
- if ((0, utils_1.is)('string', valueTime) && valueTime.startsWith('0'))
368
- valueTime = valueTime.slice(1);
369
- valueTime = +valueTime;
370
- onesyDate = (0, date_1.set)(valueTime, 'minute', onesyDate);
371
- }
372
- if (second) {
373
- valueTime = values[!(hour && minute) ? 0 : !hour ? 1 : 2];
374
- if ((0, utils_1.is)('string', valueTime) && valueTime.startsWith('0'))
375
- valueTime = valueTime.slice(1);
376
- valueTime = +valueTime;
377
- onesyDate = (0, date_1.set)(valueTime, 'second', onesyDate);
378
- }
379
- return onesyDate;
380
- }, [format, hour, minute, second]);
381
- const onInputModalChange = react_1.default.useCallback((valueNew, unit, index) => {
382
- let valueTime = valueNew;
383
- if ((0, utils_1.is)('string', valueTime) && valueTime.startsWith('0'))
384
- valueTime = valueTime.slice(1);
385
- valueTime = +valueTime;
386
- value[index] = (0, date_1.set)(valueTime, unit || selecting[index], value[index]);
387
- (!actions_ ? onUpdate : setValue)(resolve(value));
388
- }, [value, actions_, selecting]);
389
- const resolve = react_1.default.useCallback((valueNew = refs.value.current, dayTimeNew = refs.dayTime.current) => {
390
- const values = valueNew.filter(Boolean).map((item, index) => {
391
- // Resolve the range value
392
- const valueHour = item.hour;
393
- if (format === '12') {
394
- if (dayTimeNew[index] === 'am' && valueHour >= 12)
395
- return (0, date_1.set)(valueHour - 12, 'hour', item);
396
- if (dayTimeNew[index] === 'pm' && valueHour < 12)
397
- return (0, date_1.set)(valueHour + 12, 'hour', item);
398
- }
399
- return item;
400
- });
401
- return values;
402
- }, [value, dayTime, format]);
403
- const updateDayTime = react_1.default.useCallback((valueNew_, index) => {
404
- const valueNew = valueNew_[0];
405
- // Update dayTime
406
- const dayTimeNew = [...dayTime];
407
- dayTimeNew[index] = valueNew;
408
- refs.dayTime.current = dayTimeNew;
409
- setDayTime(dayTimeNew);
410
- (!actions_ ? onUpdate : setValue)(resolve(refs.value.current));
411
- }, [value, actions_, dayTime, format]);
412
- const inputToValue = react_1.default.useCallback((valueNew_ = input) => {
413
- let valueNew = valueNew_;
414
- let [from, to] = valueNew.split(DatePicker_1.SEPARATOR);
415
- from = textToOnesyDate(from);
416
- if (to)
417
- to = textToOnesyDate(to);
418
- valueNew = [from, to].filter(Boolean).filter((item) => item === null || item === void 0 ? void 0 : item.valid);
419
- return valueNew;
420
- }, [input]);
421
- const onInputChange = react_1.default.useCallback((valueNew_) => {
422
- const valueNew = inputToValue(valueNew_);
423
- const validValues = valueNew.every(item => item.valid);
424
- // Only update values if input is valid
425
- // format used to make the value
426
- if (validValues) {
427
- // Error
428
- errorCheck(valueNew);
429
- // Update value
430
- onUpdate(valueNew);
431
- }
432
- if (!valueNew_) {
433
- onUpdate([null, null]);
434
- }
435
- // Update input for free typing
436
- setInput(valueNew_);
437
- }, []);
438
- const onChangeClock = react_1.default.useCallback((valueNew_, index = 0) => {
439
- const valueNew = [...value];
440
- if (valueNew_ !== value[index]) {
441
- valueNew[index] = valueNew_;
442
- (!actions_ ? onUpdate : setValue)(resolve(valueNew));
443
- // Error
444
- errorCheck(valueNew);
445
- }
446
- }, [value, actions_]);
447
- const onChangeSelectingClock = react_1.default.useCallback((valueNew, index = 0) => {
448
- const selectingValue = selecting;
449
- selectingValue[index] = valueNew;
450
- if (valueNew !== selecting[0])
451
- setSelecting([...selectingValue]);
452
- }, [selecting]);
453
- const onDoneSelecting = react_1.default.useCallback((valueNew, selectingNew) => {
454
- // AutoCloseOnLast
455
- if (autoCloseOnLast && refs.mode.current === 'select') {
456
- if (['hour', 'minute', 'second'].includes(selectingNew)) {
457
- if ((selectingNew === 'second') ||
458
- (selectingNew === 'minute' && !second) ||
459
- (selectingNew === 'hour' && !minute))
460
- return onOk();
461
- }
462
- }
463
- }, [mode, autoCloseOnLast, hour, minute, second]);
464
- const onMode = react_1.default.useCallback(() => {
465
- setMode((version === 'mobile' ? openMobile : openDesktop) || 'select');
466
- }, [version, openMobile, openDesktop]);
467
- const onModeSwitch = react_1.default.useCallback(() => {
468
- setMode(refs.mode.current === 'select' ? 'input' : 'select');
469
- }, []);
470
- const onOpen = react_1.default.useCallback(() => {
471
- onMode();
472
- setOpen(previous => !previous);
473
- }, [open, openMobile, version]);
474
- const onClose = react_1.default.useCallback((event) => {
475
- setOpen(false);
476
- if ((0, utils_1.is)('function', onClose_))
477
- onClose_(event);
478
- }, [onClose_]);
479
- const onReset = react_1.default.useCallback(() => {
480
- const valueNew = inputToValue();
481
- // Update value
482
- onUpdate(valueNew);
483
- // Update dayTime
484
- setDayTime(valueNew.map(item => (0, date_1.format)(item, 'a')));
485
- }, [input]);
486
- const onToday = react_1.default.useCallback((event) => {
487
- const valueNew = [new date_1.OnesyDate()];
488
- if (range)
489
- valueNew.push(new date_1.OnesyDate());
490
- // Update value
491
- onUpdate(valueNew);
492
- // Update input
493
- setInput(valueToInput(valueNew));
494
- // Update dayTime
495
- setDayTime(valueNew.map(item => (0, date_1.format)(item, 'a')));
496
- onClose(event);
497
- if ((0, utils_1.is)('function', onToday_))
498
- onToday_(event);
499
- }, [input, range, onToday_]);
500
- const onClear = react_1.default.useCallback((event) => {
501
- const valueNew = [];
502
- // Update value
503
- onUpdate(valueNew);
504
- // Update input
505
- setInput(valueToInput(valueNew));
506
- // Update dayTime
507
- setDayTime(valueNew.map(item => (0, date_1.format)(item, 'a')));
508
- onClose(event);
509
- if ((0, utils_1.is)('function', onClear_))
510
- onClear_(event);
511
- }, [onClear_]);
512
- const onOk = react_1.default.useCallback((event) => {
513
- // Error
514
- errorCheck();
515
- // Update value
516
- onUpdate(refs.value.current);
517
- // Update input
518
- setInput(valueToInput(refs.value.current));
519
- // Update dayTime
520
- setDayTime(refs.value.current.map(item => (0, date_1.format)(item, 'a')));
521
- onClose(event);
522
- if ((0, utils_1.is)('function', onOk_))
523
- onOk_(event);
524
- }, [value, onOk_]);
525
- const onCancel = react_1.default.useCallback((event) => {
526
- onReset();
527
- onClose(event);
528
- if ((0, utils_1.is)('function', onCancel_))
529
- onCancel_(event);
530
- }, [input, onCancel_]);
531
- const mask = [];
532
- let placeholder = '';
414
+ result += `${method(from)}`;
415
+ if (range && to) result += `${_DatePicker.SEPARATOR}${method(to)}`;
416
+ return result;
417
+ }, [value, format, hour, minute, second, range]);
418
+ const [input, setInput] = _react.default.useState(valueToInput());
419
+ let version = version_;
420
+ if (version === 'auto') {
421
+ if (touch) version = 'mobile';else version = 'desktop';
422
+ }
423
+ const onUpdateValue = valueNew_ => {
424
+ const valueNew = (0, _utils.is)('array', valueNew_) ? valueNew_ : [valueNew_];
425
+
426
+ // Update value
427
+ setValue(valueNew);
428
+
429
+ // Update input
430
+ setInput(valueToInput(valueNew));
431
+
432
+ // Update dayTime
433
+ setDayTime(valueNew.map(item => (0, _date.format)(item, 'a')));
434
+ };
435
+ const errorCheck = _react.default.useCallback((valueNew = value) => {
436
+ // Error
437
+ setError((valueNew || []).some((item, index) => !valid(item)));
438
+ }, [value]);
439
+
440
+ // Init
441
+ _react.default.useEffect(() => {
442
+ // Error
443
+ errorCheck();
444
+ }, []);
445
+
446
+ // Value
447
+ _react.default.useEffect(() => {
448
+ if (value_ !== undefined && value_ !== value) onUpdateValue(((0, _utils.is)('array', value_) ? value_ : [value_]).filter(Boolean));
449
+ }, [value_]);
450
+ const onUpdate = _react.default.useCallback(valueNew_ => {
451
+ const valueNew = resolve(valueNew_);
452
+
453
+ // Inner update
454
+ if (!props.hasOwnProperty('value')) setValue(valueNew);
455
+ if ((0, _utils.is)('function', onChange)) onChange(!range ? valueNew[0] : valueNew);
456
+ }, [value, range, onChange]);
457
+ const onUpdateSelecting = _react.default.useCallback((valueNew_, index) => {
458
+ const valueNew = [...selecting];
459
+ valueNew[index] = valueNew_;
460
+
461
+ // Inner update
462
+ if (!props.hasOwnProperty('selecting')) setSelecting(valueNew);
463
+ if ((0, _utils.is)('function', onChangeSelecting)) onChangeSelecting(valueNew);
464
+ }, [onChangeSelecting]);
465
+ const valid = _react.default.useCallback((...args) => {
466
+ if ((0, _utils.is)('function', valid_)) return valid_(...args);
467
+ const onesyDate = args[0];
468
+ if (min || max || validate) {
469
+ let response = true;
470
+ if ((0, _utils.is)('function', validate)) response = validate(onesyDate);
471
+ if (min !== undefined) response = response && (0, _date.is)(onesyDate, 'after or same', min);
472
+ if (max !== undefined) response = response && (0, _date.is)(onesyDate, 'before or same', max);
473
+ return response;
474
+ }
475
+ return true;
476
+ }, [valid_, min, max, validate]);
477
+ const textToOnesyDate = _react.default.useCallback(valueNew => {
478
+ const [times, dayTime_] = (valueNew || '').split(' ');
479
+ const values = times.split(':');
480
+ let valueTime;
481
+ let onesyDate = new _date.OnesyDate();
533
482
  if (hour) {
534
- if (format === '12') {
535
- mask.push({ pattern: '[0-1]' }, (item, result, valueInput) => /^([0][0-9]|1[0-2]).*/.test(valueInput));
536
- }
537
- if (format === '24') {
538
- mask.push({ pattern: '[0-2]' }, (item, result, valueInput) => /^([01][0-9]|2[0-3]).*/.test(valueInput));
539
- }
540
- placeholder += 'hh';
541
- if (minute || second) {
542
- mask.push(':');
543
- placeholder += ':';
544
- }
483
+ valueTime = values[0];
484
+ if ((0, _utils.is)('string', valueTime) && valueTime.startsWith('0')) valueTime = valueTime.slice(1);
485
+ valueTime = +valueTime;
486
+ onesyDate = (0, _date.set)(format === '12' && dayTime_ === 'pm' ? valueTime + 12 : valueTime, 'hour', onesyDate);
545
487
  }
546
488
  if (minute) {
547
- mask.push({ pattern: '[0-5]' }, { pattern: '[0-9]' });
548
- placeholder += 'mm';
549
- if (second) {
550
- mask.push(':');
551
- placeholder += ':';
552
- }
489
+ valueTime = values[!hour ? 0 : 1];
490
+ if ((0, _utils.is)('string', valueTime) && valueTime.startsWith('0')) valueTime = valueTime.slice(1);
491
+ valueTime = +valueTime;
492
+ onesyDate = (0, _date.set)(valueTime, 'minute', onesyDate);
553
493
  }
554
494
  if (second) {
555
- mask.push({ pattern: '[0-5]' }, { pattern: '[0-9]' });
556
- placeholder += 'ss';
495
+ valueTime = values[!(hour && minute) ? 0 : !hour ? 1 : 2];
496
+ if ((0, _utils.is)('string', valueTime) && valueTime.startsWith('0')) valueTime = valueTime.slice(1);
497
+ valueTime = +valueTime;
498
+ onesyDate = (0, _date.set)(valueTime, 'second', onesyDate);
499
+ }
500
+ return onesyDate;
501
+ }, [format, hour, minute, second]);
502
+ const onInputModalChange = _react.default.useCallback((valueNew, unit, index) => {
503
+ let valueTime = valueNew;
504
+ if ((0, _utils.is)('string', valueTime) && valueTime.startsWith('0')) valueTime = valueTime.slice(1);
505
+ valueTime = +valueTime;
506
+ value[index] = (0, _date.set)(valueTime, unit || selecting[index], value[index]);
507
+ (!actions_ ? onUpdate : setValue)(resolve(value));
508
+ }, [value, actions_, selecting]);
509
+ const resolve = _react.default.useCallback((valueNew = refs.value.current, dayTimeNew = refs.dayTime.current) => {
510
+ const values = valueNew.filter(Boolean).map((item, index) => {
511
+ // Resolve the range value
512
+ const valueHour = item.hour;
513
+ if (format === '12') {
514
+ if (dayTimeNew[index] === 'am' && valueHour >= 12) return (0, _date.set)(valueHour - 12, 'hour', item);
515
+ if (dayTimeNew[index] === 'pm' && valueHour < 12) return (0, _date.set)(valueHour + 12, 'hour', item);
516
+ }
517
+ return item;
518
+ });
519
+ return values;
520
+ }, [value, dayTime, format]);
521
+ const updateDayTime = _react.default.useCallback((valueNew_, index) => {
522
+ const valueNew = valueNew_[0];
523
+
524
+ // Update dayTime
525
+ const dayTimeNew = [...dayTime];
526
+ dayTimeNew[index] = valueNew;
527
+ refs.dayTime.current = dayTimeNew;
528
+ setDayTime(dayTimeNew);
529
+ (!actions_ ? onUpdate : setValue)(resolve(refs.value.current));
530
+ }, [value, actions_, dayTime, format]);
531
+ const inputToValue = _react.default.useCallback((valueNew_ = input) => {
532
+ let valueNew = valueNew_;
533
+ let [from, to] = valueNew.split(_DatePicker.SEPARATOR);
534
+ from = textToOnesyDate(from);
535
+ if (to) to = textToOnesyDate(to);
536
+ valueNew = [from, to].filter(Boolean).filter(item => item === null || item === void 0 ? void 0 : item.valid);
537
+ return valueNew;
538
+ }, [input]);
539
+ const onInputChange = _react.default.useCallback(valueNew_ => {
540
+ const valueNew = inputToValue(valueNew_);
541
+ const validValues = valueNew.every(item => item.valid);
542
+
543
+ // Only update values if input is valid
544
+ // format used to make the value
545
+ if (validValues) {
546
+ // Error
547
+ errorCheck(valueNew);
548
+
549
+ // Update value
550
+ onUpdate(valueNew);
551
+ }
552
+ if (!valueNew_) {
553
+ onUpdate([null, null]);
557
554
  }
555
+
556
+ // Update input for free typing
557
+ setInput(valueNew_);
558
+ }, []);
559
+ const onChangeClock = _react.default.useCallback((valueNew_, index = 0) => {
560
+ const valueNew = [...value];
561
+ if (valueNew_ !== value[index]) {
562
+ valueNew[index] = valueNew_;
563
+ (!actions_ ? onUpdate : setValue)(resolve(valueNew));
564
+
565
+ // Error
566
+ errorCheck(valueNew);
567
+ }
568
+ }, [value, actions_]);
569
+ const onChangeSelectingClock = _react.default.useCallback((valueNew, index = 0) => {
570
+ const selectingValue = selecting;
571
+ selectingValue[index] = valueNew;
572
+ if (valueNew !== selecting[0]) setSelecting([...selectingValue]);
573
+ }, [selecting]);
574
+ const onDoneSelecting = _react.default.useCallback((valueNew, selectingNew) => {
575
+ // AutoCloseOnLast
576
+ if (autoCloseOnLast && refs.mode.current === 'select') {
577
+ if (['hour', 'minute', 'second'].includes(selectingNew)) {
578
+ if (selectingNew === 'second' || selectingNew === 'minute' && !second || selectingNew === 'hour' && !minute) return onOk();
579
+ }
580
+ }
581
+ }, [mode, autoCloseOnLast, hour, minute, second]);
582
+ const onMode = _react.default.useCallback(() => {
583
+ setMode((version === 'mobile' ? openMobile : openDesktop) || 'select');
584
+ }, [version, openMobile, openDesktop]);
585
+ const onModeSwitch = _react.default.useCallback(() => {
586
+ setMode(refs.mode.current === 'select' ? 'input' : 'select');
587
+ }, []);
588
+ const onOpen = _react.default.useCallback(() => {
589
+ onMode();
590
+ setOpen(previous => !previous);
591
+ }, [open, openMobile, version]);
592
+ const onClose = _react.default.useCallback(event => {
593
+ setOpen(false);
594
+ if ((0, _utils.is)('function', onClose_)) onClose_(event);
595
+ }, [onClose_]);
596
+ const onReset = _react.default.useCallback(() => {
597
+ const valueNew = inputToValue();
598
+
599
+ // Update value
600
+ onUpdate(valueNew);
601
+
602
+ // Update dayTime
603
+ setDayTime(valueNew.map(item => (0, _date.format)(item, 'a')));
604
+ }, [input]);
605
+ const onToday = _react.default.useCallback(event => {
606
+ const valueNew = [new _date.OnesyDate()];
607
+ if (range) valueNew.push(new _date.OnesyDate());
608
+
609
+ // Update value
610
+ onUpdate(valueNew);
611
+
612
+ // Update input
613
+ setInput(valueToInput(valueNew));
614
+
615
+ // Update dayTime
616
+ setDayTime(valueNew.map(item => (0, _date.format)(item, 'a')));
617
+ onClose(event);
618
+ if ((0, _utils.is)('function', onToday_)) onToday_(event);
619
+ }, [input, range, onToday_]);
620
+ const onClear = _react.default.useCallback(event => {
621
+ const valueNew = [];
622
+
623
+ // Update value
624
+ onUpdate(valueNew);
625
+
626
+ // Update input
627
+ setInput(valueToInput(valueNew));
628
+
629
+ // Update dayTime
630
+ setDayTime(valueNew.map(item => (0, _date.format)(item, 'a')));
631
+ onClose(event);
632
+ if ((0, _utils.is)('function', onClear_)) onClear_(event);
633
+ }, [onClear_]);
634
+ const onOk = _react.default.useCallback(event => {
635
+ // Error
636
+ errorCheck();
637
+
638
+ // Update value
639
+ onUpdate(refs.value.current);
640
+
641
+ // Update input
642
+ setInput(valueToInput(refs.value.current));
643
+
644
+ // Update dayTime
645
+ setDayTime(refs.value.current.map(item => (0, _date.format)(item, 'a')));
646
+ onClose(event);
647
+ if ((0, _utils.is)('function', onOk_)) onOk_(event);
648
+ }, [value, onOk_]);
649
+ const onCancel = _react.default.useCallback(event => {
650
+ onReset();
651
+ onClose(event);
652
+ if ((0, _utils.is)('function', onCancel_)) onCancel_(event);
653
+ }, [input, onCancel_]);
654
+ const mask = [];
655
+ let placeholder = '';
656
+ if (hour) {
558
657
  if (format === '12') {
559
- mask.push(' ', { pattern: '[ap]' }, 'm');
560
- placeholder += ' (a|p)m';
658
+ mask.push({
659
+ pattern: '[0-1]'
660
+ }, (item, result, valueInput) => /^([0][0-9]|1[0-2]).*/.test(valueInput));
561
661
  }
562
- // range
563
- if (range) {
564
- mask.push(' ', DatePicker_1.SEPARATOR_SYMBOL, ' ', ...mask);
565
- placeholder += `${DatePicker_1.SEPARATOR}${placeholder}`;
662
+ if (format === '24') {
663
+ mask.push({
664
+ pattern: '[0-2]'
665
+ }, (item, result, valueInput) => /^([01][0-9]|2[0-3]).*/.test(valueInput));
566
666
  }
567
- placeholder = placeholder_ || placeholder;
568
- const buttonProps = Object.assign({ color: 'inherit', version: 'text', size }, ButtonProps);
569
- const iconButtonProps = Object.assign({ size }, IconButtonProps);
570
- const clock = (index = 0) => ((0, jsx_runtime_1.jsx)(Clock, Object.assign({ size: size, format: format, value: value[index] || new date_1.OnesyDate(), dayTime: dayTime[index] || (0, date_1.format)(new date_1.OnesyDate(), 'a'), selecting: selecting[index], onChange: valueNew => onChangeClock(valueNew, index), onChangeSelecting: valueNew => onChangeSelectingClock(valueNew, index), onDoneSelecting: onDoneSelecting, renderValue: renderValue, valid: valid, hour: hour, minute: minute, second: second, autoNext: autoNext, disabled: disabled }, ClockProps)));
571
- const moreProps = {};
572
- if (version === 'desktop') {
573
- moreProps.end = ((0, jsx_runtime_1.jsx)(IconButton, Object.assign({ tonal: tonal, color: color, size: size, version: 'text', onClick: onOpen, "aria-label": l('Choose time'), disabled: disabled || readOnly }, iconButtonProps, { children: (0, jsx_runtime_1.jsx)(Icon_, Object.assign({}, IconProps)) })));
667
+ placeholder += 'hh';
668
+ if (minute || second) {
669
+ mask.push(':');
670
+ placeholder += ':';
574
671
  }
575
- const makeInputs = (index = 0) => {
576
- const inputProps = Object.assign({ tonal,
577
- color, version: 'outlined', size, fullWidth: true, className: (0, style_react_1.classNames)([
578
- (0, utils_2.staticClassName)('TimePicker', theme) && [
579
- 'onesy-TimePicker-input'
580
- ],
581
- classes.input,
582
- classes[`input_version_${version}`],
583
- classes[`input_size_${size}`]
584
- ]), HelperTextProps: {
585
- version: size === 'large' ? 'b2' : size === 'regular' ? 'b3' : 'b3'
586
- } }, InputProps);
587
- const buttonProps_ = {
588
- tonal: 'secondary',
589
- color: ['themed', 'inverted', 'default', 'inherit'].includes(color) ? 'default' : color,
590
- version: 'filled',
591
- backgroundOpacity: 0.44,
592
- elevation: false,
593
- size,
594
- className: (0, style_react_1.classNames)([
595
- (0, utils_2.staticClassName)('TimePicker', theme) && [
596
- 'onesy-TimePicker-button'
597
- ],
598
- classes.button,
599
- classes[`button_size_${size}`]
600
- ]),
601
- style: {
602
- color: theme.palette.text.default.primary
603
- }
604
- };
605
- const separator = ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: size === 'large' ? 'd1' : size === 'regular' ? 'd2' : 'd3', className: (0, style_react_1.classNames)([
606
- (0, utils_2.staticClassName)('TimePicker', theme) && [
607
- 'onesy-TimePicker-input-separator'
608
- ],
609
- classes.inputSeparator
610
- ]), style: Object.assign({}, (mode !== 'select' && {
611
- marginTop: -24
612
- })) }, { children: ":" })));
613
- const buttons = [];
614
- const inputs = [];
615
- if (hour) {
616
- buttons.push((0, jsx_runtime_1.jsx)(Button, Object.assign({}, buttonProps_, { selected: selecting[index] === 'hour', onClick: () => onUpdateSelecting('hour', index) }, { children: (0, date_1.format)(value[index], format === '12' ? 'hh' : 'HH') })));
617
- inputs.push((0, jsx_runtime_1.jsx)(AdvancedTextField, Object.assign({ helperText: l('Hour'), value: (0, date_1.format)(value[index], format === '12' ? 'hh' : 'HH'), onChange: (valueNew) => onInputModalChange(valueNew, 'hour', index), placeholder: '00', mask: [
618
- ...(format === '12' ? [
619
- { pattern: '[0-1]' },
620
- (item, result, valueInput) => /^([0][0-9]|1[0-2]).*/.test(valueInput)
621
- ] : [
622
- { pattern: '[0-2]' },
623
- (item, result, valueInput) => /^([01][0-9]|2[0-3]).*/.test(valueInput)
624
- ])
625
- ] }, inputProps)));
626
- }
627
- if (minute) {
628
- if (hour) {
629
- buttons.push(separator);
630
- inputs.push(separator);
631
- }
632
- buttons.push((0, jsx_runtime_1.jsx)(Button, Object.assign({}, buttonProps_, { selected: selecting[index] === 'minute', onClick: () => onUpdateSelecting('minute', index) }, { children: (0, date_1.format)(value[index], 'mm') })));
633
- inputs.push((0, jsx_runtime_1.jsx)(AdvancedTextField, Object.assign({ helperText: l('Minute'), value: (0, date_1.format)(value[index], 'mm'), onChange: (valueNew) => onInputModalChange(valueNew, 'minute', index), placeholder: '00', mask: [
634
- { pattern: '[0-5]' },
635
- { pattern: '[0-9]' }
636
- ] }, inputProps)));
637
- }
638
- if (second) {
639
- if (hour || minute) {
640
- buttons.push(separator);
641
- inputs.push(separator);
642
- }
643
- buttons.push((0, jsx_runtime_1.jsx)(Button, Object.assign({}, buttonProps_, { selected: selecting[index] === 'second', onClick: () => onUpdateSelecting('second', index) }, { children: (0, date_1.format)(value[index], 'ss') })));
644
- inputs.push((0, jsx_runtime_1.jsx)(AdvancedTextField, Object.assign({ helperText: l('Second'), value: (0, date_1.format)(value[index], 'ss'), onChange: (valueNew) => onInputModalChange(valueNew, 'second', index), placeholder: '00', mask: [
645
- { pattern: '[0-5]' },
646
- { pattern: '[0-9]' }
647
- ] }, inputProps)));
648
- }
649
- return mode === 'select' ? buttons : inputs;
672
+ }
673
+ if (minute) {
674
+ mask.push({
675
+ pattern: '[0-5]'
676
+ }, {
677
+ pattern: '[0-9]'
678
+ });
679
+ placeholder += 'mm';
680
+ if (second) {
681
+ mask.push(':');
682
+ placeholder += ':';
683
+ }
684
+ }
685
+ if (second) {
686
+ mask.push({
687
+ pattern: '[0-5]'
688
+ }, {
689
+ pattern: '[0-9]'
690
+ });
691
+ placeholder += 'ss';
692
+ }
693
+ if (format === '12') {
694
+ mask.push(' ', {
695
+ pattern: '[ap]'
696
+ }, 'm');
697
+ placeholder += ' (a|p)m';
698
+ }
699
+
700
+ // range
701
+ if (range) {
702
+ mask.push(' ', _DatePicker.SEPARATOR_SYMBOL, ' ', ...mask);
703
+ placeholder += `${_DatePicker.SEPARATOR}${placeholder}`;
704
+ }
705
+ placeholder = placeholder_ || placeholder;
706
+ const buttonProps = _objectSpread({
707
+ color: 'inherit',
708
+ version: 'text',
709
+ size
710
+ }, ButtonProps);
711
+ const iconButtonProps = _objectSpread({
712
+ size
713
+ }, IconButtonProps);
714
+ const clock = (index = 0) => /*#__PURE__*/_react.default.createElement(Clock, (0, _extends2.default)({
715
+ size: size,
716
+ format: format,
717
+ value: value[index] || new _date.OnesyDate(),
718
+ dayTime: dayTime[index] || (0, _date.format)(new _date.OnesyDate(), 'a'),
719
+ selecting: selecting[index],
720
+ onChange: valueNew => onChangeClock(valueNew, index),
721
+ onChangeSelecting: valueNew => onChangeSelectingClock(valueNew, index),
722
+ onDoneSelecting: onDoneSelecting,
723
+ renderValue: renderValue,
724
+ valid: valid,
725
+ hour: hour,
726
+ minute: minute,
727
+ second: second,
728
+ autoNext: autoNext,
729
+ disabled: disabled
730
+ }, ClockProps));
731
+ const moreProps = {};
732
+ if (version === 'desktop') {
733
+ moreProps.end = /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({
734
+ tonal: tonal,
735
+ color: color,
736
+ size: size,
737
+ version: "text",
738
+ onClick: onOpen,
739
+ "aria-label": l('Choose time'),
740
+ disabled: disabled || readOnly
741
+ }, iconButtonProps), /*#__PURE__*/_react.default.createElement(Icon_, IconProps));
742
+ }
743
+ const makeInputs = (index = 0) => {
744
+ const inputProps = _objectSpread({
745
+ tonal,
746
+ color,
747
+ version: 'outlined',
748
+ size,
749
+ fullWidth: true,
750
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-input'], classes.input, classes[`input_version_${version}`], classes[`input_size_${size}`]]),
751
+ HelperTextProps: {
752
+ version: size === 'large' ? 'b2' : size === 'regular' ? 'b3' : 'b3'
753
+ }
754
+ }, InputProps);
755
+ const buttonProps_ = {
756
+ tonal: 'secondary',
757
+ color: ['themed', 'inverted', 'default', 'inherit'].includes(color) ? 'default' : color,
758
+ version: 'filled',
759
+ backgroundOpacity: 0.44,
760
+ elevation: false,
761
+ size,
762
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-button'], classes.button, classes[`button_size_${size}`]]),
763
+ style: {
764
+ color: theme.palette.text.default.primary
765
+ }
650
766
  };
651
- const toggleButtonProps = Object.assign(Object.assign({ size, icon: false }, ToggleButtonProps), { className: (0, style_react_1.classNames)([
652
- (0, utils_2.staticClassName)('TimePicker', theme) && [
653
- 'onesy-TimePicker-toggle-button'
654
- ],
655
- ToggleButtonProps === null || ToggleButtonProps === void 0 ? void 0 : ToggleButtonProps.className,
656
- classes.toggleButton
657
- ]) });
658
- const orientationValue = mode === 'select' ? orientation : 'vertical';
659
- const timeValue = range ? [0, 1] : [0];
660
- const elementValues = (timeValue.map((item, index) => ((0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 4.5, direction: orientationValue === 'vertical' ? 'column' : 'row', align: 'center', justify: 'unset', style: {
661
- width: '100%'
662
- } }, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: orientationValue === 'vertical' ? 1.5 : 2, direction: orientationValue === 'vertical' ? 'row' : 'column', justify: 'center', align: 'unset', className: (0, style_react_1.classNames)([
663
- (0, utils_2.staticClassName)('TimePicker', theme) && [
664
- 'onesy-TimePicker-inputs'
665
- ],
666
- classes.inputs
667
- ]) }, { children: [(0, jsx_runtime_1.jsx)(Line, Object.assign({ gap: 0, direction: 'row', align: 'center', justify: 'center', fullWidth: true }, { children: makeInputs(index) })), format === '12' && ((0, jsx_runtime_1.jsxs)(ToggleButtons, Object.assign({ version: 'outlined', size: size, orientation: orientationValue, value: dayTime[index] || (0, date_1.format)(new date_1.OnesyDate(), 'a'), onChange: valueNew => updateDayTime(valueNew, index), select: 'single', unselect: false }, ToggleButtonsProps, { className: (0, style_react_1.classNames)([
668
- (0, utils_2.staticClassName)('TimePicker', theme) && [
669
- 'onesy-TimePicker-toggle-buttons'
670
- ],
671
- ToggleButtonsProps === null || ToggleButtonsProps === void 0 ? void 0 : ToggleButtonsProps.className,
672
- classes.toggleButtons,
673
- classes[`toggleButtons_orientation_${orientationValue}_size_${size}`]
674
- ]) }, { children: [(0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ value: 'am' }, toggleButtonProps, { children: "AM" })), (0, jsx_runtime_1.jsx)(ToggleButton, Object.assign({ value: 'pm' }, toggleButtonProps, { children: "PM" }))] })))] })), mode === 'select' && clock(index)] }), index))));
675
- const heading = mode === 'select' ? !range ? selectModalSubHeadingText : selectModalSubHeadingTextRange : !range ? inputModalSubHeadingText : inputModalSubHeadingTextRange;
676
- const actions = ((0, jsx_runtime_1.jsxs)(Line, Object.assign({ direction: 'row', align: 'center', justify: 'space-between', fullWidth: true, className: (0, style_react_1.classNames)([
677
- (0, utils_2.staticClassName)('TimePicker', theme) && [
678
- 'onesy-TimePicker-footer'
679
- ],
680
- classes.footer,
681
- classes[`footer_size_${size}`]
682
- ]) }, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0, direction: 'row', align: 'center' }, { children: [switch_ && ((0, jsx_runtime_1.jsx)(Tooltip, Object.assign({ name: mode === 'select' ? l('Enter time') : l('Select time') }, { children: (0, jsx_runtime_1.jsx)(IconButton, Object.assign({ tonal: tonal, color: 'inherit', size: size, onClick: onModeSwitch, "aria-label": mode === 'select' ? l('Enter time') : l('Select time') }, iconButtonProps, { children: mode === 'select' ? (0, jsx_runtime_1.jsx)(IconEnter, Object.assign({}, IconProps)) : (0, jsx_runtime_1.jsx)(Icon_, Object.assign({}, IconProps)) })) }))), today && ((0, jsx_runtime_1.jsx)(Button, Object.assign({ onClick: onToday, version: 'text', size: size }, buttonProps, { children: l('Now') }))), clear && ((0, jsx_runtime_1.jsx)(Button, Object.assign({ onClick: onClear, version: 'text', size: size }, buttonProps, { children: l('Clear') })))] })), (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0, direction: 'row', align: 'center' }, { children: [(0, jsx_runtime_1.jsx)(Button, Object.assign({ tonal: tonal, color: color, version: 'text', size: size, onClick: onCancel }, buttonProps, { children: l('Cancel') })), (0, jsx_runtime_1.jsx)(Button, Object.assign({ tonal: tonal, color: color, version: 'text', size: size, onClick: onOk }, buttonProps, { children: l('Ok') }))] }))] })));
683
- const element = ((0, jsx_runtime_1.jsxs)(Surface, Object.assign({ gap: 0, direction: 'column', align: 'center', Component: Line }, MainProps, { className: (0, style_react_1.classNames)([
684
- (0, utils_2.staticClassName)('TimePicker', theme) && [
685
- 'onesy-TimePicker-main'
686
- ],
687
- MainProps === null || MainProps === void 0 ? void 0 : MainProps.className,
688
- classes.main,
689
- classes[`main_size_${size}`]
690
- ]) }, { children: [heading_ && ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: size === 'large' ? 'l1' : size === 'regular' ? 'l2' : 'l3', className: (0, style_react_1.classNames)([
691
- (0, utils_2.staticClassName)('TimePicker', theme) && [
692
- 'onesy-TimePicker-heading'
693
- ],
694
- classes.heading,
695
- classes[`heading_size_${size}`]
696
- ]) }, { children: heading }))), range && ((0, jsx_runtime_1.jsxs)(Tabs, Object.assign({ justify: 'center', initialLineUpdateTimeout: 340, value: tab, valueDefault: tab, onChange: setTab }, TabsProps, { className: (0, style_react_1.classNames)([
697
- (0, utils_2.staticClassName)('TimePicker', theme) && [
698
- 'onesy-TimePicker-tabs'
699
- ],
700
- TabsProps === null || TabsProps === void 0 ? void 0 : TabsProps.className,
701
- classes.tabs,
702
- heading_ && classes.tabs_padding
703
- ]) }, { children: [(0, jsx_runtime_1.jsx)(Tab, Object.assign({ value: 0, name: l('From') }, TabFromProps)), (0, jsx_runtime_1.jsx)(Tab, Object.assign({ value: 1, name: l('To') }, TabToProps))] }))), (0, jsx_runtime_1.jsx)(Line, Object.assign({ gap: 0, className: (0, style_react_1.classNames)([
704
- (0, utils_2.staticClassName)('TimePicker', theme) && [
705
- 'onesy-TimePicker-middle'
706
- ],
707
- MiddleProps === null || MiddleProps === void 0 ? void 0 : MiddleProps.className,
708
- classes.middle,
709
- classes[`middle_size_${size}`]
710
- ]) }, { children: elementValues[tab] })), actions_ && actions] })));
711
- if (version === 'mobile') {
712
- if (!(readOnly || disabled))
713
- moreProps.onClick = onOpen;
767
+ const separator = /*#__PURE__*/_react.default.createElement(Type, {
768
+ version: size === 'large' ? 'd1' : size === 'regular' ? 'd2' : 'd3',
769
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-input-separator'], classes.inputSeparator]),
770
+ style: _objectSpread({}, mode !== 'select' && {
771
+ marginTop: -24
772
+ })
773
+ }, ":");
774
+ const buttons = [];
775
+ const inputs = [];
776
+ if (hour) {
777
+ buttons.push(/*#__PURE__*/_react.default.createElement(Button, (0, _extends2.default)({}, buttonProps_, {
778
+ selected: selecting[index] === 'hour',
779
+ onClick: () => onUpdateSelecting('hour', index)
780
+ }), (0, _date.format)(value[index], format === '12' ? 'hh' : 'HH')));
781
+ inputs.push(/*#__PURE__*/_react.default.createElement(AdvancedTextField, (0, _extends2.default)({
782
+ helperText: l('Hour'),
783
+ value: (0, _date.format)(value[index], format === '12' ? 'hh' : 'HH'),
784
+ onChange: valueNew => onInputModalChange(valueNew, 'hour', index),
785
+ placeholder: "00",
786
+ mask: [...(format === '12' ? [{
787
+ pattern: '[0-1]'
788
+ }, (item, result, valueInput) => /^([0][0-9]|1[0-2]).*/.test(valueInput)] : [{
789
+ pattern: '[0-2]'
790
+ }, (item, result, valueInput) => /^([01][0-9]|2[0-3]).*/.test(valueInput)])]
791
+ }, inputProps)));
714
792
  }
715
- if (static_)
716
- return element;
717
- return ((0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0, direction: 'column', fullWidth: fullWidth }, WrapperProps, { className: (0, style_react_1.classNames)([
718
- (0, utils_2.staticClassName)('TimePicker', theme) && [
719
- 'onesy-TimePicker-root',
720
- `onesy-TimePicker-version-${version}`,
721
- `onesy-TimePicker-size-${size}`,
722
- WrapperProps === null || WrapperProps === void 0 ? void 0 : WrapperProps.className,
723
- readOnly && `onesy-TimePicker-read-only`,
724
- disabled && `onesy-TimePicker-disabled`,
725
- fullWidth && 'onesy-full-width'
726
- ],
727
- className,
728
- classes.root
729
- ]) }, { children: [(0, jsx_runtime_1.jsx)(AdvancedTextField, Object.assign({ rootRef: item => {
730
- if (ref) {
731
- if ((0, utils_1.is)('function', ref))
732
- ref(item);
733
- else
734
- ref.current = item;
735
- }
736
- refs.root.current = item;
737
- }, tonal: tonal, color: color, version: 'outlined', size: size, name: label, mask: mask, placeholder: placeholder, value: input, onChange: onInputChange, endVerticalAlign: 'center', error: error, fullWidth: fullWidth, readOnly: readOnly, disabled: disabled }, moreProps, other, AdvancedTextFieldProps)), version === 'mobile' && ((0, jsx_runtime_1.jsx)(Modal, Object.assign({ open: open, modalWrapperSurface: false, TransitionComponent: Slide, onClose: onClose }, ModalProps, { children: element }))), version === 'desktop' && ((0, jsx_runtime_1.jsx)(Tooltip, Object.assign({ open: open, portal: true, anchorElement: refs.root.current, alignment: 'center', position: 'bottom', hover: false, focus: false, longPress: false, maxWidth: 'unset', noMargin: true, name: ((0, jsx_runtime_1.jsx)(ClickListener, Object.assign({ onClickOutside: onCancel, includeParentQueries: ['.onesy-TimePicker-main'] }, { children: element }))) }, TooltipProps)))] })));
793
+ if (minute) {
794
+ if (hour) {
795
+ buttons.push(separator);
796
+ inputs.push(separator);
797
+ }
798
+ buttons.push(/*#__PURE__*/_react.default.createElement(Button, (0, _extends2.default)({}, buttonProps_, {
799
+ selected: selecting[index] === 'minute',
800
+ onClick: () => onUpdateSelecting('minute', index)
801
+ }), (0, _date.format)(value[index], 'mm')));
802
+ inputs.push(/*#__PURE__*/_react.default.createElement(AdvancedTextField, (0, _extends2.default)({
803
+ helperText: l('Minute'),
804
+ value: (0, _date.format)(value[index], 'mm'),
805
+ onChange: valueNew => onInputModalChange(valueNew, 'minute', index),
806
+ placeholder: "00",
807
+ mask: [{
808
+ pattern: '[0-5]'
809
+ }, {
810
+ pattern: '[0-9]'
811
+ }]
812
+ }, inputProps)));
813
+ }
814
+ if (second) {
815
+ if (hour || minute) {
816
+ buttons.push(separator);
817
+ inputs.push(separator);
818
+ }
819
+ buttons.push(/*#__PURE__*/_react.default.createElement(Button, (0, _extends2.default)({}, buttonProps_, {
820
+ selected: selecting[index] === 'second',
821
+ onClick: () => onUpdateSelecting('second', index)
822
+ }), (0, _date.format)(value[index], 'ss')));
823
+ inputs.push(/*#__PURE__*/_react.default.createElement(AdvancedTextField, (0, _extends2.default)({
824
+ helperText: l('Second'),
825
+ value: (0, _date.format)(value[index], 'ss'),
826
+ onChange: valueNew => onInputModalChange(valueNew, 'second', index),
827
+ placeholder: "00",
828
+ mask: [{
829
+ pattern: '[0-5]'
830
+ }, {
831
+ pattern: '[0-9]'
832
+ }]
833
+ }, inputProps)));
834
+ }
835
+ return mode === 'select' ? buttons : inputs;
836
+ };
837
+ const toggleButtonProps = _objectSpread(_objectSpread({
838
+ size,
839
+ icon: false
840
+ }, ToggleButtonProps), {}, {
841
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-toggle-button'], ToggleButtonProps === null || ToggleButtonProps === void 0 ? void 0 : ToggleButtonProps.className, classes.toggleButton])
842
+ });
843
+ const orientationValue = mode === 'select' ? orientation : 'vertical';
844
+ const timeValue = range ? [0, 1] : [0];
845
+ const elementValues = timeValue.map((item, index) => /*#__PURE__*/_react.default.createElement(Line, {
846
+ key: index,
847
+ gap: 4.5,
848
+ direction: orientationValue === 'vertical' ? 'column' : 'row',
849
+ align: "center",
850
+ justify: "unset",
851
+ style: {
852
+ width: '100%'
853
+ }
854
+ }, /*#__PURE__*/_react.default.createElement(Line, {
855
+ gap: orientationValue === 'vertical' ? 1.5 : 2,
856
+ direction: orientationValue === 'vertical' ? 'row' : 'column',
857
+ justify: "center",
858
+ align: "unset",
859
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-inputs'], classes.inputs])
860
+ }, /*#__PURE__*/_react.default.createElement(Line, {
861
+ gap: 0,
862
+ direction: "row",
863
+ align: "center",
864
+ justify: "center",
865
+ fullWidth: true
866
+ }, makeInputs(index)), format === '12' && /*#__PURE__*/_react.default.createElement(ToggleButtons, (0, _extends2.default)({
867
+ version: "outlined",
868
+ size: size,
869
+ orientation: orientationValue,
870
+ value: dayTime[index] || (0, _date.format)(new _date.OnesyDate(), 'a'),
871
+ onChange: valueNew => updateDayTime(valueNew, index),
872
+ select: "single",
873
+ unselect: false
874
+ }, ToggleButtonsProps, {
875
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-toggle-buttons'], ToggleButtonsProps === null || ToggleButtonsProps === void 0 ? void 0 : ToggleButtonsProps.className, classes.toggleButtons, classes[`toggleButtons_orientation_${orientationValue}_size_${size}`]])
876
+ }), /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
877
+ value: "am"
878
+ }, toggleButtonProps), "AM"), /*#__PURE__*/_react.default.createElement(ToggleButton, (0, _extends2.default)({
879
+ value: "pm"
880
+ }, toggleButtonProps), "PM"))), mode === 'select' && clock(index)));
881
+ const heading = mode === 'select' ? !range ? selectModalSubHeadingText : selectModalSubHeadingTextRange : !range ? inputModalSubHeadingText : inputModalSubHeadingTextRange;
882
+ const actions = /*#__PURE__*/_react.default.createElement(Line, {
883
+ direction: "row",
884
+ align: "center",
885
+ justify: "space-between",
886
+ fullWidth: true,
887
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-footer'], classes.footer, classes[`footer_size_${size}`]])
888
+ }, /*#__PURE__*/_react.default.createElement(Line, {
889
+ gap: 0,
890
+ direction: "row",
891
+ align: "center"
892
+ }, switch_ && /*#__PURE__*/_react.default.createElement(Tooltip, {
893
+ name: mode === 'select' ? l('Enter time') : l('Select time')
894
+ }, /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({
895
+ tonal: tonal,
896
+ color: "inherit",
897
+ size: size,
898
+ onClick: onModeSwitch,
899
+ "aria-label": mode === 'select' ? l('Enter time') : l('Select time')
900
+ }, iconButtonProps), mode === 'select' ? /*#__PURE__*/_react.default.createElement(IconEnter, IconProps) : /*#__PURE__*/_react.default.createElement(Icon_, IconProps))), today && /*#__PURE__*/_react.default.createElement(Button, (0, _extends2.default)({
901
+ onClick: onToday,
902
+ version: "text",
903
+ size: size
904
+ }, buttonProps), l('Now')), clear && /*#__PURE__*/_react.default.createElement(Button, (0, _extends2.default)({
905
+ onClick: onClear,
906
+ version: "text",
907
+ size: size
908
+ }, buttonProps), l('Clear'))), /*#__PURE__*/_react.default.createElement(Line, {
909
+ gap: 0,
910
+ direction: "row",
911
+ align: "center"
912
+ }, /*#__PURE__*/_react.default.createElement(Button, (0, _extends2.default)({
913
+ tonal: tonal,
914
+ color: color,
915
+ version: "text",
916
+ size: size,
917
+ onClick: onCancel
918
+ }, buttonProps), l('Cancel')), /*#__PURE__*/_react.default.createElement(Button, (0, _extends2.default)({
919
+ tonal: tonal,
920
+ color: color,
921
+ version: "text",
922
+ size: size,
923
+ onClick: onOk
924
+ }, buttonProps), l('Ok'))));
925
+ const element = /*#__PURE__*/_react.default.createElement(Surface, (0, _extends2.default)({
926
+ gap: 0,
927
+ direction: "column",
928
+ align: "center",
929
+ Component: Line
930
+ }, MainProps, {
931
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-main'], MainProps === null || MainProps === void 0 ? void 0 : MainProps.className, classes.main, classes[`main_size_${size}`]])
932
+ }), heading_ && /*#__PURE__*/_react.default.createElement(Type, {
933
+ version: size === 'large' ? 'l1' : size === 'regular' ? 'l2' : 'l3',
934
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-heading'], classes.heading, classes[`heading_size_${size}`]])
935
+ }, heading), range && /*#__PURE__*/_react.default.createElement(Tabs, (0, _extends2.default)({
936
+ justify: "center",
937
+ initialLineUpdateTimeout: 340,
938
+ value: tab,
939
+ valueDefault: tab,
940
+ onChange: setTab
941
+ }, TabsProps, {
942
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-tabs'], TabsProps === null || TabsProps === void 0 ? void 0 : TabsProps.className, classes.tabs, heading_ && classes.tabs_padding])
943
+ }), /*#__PURE__*/_react.default.createElement(Tab, (0, _extends2.default)({
944
+ value: 0,
945
+ name: l('From')
946
+ }, TabFromProps)), /*#__PURE__*/_react.default.createElement(Tab, (0, _extends2.default)({
947
+ value: 1,
948
+ name: l('To')
949
+ }, TabToProps))), /*#__PURE__*/_react.default.createElement(Line, {
950
+ gap: 0,
951
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-middle'], MiddleProps === null || MiddleProps === void 0 ? void 0 : MiddleProps.className, classes.middle, classes[`middle_size_${size}`]])
952
+ }, elementValues[tab]), actions_ && actions);
953
+ if (version === 'mobile') {
954
+ if (!(readOnly || disabled)) moreProps.onClick = onOpen;
955
+ }
956
+ if (static_) return element;
957
+ return /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
958
+ gap: 0,
959
+ direction: "column",
960
+ fullWidth: fullWidth
961
+ }, WrapperProps, {
962
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('TimePicker', theme) && ['onesy-TimePicker-root', `onesy-TimePicker-version-${version}`, `onesy-TimePicker-size-${size}`, WrapperProps === null || WrapperProps === void 0 ? void 0 : WrapperProps.className, readOnly && `onesy-TimePicker-read-only`, disabled && `onesy-TimePicker-disabled`, fullWidth && 'onesy-full-width'], className, classes.root])
963
+ }), /*#__PURE__*/_react.default.createElement(AdvancedTextField, (0, _extends2.default)({
964
+ rootRef: item => {
965
+ if (ref) {
966
+ if ((0, _utils.is)('function', ref)) ref(item);else ref.current = item;
967
+ }
968
+ refs.root.current = item;
969
+ },
970
+ tonal: tonal,
971
+ color: color,
972
+ version: "outlined",
973
+ size: size,
974
+ name: label,
975
+ mask: mask,
976
+ placeholder: placeholder,
977
+ value: input,
978
+ onChange: onInputChange,
979
+ endVerticalAlign: "center",
980
+ error: error,
981
+ fullWidth: fullWidth,
982
+ readOnly: readOnly,
983
+ disabled: disabled
984
+ }, moreProps, other, AdvancedTextFieldProps)), version === 'mobile' && /*#__PURE__*/_react.default.createElement(Modal, (0, _extends2.default)({
985
+ open: open,
986
+ modalWrapperSurface: false,
987
+ TransitionComponent: Slide,
988
+ onClose: onClose
989
+ }, ModalProps), element), version === 'desktop' && /*#__PURE__*/_react.default.createElement(Tooltip, (0, _extends2.default)({
990
+ open: open,
991
+ portal: true,
992
+ anchorElement: refs.root.current,
993
+ alignment: "center",
994
+ position: "bottom",
995
+ hover: false,
996
+ focus: false,
997
+ longPress: false,
998
+ maxWidth: "unset",
999
+ noMargin: true,
1000
+ name: /*#__PURE__*/_react.default.createElement(ClickListener, {
1001
+ onClickOutside: onCancel,
1002
+ includeParentQueries: ['.onesy-TimePicker-main']
1003
+ }, element)
1004
+ }, TooltipProps)));
738
1005
  });
739
1006
  TimePicker.displayName = 'onesy-TimePicker';
740
- exports.default = TimePicker;
1007
+ var _default = exports.default = TimePicker;