@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,671 +1,881 @@
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 style_react_1 = require("@onesy/style-react");
21
- const date_1 = require("@onesy/date");
22
- const IconMaterialPlayArrowW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialPlayArrowW100"));
23
- const IconMaterialPauseW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialPauseW100"));
24
- const IconMaterialForwardMediaW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialForwardMediaW100"));
25
- const IconMaterialVolumeDownAltW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialVolumeDownAltW100"));
26
- const IconMaterialVolumeOffW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialVolumeOffW100"));
27
- const IconMaterialFullscreenW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFullscreenW100"));
28
- const IconMaterialFullscreenExitW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFullscreenExitW100"));
29
- const IconMaterialSettingsW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSettingsW100"));
30
- const IconMaterialTuneW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialTuneW100"));
31
- const IconMaterialSlowMotionVideoW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialSlowMotionVideoW100"));
32
- const IconMaterialPictureInPictureAltW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialPictureInPictureAltW100"));
33
- const IconMaterialArrowBackIosW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialArrowBackIosW100"));
34
- const Line_1 = __importDefault(require("../Line"));
35
- const Surface_1 = __importDefault(require("../Surface"));
36
- const Slider_1 = __importDefault(require("../Slider"));
37
- const IconButton_1 = __importDefault(require("../IconButton"));
38
- const Expand_1 = __importDefault(require("../Expand"));
39
- const Type_1 = __importDefault(require("../Type"));
40
- const Menu_1 = __importDefault(require("../Menu"));
41
- const ListItem_1 = __importDefault(require("../ListItem"));
42
- const utils_2 = require("../utils");
43
- const useStyle = (0, style_react_1.style)(theme => ({
44
- root: {
45
- position: 'relative'
46
- },
47
- wrapper: {
48
- position: 'relative',
49
- borderRadius: 'inherit'
50
- },
51
- wrapperFullScreen: {
52
- height: '100vh',
53
- width: '100vw'
54
- },
55
- video: {
56
- background: 'black',
57
- flex: '1 1 auto',
58
- borderRadius: 'inherit',
59
- cursor: 'pointer',
60
- userSelect: 'none'
61
- },
62
- size_small: {
63
- borderRadius: theme.methods.shape.radius.value(0.5, 'px')
64
- },
65
- size_regular: {
66
- borderRadius: theme.methods.shape.radius.value(1.5, 'px')
67
- },
68
- size_large: {
69
- borderRadius: theme.methods.shape.radius.value(2, 'px')
70
- },
71
- fullScreen: {
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 _styleReact = require("@onesy/style-react");
14
+ var _date = require("@onesy/date");
15
+ var _IconMaterialPlayArrowW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialPlayArrowW100"));
16
+ var _IconMaterialPauseW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialPauseW100"));
17
+ var _IconMaterialForwardMediaW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialForwardMediaW100"));
18
+ var _IconMaterialVolumeDownAltW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialVolumeDownAltW100"));
19
+ var _IconMaterialVolumeOffW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialVolumeOffW100"));
20
+ var _IconMaterialFullscreenW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFullscreenW100"));
21
+ var _IconMaterialFullscreenExitW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFullscreenExitW100"));
22
+ var _IconMaterialSettingsW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialSettingsW100"));
23
+ var _IconMaterialTuneW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialTuneW100"));
24
+ var _IconMaterialSlowMotionVideoW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialSlowMotionVideoW100"));
25
+ var _IconMaterialPictureInPictureAltW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialPictureInPictureAltW100"));
26
+ var _IconMaterialArrowBackIosW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialArrowBackIosW100"));
27
+ var _Line = _interopRequireDefault(require("../Line"));
28
+ var _Surface = _interopRequireDefault(require("../Surface"));
29
+ var _Slider = _interopRequireDefault(require("../Slider"));
30
+ var _IconButton = _interopRequireDefault(require("../IconButton"));
31
+ var _Expand = _interopRequireDefault(require("../Expand"));
32
+ var _Type = _interopRequireDefault(require("../Type"));
33
+ var _Menu = _interopRequireDefault(require("../Menu"));
34
+ var _ListItem = _interopRequireDefault(require("../ListItem"));
35
+ var _utils2 = require("../utils");
36
+ const _excluded = ["name", "src", "meta", "versions", "thumbnails", "mime", "duration", "tonal", "color", "size", "start", "end", "startControls", "endControls", "startButtons", "endButtons", "startButtonsEnd", "endButtonsEnd", "forward", "backward", "settings", "quality", "playbackSpeed", "pictureInPicture", "fullScreen", "startMediaSessionOnPlay", "disabled", "IconPlay", "IconPause", "IconForward", "IconBackward", "IconVolume", "IconVolumeMuted", "IconBack", "IconSettings", "IconQuality", "IconPlaybackSpeed", "IconPictureInPicture", "IconFullScreen", "IconFullScreenExit", "PlayButtonProps", "ForwardButtonProps", "BackwardButtonProps", "VolumeButtonProps", "IconButtonProps", "TypeProps", "TimelineProps", "VolumeProps", "SliderProps", "SettingsButtonProps", "SettingsMenuProps", "QualityButtonProps", "PictureInPictureButtonProps", "FullScreenButtonProps", "className", "Component"];
37
+ 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; }
38
+ 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; }
39
+ const useStyle = (0, _styleReact.style)(theme => ({
40
+ root: {
41
+ position: 'relative'
42
+ },
43
+ wrapper: {
44
+ position: 'relative',
45
+ borderRadius: 'inherit'
46
+ },
47
+ wrapperFullScreen: {
48
+ height: '100vh',
49
+ width: '100vw'
50
+ },
51
+ video: {
52
+ background: 'black',
53
+ flex: '1 1 auto',
54
+ borderRadius: 'inherit',
55
+ cursor: 'pointer',
56
+ userSelect: 'none'
57
+ },
58
+ size_small: {
59
+ borderRadius: theme.methods.shape.radius.value(0.5, 'px')
60
+ },
61
+ size_regular: {
62
+ borderRadius: theme.methods.shape.radius.value(1.5, 'px')
63
+ },
64
+ size_large: {
65
+ borderRadius: theme.methods.shape.radius.value(2, 'px')
66
+ },
67
+ fullScreen: {
68
+ borderRadius: '0px'
69
+ },
70
+ controls: {
71
+ position: 'absolute',
72
+ bottom: '0px',
73
+ left: '0px',
74
+ width: '100%',
75
+ borderRadius: 'inherit',
76
+ transition: theme.methods.transitions.make('opacity'),
77
+ '&.onesy-Surface-root': {
78
+ background: 'linear-gradient(0deg, rgb(0, 0, 0, 0.24), transparent)'
79
+ }
80
+ },
81
+ controlsHiddden: {
82
+ opacity: 0,
83
+ pointerEvents: 'none'
84
+ },
85
+ controlsFullScreen: {},
86
+ controls_size_small: {
87
+ padding: `${theme.methods.space.value(0.75, 'px')} ${theme.methods.space.value(1, 'px')} ${theme.methods.space.value(0.5, 'px')}`
88
+ },
89
+ controls_size_regular: {
90
+ padding: `${theme.methods.space.value(1.5, 'px')} ${theme.methods.space.value(1.5, 'px')} ${theme.methods.space.value(1, 'px')}`
91
+ },
92
+ controls_size_large: {
93
+ padding: `${theme.methods.space.value(2.25, 'px')} ${theme.methods.space.value(2, 'px')} ${theme.methods.space.value(1.5, 'px')}`
94
+ },
95
+ wrapperTimeline: {
96
+ padding: `0 ${theme.methods.space.value(1.5, 'px')}`
97
+ },
98
+ timeline: {
99
+ '&.onesy-Slider-root': {
100
+ height: '20px !important',
101
+ width: '100% !important',
102
+ margin: 'unset !important',
103
+ maxWidth: 'unset !important'
104
+ }
105
+ },
106
+ volume: {
107
+ flex: '1 1 auto',
108
+ '&.onesy-Slider-root': {
109
+ height: '24px !important',
110
+ width: '100vw !important',
111
+ maxWidth: '54px !important',
112
+ margin: 'unset !important',
113
+ borderRadius: '0px',
114
+ '& .onesy-Slider-rail': {
72
115
  borderRadius: '0px'
116
+ },
117
+ '& .onesy-Slider-track': {
118
+ borderRadius: '0px'
119
+ }
120
+ }
121
+ },
122
+ volumeExpand: {
123
+ display: 'flex',
124
+ alignItems: 'center',
125
+ height: '100%'
126
+ },
127
+ time: {
128
+ cursor: 'default',
129
+ userSelect: 'none'
130
+ },
131
+ menuSettings: {
132
+ maxHeight: 194,
133
+ overflowY: 'auto'
134
+ },
135
+ endControls: {
136
+ position: 'relative'
137
+ },
138
+ placeholder: {},
139
+ bottomControls: {
140
+ scrollbarWidth: 'none',
141
+ overflow: 'auto hidden',
142
+ '& > *': {
143
+ flex: '0 0 auto'
73
144
  },
74
- controls: {
75
- position: 'absolute',
76
- bottom: '0px',
77
- left: '0px',
78
- width: '100%',
79
- borderRadius: 'inherit',
80
- transition: theme.methods.transitions.make('opacity'),
81
- '&.onesy-Surface-root': {
82
- background: 'linear-gradient(0deg, rgb(0, 0, 0, 0.24), transparent)'
83
- }
84
- },
85
- controlsHiddden: {
86
- opacity: 0,
87
- pointerEvents: 'none'
88
- },
89
- controlsFullScreen: {},
90
- controls_size_small: {
91
- padding: `${theme.methods.space.value(0.75, 'px')} ${theme.methods.space.value(1, 'px')} ${theme.methods.space.value(0.5, 'px')}`
92
- },
93
- controls_size_regular: {
94
- padding: `${theme.methods.space.value(1.5, 'px')} ${theme.methods.space.value(1.5, 'px')} ${theme.methods.space.value(1, 'px')}`
95
- },
96
- controls_size_large: {
97
- padding: `${theme.methods.space.value(2.25, 'px')} ${theme.methods.space.value(2, 'px')} ${theme.methods.space.value(1.5, 'px')}`
98
- },
99
- wrapperTimeline: {
100
- padding: `0 ${theme.methods.space.value(1.5, 'px')}`
101
- },
102
- timeline: {
103
- '&.onesy-Slider-root': {
104
- height: '20px !important',
105
- width: '100% !important',
106
- margin: 'unset !important',
107
- maxWidth: 'unset !important'
108
- }
109
- },
110
- volume: {
111
- flex: '1 1 auto',
112
- '&.onesy-Slider-root': {
113
- height: '24px !important',
114
- width: '100vw !important',
115
- maxWidth: '54px !important',
116
- margin: 'unset !important',
117
- borderRadius: '0px',
118
- '& .onesy-Slider-rail': {
119
- borderRadius: '0px'
120
- },
121
- '& .onesy-Slider-track': {
122
- borderRadius: '0px'
123
- }
124
- }
125
- },
126
- volumeExpand: {
127
- display: 'flex',
128
- alignItems: 'center',
129
- height: '100%'
130
- },
131
- time: {
132
- cursor: 'default',
133
- userSelect: 'none'
134
- },
135
- menuSettings: {
136
- maxHeight: 194,
137
- overflowY: 'auto'
138
- },
139
- endControls: {
140
- position: 'relative'
141
- },
142
- placeholder: {},
143
- bottomControls: {
144
- scrollbarWidth: 'none',
145
- overflow: 'auto hidden',
146
- '& > *': {
147
- flex: '0 0 auto'
148
- },
149
- '&::-webkit-scrollbar': {
150
- display: 'none'
151
- }
152
- },
153
- menuSettingsFullScreen: {
154
- '&.onesy-Modal-root': {
155
- position: 'fixed !important',
156
- transform: 'none !important',
157
- left: 'unset !important',
158
- right: '12px !important',
159
- bottom: '47.8906px !important'
160
- }
145
+ '&::-webkit-scrollbar': {
146
+ display: 'none'
161
147
  }
162
- }), { name: 'onesy-VideoPlayer' });
163
- const VideoPlayer = react_1.default.forwardRef((props_, ref) => {
164
- var _a, _b, _c;
165
- const theme = (0, style_react_1.useOnesyTheme)();
166
- const l = theme.l;
167
- 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.onesyVideoPlayer) === null || _g === void 0 ? void 0 : _g.props) === null || _h === void 0 ? void 0 : _h.default), props_)); }, [props_]);
168
- 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]);
169
- 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]);
170
- const Slider = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Slider) || Slider_1.default; }, [theme]);
171
- 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]);
172
- const Expand = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Expand) || Expand_1.default; }, [theme]);
173
- 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]);
174
- const Menu = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Menu) || Menu_1.default; }, [theme]);
175
- const ListItem = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ListItem) || ListItem_1.default; }, [theme]);
176
- const { name, src, meta, versions, thumbnails, mime, duration: duration_, tonal = true, color, size = 'regular', start, end, startControls, endControls, startButtons, endButtons, startButtonsEnd, endButtonsEnd, forward, backward, settings = true, quality: quality_ = true, playbackSpeed: playbackSpeed_ = true, pictureInPicture: pictureInPicture_ = true, fullScreen: fullScreen_ = true, startMediaSessionOnPlay, disabled, IconPlay = IconMaterialPlayArrowW100_1.default, IconPause = IconMaterialPauseW100_1.default, IconForward = IconMaterialForwardMediaW100_1.default, IconBackward = IconMaterialForwardMediaW100_1.default, IconVolume = IconMaterialVolumeDownAltW100_1.default, IconVolumeMuted = IconMaterialVolumeOffW100_1.default, IconBack = IconMaterialArrowBackIosW100_1.default, IconSettings = IconMaterialSettingsW100_1.default, IconQuality = IconMaterialTuneW100_1.default, IconPlaybackSpeed = IconMaterialSlowMotionVideoW100_1.default, IconPictureInPicture = IconMaterialPictureInPictureAltW100_1.default, IconFullScreen = IconMaterialFullscreenW100_1.default, IconFullScreenExit = IconMaterialFullscreenExitW100_1.default, PlayButtonProps, ForwardButtonProps, BackwardButtonProps, VolumeButtonProps, IconButtonProps, TypeProps, TimelineProps, VolumeProps, SliderProps, SettingsButtonProps, SettingsMenuProps, QualityButtonProps, PictureInPictureButtonProps, FullScreenButtonProps, className, Component } = props, other = __rest(props, ["name", "src", "meta", "versions", "thumbnails", "mime", "duration", "tonal", "color", "size", "start", "end", "startControls", "endControls", "startButtons", "endButtons", "startButtonsEnd", "endButtonsEnd", "forward", "backward", "settings", "quality", "playbackSpeed", "pictureInPicture", "fullScreen", "startMediaSessionOnPlay", "disabled", "IconPlay", "IconPause", "IconForward", "IconBackward", "IconVolume", "IconVolumeMuted", "IconBack", "IconSettings", "IconQuality", "IconPlaybackSpeed", "IconPictureInPicture", "IconFullScreen", "IconFullScreenExit", "PlayButtonProps", "ForwardButtonProps", "BackwardButtonProps", "VolumeButtonProps", "IconButtonProps", "TypeProps", "TimelineProps", "VolumeProps", "SliderProps", "SettingsButtonProps", "SettingsMenuProps", "QualityButtonProps", "PictureInPictureButtonProps", "FullScreenButtonProps", "className", "Component"]);
177
- const { classes } = useStyle();
178
- const [loaded, setLoaded] = react_1.default.useState(false);
179
- const [duration, setDuration] = react_1.default.useState((0, utils_1.is)('number', meta === null || meta === void 0 ? void 0 : meta.duration) ? meta.duration : undefined);
180
- const [time, setTime] = react_1.default.useState(0);
181
- const [play, setPlay] = react_1.default.useState(false);
182
- const [muted, setMuted] = react_1.default.useState(false);
183
- const [volume, setVolume] = react_1.default.useState(1);
184
- const [volumeVisible, setVolumeVisible] = react_1.default.useState(false);
185
- const [updating, setUpdating] = react_1.default.useState(false);
186
- const [mouseMoved, setMouseMoved] = react_1.default.useState();
187
- const [quality, setQuality] = react_1.default.useState();
188
- const [posterShow, setPosterShow] = react_1.default.useState(true);
189
- const [pictureInPicture, setPictureInPicture] = react_1.default.useState(false);
190
- const [fullScreen, setFullScreen] = react_1.default.useState(false);
191
- const [playbackSpeed, setPlaybackSpeed] = react_1.default.useState(1);
192
- const [openMenu, setOpenMenu] = react_1.default.useState();
193
- const refs = {
194
- root: react_1.default.useRef(null),
195
- video: react_1.default.useRef(null),
196
- controls: react_1.default.useRef(null),
197
- duration: react_1.default.useRef(null),
198
- time: react_1.default.useRef(null),
199
- play: react_1.default.useRef(null),
200
- updating: react_1.default.useRef(null),
201
- onPlay: react_1.default.useRef(null),
202
- onPause: react_1.default.useRef(null),
203
- onTimeChange: react_1.default.useRef(null),
204
- onBackward: react_1.default.useRef(null),
205
- onForward: react_1.default.useRef(null),
206
- onStop: react_1.default.useRef(null),
207
- startMediaSession: react_1.default.useRef(null),
208
- updateMediaSession: react_1.default.useRef(null),
209
- startMediaSessionOnPlay: react_1.default.useRef(null),
210
- fullScreen: react_1.default.useRef(fullScreen),
211
- mouseMoved: react_1.default.useRef(mouseMoved),
212
- timeoutMouseMoved: react_1.default.useRef(null)
213
- };
214
- refs.duration.current = duration;
215
- refs.time.current = time;
216
- refs.play.current = play;
217
- refs.updating.current = updating;
218
- refs.startMediaSessionOnPlay.current = startMediaSessionOnPlay;
219
- refs.fullScreen.current = fullScreen;
220
- refs.mouseMoved.current = mouseMoved;
221
- const allowedPictureInPicture = () => {
222
- var _a;
223
- if ((0, utils_1.isEnvironment)('browser')) {
224
- const rootDocument = (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document);
225
- return rootDocument.pictureInPictureEnabled;
226
- }
227
- };
228
- const startMediaSession = react_1.default.useCallback(() => {
229
- if ('mediaSession' in navigator) {
230
- window.navigator.mediaSession.metadata = new MediaMetadata({
231
- title: name
232
- });
233
- const methods = [
234
- { name: 'play', method: refs.onPlay.current },
235
- { name: 'pause', method: refs.onPause.current },
236
- { name: 'previoustrack', method: () => { } },
237
- { name: 'nexttrack', method: () => { } },
238
- { name: 'seekbackward', method: refs.onBackward.current },
239
- { name: 'seekforward', method: refs.onForward.current },
240
- { name: 'seekto', method: (details) => refs.onTimeChange.current(details.seekTime) },
241
- { name: 'stop', method: refs.onStop.current }
242
- ];
243
- for (const method of methods) {
244
- try {
245
- window.navigator.mediaSession.setActionHandler(method.name, method.method);
246
- }
247
- catch (error) {
248
- console.log(`MediaSession action ${method.name}, is not supported`);
249
- }
250
- }
251
- }
252
- }, [name]);
253
- const updateMediaSession = react_1.default.useCallback(() => {
254
- if ('mediaSession' in navigator) {
255
- window.navigator.mediaSession.setPositionState({
256
- duration: refs.duration.current,
257
- playbackRate: 1,
258
- position: (0, utils_1.clamp)(refs.time.current, 0, refs.duration.current)
259
- });
148
+ },
149
+ menuSettingsFullScreen: {
150
+ '&.onesy-Modal-root': {
151
+ position: 'fixed !important',
152
+ transform: 'none !important',
153
+ left: 'unset !important',
154
+ right: '12px !important',
155
+ bottom: '47.8906px !important'
156
+ }
157
+ }
158
+ }), {
159
+ name: 'onesy-VideoPlayer'
160
+ });
161
+ const VideoPlayer = /*#__PURE__*/_react.default.forwardRef((props_, ref) => {
162
+ var _SettingsMenuProps$Li;
163
+ const theme = (0, _styleReact.useOnesyTheme)();
164
+ const l = theme.l;
165
+ const props = _react.default.useMemo(() => {
166
+ var _theme$ui, _theme$ui2;
167
+ 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.onesyVideoPlayer) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.props) === null || _theme$ui2 === void 0 ? void 0 : _theme$ui2.default), props_);
168
+ }, [props_]);
169
+ const Line = _react.default.useMemo(() => {
170
+ var _theme$elements;
171
+ return (theme === null || theme === void 0 || (_theme$elements = theme.elements) === null || _theme$elements === void 0 ? void 0 : _theme$elements.Line) || _Line.default;
172
+ }, [theme]);
173
+ const Surface = _react.default.useMemo(() => {
174
+ var _theme$elements2;
175
+ return (theme === null || theme === void 0 || (_theme$elements2 = theme.elements) === null || _theme$elements2 === void 0 ? void 0 : _theme$elements2.Surface) || _Surface.default;
176
+ }, [theme]);
177
+ const Slider = _react.default.useMemo(() => {
178
+ var _theme$elements3;
179
+ return (theme === null || theme === void 0 || (_theme$elements3 = theme.elements) === null || _theme$elements3 === void 0 ? void 0 : _theme$elements3.Slider) || _Slider.default;
180
+ }, [theme]);
181
+ const IconButton = _react.default.useMemo(() => {
182
+ var _theme$elements4;
183
+ return (theme === null || theme === void 0 || (_theme$elements4 = theme.elements) === null || _theme$elements4 === void 0 ? void 0 : _theme$elements4.IconButton) || _IconButton.default;
184
+ }, [theme]);
185
+ const Expand = _react.default.useMemo(() => {
186
+ var _theme$elements5;
187
+ return (theme === null || theme === void 0 || (_theme$elements5 = theme.elements) === null || _theme$elements5 === void 0 ? void 0 : _theme$elements5.Expand) || _Expand.default;
188
+ }, [theme]);
189
+ const Type = _react.default.useMemo(() => {
190
+ var _theme$elements6;
191
+ return (theme === null || theme === void 0 || (_theme$elements6 = theme.elements) === null || _theme$elements6 === void 0 ? void 0 : _theme$elements6.Type) || _Type.default;
192
+ }, [theme]);
193
+ const Menu = _react.default.useMemo(() => {
194
+ var _theme$elements7;
195
+ return (theme === null || theme === void 0 || (_theme$elements7 = theme.elements) === null || _theme$elements7 === void 0 ? void 0 : _theme$elements7.Menu) || _Menu.default;
196
+ }, [theme]);
197
+ const ListItem = _react.default.useMemo(() => {
198
+ var _theme$elements8;
199
+ return (theme === null || theme === void 0 || (_theme$elements8 = theme.elements) === null || _theme$elements8 === void 0 ? void 0 : _theme$elements8.ListItem) || _ListItem.default;
200
+ }, [theme]);
201
+ const {
202
+ name,
203
+ src,
204
+ meta,
205
+ versions,
206
+ thumbnails,
207
+ mime,
208
+ duration: duration_,
209
+ tonal = true,
210
+ color,
211
+ size = 'regular',
212
+ start,
213
+ end,
214
+ startControls,
215
+ endControls,
216
+ startButtons,
217
+ endButtons,
218
+ startButtonsEnd,
219
+ endButtonsEnd,
220
+ forward,
221
+ backward,
222
+ settings = true,
223
+ quality: quality_ = true,
224
+ playbackSpeed: playbackSpeed_ = true,
225
+ pictureInPicture: pictureInPicture_ = true,
226
+ fullScreen: fullScreen_ = true,
227
+ startMediaSessionOnPlay,
228
+ disabled,
229
+ IconPlay = _IconMaterialPlayArrowW.default,
230
+ IconPause = _IconMaterialPauseW.default,
231
+ IconForward = _IconMaterialForwardMediaW.default,
232
+ IconBackward = _IconMaterialForwardMediaW.default,
233
+ IconVolume = _IconMaterialVolumeDownAltW.default,
234
+ IconVolumeMuted = _IconMaterialVolumeOffW.default,
235
+ IconBack = _IconMaterialArrowBackIosW.default,
236
+ IconSettings = _IconMaterialSettingsW.default,
237
+ IconQuality = _IconMaterialTuneW.default,
238
+ IconPlaybackSpeed = _IconMaterialSlowMotionVideoW.default,
239
+ IconPictureInPicture = _IconMaterialPictureInPictureAltW.default,
240
+ IconFullScreen = _IconMaterialFullscreenW.default,
241
+ IconFullScreenExit = _IconMaterialFullscreenExitW.default,
242
+ PlayButtonProps,
243
+ ForwardButtonProps,
244
+ BackwardButtonProps,
245
+ VolumeButtonProps,
246
+ IconButtonProps,
247
+ TypeProps,
248
+ TimelineProps,
249
+ VolumeProps,
250
+ SliderProps,
251
+ SettingsButtonProps,
252
+ SettingsMenuProps,
253
+ QualityButtonProps,
254
+ PictureInPictureButtonProps,
255
+ FullScreenButtonProps,
256
+ className,
257
+ Component
258
+ } = props,
259
+ other = (0, _objectWithoutProperties2.default)(props, _excluded);
260
+ const {
261
+ classes
262
+ } = useStyle();
263
+ const [loaded, setLoaded] = _react.default.useState(false);
264
+ const [duration, setDuration] = _react.default.useState((0, _utils.is)('number', meta === null || meta === void 0 ? void 0 : meta.duration) ? meta.duration : undefined);
265
+ const [time, setTime] = _react.default.useState(0);
266
+ const [play, setPlay] = _react.default.useState(false);
267
+ const [muted, setMuted] = _react.default.useState(false);
268
+ const [volume, setVolume] = _react.default.useState(1);
269
+ const [volumeVisible, setVolumeVisible] = _react.default.useState(false);
270
+ const [updating, setUpdating] = _react.default.useState(false);
271
+ const [mouseMoved, setMouseMoved] = _react.default.useState();
272
+ const [quality, setQuality] = _react.default.useState();
273
+ const [posterShow, setPosterShow] = _react.default.useState(true);
274
+ const [pictureInPicture, setPictureInPicture] = _react.default.useState(false);
275
+ const [fullScreen, setFullScreen] = _react.default.useState(false);
276
+ const [playbackSpeed, setPlaybackSpeed] = _react.default.useState(1);
277
+ const [openMenu, setOpenMenu] = _react.default.useState();
278
+ const refs = {
279
+ root: _react.default.useRef(null),
280
+ video: _react.default.useRef(null),
281
+ controls: _react.default.useRef(null),
282
+ duration: _react.default.useRef(null),
283
+ time: _react.default.useRef(null),
284
+ play: _react.default.useRef(null),
285
+ updating: _react.default.useRef(null),
286
+ onPlay: _react.default.useRef(null),
287
+ onPause: _react.default.useRef(null),
288
+ onTimeChange: _react.default.useRef(null),
289
+ onBackward: _react.default.useRef(null),
290
+ onForward: _react.default.useRef(null),
291
+ onStop: _react.default.useRef(null),
292
+ startMediaSession: _react.default.useRef(null),
293
+ updateMediaSession: _react.default.useRef(null),
294
+ startMediaSessionOnPlay: _react.default.useRef(null),
295
+ fullScreen: _react.default.useRef(fullScreen),
296
+ mouseMoved: _react.default.useRef(mouseMoved),
297
+ timeoutMouseMoved: _react.default.useRef(null)
298
+ };
299
+ refs.duration.current = duration;
300
+ refs.time.current = time;
301
+ refs.play.current = play;
302
+ refs.updating.current = updating;
303
+ refs.startMediaSessionOnPlay.current = startMediaSessionOnPlay;
304
+ refs.fullScreen.current = fullScreen;
305
+ refs.mouseMoved.current = mouseMoved;
306
+ const allowedPictureInPicture = () => {
307
+ if ((0, _utils.isEnvironment)('browser')) {
308
+ var _refs$root$current;
309
+ const rootDocument = ((_refs$root$current = refs.root.current) === null || _refs$root$current === void 0 ? void 0 : _refs$root$current.ownerDocument) || window.document;
310
+ return rootDocument.pictureInPictureEnabled;
311
+ }
312
+ };
313
+ const startMediaSession = _react.default.useCallback(() => {
314
+ if ('mediaSession' in navigator) {
315
+ window.navigator.mediaSession.metadata = new MediaMetadata({
316
+ title: name
317
+ });
318
+ const methods = [{
319
+ name: 'play',
320
+ method: refs.onPlay.current
321
+ }, {
322
+ name: 'pause',
323
+ method: refs.onPause.current
324
+ }, {
325
+ name: 'previoustrack',
326
+ method: () => {}
327
+ }, {
328
+ name: 'nexttrack',
329
+ method: () => {}
330
+ }, {
331
+ name: 'seekbackward',
332
+ method: refs.onBackward.current
333
+ }, {
334
+ name: 'seekforward',
335
+ method: refs.onForward.current
336
+ }, {
337
+ name: 'seekto',
338
+ method: details => refs.onTimeChange.current(details.seekTime)
339
+ }, {
340
+ name: 'stop',
341
+ method: refs.onStop.current
342
+ }];
343
+ for (const method of methods) {
344
+ try {
345
+ window.navigator.mediaSession.setActionHandler(method.name, method.method);
346
+ } catch (error) {
347
+ console.log(`MediaSession action ${method.name}, is not supported`);
260
348
  }
261
- }, [name]);
262
- refs.startMediaSession.current = startMediaSession;
263
- refs.updateMediaSession.current = updateMediaSession;
264
- const durationTime = duration_ || (meta === null || meta === void 0 ? void 0 : meta.duration);
265
- const onVolumeChange = react_1.default.useCallback((value) => {
266
- setVolume(value);
267
- refs.video.current.volume = value;
268
- }, []);
269
- const onTimeChange = react_1.default.useCallback((value) => {
349
+ }
350
+ }
351
+ }, [name]);
352
+ const updateMediaSession = _react.default.useCallback(() => {
353
+ if ('mediaSession' in navigator) {
354
+ window.navigator.mediaSession.setPositionState({
355
+ duration: refs.duration.current,
356
+ playbackRate: 1,
357
+ position: (0, _utils.clamp)(refs.time.current, 0, refs.duration.current)
358
+ });
359
+ }
360
+ }, [name]);
361
+ refs.startMediaSession.current = startMediaSession;
362
+ refs.updateMediaSession.current = updateMediaSession;
363
+ const durationTime = duration_ || (meta === null || meta === void 0 ? void 0 : meta.duration);
364
+ const onVolumeChange = _react.default.useCallback(value => {
365
+ setVolume(value);
366
+ refs.video.current.volume = value;
367
+ }, []);
368
+ const onTimeChange = _react.default.useCallback(value => {
369
+ setTime(value);
370
+ refs.video.current.currentTime = value;
371
+
372
+ // update MediaSession
373
+ refs.updateMediaSession.current();
374
+ }, []);
375
+ const onPlaybackSpeed = _react.default.useCallback(value_ => {
376
+ const value = (0, _utils.clamp)(value_, 0, 2);
377
+ setPlaybackSpeed(value);
378
+ setOpenMenu(null);
379
+ refs.video.current.playbackRate = value;
380
+ }, []);
381
+ const onForward = _react.default.useCallback(details => {
382
+ const part = refs.duration.current * 0.1;
383
+ const toMove = (0, _utils.clamp)((details === null || details === void 0 ? void 0 : details.seekOffset) || part, 1, refs.duration.current);
384
+ const value = (0, _utils.clamp)(refs.time.current + toMove, 0, refs.duration.current);
385
+ refs.onTimeChange.current(value);
386
+ }, []);
387
+ const onBackward = _react.default.useCallback(details => {
388
+ const part = refs.duration.current * 0.1;
389
+ const toMove = (0, _utils.clamp)((details === null || details === void 0 ? void 0 : details.seekOffset) || part, 1, refs.duration.current);
390
+ const value = (0, _utils.clamp)(refs.time.current - toMove, 0, refs.duration.current);
391
+ refs.onTimeChange.current(value);
392
+ }, []);
393
+ const onPlay = _react.default.useCallback(() => {
394
+ try {
395
+ setPlay(true);
396
+ refs.video.current.play();
397
+
398
+ // start MediaSession
399
+ if (refs.startMediaSessionOnPlay.current) refs.startMediaSession.current();
400
+
401
+ // update MediaSession
402
+ refs.updateMediaSession.current();
403
+ } catch (error) {
404
+ console.error(`videoPlayer`, error);
405
+ }
406
+ }, []);
407
+ const onPause = _react.default.useCallback(() => {
408
+ setPlay(false);
409
+ refs.video.current.pause();
410
+ }, []);
411
+ const onStop = _react.default.useCallback(() => {
412
+ setPlay(false);
413
+ refs.video.current.pause();
414
+ refs.video.current.currentTime = 0;
415
+ }, []);
416
+ const onMute = _react.default.useCallback(() => {
417
+ setMuted(true);
418
+ refs.video.current.muted = true;
419
+ }, []);
420
+ const onUnmute = _react.default.useCallback(() => {
421
+ setMuted(false);
422
+ refs.video.current.muted = false;
423
+ }, []);
424
+ refs.onPlay.current = onPlay;
425
+ refs.onPause.current = onPause;
426
+ refs.onTimeChange.current = onTimeChange;
427
+ refs.onForward.current = onForward;
428
+ refs.onBackward.current = onBackward;
429
+ refs.onStop.current = onStop;
430
+ const init = _react.default.useCallback(() => {
431
+ var _refs$root$current2, _refs$root$current3, _refs$root$current4, _refs$root$current5;
432
+ setLoaded(false);
433
+ const video = refs.video.current;
434
+ video.addEventListener('loadedmetadata', () => {
435
+ const value = video.duration;
436
+ if (!(0, _utils.is)('number', durationTime) && (0, _utils.is)('number', value)) {
437
+ if (refs.duration.current === undefined) setDuration(value);
438
+ setLoaded(true);
439
+ }
440
+ });
441
+ video.addEventListener('ended', () => {
442
+ refs.onStop.current();
443
+ });
444
+ video.addEventListener('timeupdate', () => {
445
+ const value = video.currentTime;
446
+ if (!refs.updating.current && refs.time.current !== value) {
270
447
  setTime(value);
271
- refs.video.current.currentTime = value;
448
+
272
449
  // update MediaSession
273
450
  refs.updateMediaSession.current();
274
- }, []);
275
- const onPlaybackSpeed = react_1.default.useCallback((value_) => {
276
- const value = (0, utils_1.clamp)(value_, 0, 2);
277
- setPlaybackSpeed(value);
278
- setOpenMenu(null);
279
- refs.video.current.playbackRate = value;
280
- }, []);
281
- const onForward = react_1.default.useCallback((details) => {
282
- const part = refs.duration.current * 0.1;
283
- const toMove = (0, utils_1.clamp)((details === null || details === void 0 ? void 0 : details.seekOffset) || part, 1, refs.duration.current);
284
- const value = (0, utils_1.clamp)(refs.time.current + toMove, 0, refs.duration.current);
285
- refs.onTimeChange.current(value);
286
- }, []);
287
- const onBackward = react_1.default.useCallback((details) => {
288
- const part = refs.duration.current * 0.1;
289
- const toMove = (0, utils_1.clamp)((details === null || details === void 0 ? void 0 : details.seekOffset) || part, 1, refs.duration.current);
290
- const value = (0, utils_1.clamp)(refs.time.current - toMove, 0, refs.duration.current);
291
- refs.onTimeChange.current(value);
292
- }, []);
293
- const onPlay = react_1.default.useCallback(() => {
294
- try {
295
- setPlay(true);
296
- refs.video.current.play();
297
- // start MediaSession
298
- if (refs.startMediaSessionOnPlay.current)
299
- refs.startMediaSession.current();
300
- // update MediaSession
301
- refs.updateMediaSession.current();
302
- }
303
- catch (error) {
304
- console.error(`videoPlayer`, error);
305
- }
306
- }, []);
307
- const onPause = react_1.default.useCallback(() => {
308
- setPlay(false);
309
- refs.video.current.pause();
310
- }, []);
311
- const onStop = react_1.default.useCallback(() => {
312
- setPlay(false);
313
- refs.video.current.pause();
314
- refs.video.current.currentTime = 0;
315
- }, []);
316
- const onMute = react_1.default.useCallback(() => {
317
- setMuted(true);
318
- refs.video.current.muted = true;
319
- }, []);
320
- const onUnmute = react_1.default.useCallback(() => {
321
- setMuted(false);
322
- refs.video.current.muted = false;
323
- }, []);
324
- refs.onPlay.current = onPlay;
325
- refs.onPause.current = onPause;
326
- refs.onTimeChange.current = onTimeChange;
327
- refs.onForward.current = onForward;
328
- refs.onBackward.current = onBackward;
329
- refs.onStop.current = onStop;
330
- const init = react_1.default.useCallback(() => {
331
- var _a, _b, _c, _d;
332
- setLoaded(false);
333
- const video = refs.video.current;
334
- video.addEventListener('loadedmetadata', () => {
335
- const value = video.duration;
336
- if (!(0, utils_1.is)('number', durationTime) && (0, utils_1.is)('number', value)) {
337
- if (refs.duration.current === undefined)
338
- setDuration(value);
339
- setLoaded(true);
340
- }
341
- });
342
- video.addEventListener('ended', () => {
343
- refs.onStop.current();
344
- });
345
- video.addEventListener('timeupdate', () => {
346
- const value = video.currentTime;
347
- if (!refs.updating.current && refs.time.current !== value) {
348
- setTime(value);
349
- // update MediaSession
350
- refs.updateMediaSession.current();
351
- }
352
- });
353
- video.addEventListener('ratechange', () => {
354
- const value = video.playbackRate;
355
- setPlaybackSpeed(value);
451
+ }
452
+ });
453
+ video.addEventListener('ratechange', () => {
454
+ const value = video.playbackRate;
455
+ setPlaybackSpeed(value);
456
+ });
457
+
458
+ // start MediaSession
459
+ startMediaSession();
460
+ if ((0, _utils.is)('number', durationTime)) {
461
+ if (refs.duration.current === undefined) setDuration(durationTime);
462
+ setLoaded(true);
463
+ }
464
+ const rootDocument = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current2 = refs.root.current) === null || _refs$root$current2 === void 0 ? void 0 : _refs$root$current2.ownerDocument) || window.document : undefined;
465
+ const methodPictureInPicture = () => {
466
+ if (rootDocument.pictureInPictureElement) {
467
+ setPictureInPicture(true);
468
+ } else {
469
+ setPictureInPicture(false);
470
+ }
471
+ };
472
+ const methodFullScreen = () => {
473
+ if (rootDocument.fullscreenElement) {
474
+ setFullScreen(true);
475
+ } else {
476
+ setFullScreen(false);
477
+ }
478
+ };
479
+ const methodMouseMove = () => {
480
+ if (refs.play.current) {
481
+ clearTimeout(refs.timeoutMouseMoved.current);
482
+ setMouseMoved({
483
+ moved: true,
484
+ unix: _date.OnesyDate.unix
356
485
  });
357
- // start MediaSession
358
- startMediaSession();
359
- if ((0, utils_1.is)('number', durationTime)) {
360
- if (refs.duration.current === undefined)
361
- setDuration(durationTime);
362
- setLoaded(true);
363
- }
364
- const rootDocument = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
365
- const methodPictureInPicture = () => {
366
- if (rootDocument.pictureInPictureElement) {
367
- setPictureInPicture(true);
368
- }
369
- else {
370
- setPictureInPicture(false);
371
- }
372
- };
373
- const methodFullScreen = () => {
374
- if (rootDocument.fullscreenElement) {
375
- setFullScreen(true);
376
- }
377
- else {
378
- setFullScreen(false);
379
- }
380
- };
381
- const methodMouseMove = () => {
382
- if (refs.play.current) {
383
- clearTimeout(refs.timeoutMouseMoved.current);
384
- setMouseMoved({
385
- moved: true,
386
- unix: date_1.OnesyDate.unix
387
- });
388
- refs.timeoutMouseMoved.current = setTimeout(() => {
389
- setMouseMoved({
390
- moved: false,
391
- unix: date_1.OnesyDate.unix
392
- });
393
- }, 4000);
394
- }
395
- };
396
- (_b = refs.root.current) === null || _b === void 0 ? void 0 : _b.addEventListener('mousemove', methodMouseMove);
397
- (_c = refs.root.current) === null || _c === void 0 ? void 0 : _c.addEventListener('touchstart', methodMouseMove);
398
- (_d = refs.root.current) === null || _d === void 0 ? void 0 : _d.addEventListener('touchmove', methodMouseMove);
399
- rootDocument.addEventListener('enterpictureinpicture', methodPictureInPicture);
400
- rootDocument.addEventListener('leavepictureinpicture', methodPictureInPicture);
401
- rootDocument.addEventListener('fullscreenchange', methodFullScreen);
402
- video.src = src;
403
- return () => {
404
- var _a, _b, _c;
405
- (_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('mousemove', methodMouseMove);
406
- (_b = refs.root.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('touchstart', methodMouseMove);
407
- (_c = refs.root.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('touchmove', methodMouseMove);
408
- rootDocument.removeEventListener('enterpictureinpicture', methodPictureInPicture);
409
- rootDocument.removeEventListener('leavepictureinpicture', methodPictureInPicture);
410
- rootDocument.removeEventListener('fullscreenchange', methodFullScreen);
411
- };
412
- }, [src, durationTime, startMediaSession]);
413
- react_1.default.useEffect(() => {
414
- var _a, _b;
415
- if (loaded) {
416
- let urlNew = src;
417
- if (quality) {
418
- if ((_a = quality === null || quality === void 0 ? void 0 : quality.meta) === null || _a === void 0 ? void 0 : _a.resolution)
419
- urlNew += `?version=${(_b = quality === null || quality === void 0 ? void 0 : quality.meta) === null || _b === void 0 ? void 0 : _b.resolution}`;
420
- }
421
- const currentTime = refs.video.current.currentTime;
422
- const playbackRate = refs.video.current.playbackRate;
423
- const playing = refs.play.current;
424
- // pause
425
- if (playing)
426
- refs.onPause.current();
427
- // poster remove
428
- setPosterShow(false);
429
- refs.video.current.poster = '';
430
- refs.video.current.src = urlNew;
431
- refs.video.current.load();
432
- refs.video.current.currentTime = currentTime;
433
- refs.video.current.playbackRate = playbackRate;
434
- // play
435
- if (playing)
436
- refs.onPlay.current();
437
- }
438
- }, [quality]);
439
- const onMouseEnter = react_1.default.useCallback(() => {
440
- setVolumeVisible(true);
441
- }, []);
442
- const onMouseLeave = react_1.default.useCallback(() => {
443
- setVolumeVisible(false);
444
- }, []);
445
- const onUpdating = react_1.default.useCallback(() => {
446
- setUpdating(refs.play.current ? 'play' : true);
447
- if (refs.play.current)
448
- onPause();
449
- }, [onPause]);
450
- const onUpdatingDone = react_1.default.useCallback(() => {
451
- const updatingPrevious = refs.updating.current;
452
- setUpdating(false);
453
- if (updatingPrevious === 'play')
454
- onPlay();
455
- }, [onPlay]);
456
- const onFullScreen = react_1.default.useCallback(async () => {
457
- const root = refs.root.current;
458
- try {
459
- if (root.requestFullscreen)
460
- await root.requestFullscreen();
461
- else if (root.webkitRequestFullscreen)
462
- await root.webkitRequestFullscreen();
463
- else if (root.msRequestFullscreen)
464
- await root.msRequestFullscreen();
465
- }
466
- catch (error) { }
467
- }, []);
468
- const onFullScreenExit = react_1.default.useCallback(async () => {
469
- var _a;
470
- const rootDocument = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
471
- try {
472
- if (rootDocument.exitFullscreen)
473
- await rootDocument.exitFullscreen();
474
- else if (rootDocument.webkitExitFullscreen)
475
- await rootDocument.webkitExitFullscreen();
476
- else if (rootDocument.msExitFullscreen)
477
- await rootDocument.msExitFullscreen();
478
- }
479
- catch (error) { }
480
- }, []);
481
- const onPictureInPicture = react_1.default.useCallback(async () => {
482
- const video = refs.video.current;
483
- try {
484
- if (video.requestPictureInPicture)
485
- await video.requestPictureInPicture();
486
- else if (video.webkitRequestPictureInPicture)
487
- await video.webkitRequestPictureInPicture();
488
- else if (video.msRequestPictureInPicture)
489
- await video.msRequestPictureInPicture();
490
- }
491
- catch (error) { }
492
- }, []);
493
- const onPictureInPictureExit = react_1.default.useCallback(async () => {
494
- var _a;
495
- const rootDocument = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
496
- try {
497
- if (rootDocument.exitPictureInPicture)
498
- await rootDocument.exitPictureInPicture();
499
- else if (rootDocument.webkitExitPictureInPicture)
500
- await rootDocument.webkitExitPictureInPicture();
501
- else if (rootDocument.msExitPictureInPicture)
502
- await rootDocument.msExitPictureInPicture();
503
- }
504
- catch (error) { }
505
- }, []);
506
- const onVideoClick = react_1.default.useCallback((event) => {
507
- if (event.detail === 1) {
508
- !play ? onPlay() : onPause();
509
- }
510
- if (event.detail === 2) {
511
- !fullScreen ? onFullScreen() : onFullScreenExit();
512
- }
513
- }, [play, fullScreen, onPlay, onPause, onFullScreen, onFullScreenExit]);
514
- react_1.default.useEffect(() => {
515
- var _a;
516
- const rootDocument = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
517
- rootDocument.addEventListener('mouseup', onUpdatingDone);
518
- rootDocument.addEventListener('touchend', onUpdatingDone);
519
- return () => {
520
- rootDocument.removeEventListener('mouseup', onUpdatingDone);
521
- rootDocument.removeEventListener('touchend', onUpdatingDone);
522
- };
523
- }, []);
524
- react_1.default.useEffect(() => {
525
- // init
526
- init();
527
- }, [src]);
528
- const durationToValue = (item) => {
529
- let value = '';
530
- const separator = ':';
531
- if (item.hour)
532
- value += `${(0, utils_1.getLeadingZerosNumber)(item.hour, { leadingZeros: 0 })}`;
533
- if (item.minute) {
534
- if (value)
535
- value += separator;
536
- value += `${(0, utils_1.getLeadingZerosNumber)(item.minute, { leadingZeros: 0 })}`;
537
- }
538
- else {
539
- if (value)
540
- value += separator;
541
- value += '0';
542
- }
543
- if (item.second) {
544
- if (value)
545
- value += separator;
546
- value += `${(0, utils_1.getLeadingZerosNumber)(item.second, { leadingZeros: 1 })}`;
547
- }
548
- else {
549
- if (value)
550
- value += separator;
551
- value += '00';
552
- }
553
- return value;
486
+ refs.timeoutMouseMoved.current = setTimeout(() => {
487
+ setMouseMoved({
488
+ moved: false,
489
+ unix: _date.OnesyDate.unix
490
+ });
491
+ }, 4000);
492
+ }
554
493
  };
555
- const onQuality = react_1.default.useCallback((version) => {
556
- setQuality(version);
557
- setOpenMenu(null);
558
- }, []);
559
- const onSettingsMenuClose = react_1.default.useCallback(() => {
560
- setOpenMenu(null);
561
- }, []);
562
- const getSettingsMenuItems = () => {
563
- var _a;
564
- const itemProps = {
565
- button: true,
566
- startAlign: 'center',
567
- endAlign: 'center',
568
- size: 'small',
569
- className: 'onesy-videoPlayer-option'
570
- };
571
- const items = [];
572
- if (openMenu) {
573
- items.push((0, jsx_runtime_1.jsx)(ListItem, Object.assign({ start: ((0, jsx_runtime_1.jsx)(IconBack, { size: 'very small' })), primary: ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'b3' }, { children: l('Back') }))), onClick: () => setOpenMenu(null) }, itemProps), 'back'));
574
- }
575
- if (!openMenu) {
576
- if (playbackSpeed_)
577
- items.push((0, jsx_runtime_1.jsx)(ListItem, Object.assign({ start: ((0, jsx_runtime_1.jsx)(IconPlaybackSpeed, { size: 'small' })), primary: ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'b3' }, { children: l('Playback speed') }))), end: ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'b3', priority: 'secondary' }, { children: playbackSpeed === 1 ? l('Normal') : playbackSpeed }))), onClick: () => setOpenMenu('playbackSpeed') }, itemProps), 'playbackSpeed'));
578
- if (quality_)
579
- items.push((0, jsx_runtime_1.jsx)(ListItem, Object.assign({ start: ((0, jsx_runtime_1.jsx)(IconQuality, { size: 'small' })), primary: ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'b3' }, { children: l('Quality') }))), end: ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'b3', priority: 'secondary' }, { children: !quality ? l('Original') : `${(_a = quality === null || quality === void 0 ? void 0 : quality.meta) === null || _a === void 0 ? void 0 : _a.resolution}p` }))), onClick: () => setOpenMenu('quality') }, itemProps), 'quality'));
580
- }
581
- else if (openMenu === 'quality') {
582
- items.push((0, jsx_runtime_1.jsx)(ListItem, Object.assign({ primary: ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'b3' }, { children: `${meta === null || meta === void 0 ? void 0 : meta.resolution}p (original)` }))), onClick: () => quality ? onQuality(null) : undefined, selected: !quality }, itemProps), 'original'));
583
- versions === null || versions === void 0 ? void 0 : versions.forEach((version, index) => {
584
- var _a;
585
- const isSelected = (quality === null || quality === void 0 ? void 0 : quality.id) === (version === null || version === void 0 ? void 0 : version.id);
586
- items.push((0, jsx_runtime_1.jsx)(ListItem, Object.assign({ primary: ((0, jsx_runtime_1.jsxs)(Type, Object.assign({ version: 'b3' }, { children: [(_a = version === null || version === void 0 ? void 0 : version.meta) === null || _a === void 0 ? void 0 : _a.resolution, "p"] }))), onClick: () => !isSelected ? onQuality(version) : undefined, selected: isSelected }, itemProps), index));
587
- });
588
- }
589
- else if (openMenu === 'playbackSpeed') {
590
- const options = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];
591
- options.forEach(option => {
592
- items.push((0, jsx_runtime_1.jsx)(ListItem, Object.assign({ primary: ((0, jsx_runtime_1.jsx)(Type, Object.assign({ version: 'b3' }, { children: option === 1 ? l('Normal') : option }))), onClick: () => onPlaybackSpeed(option), selected: playbackSpeed === option }, itemProps), option));
593
- });
594
- }
595
- return items;
494
+ (_refs$root$current3 = refs.root.current) === null || _refs$root$current3 === void 0 || _refs$root$current3.addEventListener('mousemove', methodMouseMove);
495
+ (_refs$root$current4 = refs.root.current) === null || _refs$root$current4 === void 0 || _refs$root$current4.addEventListener('touchstart', methodMouseMove);
496
+ (_refs$root$current5 = refs.root.current) === null || _refs$root$current5 === void 0 || _refs$root$current5.addEventListener('touchmove', methodMouseMove);
497
+ rootDocument.addEventListener('enterpictureinpicture', methodPictureInPicture);
498
+ rootDocument.addEventListener('leavepictureinpicture', methodPictureInPicture);
499
+ rootDocument.addEventListener('fullscreenchange', methodFullScreen);
500
+ video.src = src;
501
+ return () => {
502
+ var _refs$root$current6, _refs$root$current7, _refs$root$current8;
503
+ (_refs$root$current6 = refs.root.current) === null || _refs$root$current6 === void 0 || _refs$root$current6.removeEventListener('mousemove', methodMouseMove);
504
+ (_refs$root$current7 = refs.root.current) === null || _refs$root$current7 === void 0 || _refs$root$current7.removeEventListener('touchstart', methodMouseMove);
505
+ (_refs$root$current8 = refs.root.current) === null || _refs$root$current8 === void 0 || _refs$root$current8.removeEventListener('touchmove', methodMouseMove);
506
+ rootDocument.removeEventListener('enterpictureinpicture', methodPictureInPicture);
507
+ rootDocument.removeEventListener('leavepictureinpicture', methodPictureInPicture);
508
+ rootDocument.removeEventListener('fullscreenchange', methodFullScreen);
509
+ };
510
+ }, [src, durationTime, startMediaSession]);
511
+ _react.default.useEffect(() => {
512
+ if (loaded) {
513
+ let urlNew = src;
514
+ if (quality) {
515
+ var _quality$meta, _quality$meta2;
516
+ if (quality !== null && quality !== void 0 && (_quality$meta = quality.meta) !== null && _quality$meta !== void 0 && _quality$meta.resolution) urlNew += `?version=${quality === null || quality === void 0 || (_quality$meta2 = quality.meta) === null || _quality$meta2 === void 0 ? void 0 : _quality$meta2.resolution}`;
517
+ }
518
+ const currentTime = refs.video.current.currentTime;
519
+ const playbackRate = refs.video.current.playbackRate;
520
+ const playing = refs.play.current;
521
+
522
+ // pause
523
+ if (playing) refs.onPause.current();
524
+
525
+ // poster remove
526
+ setPosterShow(false);
527
+ refs.video.current.poster = '';
528
+ refs.video.current.src = urlNew;
529
+ refs.video.current.load();
530
+ refs.video.current.currentTime = currentTime;
531
+ refs.video.current.playbackRate = playbackRate;
532
+
533
+ // play
534
+ if (playing) refs.onPlay.current();
535
+ }
536
+ }, [quality]);
537
+ const onMouseEnter = _react.default.useCallback(() => {
538
+ setVolumeVisible(true);
539
+ }, []);
540
+ const onMouseLeave = _react.default.useCallback(() => {
541
+ setVolumeVisible(false);
542
+ }, []);
543
+ const onUpdating = _react.default.useCallback(() => {
544
+ setUpdating(refs.play.current ? 'play' : true);
545
+ if (refs.play.current) onPause();
546
+ }, [onPause]);
547
+ const onUpdatingDone = _react.default.useCallback(() => {
548
+ const updatingPrevious = refs.updating.current;
549
+ setUpdating(false);
550
+ if (updatingPrevious === 'play') onPlay();
551
+ }, [onPlay]);
552
+ const onFullScreen = _react.default.useCallback(async () => {
553
+ const root = refs.root.current;
554
+ try {
555
+ if (root.requestFullscreen) await root.requestFullscreen();else if (root.webkitRequestFullscreen) await root.webkitRequestFullscreen();else if (root.msRequestFullscreen) await root.msRequestFullscreen();
556
+ } catch (error) {}
557
+ }, []);
558
+ const onFullScreenExit = _react.default.useCallback(async () => {
559
+ var _refs$root$current9;
560
+ const rootDocument = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current9 = refs.root.current) === null || _refs$root$current9 === void 0 ? void 0 : _refs$root$current9.ownerDocument) || window.document : undefined;
561
+ try {
562
+ if (rootDocument.exitFullscreen) await rootDocument.exitFullscreen();else if (rootDocument.webkitExitFullscreen) await rootDocument.webkitExitFullscreen();else if (rootDocument.msExitFullscreen) await rootDocument.msExitFullscreen();
563
+ } catch (error) {}
564
+ }, []);
565
+ const onPictureInPicture = _react.default.useCallback(async () => {
566
+ const video = refs.video.current;
567
+ try {
568
+ if (video.requestPictureInPicture) await video.requestPictureInPicture();else if (video.webkitRequestPictureInPicture) await video.webkitRequestPictureInPicture();else if (video.msRequestPictureInPicture) await video.msRequestPictureInPicture();
569
+ } catch (error) {}
570
+ }, []);
571
+ const onPictureInPictureExit = _react.default.useCallback(async () => {
572
+ var _refs$root$current10;
573
+ const rootDocument = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current10 = refs.root.current) === null || _refs$root$current10 === void 0 ? void 0 : _refs$root$current10.ownerDocument) || window.document : undefined;
574
+ try {
575
+ if (rootDocument.exitPictureInPicture) await rootDocument.exitPictureInPicture();else if (rootDocument.webkitExitPictureInPicture) await rootDocument.webkitExitPictureInPicture();else if (rootDocument.msExitPictureInPicture) await rootDocument.msExitPictureInPicture();
576
+ } catch (error) {}
577
+ }, []);
578
+ const onVideoClick = _react.default.useCallback(event => {
579
+ if (event.detail === 1) {
580
+ !play ? onPlay() : onPause();
581
+ }
582
+ if (event.detail === 2) {
583
+ !fullScreen ? onFullScreen() : onFullScreenExit();
584
+ }
585
+ }, [play, fullScreen, onPlay, onPause, onFullScreen, onFullScreenExit]);
586
+ _react.default.useEffect(() => {
587
+ var _refs$root$current11;
588
+ const rootDocument = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current11 = refs.root.current) === null || _refs$root$current11 === void 0 ? void 0 : _refs$root$current11.ownerDocument) || window.document : undefined;
589
+ rootDocument.addEventListener('mouseup', onUpdatingDone);
590
+ rootDocument.addEventListener('touchend', onUpdatingDone);
591
+ return () => {
592
+ rootDocument.removeEventListener('mouseup', onUpdatingDone);
593
+ rootDocument.removeEventListener('touchend', onUpdatingDone);
594
+ };
595
+ }, []);
596
+ _react.default.useEffect(() => {
597
+ // init
598
+ init();
599
+ }, [src]);
600
+ const durationToValue = item => {
601
+ let value = '';
602
+ const separator = ':';
603
+ if (item.hour) value += `${(0, _utils.getLeadingZerosNumber)(item.hour, {
604
+ leadingZeros: 0
605
+ })}`;
606
+ if (item.minute) {
607
+ if (value) value += separator;
608
+ value += `${(0, _utils.getLeadingZerosNumber)(item.minute, {
609
+ leadingZeros: 0
610
+ })}`;
611
+ } else {
612
+ if (value) value += separator;
613
+ value += '0';
614
+ }
615
+ if (item.second) {
616
+ if (value) value += separator;
617
+ value += `${(0, _utils.getLeadingZerosNumber)(item.second, {
618
+ leadingZeros: 1
619
+ })}`;
620
+ } else {
621
+ if (value) value += separator;
622
+ value += '00';
623
+ }
624
+ return value;
625
+ };
626
+ const onQuality = _react.default.useCallback(version => {
627
+ setQuality(version);
628
+ setOpenMenu(null);
629
+ }, []);
630
+ const onSettingsMenuClose = _react.default.useCallback(() => {
631
+ setOpenMenu(null);
632
+ }, []);
633
+ const getSettingsMenuItems = () => {
634
+ const itemProps = {
635
+ button: true,
636
+ startAlign: 'center',
637
+ endAlign: 'center',
638
+ size: 'small',
639
+ className: 'onesy-videoPlayer-option'
596
640
  };
597
- const thumbnailsToUse = thumbnails || (quality === null || quality === void 0 ? void 0 : quality.thumbnails);
598
- const thumbnail = thumbnailsToUse ? 1 : undefined;
599
- const typeProps = Object.assign({ version: size === 'large' ? 'b1' : size === 'regular' ? 'b2' : 'b3' }, TypeProps);
600
- const iconButtonProps = Object.assign({ version: 'text', size,
601
- disabled }, IconButtonProps);
602
- const sliderProps = Object.assign({ color,
603
- size,
604
- disabled }, SliderProps);
605
- let url = src;
606
- let poster;
607
- if (quality) {
608
- if ((_a = quality === null || quality === void 0 ? void 0 : quality.meta) === null || _a === void 0 ? void 0 : _a.resolution)
609
- url += `?version=${(_b = quality === null || quality === void 0 ? void 0 : quality.meta) === null || _b === void 0 ? void 0 : _b.resolution}`;
641
+ const items = [];
642
+ if (openMenu) {
643
+ items.push(/*#__PURE__*/_react.default.createElement(ListItem, (0, _extends2.default)({
644
+ key: "back",
645
+ start: /*#__PURE__*/_react.default.createElement(IconBack, {
646
+ size: "very small"
647
+ }),
648
+ primary: /*#__PURE__*/_react.default.createElement(Type, {
649
+ version: "b3"
650
+ }, l('Back')),
651
+ onClick: () => setOpenMenu(null)
652
+ }, itemProps)));
653
+ }
654
+ if (!openMenu) {
655
+ var _quality$meta3;
656
+ if (playbackSpeed_) items.push(/*#__PURE__*/_react.default.createElement(ListItem, (0, _extends2.default)({
657
+ key: "playbackSpeed",
658
+ start: /*#__PURE__*/_react.default.createElement(IconPlaybackSpeed, {
659
+ size: "small"
660
+ }),
661
+ primary: /*#__PURE__*/_react.default.createElement(Type, {
662
+ version: "b3"
663
+ }, l('Playback speed')),
664
+ end: /*#__PURE__*/_react.default.createElement(Type, {
665
+ version: "b3",
666
+ priority: "secondary"
667
+ }, playbackSpeed === 1 ? l('Normal') : playbackSpeed),
668
+ onClick: () => setOpenMenu('playbackSpeed')
669
+ }, itemProps)));
670
+ if (quality_) items.push(/*#__PURE__*/_react.default.createElement(ListItem, (0, _extends2.default)({
671
+ key: "quality",
672
+ start: /*#__PURE__*/_react.default.createElement(IconQuality, {
673
+ size: "small"
674
+ }),
675
+ primary: /*#__PURE__*/_react.default.createElement(Type, {
676
+ version: "b3"
677
+ }, l('Quality')),
678
+ end: /*#__PURE__*/_react.default.createElement(Type, {
679
+ version: "b3",
680
+ priority: "secondary"
681
+ }, !quality ? l('Original') : `${quality === null || quality === void 0 || (_quality$meta3 = quality.meta) === null || _quality$meta3 === void 0 ? void 0 : _quality$meta3.resolution}p`),
682
+ onClick: () => setOpenMenu('quality')
683
+ }, itemProps)));
684
+ } else if (openMenu === 'quality') {
685
+ items.push(/*#__PURE__*/_react.default.createElement(ListItem, (0, _extends2.default)({
686
+ key: "original",
687
+ primary: /*#__PURE__*/_react.default.createElement(Type, {
688
+ version: "b3"
689
+ }, `${meta === null || meta === void 0 ? void 0 : meta.resolution}p (original)`),
690
+ onClick: () => quality ? onQuality(null) : undefined,
691
+ selected: !quality
692
+ }, itemProps)));
693
+ versions === null || versions === void 0 || versions.forEach((version, index) => {
694
+ var _version$meta;
695
+ const isSelected = (quality === null || quality === void 0 ? void 0 : quality.id) === (version === null || version === void 0 ? void 0 : version.id);
696
+ items.push(/*#__PURE__*/_react.default.createElement(ListItem, (0, _extends2.default)({
697
+ key: index,
698
+ primary: /*#__PURE__*/_react.default.createElement(Type, {
699
+ version: "b3"
700
+ }, version === null || version === void 0 || (_version$meta = version.meta) === null || _version$meta === void 0 ? void 0 : _version$meta.resolution, "p"),
701
+ onClick: () => !isSelected ? onQuality(version) : undefined,
702
+ selected: isSelected
703
+ }, itemProps)));
704
+ });
705
+ } else if (openMenu === 'playbackSpeed') {
706
+ const options = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];
707
+ options.forEach(option => {
708
+ items.push(/*#__PURE__*/_react.default.createElement(ListItem, (0, _extends2.default)({
709
+ key: option,
710
+ primary: /*#__PURE__*/_react.default.createElement(Type, {
711
+ version: "b3"
712
+ }, option === 1 ? l('Normal') : option),
713
+ onClick: () => onPlaybackSpeed(option),
714
+ selected: playbackSpeed === option
715
+ }, itemProps)));
716
+ });
610
717
  }
611
- if ((0, utils_1.is)('number', thumbnail)) {
612
- poster = `${url}${(url === null || url === void 0 ? void 0 : url.includes('?')) ? '&' : '?'}thumbnail=${thumbnail}`;
718
+ return items;
719
+ };
720
+ const thumbnailsToUse = thumbnails || (quality === null || quality === void 0 ? void 0 : quality.thumbnails);
721
+ const thumbnail = thumbnailsToUse ? 1 : undefined;
722
+ const typeProps = _objectSpread({
723
+ version: size === 'large' ? 'b1' : size === 'regular' ? 'b2' : 'b3'
724
+ }, TypeProps);
725
+ const iconButtonProps = _objectSpread({
726
+ version: 'text',
727
+ size,
728
+ disabled
729
+ }, IconButtonProps);
730
+ const sliderProps = _objectSpread({
731
+ color,
732
+ size,
733
+ disabled
734
+ }, SliderProps);
735
+ let url = src;
736
+ let poster;
737
+ if (quality) {
738
+ var _quality$meta4, _quality$meta5;
739
+ if (quality !== null && quality !== void 0 && (_quality$meta4 = quality.meta) !== null && _quality$meta4 !== void 0 && _quality$meta4.resolution) url += `?version=${quality === null || quality === void 0 || (_quality$meta5 = quality.meta) === null || _quality$meta5 === void 0 ? void 0 : _quality$meta5.resolution}`;
740
+ }
741
+ if ((0, _utils.is)('number', thumbnail)) {
742
+ var _url;
743
+ poster = `${url}${(_url = url) !== null && _url !== void 0 && _url.includes('?') ? '&' : '?'}thumbnail=${thumbnail}`;
744
+ }
745
+ return /*#__PURE__*/_react.default.createElement(Line, (0, _extends2.default)({
746
+ ref: item => {
747
+ if (ref) {
748
+ if ((0, _utils.is)('function', ref)) ref(item);else ref.current = item;
749
+ }
750
+ refs.root.current = item;
751
+ },
752
+ gap: 1,
753
+ direction: "column",
754
+ align: "unset",
755
+ justify: "unset",
756
+ fullWidth: true,
757
+ Component: Component,
758
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('VideoPlayer', theme) && [`onesy-VideoPlayer-root`, `onesy-VideoPlayer-size-${size}`, fullScreen && `onesy-VideoPlayer-full-screen`], className, classes.root, classes[`size_${size}`], fullScreen && classes.fullScreen])
759
+ }, other), /*#__PURE__*/_react.default.createElement(Line, {
760
+ gap: 0,
761
+ direction: "column",
762
+ align: "unset",
763
+ justify: "unset",
764
+ fullWidth: true,
765
+ className: (0, _styleReact.classNames)([classes.wrapper, fullScreen && classes.wrapperFullScreen])
766
+ }, start, /*#__PURE__*/_react.default.createElement("video", {
767
+ ref: refs.video,
768
+ onClick: onVideoClick,
769
+ poster: posterShow ? poster : undefined,
770
+ controls: false,
771
+ className: (0, _styleReact.classNames)([classes.video, fullScreen && classes.videoFullScreen])
772
+ }, /*#__PURE__*/_react.default.createElement("source", {
773
+ src: url,
774
+ type: mime
775
+ })), /*#__PURE__*/_react.default.createElement(Surface, {
776
+ ref: refs.controls,
777
+ gap: 0,
778
+ fullWidth: true,
779
+ tonal: tonal,
780
+ color: color !== undefined ? color : theme.palette.light ? 'inverted' : 'default',
781
+ Component: Line,
782
+ className: (0, _styleReact.classNames)([classes.controls, classes[`controls_size_${size}`], fullScreen && classes.controlsFullScreen, !(mouseMoved !== null && mouseMoved !== void 0 && mouseMoved.moved) && play && classes.controlsHiddden])
783
+ }, startControls, /*#__PURE__*/_react.default.createElement(Line, {
784
+ fullWidth: true,
785
+ className: classes.wrapperTimeline
786
+ }, /*#__PURE__*/_react.default.createElement(Slider, (0, _extends2.default)({
787
+ value: time,
788
+ onChange: onTimeChange,
789
+ min: 0,
790
+ max: duration,
791
+ onMouseDown: onUpdating,
792
+ onTouchStart: onUpdating,
793
+ onMouseUp: onUpdatingDone,
794
+ onToucheEnd: onUpdatingDone
795
+ }, sliderProps, TimelineProps, {
796
+ className: (0, _styleReact.classNames)([sliderProps === null || sliderProps === void 0 ? void 0 : sliderProps.className, TimelineProps === null || TimelineProps === void 0 ? void 0 : TimelineProps.className, classes.timeline])
797
+ }))), /*#__PURE__*/_react.default.createElement(Line, {
798
+ direction: "row",
799
+ align: "center",
800
+ fullWidth: true,
801
+ onMouseLeave: onMouseLeave,
802
+ className: classes.bottomControls,
803
+ style: {
804
+ color: theme.palette.color[color] ? theme.palette.color[color][90] : theme.palette.color.neutral[90]
613
805
  }
614
- return ((0, jsx_runtime_1.jsx)(Line, Object.assign({ ref: item => {
615
- if (ref) {
616
- if ((0, utils_1.is)('function', ref))
617
- ref(item);
618
- else
619
- ref.current = item;
620
- }
621
- refs.root.current = item;
622
- }, gap: 1, direction: 'column', align: 'unset', justify: 'unset', fullWidth: true, Component: Component, className: (0, style_react_1.classNames)([
623
- (0, utils_2.staticClassName)('VideoPlayer', theme) && [
624
- `onesy-VideoPlayer-root`,
625
- `onesy-VideoPlayer-size-${size}`,
626
- fullScreen && `onesy-VideoPlayer-full-screen`
627
- ],
628
- className,
629
- classes.root,
630
- classes[`size_${size}`],
631
- fullScreen && classes.fullScreen
632
- ]) }, other, { children: (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0, direction: 'column', align: 'unset', justify: 'unset', fullWidth: true, className: (0, style_react_1.classNames)([
633
- classes.wrapper,
634
- fullScreen && classes.wrapperFullScreen
635
- ]) }, { children: [start, (0, jsx_runtime_1.jsx)("video", Object.assign({ ref: refs.video, onClick: onVideoClick, poster: posterShow ? poster : undefined, controls: false, className: (0, style_react_1.classNames)([
636
- classes.video,
637
- fullScreen && classes.videoFullScreen
638
- ]) }, { children: (0, jsx_runtime_1.jsx)("source", { src: url, type: mime }) })), (0, jsx_runtime_1.jsxs)(Surface, Object.assign({ ref: refs.controls, gap: 0, fullWidth: true, tonal: tonal, color: color !== undefined ? color : theme.palette.light ? 'inverted' : 'default', Component: Line, className: (0, style_react_1.classNames)([
639
- classes.controls,
640
- classes[`controls_size_${size}`],
641
- fullScreen && classes.controlsFullScreen,
642
- !(mouseMoved === null || mouseMoved === void 0 ? void 0 : mouseMoved.moved) && play && classes.controlsHiddden
643
- ]) }, { children: [startControls, (0, jsx_runtime_1.jsx)(Line, Object.assign({ fullWidth: true, className: classes.wrapperTimeline }, { children: (0, jsx_runtime_1.jsx)(Slider, Object.assign({ value: time, onChange: onTimeChange, min: 0, max: duration, onMouseDown: onUpdating, onTouchStart: onUpdating, onMouseUp: onUpdatingDone, onToucheEnd: onUpdatingDone }, sliderProps, TimelineProps, { className: (0, style_react_1.classNames)([
644
- sliderProps === null || sliderProps === void 0 ? void 0 : sliderProps.className,
645
- TimelineProps === null || TimelineProps === void 0 ? void 0 : TimelineProps.className,
646
- classes.timeline
647
- ]) })) })), (0, jsx_runtime_1.jsxs)(Line, Object.assign({ direction: 'row', align: 'center', fullWidth: true, onMouseLeave: onMouseLeave, className: classes.bottomControls, style: {
648
- color: theme.palette.color[color] ? theme.palette.color[color][90] : theme.palette.color.neutral[90]
649
- } }, { children: [startButtons, (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 1, direction: 'row', align: 'center', justify: 'space-between', flexNo: true, fullWidth: true }, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 1.5, direction: 'row', align: 'center', flexNo: true }, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0, direction: 'row', align: 'center' }, { children: [(0, jsx_runtime_1.jsx)(IconButton, Object.assign({ onClick: play ? onPause : onPlay }, iconButtonProps, PlayButtonProps, { children: play ? (0, jsx_runtime_1.jsx)(IconPause, {}) : (0, jsx_runtime_1.jsx)(IconPlay, {}) })), backward && ((0, jsx_runtime_1.jsx)(IconButton, Object.assign({ onClick: onBackward }, iconButtonProps, BackwardButtonProps, { children: (0, jsx_runtime_1.jsx)(IconBackward, { style: {
650
- transform: 'rotateY(180deg)'
651
- } }) }))), forward && ((0, jsx_runtime_1.jsx)(IconButton, Object.assign({ onClick: onForward }, iconButtonProps, ForwardButtonProps, { children: (0, jsx_runtime_1.jsx)(IconForward, {}) }))), (0, jsx_runtime_1.jsx)(IconButton, Object.assign({ onClick: muted ? onUnmute : onMute, onMouseEnter: onMouseEnter }, iconButtonProps, VolumeButtonProps, { children: !muted ? (0, jsx_runtime_1.jsx)(IconVolume, {}) : (0, jsx_runtime_1.jsx)(IconVolumeMuted, {}) })), (0, jsx_runtime_1.jsx)(Expand, Object.assign({ in: volumeVisible, parent: refs.controls.current, orientation: 'horizontal', className: classes.volumeExpand }, { children: (0, jsx_runtime_1.jsx)(Slider, Object.assign({ value: volume, onChange: onVolumeChange, min: 0, max: 1, orientation: 'horizontal' }, sliderProps, { size: ['small', 'regular'].includes(size) ? 'small' : 'regular' }, VolumeProps, { className: (0, style_react_1.classNames)([
652
- sliderProps === null || sliderProps === void 0 ? void 0 : sliderProps.className,
653
- VolumeProps === null || VolumeProps === void 0 ? void 0 : VolumeProps.className,
654
- classes.volume
655
- ]) })) }))] })), (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, direction: 'row', align: 'center', flexNo: true, className: (0, style_react_1.classNames)([
656
- 'onesy-Audio-time',
657
- classes.time
658
- ]) }, { children: [(0, jsx_runtime_1.jsx)(Type, Object.assign({}, typeProps, { children: durationToValue((0, date_1.duration)(time * 1000, false, true)) })), (0, jsx_runtime_1.jsx)(Type, Object.assign({}, typeProps, { children: "/" })), (0, jsx_runtime_1.jsx)(Type, Object.assign({}, typeProps, { children: durationToValue((0, date_1.duration)(duration * 1000, false, true)) }))] }))] })), (0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 0.5, direction: 'row', align: 'center', className: classes.endControls }, { children: [startButtonsEnd, settings && ((0, jsx_runtime_1.jsx)(Menu, Object.assign({ menuItems: getSettingsMenuItems(), position: 'top', switch: false, portal: !fullScreen, onClose: onSettingsMenuClose, includeParentQueries: ['.onesy-videoPlayer'] }, SettingsMenuProps, { ListProps: {
659
- className: (0, style_react_1.classNames)([
660
- (_c = SettingsMenuProps === null || SettingsMenuProps === void 0 ? void 0 : SettingsMenuProps.ListProps) === null || _c === void 0 ? void 0 : _c.className,
661
- classes.menuSettings,
662
- ]),
663
- size: 'small'
664
- }, className: (0, style_react_1.classNames)([
665
- 'onesy-videoPlayer',
666
- SettingsMenuProps === null || SettingsMenuProps === void 0 ? void 0 : SettingsMenuProps.className,
667
- fullScreen && classes.menuSettingsFullScreen
668
- ]) }, { children: (0, jsx_runtime_1.jsx)(IconButton, Object.assign({}, iconButtonProps, SettingsButtonProps, { children: (0, jsx_runtime_1.jsx)(IconSettings, {}) })) }))), pictureInPicture_ && allowedPictureInPicture() && ((0, jsx_runtime_1.jsx)(IconButton, Object.assign({ onClick: !pictureInPicture ? onPictureInPicture : onPictureInPictureExit }, iconButtonProps, PictureInPictureButtonProps, { children: (0, jsx_runtime_1.jsx)(IconPictureInPicture, {}) }))), fullScreen_ && ((0, jsx_runtime_1.jsx)(IconButton, Object.assign({ onClick: !fullScreen ? onFullScreen : onFullScreenExit }, iconButtonProps, FullScreenButtonProps, { children: fullScreen ? (0, jsx_runtime_1.jsx)(IconFullScreenExit, {}) : (0, jsx_runtime_1.jsx)(IconFullScreen, {}) }))), endButtonsEnd] }))] })), endButtons] })), endControls] })), end] })) })));
806
+ }, startButtons, /*#__PURE__*/_react.default.createElement(Line, {
807
+ gap: 1,
808
+ direction: "row",
809
+ align: "center",
810
+ justify: "space-between",
811
+ flexNo: true,
812
+ fullWidth: true
813
+ }, /*#__PURE__*/_react.default.createElement(Line, {
814
+ gap: 1.5,
815
+ direction: "row",
816
+ align: "center",
817
+ flexNo: true
818
+ }, /*#__PURE__*/_react.default.createElement(Line, {
819
+ gap: 0,
820
+ direction: "row",
821
+ align: "center"
822
+ }, /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({
823
+ onClick: play ? onPause : onPlay
824
+ }, iconButtonProps, PlayButtonProps), play ? /*#__PURE__*/_react.default.createElement(IconPause, null) : /*#__PURE__*/_react.default.createElement(IconPlay, null)), backward && /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({
825
+ onClick: onBackward
826
+ }, iconButtonProps, BackwardButtonProps), /*#__PURE__*/_react.default.createElement(IconBackward, {
827
+ style: {
828
+ transform: 'rotateY(180deg)'
829
+ }
830
+ })), forward && /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({
831
+ onClick: onForward
832
+ }, iconButtonProps, ForwardButtonProps), /*#__PURE__*/_react.default.createElement(IconForward, null)), /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({
833
+ onClick: muted ? onUnmute : onMute,
834
+ onMouseEnter: onMouseEnter
835
+ }, iconButtonProps, VolumeButtonProps), !muted ? /*#__PURE__*/_react.default.createElement(IconVolume, null) : /*#__PURE__*/_react.default.createElement(IconVolumeMuted, null)), /*#__PURE__*/_react.default.createElement(Expand, {
836
+ in: volumeVisible,
837
+ parent: refs.controls.current,
838
+ orientation: "horizontal",
839
+ className: classes.volumeExpand
840
+ }, /*#__PURE__*/_react.default.createElement(Slider, (0, _extends2.default)({
841
+ value: volume,
842
+ onChange: onVolumeChange,
843
+ min: 0,
844
+ max: 1,
845
+ orientation: "horizontal"
846
+ }, sliderProps, {
847
+ size: ['small', 'regular'].includes(size) ? 'small' : 'regular'
848
+ }, VolumeProps, {
849
+ className: (0, _styleReact.classNames)([sliderProps === null || sliderProps === void 0 ? void 0 : sliderProps.className, VolumeProps === null || VolumeProps === void 0 ? void 0 : VolumeProps.className, classes.volume])
850
+ })))), /*#__PURE__*/_react.default.createElement(Line, {
851
+ gap: 0.5,
852
+ direction: "row",
853
+ align: "center",
854
+ flexNo: true,
855
+ className: (0, _styleReact.classNames)(['onesy-Audio-time', classes.time])
856
+ }, /*#__PURE__*/_react.default.createElement(Type, typeProps, durationToValue((0, _date.duration)(time * 1000, false, true))), /*#__PURE__*/_react.default.createElement(Type, typeProps, "/"), /*#__PURE__*/_react.default.createElement(Type, typeProps, durationToValue((0, _date.duration)(duration * 1000, false, true))))), /*#__PURE__*/_react.default.createElement(Line, {
857
+ gap: 0.5,
858
+ direction: "row",
859
+ align: "center",
860
+ className: classes.endControls
861
+ }, startButtonsEnd, settings && /*#__PURE__*/_react.default.createElement(Menu, (0, _extends2.default)({
862
+ menuItems: getSettingsMenuItems(),
863
+ position: "top",
864
+ switch: false,
865
+ portal: !fullScreen,
866
+ onClose: onSettingsMenuClose,
867
+ includeParentQueries: ['.onesy-videoPlayer']
868
+ }, SettingsMenuProps, {
869
+ ListProps: {
870
+ className: (0, _styleReact.classNames)([SettingsMenuProps === null || SettingsMenuProps === void 0 || (_SettingsMenuProps$Li = SettingsMenuProps.ListProps) === null || _SettingsMenuProps$Li === void 0 ? void 0 : _SettingsMenuProps$Li.className, classes.menuSettings]),
871
+ size: 'small'
872
+ },
873
+ className: (0, _styleReact.classNames)(['onesy-videoPlayer', SettingsMenuProps === null || SettingsMenuProps === void 0 ? void 0 : SettingsMenuProps.className, fullScreen && classes.menuSettingsFullScreen])
874
+ }), /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({}, iconButtonProps, SettingsButtonProps), /*#__PURE__*/_react.default.createElement(IconSettings, null))), pictureInPicture_ && allowedPictureInPicture() && /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({
875
+ onClick: !pictureInPicture ? onPictureInPicture : onPictureInPictureExit
876
+ }, iconButtonProps, PictureInPictureButtonProps), /*#__PURE__*/_react.default.createElement(IconPictureInPicture, null)), fullScreen_ && /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({
877
+ onClick: !fullScreen ? onFullScreen : onFullScreenExit
878
+ }, iconButtonProps, FullScreenButtonProps), fullScreen ? /*#__PURE__*/_react.default.createElement(IconFullScreenExit, null) : /*#__PURE__*/_react.default.createElement(IconFullScreen, null)), endButtonsEnd)), endButtons), endControls), end));
669
879
  });
670
880
  VideoPlayer.displayName = 'onesy-VideoPlayer';
671
- exports.default = VideoPlayer;
881
+ var _default = exports.default = VideoPlayer;