@onesy/ui-react 1.0.129 → 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 (445) 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/BottomAppBar/BottomAppBar.js +5 -4
  423. package/esm/Buttons/Buttons.js +1 -1
  424. package/esm/index.js +1 -1
  425. package/index.js +4053 -660
  426. package/package.json +1 -1
  427. package/types.js +4 -1
  428. package/useForm/index.js +25 -11
  429. package/useForm/useForm.js +203 -174
  430. package/useForm/validate.js +215 -203
  431. package/useLocation/index.js +12 -7
  432. package/useLocation/useLocation.js +54 -49
  433. package/useMediaQuery/index.js +12 -7
  434. package/useMediaQuery/useMediaQuery.js +44 -43
  435. package/useQuery/index.js +12 -7
  436. package/useQuery/useQuery.js +14 -10
  437. package/useScroll/index.js +12 -7
  438. package/useScroll/useScroll.js +61 -56
  439. package/useSubscription/index.js +12 -7
  440. package/useSubscription/useSubscription.js +35 -35
  441. package/useSwipe/index.js +12 -7
  442. package/useSwipe/useSwipe.js +157 -131
  443. package/useVisible/index.js +12 -7
  444. package/useVisible/useVisible.js +86 -76
  445. package/utils.js +1224 -1362
package/Clock/Clock.js CHANGED
@@ -1,428 +1,481 @@
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 style_react_1 = require("@onesy/style-react");
20
- const utils_1 = require("@onesy/utils");
21
- const date_1 = require("@onesy/date");
22
- const RoundMeter_1 = __importDefault(require("../RoundMeter"));
23
- const Path_1 = __importDefault(require("../Path"));
24
- const utils_2 = require("../utils");
25
- const useStyle = (0, style_react_1.style)(theme => ({
26
- root: {
27
- userSelect: 'none',
28
- touchAction: 'none',
29
- '& .onesy-RoundMeter-children, & .onesy-RoundMeter-labels': {
30
- pointerEvents: 'none'
31
- },
32
- '& svg > *': {
33
- cursor: 'grab'
34
- }
35
- },
36
- mouseDown: {
37
- '& svg > *': {
38
- cursor: 'grabbing'
39
- }
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 _styleReact = require("@onesy/style-react");
13
+ var _utils = require("@onesy/utils");
14
+ var _date = require("@onesy/date");
15
+ var _RoundMeter = _interopRequireDefault(require("../RoundMeter"));
16
+ var _Path = _interopRequireDefault(require("../Path"));
17
+ var _utils2 = require("../utils");
18
+ const _excluded = ["tonal", "color", "size", "value", "valueDefault", "onChange", "selecting", "selectingDefault", "onChangeSelecting", "format", "dayTime", "hour", "minute", "second", "autoNext", "min", "max", "validate", "readOnly", "disabled", "valid", "renderValue", "onDoneSelecting", "onClick", "className", "BackgroundProps"];
19
+ 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; }
20
+ 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; }
21
+ const useStyle = (0, _styleReact.style)(theme => ({
22
+ root: {
23
+ userSelect: 'none',
24
+ touchAction: 'none',
25
+ '& .onesy-RoundMeter-children, & .onesy-RoundMeter-labels': {
26
+ pointerEvents: 'none'
40
27
  },
41
- }), { name: 'onesy-Clock' });
42
- const Clock = react_1.default.forwardRef((props__, ref) => {
43
- const theme = (0, style_react_1.useOnesyTheme)();
44
- 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.onesyClock) === null || _g === void 0 ? void 0 : _g.props) === null || _h === void 0 ? void 0 : _h.default), props__)); }, [props__]);
45
- const RoundMeter = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.RoundMeter) || RoundMeter_1.default; }, [theme]);
46
- const Path = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Path) || Path_1.default; }, [theme]);
47
- const { tonal = true, color = 'primary', size = 'regular', value: value_, valueDefault, onChange, selecting: selecting_, selectingDefault, onChangeSelecting, format = '12', dayTime = 'am', hour = true, minute = true, second = false, autoNext, min, max, validate, readOnly, disabled, valid: valid_, renderValue, onDoneSelecting, onClick: onClick_, className, BackgroundProps } = props, other = __rest(props, ["tonal", "color", "size", "value", "valueDefault", "onChange", "selecting", "selectingDefault", "onChangeSelecting", "format", "dayTime", "hour", "minute", "second", "autoNext", "min", "max", "validate", "readOnly", "disabled", "valid", "renderValue", "onDoneSelecting", "onClick", "className", "BackgroundProps"]);
48
- const { classes } = useStyle();
49
- const [value, setValue] = react_1.default.useState((valueDefault !== undefined ? valueDefault : value_) || new date_1.OnesyDate());
50
- const [selecting, setSelecting] = react_1.default.useState((selectingDefault !== undefined ? selectingDefault : selecting_) || 'hour');
51
- const [mouseDown, setMouseDown] = react_1.default.useState(false);
52
- const refs = {
53
- root: react_1.default.useRef(null),
54
- middle: react_1.default.useRef(null),
55
- mouseDown: react_1.default.useRef(null),
56
- value: react_1.default.useRef(null),
57
- selecting: react_1.default.useRef(null),
58
- autoNext: react_1.default.useRef(null),
59
- hour: react_1.default.useRef(null),
60
- minute: react_1.default.useRef(null),
61
- second: react_1.default.useRef(null),
62
- format: react_1.default.useRef(null),
63
- dayTime: react_1.default.useRef(null),
64
- previous: react_1.default.useRef(selecting)
65
- };
66
- refs.mouseDown.current = mouseDown;
67
- refs.value.current = value;
68
- refs.hour.current = hour;
69
- refs.minute.current = minute;
70
- refs.second.current = second;
71
- refs.selecting.current = selecting;
72
- refs.autoNext.current = autoNext;
73
- refs.format.current = format;
74
- refs.dayTime.current = dayTime;
75
- const resolve = react_1.default.useCallback((valueNew = refs.value.current, dayTimeValue = refs.dayTime.current) => {
76
- // Resolve the range value
77
- const valueHour = valueNew.hour;
78
- if (format === '12') {
79
- if (dayTimeValue === 'am' && valueHour > 12)
80
- return (0, date_1.set)(valueHour - 12, 'hour', valueNew);
81
- if (dayTimeValue === 'pm' && valueHour < 12)
82
- return (0, date_1.set)(valueHour + 12, 'hour', valueNew);
83
- }
84
- return valueNew;
85
- }, [value, dayTime, format]);
86
- const inputToValue = react_1.default.useCallback((valueNew, unit = refs.selecting.current) => {
87
- let onesyDate = new date_1.OnesyDate(refs.value.current);
88
- let valueTime = valueNew;
89
- if ((0, utils_1.is)('string', valueTime) && valueTime.startsWith('0'))
90
- valueTime = valueTime.slice(1);
91
- valueTime = +valueTime;
92
- if (unit === 'hour')
93
- onesyDate = (0, date_1.set)((format === '12' && dayTime === 'pm') ? valueTime + 12 : valueTime, 'hour', onesyDate);
94
- else
95
- onesyDate = (0, date_1.set)(valueTime, unit, onesyDate);
96
- return resolve(onesyDate);
97
- }, [value, format, dayTime, hour, minute, second]);
98
- const onMove = react_1.default.useCallback((x_, y_) => {
99
- const rectMiddle = refs.middle.current.getBoundingClientRect();
100
- const x = x_ - rectMiddle.x;
101
- const y = y_ - rectMiddle.y;
102
- const radians = Math.atan2(x, y);
103
- const degrees = (radians * 180) / Math.PI;
104
- const angle = 180 - degrees;
105
- // Make array of values
106
- // for hours, minutes and seconds
107
- // with +- 50% around the value
108
- // Find item in that array that this angle fits within
109
- let valuesAll = [];
110
- if (refs.selecting.current === 'hour') {
111
- const part = 360 / 12;
112
- valuesAll = Array.from({ length: 12 }).map((item, index_) => [(part * index_) - (part / 2), (part * index_) + (part / 2)]);
113
- let index = valuesAll.findIndex((item) => angle >= item[0] && angle <= item[1]);
114
- if (index === -1 || index === 0)
115
- index = refs.format.current === '24' ? 0 : 12;
116
- if (refs.format.current === '24') {
117
- let within = false;
118
- const labelElements = refs.root.current.querySelectorAll('.onesy-RoundMeter-labels');
119
- const elements = {
120
- outer: labelElements[0],
121
- inner: labelElements[1]
122
- };
123
- const rects = {
124
- outer: elements.outer.getBoundingClientRect(),
125
- inner: elements.inner.getBoundingClientRect()
126
- };
127
- const part_ = Math.abs(Math.abs(rects.outer.x) - Math.abs(rects.inner.x));
128
- const valueMoved = Math.sqrt(x ** 2 + y ** 2);
129
- const middleInner = Math.abs(Math.abs(rectMiddle.x) - Math.abs(rects.inner.x));
130
- if (valueMoved <= (middleInner + (part_ / 2)))
131
- within = true;
132
- if (within)
133
- index += 12;
134
- index = (0, utils_1.clamp)(index, 0, 23);
135
- }
136
- // Validate
137
- if (!valid(inputToValue(index, 'hour'), 'hour'))
138
- return;
139
- // Update values
140
- onUpdate(inputToValue(index, 'hour'));
141
- }
142
- else if (['minute', 'second'].includes(refs.selecting.current)) {
143
- const part = 360 / 60;
144
- valuesAll = Array.from({ length: 60 }).map((item, index_) => [(part * index_) - (part / 2), (part * index_) + (part / 2)]);
145
- let index = valuesAll.findIndex((item) => angle >= item[0] && angle <= item[1]);
146
- if (index === -1 || index === 0)
147
- index = 0;
148
- // Validate
149
- if (!valid(inputToValue(index), refs.selecting.current))
150
- return;
151
- // Update values
152
- onUpdate(inputToValue(index));
153
- }
154
- }, []);
155
- react_1.default.useEffect(() => {
156
- var _a;
157
- const onMouseUp = () => {
158
- if (refs.mouseDown.current) {
159
- setMouseDown(false);
160
- // Auto next
161
- if (refs.autoNext.current) {
162
- if (['hour', 'minute', 'second'].includes(refs.selecting.current)) {
163
- let valueSelecting;
164
- if (refs.selecting.current === 'second')
165
- valueSelecting = 'hour';
166
- if (refs.selecting.current === 'minute')
167
- valueSelecting = refs.second.current ? 'second' : 'hour';
168
- if (refs.selecting.current === 'hour' && refs.minute.current)
169
- valueSelecting = 'minute';
170
- onUpdateSelecting(valueSelecting);
171
- }
172
- }
173
- if ((0, utils_1.is)('function', onDoneSelecting))
174
- onDoneSelecting(refs.value.current, refs.selecting.current);
175
- }
176
- };
177
- // Mouse move
178
- const onMouseMove = (event) => {
179
- if (refs.mouseDown.current) {
180
- const { clientY, clientX } = event;
181
- onMove(clientX, clientY);
182
- }
183
- };
184
- // Touch move
185
- const onTouchMove = (event) => {
186
- if (refs.mouseDown.current) {
187
- const { clientY, clientX } = event.touches[0];
188
- onMove(clientX, clientY);
189
- }
28
+ '& svg > *': {
29
+ cursor: 'grab'
30
+ }
31
+ },
32
+ mouseDown: {
33
+ '& svg > *': {
34
+ cursor: 'grabbing'
35
+ }
36
+ }
37
+ }), {
38
+ name: 'onesy-Clock'
39
+ });
40
+ const Clock = /*#__PURE__*/_react.default.forwardRef((props__, ref) => {
41
+ const theme = (0, _styleReact.useOnesyTheme)();
42
+ const props = _react.default.useMemo(() => {
43
+ var _theme$ui, _theme$ui2;
44
+ 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.onesyClock) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.props) === null || _theme$ui2 === void 0 ? void 0 : _theme$ui2.default), props__);
45
+ }, [props__]);
46
+ const RoundMeter = _react.default.useMemo(() => {
47
+ var _theme$elements;
48
+ return (theme === null || theme === void 0 || (_theme$elements = theme.elements) === null || _theme$elements === void 0 ? void 0 : _theme$elements.RoundMeter) || _RoundMeter.default;
49
+ }, [theme]);
50
+ const Path = _react.default.useMemo(() => {
51
+ var _theme$elements2;
52
+ return (theme === null || theme === void 0 || (_theme$elements2 = theme.elements) === null || _theme$elements2 === void 0 ? void 0 : _theme$elements2.Path) || _Path.default;
53
+ }, [theme]);
54
+ const {
55
+ tonal = true,
56
+ color = 'primary',
57
+ size = 'regular',
58
+ value: value_,
59
+ valueDefault,
60
+ onChange,
61
+ selecting: selecting_,
62
+ selectingDefault,
63
+ onChangeSelecting,
64
+ format = '12',
65
+ dayTime = 'am',
66
+ hour = true,
67
+ minute = true,
68
+ second = false,
69
+ autoNext,
70
+ min,
71
+ max,
72
+ validate,
73
+ readOnly,
74
+ disabled,
75
+ valid: valid_,
76
+ renderValue,
77
+ onDoneSelecting,
78
+ onClick: onClick_,
79
+ className,
80
+ BackgroundProps
81
+ } = props,
82
+ other = (0, _objectWithoutProperties2.default)(props, _excluded);
83
+ const {
84
+ classes
85
+ } = useStyle();
86
+ const [value, setValue] = _react.default.useState((valueDefault !== undefined ? valueDefault : value_) || new _date.OnesyDate());
87
+ const [selecting, setSelecting] = _react.default.useState((selectingDefault !== undefined ? selectingDefault : selecting_) || 'hour');
88
+ const [mouseDown, setMouseDown] = _react.default.useState(false);
89
+ const refs = {
90
+ root: _react.default.useRef(null),
91
+ middle: _react.default.useRef(null),
92
+ mouseDown: _react.default.useRef(null),
93
+ value: _react.default.useRef(null),
94
+ selecting: _react.default.useRef(null),
95
+ autoNext: _react.default.useRef(null),
96
+ hour: _react.default.useRef(null),
97
+ minute: _react.default.useRef(null),
98
+ second: _react.default.useRef(null),
99
+ format: _react.default.useRef(null),
100
+ dayTime: _react.default.useRef(null),
101
+ previous: _react.default.useRef(selecting)
102
+ };
103
+ refs.mouseDown.current = mouseDown;
104
+ refs.value.current = value;
105
+ refs.hour.current = hour;
106
+ refs.minute.current = minute;
107
+ refs.second.current = second;
108
+ refs.selecting.current = selecting;
109
+ refs.autoNext.current = autoNext;
110
+ refs.format.current = format;
111
+ refs.dayTime.current = dayTime;
112
+ const resolve = _react.default.useCallback((valueNew = refs.value.current, dayTimeValue = refs.dayTime.current) => {
113
+ // Resolve the range value
114
+ const valueHour = valueNew.hour;
115
+ if (format === '12') {
116
+ if (dayTimeValue === 'am' && valueHour > 12) return (0, _date.set)(valueHour - 12, 'hour', valueNew);
117
+ if (dayTimeValue === 'pm' && valueHour < 12) return (0, _date.set)(valueHour + 12, 'hour', valueNew);
118
+ }
119
+ return valueNew;
120
+ }, [value, dayTime, format]);
121
+ const inputToValue = _react.default.useCallback((valueNew, unit = refs.selecting.current) => {
122
+ let onesyDate = new _date.OnesyDate(refs.value.current);
123
+ let valueTime = valueNew;
124
+ if ((0, _utils.is)('string', valueTime) && valueTime.startsWith('0')) valueTime = valueTime.slice(1);
125
+ valueTime = +valueTime;
126
+ if (unit === 'hour') onesyDate = (0, _date.set)(format === '12' && dayTime === 'pm' ? valueTime + 12 : valueTime, 'hour', onesyDate);else onesyDate = (0, _date.set)(valueTime, unit, onesyDate);
127
+ return resolve(onesyDate);
128
+ }, [value, format, dayTime, hour, minute, second]);
129
+ const onMove = _react.default.useCallback((x_, y_) => {
130
+ const rectMiddle = refs.middle.current.getBoundingClientRect();
131
+ const x = x_ - rectMiddle.x;
132
+ const y = y_ - rectMiddle.y;
133
+ const radians = Math.atan2(x, y);
134
+ const degrees = radians * 180 / Math.PI;
135
+ const angle = 180 - degrees;
136
+
137
+ // Make array of values
138
+ // for hours, minutes and seconds
139
+ // with +- 50% around the value
140
+
141
+ // Find item in that array that this angle fits within
142
+ let valuesAll = [];
143
+ if (refs.selecting.current === 'hour') {
144
+ const part = 360 / 12;
145
+ valuesAll = Array.from({
146
+ length: 12
147
+ }).map((item, index_) => [part * index_ - part / 2, part * index_ + part / 2]);
148
+ let index = valuesAll.findIndex(item => angle >= item[0] && angle <= item[1]);
149
+ if (index === -1 || index === 0) index = refs.format.current === '24' ? 0 : 12;
150
+ if (refs.format.current === '24') {
151
+ let within = false;
152
+ const labelElements = refs.root.current.querySelectorAll('.onesy-RoundMeter-labels');
153
+ const elements = {
154
+ outer: labelElements[0],
155
+ inner: labelElements[1]
190
156
  };
191
- const rootDocument = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
192
- rootDocument.addEventListener('mouseup', onMouseUp);
193
- rootDocument.addEventListener('mousemove', onMouseMove);
194
- rootDocument.addEventListener('touchend', onMouseUp);
195
- rootDocument.addEventListener('touchmove', onTouchMove, { passive: true });
196
- return () => {
197
- rootDocument.removeEventListener('mousemove', onMouseMove);
198
- rootDocument.removeEventListener('mouseup', onMouseUp);
199
- rootDocument.removeEventListener('touchmove', onTouchMove);
200
- rootDocument.removeEventListener('touchend', onMouseUp);
157
+ const rects = {
158
+ outer: elements.outer.getBoundingClientRect(),
159
+ inner: elements.inner.getBoundingClientRect()
201
160
  };
202
- }, []);
203
- react_1.default.useEffect(() => {
204
- if (value_ !== undefined && value_ !== value)
205
- setValue(value_);
206
- }, [value_]);
207
- const updateTransitions = react_1.default.useCallback(() => {
208
- // Add momentary transition to the OnesyRoundMeter-children > *
209
- // if selecting value updates
210
- if (refs.root.current) {
211
- let elementChildren = refs.root.current.getElementsByClassName('onesy-RoundMeter-children')[0];
212
- let elementLabels = refs.root.current.getElementsByClassName('onesy-RoundMeter-labels')[0];
213
- if (elementChildren && elementLabels) {
214
- elementChildren = Array.from(elementChildren.children);
215
- elementLabels = Array.from(elementLabels.children);
216
- elementChildren.forEach((item) => item.style.transition = 'transform .3s');
217
- elementLabels.forEach((item) => item.style.transition = 'fill .3s');
218
- setTimeout(() => {
219
- [...elementChildren, ...elementLabels].forEach((item) => item.style.removeProperty('transition'));
220
- }, 300);
221
- }
222
- }
223
- }, []);
224
- react_1.default.useEffect(() => {
225
- if (selecting_ !== undefined && selecting_ !== selecting) {
226
- setSelecting(selecting_);
227
- refs.previous.current = selecting_;
228
- updateTransitions();
229
- }
230
- }, [selecting_]);
231
- react_1.default.useEffect(() => {
232
- if (selecting !== refs.previous.current) {
233
- refs.previous.current = selecting;
234
- updateTransitions();
235
- }
236
- }, [selecting]);
237
- const onUpdate = react_1.default.useCallback((valueNew) => {
238
- const newValue = (valueNew === null || valueNew === void 0 ? void 0 : valueNew.milliseconds) || null;
239
- const previousValue = refs.value.current.milliseconds;
240
- if (newValue === previousValue)
241
- return;
242
- if (!(readOnly || disabled)) {
243
- // Inner controlled value
244
- if (!props.hasOwnProperty('value'))
245
- setValue(valueNew);
246
- if ((0, utils_1.is)('function', onChange))
247
- onChange(valueNew);
248
- }
249
- }, [readOnly, disabled]);
250
- const onUpdateSelecting = react_1.default.useCallback((valueNew) => {
251
- if (!(readOnly || disabled)) {
252
- // Inner controlled selecting
253
- if (!props.hasOwnProperty('selecting'))
254
- setSelecting(valueNew);
255
- if ((0, utils_1.is)('function', onChangeSelecting))
256
- onChangeSelecting(valueNew);
257
- }
258
- }, [readOnly, disabled]);
259
- const valid = react_1.default.useCallback((...args) => {
260
- if ((0, utils_1.is)('function', valid_))
261
- return valid_(...args);
262
- const onesyDate = args[0];
263
- if (min || max || validate) {
264
- let response = true;
265
- if ((0, utils_1.is)('function', validate))
266
- response = validate(onesyDate);
267
- if (min !== undefined)
268
- response = response && (0, date_1.is)(onesyDate, 'after or same', min);
269
- if (max !== undefined)
270
- response = response && (0, date_1.is)(onesyDate, 'before or same', max);
271
- return response;
161
+ const part_ = Math.abs(Math.abs(rects.outer.x) - Math.abs(rects.inner.x));
162
+ const valueMoved = Math.sqrt(x ** 2 + y ** 2);
163
+ const middleInner = Math.abs(Math.abs(rectMiddle.x) - Math.abs(rects.inner.x));
164
+ if (valueMoved <= middleInner + part_ / 2) within = true;
165
+ if (within) index += 12;
166
+ index = (0, _utils.clamp)(index, 0, 23);
167
+ }
168
+
169
+ // Validate
170
+ if (!valid(inputToValue(index, 'hour'), 'hour')) return;
171
+
172
+ // Update values
173
+ onUpdate(inputToValue(index, 'hour'));
174
+ } else if (['minute', 'second'].includes(refs.selecting.current)) {
175
+ const part = 360 / 60;
176
+ valuesAll = Array.from({
177
+ length: 60
178
+ }).map((item, index_) => [part * index_ - part / 2, part * index_ + part / 2]);
179
+ let index = valuesAll.findIndex(item => angle >= item[0] && angle <= item[1]);
180
+ if (index === -1 || index === 0) index = 0;
181
+
182
+ // Validate
183
+ if (!valid(inputToValue(index), refs.selecting.current)) return;
184
+
185
+ // Update values
186
+ onUpdate(inputToValue(index));
187
+ }
188
+ }, []);
189
+ _react.default.useEffect(() => {
190
+ var _refs$root$current;
191
+ const onMouseUp = () => {
192
+ if (refs.mouseDown.current) {
193
+ setMouseDown(false);
194
+
195
+ // Auto next
196
+ if (refs.autoNext.current) {
197
+ if (['hour', 'minute', 'second'].includes(refs.selecting.current)) {
198
+ let valueSelecting;
199
+ if (refs.selecting.current === 'second') valueSelecting = 'hour';
200
+ if (refs.selecting.current === 'minute') valueSelecting = refs.second.current ? 'second' : 'hour';
201
+ if (refs.selecting.current === 'hour' && refs.minute.current) valueSelecting = 'minute';
202
+ onUpdateSelecting(valueSelecting);
203
+ }
272
204
  }
273
- return true;
274
- }, [valid_, min, max, validate]);
275
- const onMouseDown = react_1.default.useCallback(() => {
276
- setMouseDown(true);
277
- }, []);
278
- const onClick = react_1.default.useCallback((event) => {
279
- const { clientX: x, clientY: y } = event;
280
- onMove(x, y);
281
- if ((0, utils_1.is)('function', onClick_))
282
- onClick_(event);
283
- }, [onClick_]);
284
- const palette = react_1.default.useMemo(() => {
285
- var _a;
286
- if (['inherit', 'default'].includes(color))
287
- return theme.methods.color(theme.palette.text.default.primary);
288
- if (color === 'themed')
289
- return theme.methods.color(theme.palette.text.default.secondary);
290
- if (color === 'inverted')
291
- return theme.methods.color(theme.palette.background.default.primary);
292
- return theme.methods.color(((_a = theme.palette.color[color]) === null || _a === void 0 ? void 0 : _a.main) || color);
293
- }, [color, theme]);
294
- let valueClock = '';
295
- let valueClock24 = 0;
296
- let valuePosition;
297
- let labels = [];
298
- let lowerPointer = false;
299
- const colors = {
300
- regular: 'currentColor',
301
- inverse: theme.methods.palette.color.value(undefined, 90, true, palette)
205
+ if ((0, _utils.is)('function', onDoneSelecting)) onDoneSelecting(refs.value.current, refs.selecting.current);
206
+ }
302
207
  };
303
- if (selecting === 'hour') {
304
- // Value
305
- valueClock = valueClock24 = value === null || value === void 0 ? void 0 : value.hour;
306
- if (format === '24' && valueClock > 11)
307
- lowerPointer = true;
308
- if (valueClock > 12)
309
- valueClock -= 12;
310
- valuePosition = (100 / 12) * valueClock;
311
- // Labels
312
- if (format === '12')
313
- labels = (0, utils_1.unique)([
314
- // 12 hours
315
- ...(Array.from({ length: 12 }).map((item, index) => ({
316
- value: index === 0 ? 12 : index,
317
- padding: theme.methods.space.value(2.5, 'px'),
318
- style: {
319
- fontSize: 14,
320
- opacity: valid(inputToValue(index === 0 ? 12 : index, 'hour'), 'hour') ? 1 : 0.27,
321
- fill: ((valueClock === 12 && index === 0) || (valueClock === index)) ? colors.inverse : colors.regular
322
- },
323
- position: index * (100 / 12)
324
- })))
325
- ], 'position');
326
- else {
327
- labels = [
328
- (0, utils_1.unique)([
329
- // 0-11 hours
330
- ...(Array.from({ length: 12 }).map((item, index) => ({
331
- value: index === 0 ? '00' : index,
332
- padding: theme.methods.space.value(2.5, 'px'),
333
- style: {
334
- fontSize: 14,
335
- opacity: valid(inputToValue(index === 0 ? 0 : index, 'hour'), 'hour') ? 1 : 0.27,
336
- fill: valueClock24 === index ? colors.inverse : colors.regular
337
- },
338
- position: index * (100 / 12)
339
- })))
340
- ], 'position'),
341
- (0, utils_1.unique)([
342
- // 12-23 hours
343
- ...(Array.from({ length: 12 }).map((item, index) => ({
344
- value: 12 + index,
345
- padding: theme.methods.space.value(6, 'px'),
346
- style: {
347
- fontSize: 14,
348
- opacity: valid(inputToValue(12 + index, 'hour'), 'hour') ? 1 : 0.27,
349
- fill: valueClock24 === (12 + index) ? colors.inverse : colors.regular
350
- },
351
- position: index * (100 / 12)
352
- })))
353
- ], 'position')
354
- ];
355
- }
208
+
209
+ // Mouse move
210
+ const onMouseMove = event => {
211
+ if (refs.mouseDown.current) {
212
+ const {
213
+ clientY,
214
+ clientX
215
+ } = event;
216
+ onMove(clientX, clientY);
217
+ }
218
+ };
219
+
220
+ // Touch move
221
+ const onTouchMove = event => {
222
+ if (refs.mouseDown.current) {
223
+ const {
224
+ clientY,
225
+ clientX
226
+ } = event.touches[0];
227
+ onMove(clientX, clientY);
228
+ }
229
+ };
230
+ const rootDocument = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current = refs.root.current) === null || _refs$root$current === void 0 ? void 0 : _refs$root$current.ownerDocument) || window.document : undefined;
231
+ rootDocument.addEventListener('mouseup', onMouseUp);
232
+ rootDocument.addEventListener('mousemove', onMouseMove);
233
+ rootDocument.addEventListener('touchend', onMouseUp);
234
+ rootDocument.addEventListener('touchmove', onTouchMove, {
235
+ passive: true
236
+ });
237
+ return () => {
238
+ rootDocument.removeEventListener('mousemove', onMouseMove);
239
+ rootDocument.removeEventListener('mouseup', onMouseUp);
240
+ rootDocument.removeEventListener('touchmove', onTouchMove);
241
+ rootDocument.removeEventListener('touchend', onMouseUp);
242
+ };
243
+ }, []);
244
+ _react.default.useEffect(() => {
245
+ if (value_ !== undefined && value_ !== value) setValue(value_);
246
+ }, [value_]);
247
+ const updateTransitions = _react.default.useCallback(() => {
248
+ // Add momentary transition to the OnesyRoundMeter-children > *
249
+ // if selecting value updates
250
+ if (refs.root.current) {
251
+ let elementChildren = refs.root.current.getElementsByClassName('onesy-RoundMeter-children')[0];
252
+ let elementLabels = refs.root.current.getElementsByClassName('onesy-RoundMeter-labels')[0];
253
+ if (elementChildren && elementLabels) {
254
+ elementChildren = Array.from(elementChildren.children);
255
+ elementLabels = Array.from(elementLabels.children);
256
+ elementChildren.forEach(item => item.style.transition = 'transform .3s');
257
+ elementLabels.forEach(item => item.style.transition = 'fill .3s');
258
+ setTimeout(() => {
259
+ [...elementChildren, ...elementLabels].forEach(item => item.style.removeProperty('transition'));
260
+ }, 300);
261
+ }
262
+ }
263
+ }, []);
264
+ _react.default.useEffect(() => {
265
+ if (selecting_ !== undefined && selecting_ !== selecting) {
266
+ setSelecting(selecting_);
267
+ refs.previous.current = selecting_;
268
+ updateTransitions();
269
+ }
270
+ }, [selecting_]);
271
+ _react.default.useEffect(() => {
272
+ if (selecting !== refs.previous.current) {
273
+ refs.previous.current = selecting;
274
+ updateTransitions();
275
+ }
276
+ }, [selecting]);
277
+ const onUpdate = _react.default.useCallback(valueNew => {
278
+ const newValue = (valueNew === null || valueNew === void 0 ? void 0 : valueNew.milliseconds) || null;
279
+ const previousValue = refs.value.current.milliseconds;
280
+ if (newValue === previousValue) return;
281
+ if (!(readOnly || disabled)) {
282
+ // Inner controlled value
283
+ if (!props.hasOwnProperty('value')) setValue(valueNew);
284
+ if ((0, _utils.is)('function', onChange)) onChange(valueNew);
285
+ }
286
+ }, [readOnly, disabled]);
287
+ const onUpdateSelecting = _react.default.useCallback(valueNew => {
288
+ if (!(readOnly || disabled)) {
289
+ // Inner controlled selecting
290
+ if (!props.hasOwnProperty('selecting')) setSelecting(valueNew);
291
+ if ((0, _utils.is)('function', onChangeSelecting)) onChangeSelecting(valueNew);
292
+ }
293
+ }, [readOnly, disabled]);
294
+ const valid = _react.default.useCallback((...args) => {
295
+ if ((0, _utils.is)('function', valid_)) return valid_(...args);
296
+ const onesyDate = args[0];
297
+ if (min || max || validate) {
298
+ let response = true;
299
+ if ((0, _utils.is)('function', validate)) response = validate(onesyDate);
300
+ if (min !== undefined) response = response && (0, _date.is)(onesyDate, 'after or same', min);
301
+ if (max !== undefined) response = response && (0, _date.is)(onesyDate, 'before or same', max);
302
+ return response;
303
+ }
304
+ return true;
305
+ }, [valid_, min, max, validate]);
306
+ const onMouseDown = _react.default.useCallback(() => {
307
+ setMouseDown(true);
308
+ }, []);
309
+ const onClick = _react.default.useCallback(event => {
310
+ const {
311
+ clientX: x,
312
+ clientY: y
313
+ } = event;
314
+ onMove(x, y);
315
+ if ((0, _utils.is)('function', onClick_)) onClick_(event);
316
+ }, [onClick_]);
317
+ const palette = _react.default.useMemo(() => {
318
+ var _theme$palette$color$;
319
+ if (['inherit', 'default'].includes(color)) return theme.methods.color(theme.palette.text.default.primary);
320
+ if (color === 'themed') return theme.methods.color(theme.palette.text.default.secondary);
321
+ if (color === 'inverted') return theme.methods.color(theme.palette.background.default.primary);
322
+ return theme.methods.color(((_theme$palette$color$ = theme.palette.color[color]) === null || _theme$palette$color$ === void 0 ? void 0 : _theme$palette$color$.main) || color);
323
+ }, [color, theme]);
324
+ let valueClock = '';
325
+ let valueClock24 = 0;
326
+ let valuePosition;
327
+ let labels = [];
328
+ let lowerPointer = false;
329
+ const colors = {
330
+ regular: 'currentColor',
331
+ inverse: theme.methods.palette.color.value(undefined, 90, true, palette)
332
+ };
333
+ if (selecting === 'hour') {
334
+ // Value
335
+ valueClock = valueClock24 = value === null || value === void 0 ? void 0 : value.hour;
336
+ if (format === '24' && valueClock > 11) lowerPointer = true;
337
+ if (valueClock > 12) valueClock -= 12;
338
+ valuePosition = 100 / 12 * valueClock;
339
+
340
+ // Labels
341
+ if (format === '12') labels = (0, _utils.unique)([
342
+ // 12 hours
343
+ ...Array.from({
344
+ length: 12
345
+ }).map((item, index) => ({
346
+ value: index === 0 ? 12 : index,
347
+ padding: theme.methods.space.value(2.5, 'px'),
348
+ style: {
349
+ fontSize: 14,
350
+ opacity: valid(inputToValue(index === 0 ? 12 : index, 'hour'), 'hour') ? 1 : 0.27,
351
+ fill: valueClock === 12 && index === 0 || valueClock === index ? colors.inverse : colors.regular
352
+ },
353
+ position: index * (100 / 12)
354
+ }))], 'position');else {
355
+ labels = [(0, _utils.unique)([
356
+ // 0-11 hours
357
+ ...Array.from({
358
+ length: 12
359
+ }).map((item, index) => ({
360
+ value: index === 0 ? '00' : index,
361
+ padding: theme.methods.space.value(2.5, 'px'),
362
+ style: {
363
+ fontSize: 14,
364
+ opacity: valid(inputToValue(index === 0 ? 0 : index, 'hour'), 'hour') ? 1 : 0.27,
365
+ fill: valueClock24 === index ? colors.inverse : colors.regular
366
+ },
367
+ position: index * (100 / 12)
368
+ }))], 'position'), (0, _utils.unique)([
369
+ // 12-23 hours
370
+ ...Array.from({
371
+ length: 12
372
+ }).map((item, index) => ({
373
+ value: 12 + index,
374
+ padding: theme.methods.space.value(6, 'px'),
375
+ style: {
376
+ fontSize: 14,
377
+ opacity: valid(inputToValue(12 + index, 'hour'), 'hour') ? 1 : 0.27,
378
+ fill: valueClock24 === 12 + index ? colors.inverse : colors.regular
379
+ },
380
+ position: index * (100 / 12)
381
+ }))], 'position')];
382
+ }
383
+ }
384
+ if (selecting === 'minute') {
385
+ // Value
386
+ valueClock = value === null || value === void 0 ? void 0 : value.minute;
387
+ valuePosition = 100 / 60 * valueClock;
388
+
389
+ // Labels
390
+ labels = (0, _utils.unique)([
391
+ // 59 minutes
392
+ ...Array.from({
393
+ length: 12
394
+ }).map((item, index) => ({
395
+ value: index === 0 ? '00' : (0, _utils.getLeadingZerosNumber)(60 / 12 * index),
396
+ padding: theme.methods.space.value(2.5, 'px'),
397
+ style: {
398
+ fontSize: 14,
399
+ opacity: valid(inputToValue(index === 0 ? 0 : 60 / 12 * index), 'minute') ? 1 : 0.27,
400
+ fill: valueClock === 60 / 12 * index ? colors.inverse : colors.regular
401
+ },
402
+ position: index * (100 / 12)
403
+ }))], 'position');
404
+ }
405
+ if (selecting === 'second') {
406
+ // Value
407
+ valueClock = value === null || value === void 0 ? void 0 : value.second;
408
+ valuePosition = 100 / 60 * valueClock;
409
+
410
+ // Labels
411
+ labels = (0, _utils.unique)([
412
+ // 59 seconds
413
+ ...Array.from({
414
+ length: 12
415
+ }).map((item, index) => ({
416
+ value: index === 0 ? '00' : (0, _utils.getLeadingZerosNumber)(60 / 12 * index),
417
+ padding: theme.methods.space.value(2.5, 'px'),
418
+ style: {
419
+ fontSize: 14,
420
+ opacity: valid(inputToValue(index === 0 ? 0 : 60 / 12 * index, 'second'), 'second') ? 1 : 0.27,
421
+ fill: valueClock === 60 / 12 * index ? colors.inverse : colors.regular
422
+ },
423
+ position: index * (100 / 12)
424
+ }))], 'position');
425
+ }
426
+ return /*#__PURE__*/_react.default.createElement(RoundMeter, (0, _extends2.default)({
427
+ ref: item => {
428
+ if (ref) {
429
+ if ((0, _utils.is)('function', ref)) ref(item);else ref.current = item;
430
+ }
431
+ refs.root.current = item;
432
+ },
433
+ tonal: tonal,
434
+ color: color,
435
+ size: size,
436
+ labels: labels,
437
+ arcsVisible: false,
438
+ childrenPosition: "pre-marks",
439
+ onClick: onClick,
440
+ background: true,
441
+ BackgroundProps: {
442
+ fill: theme.methods.palette.color.value(undefined, 70, true, palette),
443
+ onMouseDown: onMouseDown,
444
+ onTouchStart: onMouseDown
445
+ },
446
+ renderLabel: (0, _utils.is)('function', renderValue) ? (x, y, valueItem, otherProps) => renderValue(value, selecting, x, y, valueItem, otherProps) : undefined
447
+ }, other, {
448
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('Clock', theme) && ['onesy-Clock-round-meter'], className, classes.root, mouseDown && classes.mouseDown])
449
+ }), /*#__PURE__*/_react.default.createElement(Path, {
450
+ ref: refs.middle,
451
+ Component: "circle",
452
+ r: "4",
453
+ cx: "120",
454
+ cy: "120",
455
+ style: {
456
+ stroke: 'none',
457
+ fill: palette[40]
356
458
  }
357
- if (selecting === 'minute') {
358
- // Value
359
- valueClock = value === null || value === void 0 ? void 0 : value.minute;
360
- valuePosition = (100 / 60) * valueClock;
361
- // Labels
362
- labels = (0, utils_1.unique)([
363
- // 59 minutes
364
- ...(Array.from({ length: 12 }).map((item, index) => ({
365
- value: index === 0 ? '00' : (0, utils_1.getLeadingZerosNumber)((60 / 12) * index),
366
- padding: theme.methods.space.value(2.5, 'px'),
367
- style: {
368
- fontSize: 14,
369
- opacity: valid(inputToValue(index === 0 ? 0 : (60 / 12) * index), 'minute') ? 1 : 0.27,
370
- fill: (valueClock === ((60 / 12) * index)) ? colors.inverse : colors.regular
371
- },
372
- position: index * (100 / 12)
373
- })))
374
- ], 'position');
459
+ }), /*#__PURE__*/_react.default.createElement(Path, {
460
+ d: "M 120 119 L 195 119 A 1 1 0 0 1 195 121 L 120 121 A 1 1 0 0 1 121 119",
461
+ value: valuePosition,
462
+ style: {
463
+ transformOrigin: '50% 50%',
464
+ fill: palette[40],
465
+ stroke: 'none'
375
466
  }
376
- if (selecting === 'second') {
377
- // Value
378
- valueClock = value === null || value === void 0 ? void 0 : value.second;
379
- valuePosition = (100 / 60) * valueClock;
380
- // Labels
381
- labels = (0, utils_1.unique)([
382
- // 59 seconds
383
- ...(Array.from({ length: 12 }).map((item, index) => ({
384
- value: index === 0 ? '00' : (0, utils_1.getLeadingZerosNumber)((60 / 12) * index),
385
- padding: theme.methods.space.value(2.5, 'px'),
386
- style: {
387
- fontSize: 14,
388
- opacity: valid(inputToValue(index === 0 ? 0 : (60 / 12) * index, 'second'), 'second') ? 1 : 0.27,
389
- fill: (valueClock === ((60 / 12) * index)) ? colors.inverse : colors.regular
390
- },
391
- position: index * (100 / 12)
392
- })))
393
- ], 'position');
467
+ }), /*#__PURE__*/_react.default.createElement(Path, {
468
+ Component: "circle",
469
+ r: "24",
470
+ cx: lowerPointer ? 182 : 212.5,
471
+ cy: "120",
472
+ value: valuePosition,
473
+ style: {
474
+ transformOrigin: 'center',
475
+ fill: palette[40],
476
+ stroke: 'none'
394
477
  }
395
- return ((0, jsx_runtime_1.jsxs)(RoundMeter, Object.assign({ ref: (item) => {
396
- if (ref) {
397
- if ((0, utils_1.is)('function', ref))
398
- ref(item);
399
- else
400
- ref.current = item;
401
- }
402
- refs.root.current = item;
403
- }, tonal: tonal, color: color, size: size, labels: labels, arcsVisible: false, childrenPosition: 'pre-marks', onClick: onClick, background: true, BackgroundProps: {
404
- fill: theme.methods.palette.color.value(undefined, 70, true, palette),
405
- onMouseDown: onMouseDown,
406
- onTouchStart: onMouseDown
407
- }, renderLabel: (0, utils_1.is)('function', renderValue) ? (x, y, valueItem, otherProps) => renderValue(value, selecting, x, y, valueItem, otherProps) : undefined }, other, { className: (0, style_react_1.classNames)([
408
- (0, utils_2.staticClassName)('Clock', theme) && [
409
- 'onesy-Clock-round-meter'
410
- ],
411
- className,
412
- classes.root,
413
- mouseDown && classes.mouseDown
414
- ]) }, { children: [(0, jsx_runtime_1.jsx)(Path, { ref: refs.middle, Component: 'circle', r: '4', cx: '120', cy: '120', style: {
415
- stroke: 'none',
416
- fill: palette[40]
417
- } }), (0, jsx_runtime_1.jsx)(Path, { d: 'M 120 119 L 195 119 A 1 1 0 0 1 195 121 L 120 121 A 1 1 0 0 1 121 119', value: valuePosition, style: {
418
- transformOrigin: '50% 50%',
419
- fill: palette[40],
420
- stroke: 'none'
421
- } }), (0, jsx_runtime_1.jsx)(Path, { Component: 'circle', r: '24', cx: lowerPointer ? 182 : 212.5, cy: '120', value: valuePosition, style: {
422
- transformOrigin: 'center',
423
- fill: palette[40],
424
- stroke: 'none'
425
- } })] })));
478
+ }));
426
479
  });
427
480
  Clock.displayName = 'onesy-Clock';
428
- exports.default = Clock;
481
+ var _default = exports.default = Clock;