@onesy/ui-react 1.0.129 → 1.0.131

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/Accordion/Accordion.js +342 -242
  2. package/Accordion/index.js +12 -7
  3. package/AdvancedTextField/AdvancedTextField.js +165 -157
  4. package/AdvancedTextField/index.js +12 -7
  5. package/Append/Append.js +502 -519
  6. package/Append/index.js +12 -7
  7. package/AreaChart/AreaChart.js +53 -40
  8. package/AreaChart/index.js +12 -7
  9. package/AreaChartItem/AreaChartItem.js +325 -237
  10. package/AreaChartItem/index.js +12 -7
  11. package/AudioPlayer/AudioPlayer.js +683 -466
  12. package/AudioPlayer/index.js +12 -7
  13. package/AudioRecorder/AudioRecorder.js +359 -259
  14. package/AudioRecorder/index.js +12 -7
  15. package/AutoComplete/AutoComplete.js +693 -568
  16. package/AutoComplete/index.js +12 -7
  17. package/AutoCompleteCountry/AutoCompleteCountry.js +99 -62
  18. package/AutoCompleteCountry/index.js +12 -7
  19. package/AutoCompleteCurrency/AutoCompleteCurrency.js +73 -61
  20. package/AutoCompleteCurrency/index.js +12 -7
  21. package/Avatar/Avatar.js +113 -86
  22. package/Avatar/index.js +12 -7
  23. package/AvatarGroup/AvatarGroup.js +104 -87
  24. package/AvatarGroup/index.js +12 -7
  25. package/Backdrop/Backdrop.js +160 -139
  26. package/Backdrop/index.js +12 -7
  27. package/Badge/Badge.js +116 -96
  28. package/Badge/index.js +12 -7
  29. package/Banner/Banner.js +126 -85
  30. package/Banner/index.js +12 -7
  31. package/BottomAppBar/BottomAppBar.js +89 -60
  32. package/BottomAppBar/index.js +12 -7
  33. package/BottomSheet/BottomSheet.js +66 -59
  34. package/BottomSheet/index.js +12 -7
  35. package/Box/Box.js +43 -35
  36. package/Box/index.js +12 -7
  37. package/Breadcrumbs/Breadcrumbs.js +168 -144
  38. package/Breadcrumbs/index.js +12 -7
  39. package/BubbleChart/BubbleChart.js +261 -132
  40. package/BubbleChart/index.js +12 -7
  41. package/BubbleChartItem/BubbleChartItem.js +228 -161
  42. package/BubbleChartItem/index.js +12 -7
  43. package/Button/Button.js +488 -467
  44. package/Button/index.js +12 -7
  45. package/Buttons/Buttons.js +366 -293
  46. package/Buttons/index.js +12 -7
  47. package/Calendar/Calendar.js +715 -452
  48. package/Calendar/index.js +12 -7
  49. package/CalendarAvailability/CalendarAvailability.js +709 -388
  50. package/CalendarAvailability/index.js +12 -7
  51. package/CalendarMenu/CalendarMenu.js +430 -303
  52. package/CalendarMenu/index.js +12 -7
  53. package/CalendarMonth/CalendarMonth.js +537 -498
  54. package/CalendarMonth/index.js +12 -7
  55. package/CalendarViews/CalendarViews.js +403 -254
  56. package/CalendarViews/index.js +12 -7
  57. package/CalendarWeek/CalendarWeek.js +536 -395
  58. package/CalendarWeek/index.js +12 -7
  59. package/Card/Card.js +133 -101
  60. package/Card/index.js +12 -7
  61. package/CardButton/CardButton.js +78 -58
  62. package/CardButton/index.js +12 -7
  63. package/CardFooter/CardFooter.js +58 -39
  64. package/CardFooter/index.js +12 -7
  65. package/CardHeader/CardHeader.js +61 -44
  66. package/CardHeader/index.js +12 -7
  67. package/CardImage/CardImage.js +80 -67
  68. package/CardImage/index.js +12 -7
  69. package/CardMain/CardMain.js +53 -39
  70. package/CardMain/index.js +12 -7
  71. package/Carousel/Carousel.js +1025 -913
  72. package/Carousel/index.js +12 -7
  73. package/Chart/Chart.js +1325 -1174
  74. package/Chart/index.js +12 -7
  75. package/Checkbox/Checkbox.js +339 -325
  76. package/Checkbox/index.js +12 -7
  77. package/Chip/Chip.js +131 -102
  78. package/Chip/index.js +12 -7
  79. package/Chips/Chips.js +121 -94
  80. package/Chips/index.js +12 -7
  81. package/ClickListener/ClickListener.js +86 -89
  82. package/ClickListener/index.js +12 -7
  83. package/Clock/Clock.js +470 -417
  84. package/Clock/index.js +12 -7
  85. package/ColorTextField/ColorTextField.js +234 -171
  86. package/ColorTextField/index.js +12 -7
  87. package/ColumnChart/ColumnChart.js +63 -46
  88. package/ColumnChart/index.js +12 -7
  89. package/ColumnChartItem/ColumnChartItem.js +208 -149
  90. package/ColumnChartItem/index.js +12 -7
  91. package/Confirm/Confirm.js +184 -129
  92. package/Confirm/Context.js +9 -7
  93. package/Confirm/index.js +32 -13
  94. package/Confirm/useConfirm.js +11 -10
  95. package/Container/Container.js +154 -133
  96. package/Container/index.js +12 -7
  97. package/CookieBanner/CookieBanner.js +142 -76
  98. package/CookieBanner/index.js +12 -7
  99. package/Countdown/Countdown.js +403 -255
  100. package/Countdown/index.js +12 -7
  101. package/DatePicker/DatePicker.js +802 -547
  102. package/DatePicker/index.js +12 -7
  103. package/DateRangePicker/DateRangePicker.js +44 -37
  104. package/DateRangePicker/index.js +12 -7
  105. package/DateTimePicker/DateTimePicker.js +672 -459
  106. package/DateTimePicker/index.js +12 -7
  107. package/DateTimeRangePicker/DateTimeRangePicker.js +44 -37
  108. package/DateTimeRangePicker/index.js +12 -7
  109. package/Divider/Divider.js +198 -185
  110. package/Divider/index.js +12 -7
  111. package/DonutChart/DonutChart.js +49 -42
  112. package/DonutChart/index.js +12 -7
  113. package/DragAndDropList/DragAndDropList.js +160 -156
  114. package/DragAndDropList/index.js +12 -7
  115. package/Drawing/Drawing.js +850 -523
  116. package/Drawing/index.js +12 -7
  117. package/DropZone/DropZone.js +239 -201
  118. package/DropZone/index.js +12 -7
  119. package/Emojis/Emojis.js +409 -317
  120. package/Emojis/emojis_list.js +7279 -9250
  121. package/Emojis/index.js +19 -9
  122. package/Expand/Expand.js +201 -149
  123. package/Expand/index.js +12 -7
  124. package/Fab/Fab.js +46 -26
  125. package/Fab/index.js +12 -7
  126. package/Fade/Fade.js +131 -101
  127. package/Fade/index.js +12 -7
  128. package/FileChoose/FileChoose.js +218 -150
  129. package/FileChoose/index.js +12 -7
  130. package/Focus/Focus.js +87 -88
  131. package/Focus/index.js +12 -7
  132. package/Form/Form.js +194 -120
  133. package/Form/index.js +12 -7
  134. package/FormRow/FormRow.js +123 -78
  135. package/FormRow/index.js +12 -7
  136. package/Forms/Forms.js +55 -41
  137. package/Forms/index.js +12 -7
  138. package/Frame/Frame.js +212 -150
  139. package/Frame/index.js +12 -7
  140. package/Grid/Grid.js +231 -166
  141. package/Grid/index.js +12 -7
  142. package/Grow/Grow.js +137 -109
  143. package/Grow/index.js +12 -7
  144. package/HTMLCanvas/HTMLCanvas.js +752 -542
  145. package/HTMLCanvas/index.js +24 -21
  146. package/IFrame/IFrame.js +122 -104
  147. package/IFrame/index.js +12 -7
  148. package/Icon/Icon.js +112 -95
  149. package/Icon/index.js +24 -21
  150. package/IconButton/IconButton.js +49 -37
  151. package/IconButton/index.js +12 -7
  152. package/Image/Image.js +285 -252
  153. package/Image/index.js +12 -7
  154. package/ImageCrop/ImageCrop.js +1073 -1048
  155. package/ImageCrop/index.js +12 -7
  156. package/ImageEdit/ImageEdit.js +1088 -783
  157. package/ImageEdit/index.js +12 -7
  158. package/ImageGallery/ImageGallery.js +518 -473
  159. package/ImageGallery/index.js +12 -7
  160. package/ImageList/ImageList.js +136 -129
  161. package/ImageList/index.js +12 -7
  162. package/ImageListItem/ImageListItem.js +101 -87
  163. package/ImageListItem/index.js +12 -7
  164. package/ImageListItemBox/ImageListItemBox.js +61 -50
  165. package/ImageListItemBox/index.js +12 -7
  166. package/Info/Info.js +99 -63
  167. package/Info/index.js +12 -7
  168. package/Interaction/Interaction.js +405 -345
  169. package/Interaction/index.js +12 -7
  170. package/Keyframes/Context.js +9 -7
  171. package/Keyframes/Keyframes.js +189 -174
  172. package/Keyframes/index.js +42 -25
  173. package/Keyframes/useKeyframes.js +11 -10
  174. package/Label/Label.js +177 -151
  175. package/Label/index.js +12 -7
  176. package/Labels/Labels.js +126 -98
  177. package/Labels/index.js +12 -7
  178. package/Line/Line.js +296 -174
  179. package/Line/index.js +12 -7
  180. package/LineChart/LineChart.js +57 -40
  181. package/LineChart/index.js +12 -7
  182. package/LineChartItem/LineChartItem.js +239 -177
  183. package/LineChartItem/index.js +12 -7
  184. package/LinearMeter/LinearMeter.js +453 -377
  185. package/LinearMeter/index.js +12 -7
  186. package/LinearProgress/LinearProgress.js +324 -255
  187. package/LinearProgress/index.js +12 -7
  188. package/Link/Link.js +182 -127
  189. package/Link/index.js +12 -7
  190. package/Links/Links.js +277 -156
  191. package/Links/index.js +12 -7
  192. package/List/List.js +148 -113
  193. package/List/index.js +12 -7
  194. package/ListItem/ListItem.js +388 -362
  195. package/ListItem/index.js +12 -7
  196. package/ListSubheader/ListSubheader.js +52 -44
  197. package/ListSubheader/index.js +12 -7
  198. package/MainProgress/Context.js +9 -7
  199. package/MainProgress/MainProgress.js +193 -161
  200. package/MainProgress/index.js +32 -13
  201. package/MainProgress/useMainProgress.js +11 -10
  202. package/Markdown/Markdown.js +676 -704
  203. package/Markdown/index.js +12 -7
  204. package/Masonry/Masonry.js +207 -181
  205. package/Masonry/index.js +12 -7
  206. package/Medias/Medias.js +436 -398
  207. package/Medias/index.js +12 -7
  208. package/Menu/Menu.js +278 -243
  209. package/Menu/index.js +12 -7
  210. package/MenuDesktop/MenuDesktop.js +496 -419
  211. package/MenuDesktop/index.js +12 -7
  212. package/MenuItem/MenuItem.js +286 -231
  213. package/MenuItem/index.js +12 -7
  214. package/Meta/Meta.js +78 -54
  215. package/Meta/index.js +12 -7
  216. package/Modal/Modal.js +333 -272
  217. package/Modal/index.js +12 -7
  218. package/ModalFooter/ModalFooter.js +50 -39
  219. package/ModalFooter/index.js +12 -7
  220. package/ModalHeader/ModalHeader.js +51 -39
  221. package/ModalHeader/index.js +12 -7
  222. package/ModalIcon/ModalIcon.js +29 -23
  223. package/ModalIcon/index.js +12 -7
  224. package/ModalMain/ModalMain.js +50 -41
  225. package/ModalMain/index.js +12 -7
  226. package/ModalText/ModalText.js +47 -37
  227. package/ModalText/index.js +12 -7
  228. package/ModalTitle/ModalTitle.js +47 -37
  229. package/ModalTitle/index.js +12 -7
  230. package/MoreOptions/MoreOptions.js +72 -52
  231. package/MoreOptions/index.js +12 -7
  232. package/Move/Move.js +166 -141
  233. package/Move/index.js +12 -7
  234. package/NavigationBar/NavigationBar.js +133 -109
  235. package/NavigationBar/index.js +12 -7
  236. package/NavigationDrawer/NavigationDrawer.js +241 -211
  237. package/NavigationDrawer/index.js +12 -7
  238. package/NavigationItem/NavigationItem.js +293 -262
  239. package/NavigationItem/index.js +12 -7
  240. package/NavigationRail/NavigationRail.js +187 -150
  241. package/NavigationRail/index.js +12 -7
  242. package/NotFound/NotFound.js +89 -66
  243. package/NotFound/index.js +12 -7
  244. package/NumericTextField/NumericTextField.js +217 -212
  245. package/NumericTextField/index.js +12 -7
  246. package/Page/Page.js +131 -67
  247. package/Page/index.js +12 -7
  248. package/PageTransition/PageTransition.js +112 -102
  249. package/PageTransition/index.js +12 -7
  250. package/Pagination/Pagination.js +153 -98
  251. package/Pagination/index.js +12 -7
  252. package/PaginationItem/PaginationItem.js +85 -65
  253. package/PaginationItem/index.js +12 -7
  254. package/Parallax/Parallax.js +138 -145
  255. package/Parallax/index.js +12 -7
  256. package/Path/Path.js +40 -35
  257. package/Path/index.js +12 -7
  258. package/PieChart/PieChart.js +382 -267
  259. package/PieChart/index.js +12 -7
  260. package/Placeholder/Placeholder.js +125 -117
  261. package/Placeholder/index.js +12 -7
  262. package/Portal/Portal.js +37 -38
  263. package/Portal/index.js +12 -7
  264. package/Properties/Properties.js +85 -64
  265. package/Properties/index.js +12 -7
  266. package/Property/Property.js +120 -108
  267. package/Property/index.js +12 -7
  268. package/Radio/Radio.js +211 -181
  269. package/Radio/index.js +12 -7
  270. package/Radios/Radios.js +124 -92
  271. package/Radios/index.js +12 -7
  272. package/Rating/Rating.js +353 -360
  273. package/Rating/index.js +12 -7
  274. package/Reset/Reset.js +19 -24
  275. package/Reset/index.js +12 -7
  276. package/Reveal/Reveal.js +98 -89
  277. package/Reveal/index.js +12 -7
  278. package/RichTextEditor/RichTextEditor.js +1764 -972
  279. package/RichTextEditor/index.js +12 -7
  280. package/RoundMeter/RoundMeter.js +629 -537
  281. package/RoundMeter/index.js +12 -7
  282. package/RoundProgress/RoundProgress.js +233 -174
  283. package/RoundProgress/index.js +12 -7
  284. package/ScatterChart/ScatterChart.js +53 -40
  285. package/ScatterChart/index.js +12 -7
  286. package/ScatterChartItem/ScatterChartItem.js +214 -153
  287. package/ScatterChartItem/index.js +12 -7
  288. package/ScreenCapture/ScreenCapture.js +427 -335
  289. package/ScreenCapture/index.js +12 -7
  290. package/Section/Section.js +380 -319
  291. package/Section/index.js +12 -7
  292. package/SectionAction/SectionAction.js +72 -61
  293. package/SectionAction/index.js +12 -7
  294. package/SectionBoxes/SectionBoxes.js +240 -208
  295. package/SectionBoxes/index.js +12 -7
  296. package/SectionCards/SectionCards.js +256 -217
  297. package/SectionCards/index.js +12 -7
  298. package/SectionCarousel/SectionCarousel.js +284 -242
  299. package/SectionCarousel/index.js +12 -7
  300. package/SectionContact/SectionContact.js +174 -116
  301. package/SectionContact/index.js +12 -7
  302. package/SectionImageGallery/SectionImageGallery.js +64 -51
  303. package/SectionImageGallery/index.js +12 -7
  304. package/SectionLogos/SectionLogos.js +123 -109
  305. package/SectionLogos/index.js +12 -7
  306. package/SectionMedia/SectionMedia.js +170 -152
  307. package/SectionMedia/index.js +12 -7
  308. package/SectionReviews/SectionReviews.js +170 -129
  309. package/SectionReviews/index.js +12 -7
  310. package/SectionTextMedia/SectionTextMedia.js +187 -142
  311. package/SectionTextMedia/index.js +12 -7
  312. package/SectionTimeline/SectionTimeline.js +126 -95
  313. package/SectionTimeline/index.js +12 -7
  314. package/SectionWatch/SectionWatch.js +65 -53
  315. package/SectionWatch/index.js +12 -7
  316. package/Select/Select.js +517 -406
  317. package/Select/index.js +12 -7
  318. package/Share/Share.js +458 -319
  319. package/Share/index.js +12 -7
  320. package/Slide/Slide.js +184 -140
  321. package/Slide/index.js +12 -7
  322. package/Slider/Slider.js +927 -837
  323. package/Slider/index.js +12 -7
  324. package/SmartTextField/SmartTextField.js +1406 -1014
  325. package/SmartTextField/index.js +12 -7
  326. package/Snackbar/Snackbar.js +227 -185
  327. package/Snackbar/index.js +12 -7
  328. package/Snackbars/Context.js +9 -7
  329. package/Snackbars/Snackbars.js +234 -210
  330. package/Snackbars/index.js +32 -13
  331. package/Snackbars/useSnackbars.js +11 -10
  332. package/Space/Space.js +1683 -968
  333. package/Space/index.js +24 -21
  334. package/SpeechToText/SpeechToText.js +207 -172
  335. package/SpeechToText/index.js +12 -7
  336. package/SpeedDial/SpeedDial.js +434 -398
  337. package/SpeedDial/index.js +12 -7
  338. package/SpeedDialItem/SpeedDialItem.js +89 -63
  339. package/SpeedDialItem/index.js +12 -7
  340. package/SpyScroll/SpyScroll.js +154 -142
  341. package/SpyScroll/index.js +12 -7
  342. package/Step/Step.js +181 -127
  343. package/Step/index.js +12 -7
  344. package/Stepper/Stepper.js +159 -139
  345. package/Stepper/index.js +12 -7
  346. package/Surface/Surface.js +760 -798
  347. package/Surface/index.js +12 -7
  348. package/Switch/Switch.js +688 -532
  349. package/Switch/index.js +12 -7
  350. package/Tab/Tab.js +185 -150
  351. package/Tab/index.js +12 -7
  352. package/Table/Table.js +100 -77
  353. package/Table/index.js +12 -7
  354. package/TableBody/TableBody.js +76 -63
  355. package/TableBody/index.js +12 -7
  356. package/TableCell/TableCell.js +258 -220
  357. package/TableCell/index.js +12 -7
  358. package/TableFooter/TableFooter.js +60 -48
  359. package/TableFooter/index.js +12 -7
  360. package/TableHead/TableHead.js +139 -120
  361. package/TableHead/index.js +12 -7
  362. package/TableHeader/TableHeader.js +65 -50
  363. package/TableHeader/index.js +12 -7
  364. package/TablePagination/TablePagination.js +171 -98
  365. package/TablePagination/index.js +12 -7
  366. package/TableRow/TableRow.js +77 -64
  367. package/TableRow/index.js +12 -7
  368. package/Tabs/Tabs.js +425 -377
  369. package/Tabs/index.js +12 -7
  370. package/Text/Text.js +131 -113
  371. package/Text/index.js +12 -7
  372. package/TextField/TextField.js +940 -879
  373. package/TextField/index.js +12 -7
  374. package/TextToSpeech/TextToSpeech.js +176 -153
  375. package/TextToSpeech/index.js +12 -7
  376. package/TimePicker/TimePicker.js +985 -718
  377. package/TimePicker/index.js +12 -7
  378. package/TimeRangePicker/TimeRangePicker.js +44 -37
  379. package/TimeRangePicker/index.js +12 -7
  380. package/Timeline/Timeline.js +54 -42
  381. package/Timeline/index.js +12 -7
  382. package/TimelineItem/TimelineItem.js +144 -147
  383. package/TimelineItem/index.js +12 -7
  384. package/Timer/Timer.js +321 -204
  385. package/Timer/index.js +12 -7
  386. package/ToggleButton/ToggleButton.js +67 -58
  387. package/ToggleButton/index.js +12 -7
  388. package/ToggleButtons/ToggleButtons.js +46 -37
  389. package/ToggleButtons/index.js +12 -7
  390. package/Tooltip/Tooltip.js +489 -454
  391. package/Tooltip/index.js +12 -7
  392. package/TopAppBar/TopAppBar.js +237 -197
  393. package/TopAppBar/index.js +12 -7
  394. package/Transition/Context.js +9 -7
  395. package/Transition/Transition.js +321 -339
  396. package/Transition/index.js +42 -25
  397. package/Transition/useTransition.js +11 -10
  398. package/Transitions/Transitions.js +215 -179
  399. package/Transitions/index.js +12 -7
  400. package/Tree/Tree.js +375 -312
  401. package/Tree/index.js +12 -7
  402. package/Type/Type.js +251 -152
  403. package/Type/index.js +12 -7
  404. package/VideoPlayer/VideoPlayer.js +866 -656
  405. package/VideoPlayer/index.js +12 -7
  406. package/ViewSplit/ViewSplit.js +413 -387
  407. package/ViewSplit/index.js +12 -7
  408. package/Watch/Watch.js +436 -290
  409. package/Watch/index.js +12 -7
  410. package/Weather/Weather.js +294 -247
  411. package/Weather/index.js +12 -7
  412. package/Whiteboard/Whiteboard.js +1392 -1292
  413. package/Whiteboard/index.js +12 -7
  414. package/Widgets/Context.js +9 -7
  415. package/Widgets/Widgets.js +220 -168
  416. package/Widgets/index.js +32 -13
  417. package/Widgets/useWidgets.js +11 -10
  418. package/WindowSplit/WindowSplit.js +381 -336
  419. package/WindowSplit/index.js +12 -7
  420. package/Zoom/Zoom.js +126 -99
  421. package/Zoom/index.js +12 -7
  422. package/esm/BottomAppBar/BottomAppBar.js +5 -4
  423. package/esm/Buttons/Buttons.js +1 -1
  424. package/esm/index.js +1 -1
  425. package/index.js +4053 -660
  426. package/package.json +1 -1
  427. package/types.js +4 -1
  428. package/useForm/index.js +25 -11
  429. package/useForm/useForm.js +203 -174
  430. package/useForm/validate.js +215 -203
  431. package/useLocation/index.js +12 -7
  432. package/useLocation/useLocation.js +54 -49
  433. package/useMediaQuery/index.js +12 -7
  434. package/useMediaQuery/useMediaQuery.js +44 -43
  435. package/useQuery/index.js +12 -7
  436. package/useQuery/useQuery.js +14 -10
  437. package/useScroll/index.js +12 -7
  438. package/useScroll/useScroll.js +61 -56
  439. package/useSubscription/index.js +12 -7
  440. package/useSubscription/useSubscription.js +35 -35
  441. package/useSwipe/index.js +12 -7
  442. package/useSwipe/useSwipe.js +157 -131
  443. package/useVisible/index.js +12 -7
  444. package/useVisible/useVisible.js +86 -76
  445. package/utils.js +1224 -1362
@@ -1,344 +1,436 @@
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 IconMaterialFitScreenW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialFitScreenW100"));
22
- const IconMaterialDocumentScannerW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialDocumentScannerW100"));
23
- const IconMaterialCropFreeW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialCropFreeW100"));
24
- const IconMaterialDownloadW100_1 = __importDefault(require("@onesy/icons-material-rounded-react/IconMaterialDownloadW100"));
25
- const Tooltip_1 = __importDefault(require("../Tooltip"));
26
- const Surface_1 = __importDefault(require("../Surface"));
27
- const TextField_1 = __importDefault(require("../TextField"));
28
- const IconButton_1 = __importDefault(require("../IconButton"));
29
- const ImageCrop_1 = __importDefault(require("../ImageCrop"));
30
- const Portal_1 = __importDefault(require("../Portal"));
31
- const Line_1 = __importDefault(require("../Line"));
32
- const useMediaQuery_1 = __importDefault(require("../useMediaQuery"));
33
- const Buttons_1 = require("../Buttons/Buttons");
34
- const utils_2 = require("../utils");
35
- const useStyle = (0, style_react_1.style)(theme => ({
36
- root: {
37
- padding: `${theme.methods.space.value(2.5, 'px')} ${theme.methods.space.value(5, 'px')} ${theme.methods.space.value(3, 'px')}`,
38
- borderRadius: theme.methods.shape.radius.value('rg', 'px')
39
- },
40
- wrapper: {
41
- inset: '0',
42
- position: 'fixed',
43
- background: '#000',
44
- zIndex: theme.z_index.tooltip + 4
45
- }
46
- }), { name: 'onesy-ScreenCapture' });
47
- const ScreenCapture = react_1.default.forwardRef((props_, ref) => {
48
- var _a;
49
- const theme = (0, style_react_1.useOnesyTheme)();
50
- const l = theme.l;
51
- 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.onesyScreenCapture) === null || _g === void 0 ? void 0 : _g.props) === null || _h === void 0 ? void 0 : _h.default), props_)); }, [props_]);
52
- 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]);
53
- const Tooltip = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Tooltip) || Tooltip_1.default; }, [theme]);
54
- 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]);
55
- const TextField = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.TextField) || TextField_1.default; }, [theme]);
56
- 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]);
57
- const ImageCrop = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.ImageCrop) || ImageCrop_1.default; }, [theme]);
58
- const Portal = react_1.default.useMemo(() => { var _a; return ((_a = theme === null || theme === void 0 ? void 0 : theme.elements) === null || _a === void 0 ? void 0 : _a.Portal) || Portal_1.default; }, [theme]);
59
- const { tonal = true, color = 'primary', nameDefault, name: name_ = `onesy-screenshot.${props.type !== undefined ? props.type.split('/')[1] : 'png'}`, onChangeName, view = true, entirePage = true, free = true, type = `image/png`, quality = 1, onInit: onInit_, onView: onView_, onEntirePage: onEntirePage_, onFree: onFree_, onFreeSave: onFreeSave_, onFreeClose: onFreeClose_, IconView = IconMaterialFitScreenW100_1.default, IconEntirePage = IconMaterialDocumentScannerW100_1.default, IconFree = IconMaterialCropFreeW100_1.default, IconDownload = IconMaterialDownloadW100_1.default, TextFieldProps, TooltipProps, IconButtonProps, ImageCropProps = {
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 _IconMaterialFitScreenW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialFitScreenW100"));
15
+ var _IconMaterialDocumentScannerW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialDocumentScannerW100"));
16
+ var _IconMaterialCropFreeW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialCropFreeW100"));
17
+ var _IconMaterialDownloadW = _interopRequireDefault(require("@onesy/icons-material-rounded-react/IconMaterialDownloadW100"));
18
+ var _Tooltip = _interopRequireDefault(require("../Tooltip"));
19
+ var _Surface = _interopRequireDefault(require("../Surface"));
20
+ var _TextField = _interopRequireDefault(require("../TextField"));
21
+ var _IconButton = _interopRequireDefault(require("../IconButton"));
22
+ var _ImageCrop = _interopRequireDefault(require("../ImageCrop"));
23
+ var _Portal = _interopRequireDefault(require("../Portal"));
24
+ var _Line = _interopRequireDefault(require("../Line"));
25
+ var _useMediaQuery = _interopRequireDefault(require("../useMediaQuery"));
26
+ var _Buttons = require("../Buttons/Buttons");
27
+ var _utils2 = require("../utils");
28
+ const _excluded = ["tonal", "color", "nameDefault", "name", "onChangeName", "view", "entirePage", "free", "type", "quality", "onInit", "onView", "onEntirePage", "onFree", "onFreeSave", "onFreeClose", "IconView", "IconEntirePage", "IconFree", "IconDownload", "TextFieldProps", "TooltipProps", "IconButtonProps", "ImageCropProps", "Component", "className"];
29
+ 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; }
30
+ 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; }
31
+ const useStyle = (0, _styleReact.style)(theme => ({
32
+ root: {
33
+ padding: `${theme.methods.space.value(2.5, 'px')} ${theme.methods.space.value(5, 'px')} ${theme.methods.space.value(3, 'px')}`,
34
+ borderRadius: theme.methods.shape.radius.value('rg', 'px')
35
+ },
36
+ wrapper: {
37
+ inset: '0',
38
+ position: 'fixed',
39
+ background: '#000',
40
+ zIndex: theme.z_index.tooltip + 4
41
+ }
42
+ }), {
43
+ name: 'onesy-ScreenCapture'
44
+ });
45
+ const ScreenCapture = /*#__PURE__*/_react.default.forwardRef((props_, ref) => {
46
+ var _refs$root$current5;
47
+ const theme = (0, _styleReact.useOnesyTheme)();
48
+ const l = theme.l;
49
+ const props = _react.default.useMemo(() => {
50
+ var _theme$ui, _theme$ui2;
51
+ 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.onesyScreenCapture) === null || _theme$ui2 === void 0 || (_theme$ui2 = _theme$ui2.props) === null || _theme$ui2 === void 0 ? void 0 : _theme$ui2.default), props_);
52
+ }, [props_]);
53
+ const Line = _react.default.useMemo(() => {
54
+ var _theme$elements;
55
+ return (theme === null || theme === void 0 || (_theme$elements = theme.elements) === null || _theme$elements === void 0 ? void 0 : _theme$elements.Line) || _Line.default;
56
+ }, [theme]);
57
+ const Tooltip = _react.default.useMemo(() => {
58
+ var _theme$elements2;
59
+ return (theme === null || theme === void 0 || (_theme$elements2 = theme.elements) === null || _theme$elements2 === void 0 ? void 0 : _theme$elements2.Tooltip) || _Tooltip.default;
60
+ }, [theme]);
61
+ const Surface = _react.default.useMemo(() => {
62
+ var _theme$elements3;
63
+ return (theme === null || theme === void 0 || (_theme$elements3 = theme.elements) === null || _theme$elements3 === void 0 ? void 0 : _theme$elements3.Surface) || _Surface.default;
64
+ }, [theme]);
65
+ const TextField = _react.default.useMemo(() => {
66
+ var _theme$elements4;
67
+ return (theme === null || theme === void 0 || (_theme$elements4 = theme.elements) === null || _theme$elements4 === void 0 ? void 0 : _theme$elements4.TextField) || _TextField.default;
68
+ }, [theme]);
69
+ const IconButton = _react.default.useMemo(() => {
70
+ var _theme$elements5;
71
+ return (theme === null || theme === void 0 || (_theme$elements5 = theme.elements) === null || _theme$elements5 === void 0 ? void 0 : _theme$elements5.IconButton) || _IconButton.default;
72
+ }, [theme]);
73
+ const ImageCrop = _react.default.useMemo(() => {
74
+ var _theme$elements6;
75
+ return (theme === null || theme === void 0 || (_theme$elements6 = theme.elements) === null || _theme$elements6 === void 0 ? void 0 : _theme$elements6.ImageCrop) || _ImageCrop.default;
76
+ }, [theme]);
77
+ const Portal = _react.default.useMemo(() => {
78
+ var _theme$elements7;
79
+ return (theme === null || theme === void 0 || (_theme$elements7 = theme.elements) === null || _theme$elements7 === void 0 ? void 0 : _theme$elements7.Portal) || _Portal.default;
80
+ }, [theme]);
81
+ const {
82
+ tonal = true,
83
+ color = 'primary',
84
+ nameDefault,
85
+ name: name_ = `onesy-screenshot.${props.type !== undefined ? props.type.split('/')[1] : 'png'}`,
86
+ onChangeName,
87
+ view = true,
88
+ entirePage = true,
89
+ free = true,
90
+ type = `image/png`,
91
+ quality = 1,
92
+ onInit: onInit_,
93
+ onView: onView_,
94
+ onEntirePage: onEntirePage_,
95
+ onFree: onFree_,
96
+ onFreeSave: onFreeSave_,
97
+ onFreeClose: onFreeClose_,
98
+ IconView = _IconMaterialFitScreenW.default,
99
+ IconEntirePage = _IconMaterialDocumentScannerW.default,
100
+ IconFree = _IconMaterialCropFreeW.default,
101
+ IconDownload = _IconMaterialDownloadW.default,
102
+ TextFieldProps,
103
+ TooltipProps,
104
+ IconButtonProps,
105
+ ImageCropProps = {
60
106
  type: `image/png`,
61
107
  quality: 1
62
- }, Component = 'div', className } = props, other = __rest(props, ["tonal", "color", "nameDefault", "name", "onChangeName", "view", "entirePage", "free", "type", "quality", "onInit", "onView", "onEntirePage", "onFree", "onFreeSave", "onFreeClose", "IconView", "IconEntirePage", "IconFree", "IconDownload", "TextFieldProps", "TooltipProps", "IconButtonProps", "ImageCropProps", "Component", "className"]);
63
- const { classes } = useStyle();
64
- const [init, setInit] = react_1.default.useState(false);
65
- const [name, setName] = react_1.default.useState(nameDefault !== undefined ? nameDefault : name_);
66
- const [loading, setLoading] = react_1.default.useState([]);
67
- const [done, setDone] = react_1.default.useState([]);
68
- const [canvas, setCanvas] = react_1.default.useState();
69
- const [canvasSelectorValue, setCanvasSelectorValue] = react_1.default.useState();
70
- const [supported, setSupported] = react_1.default.useState(true);
71
- const refs = {
72
- root: react_1.default.useRef(null),
73
- canvas: react_1.default.useRef(null),
74
- canvasSelectorValue: react_1.default.useRef(null),
75
- element: react_1.default.useRef(null)
76
- };
77
- const touch = (0, useMediaQuery_1.default)('(pointer: coarse)', { element: refs.root.current });
78
- refs.canvas.current = canvas;
79
- refs.canvasSelectorValue.current = canvasSelectorValue;
80
- const onInit = react_1.default.useCallback(() => {
81
- const value = !(touch || (0, utils_1.isOS)('mobile'));
82
- setInit(true);
83
- setSupported(value);
84
- if ((0, utils_1.is)('function', onInit_))
85
- onInit_(value);
86
- }, [touch, onInit_]);
87
- react_1.default.useEffect(() => {
88
- var _a;
89
- const rootDocument = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
90
- const method = (event) => {
91
- switch (event.key) {
92
- case 'V':
93
- case 'v':
94
- if (event.metaKey && event.shiftKey)
95
- onView(event);
96
- break;
97
- // case 'E':
98
- // case 'e':
99
- // if (event.metaKey && event.shiftKey) onEntirePage(event as any);
100
- // break;
101
- case 'F':
102
- case 'f':
103
- if (event.metaKey && event.shiftKey)
104
- onFree(event);
105
- break;
106
- case 'S':
107
- case 's':
108
- if (event.metaKey) {
109
- if (refs.canvas.current)
110
- onFreeSave(event);
111
- }
112
- break;
113
- case 'Enter':
114
- if (refs.canvas.current)
115
- onFreeSave(event);
116
- break;
117
- case 'Escape':
118
- if (refs.canvas.current)
119
- onFreeClose(event);
120
- break;
121
- default:
122
- break;
123
- }
124
- };
125
- rootDocument.addEventListener('keydown', method);
126
- onInit();
127
- return () => {
128
- // Clean up
129
- rootDocument.removeEventListener('keydown', method);
130
- if (refs.canvas.current) {
131
- setCanvas('');
132
- if (rootDocument.body.style.overflow === 'hidden')
133
- rootDocument.body.style.removeProperty('overflow');
134
- }
135
- };
136
- }, []);
137
- react_1.default.useEffect(() => {
138
- if (init) {
139
- if (name_ !== name)
140
- setName(name_);
141
- }
142
- }, [name_]);
143
- react_1.default.useEffect(() => {
144
- var _a;
145
- const rootDocument = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
146
- if (canvas) {
147
- rootDocument.body.style.overflow = 'hidden';
148
- }
149
- else {
150
- setCanvasSelectorValue(false);
151
- if (rootDocument.body.style.overflow === 'hidden')
152
- rootDocument.body.style.removeProperty('overflow');
153
- }
154
- }, [canvas]);
155
- const onChange = (value_) => {
156
- // Update inner or controlled
157
- if (!props.hasOwnProperty('value'))
158
- setName(value_);
159
- if ((0, utils_1.is)('function', onChangeName))
160
- onChangeName(value_);
108
+ },
109
+ Component = 'div',
110
+ className
111
+ } = props,
112
+ other = (0, _objectWithoutProperties2.default)(props, _excluded);
113
+ const {
114
+ classes
115
+ } = useStyle();
116
+ const [init, setInit] = _react.default.useState(false);
117
+ const [name, setName] = _react.default.useState(nameDefault !== undefined ? nameDefault : name_);
118
+ const [loading, setLoading] = _react.default.useState([]);
119
+ const [done, setDone] = _react.default.useState([]);
120
+ const [canvas, setCanvas] = _react.default.useState();
121
+ const [canvasSelectorValue, setCanvasSelectorValue] = _react.default.useState();
122
+ const [supported, setSupported] = _react.default.useState(true);
123
+ const refs = {
124
+ root: _react.default.useRef(null),
125
+ canvas: _react.default.useRef(null),
126
+ canvasSelectorValue: _react.default.useRef(null),
127
+ element: _react.default.useRef(null)
128
+ };
129
+ const touch = (0, _useMediaQuery.default)('(pointer: coarse)', {
130
+ element: refs.root.current
131
+ });
132
+ refs.canvas.current = canvas;
133
+ refs.canvasSelectorValue.current = canvasSelectorValue;
134
+ const onInit = _react.default.useCallback(() => {
135
+ const value = !(touch || (0, _utils.isOS)('mobile'));
136
+ setInit(true);
137
+ setSupported(value);
138
+ if ((0, _utils.is)('function', onInit_)) onInit_(value);
139
+ }, [touch, onInit_]);
140
+ _react.default.useEffect(() => {
141
+ var _refs$root$current;
142
+ const rootDocument = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current = refs.root.current) === null || _refs$root$current === void 0 ? void 0 : _refs$root$current.ownerDocument) || window.document : undefined;
143
+ const method = event => {
144
+ switch (event.key) {
145
+ case 'V':
146
+ case 'v':
147
+ if (event.metaKey && event.shiftKey) onView(event);
148
+ break;
149
+
150
+ // case 'E':
151
+ // case 'e':
152
+ // if (event.metaKey && event.shiftKey) onEntirePage(event as any);
153
+
154
+ // break;
155
+
156
+ case 'F':
157
+ case 'f':
158
+ if (event.metaKey && event.shiftKey) onFree(event);
159
+ break;
160
+ case 'S':
161
+ case 's':
162
+ if (event.metaKey) {
163
+ if (refs.canvas.current) onFreeSave(event);
164
+ }
165
+ break;
166
+ case 'Enter':
167
+ if (refs.canvas.current) onFreeSave(event);
168
+ break;
169
+ case 'Escape':
170
+ if (refs.canvas.current) onFreeClose(event);
171
+ break;
172
+ default:
173
+ break;
174
+ }
161
175
  };
162
- const trackToValue = react_1.default.useCallback(async (track, version = 'canvas') => {
163
- var _a;
164
- const rootDocument = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
165
- const canvasElement = document.createElement('canvas');
166
- const { width, height } = track.getSettings();
167
- canvasElement.width = width || window.innerWidth;
168
- canvasElement.height = height || window.innerHeight;
169
- // Hide elements
170
- const elements = Array.from(rootDocument.body.querySelectorAll('.onesy-ScreenCapture-root')).map((element) => {
171
- if (element.parentElement.classList.contains('onesy-Move-root'))
172
- return element.parentElement;
173
- return element;
174
- });
175
- elements.forEach((item) => item.style.visibility = 'hidden');
176
- // Wait for media options window to hide
177
- await (0, utils_1.wait)(414);
178
- // Draw the frame
179
- canvasElement.getContext('2d').drawImage(refs.element.current, 0, 0);
180
- // Unhide the elements
181
- elements.forEach((item) => item.style.removeProperty('visibility'));
182
- if (version === 'canvas')
183
- return canvasElement;
184
- const image = canvasElement.toDataURL(type, quality);
185
- return image;
186
- }, [type, quality]);
187
- const make = react_1.default.useCallback(async (version = 'image', options = {}) => {
188
- var _a;
189
- const rootDocument = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
190
- refs.element.current = rootDocument.createElement('video');
191
- let tracks;
192
- const cleanUp = () => {
193
- // Stop tracks
194
- (tracks || []).forEach(item => item.stop());
195
- // Unload the element
196
- refs.element.current = undefined;
197
- };
198
- try {
199
- refs.element.current.srcObject = await window.navigator.mediaDevices.getDisplayMedia(Object.assign({ preferCurrentTab: true }, options));
200
- const mediaStream = refs.element.current.srcObject;
201
- if (!mediaStream)
202
- throw new Error('No media stream');
203
- // Required to work
204
- await refs.element.current.play();
205
- tracks = mediaStream.getVideoTracks();
206
- const track = tracks[0];
207
- const value = await trackToValue(track, version);
208
- // Clean up
209
- cleanUp();
210
- return value;
211
- }
212
- catch (error) {
213
- console.log('ScreenCapture make', error);
214
- // Clean up
215
- cleanUp();
216
- }
217
- }, []);
218
- const onView = react_1.default.useCallback(async (event) => {
219
- setLoading(items => [...items, 'view']);
220
- try {
221
- const image = await make();
222
- (0, utils_1.download)(name, image);
223
- }
224
- catch (error) {
225
- console.log('onView', error);
226
- }
227
- setLoading(items => items.filter(item => item !== 'view'));
228
- setDone(items => [...items, 'view']);
229
- setTimeout(() => {
230
- setDone(items => items.filter(item => item !== 'view'));
231
- }, 1400);
232
- if ((0, utils_1.is)('function', onView_))
233
- onView_(event);
234
- }, [name, make]);
235
- // const onEntirePage = async (event: React.MouseEvent<any>) => {
236
- // setLoading(items => [...items, 'entirePage']);
237
- // try {
238
- // const rootDocument = isEnvironment('browser') ? (refs.root.current?.ownerDocument || window.document) : undefined;
239
- // await elementToCanvas(rootDocument.body, {
240
- // response: 'download',
241
- // filter: ['.onesy-Widgets-root', '#onesy-screen-capture'],
242
- // download: {
243
- // name,
244
- // type,
245
- // quality
246
- // }
247
- // });
248
- // }
249
- // catch (error) {
250
- // console.log('onEntirePage', error);
251
- // }
252
- // setLoading(items => items.filter(item => item !== 'entirePage'));
253
- // setDone(items => [...items, 'entirePage']);
254
- // setTimeout(() => {
255
- // setDone(items => items.filter(item => item !== 'entirePage'));
256
- // }, 1400);
257
- // if (is('function', onEntirePage_)) onEntirePage_(event);
258
- // };
259
- const onFree = async (event) => {
260
- setLoading(items => [...items, 'free']);
261
- // Update canvas
262
- try {
263
- const valueCanvas = await make('canvas');
264
- setCanvas(valueCanvas);
265
- }
266
- catch (error) {
267
- console.log('onFree', error);
268
- }
269
- setLoading(items => items.filter(item => item !== 'free'));
270
- if ((0, utils_1.is)('function', onFree_))
271
- onFree_(event);
272
- };
273
- const onFreeSave = (event) => {
274
- // Crop the canvas
275
- const valueCanvas = (0, utils_1.canvasCrop)(refs.canvas.current, refs.canvasSelectorValue.current.left, refs.canvasSelectorValue.current.top, refs.canvasSelectorValue.current.width, refs.canvasSelectorValue.current.height);
276
- // Download the image from canvas datauri
277
- // of the image type and quality, name
278
- const uri = valueCanvas.toDataURL(type, quality);
279
- (0, utils_1.download)(name, uri, type);
280
- // Clear the image
281
- setCanvas('');
282
- setDone(items => [...items, 'free']);
283
- setTimeout(() => {
284
- setDone(items => items.filter(item => item !== 'free'));
285
- }, 1400);
286
- if ((0, utils_1.is)('function', onFreeSave_))
287
- onFreeSave_(event);
288
- };
289
- const onFreeClose = (event) => {
290
- // Clear the image
176
+ rootDocument.addEventListener('keydown', method);
177
+ onInit();
178
+ return () => {
179
+ // Clean up
180
+ rootDocument.removeEventListener('keydown', method);
181
+ if (refs.canvas.current) {
291
182
  setCanvas('');
292
- if ((0, utils_1.is)('function', onFreeClose_))
293
- onFreeClose_(event);
294
- };
295
- const onImageCropSelectorChange = react_1.default.useCallback((values) => {
296
- setCanvasSelectorValue(values);
297
- }, []);
298
- const iconButtonProps = {
299
- tonal,
300
- color: 'inherit',
301
- elevation: false
183
+ if (rootDocument.body.style.overflow === 'hidden') rootDocument.body.style.removeProperty('overflow');
184
+ }
302
185
  };
303
- const textFieldProps = {
304
- tonal,
305
- color: 'inherit',
306
- version: 'text',
307
- size: 'small',
308
- fullWidth: true
309
- };
310
- const tooltipProps = {
311
- position: 'top',
312
- portal: false,
313
- interactive: false
186
+ }, []);
187
+ _react.default.useEffect(() => {
188
+ if (init) {
189
+ if (name_ !== name) setName(name_);
190
+ }
191
+ }, [name_]);
192
+ _react.default.useEffect(() => {
193
+ var _refs$root$current2;
194
+ 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;
195
+ if (canvas) {
196
+ rootDocument.body.style.overflow = 'hidden';
197
+ } else {
198
+ setCanvasSelectorValue(false);
199
+ if (rootDocument.body.style.overflow === 'hidden') rootDocument.body.style.removeProperty('overflow');
200
+ }
201
+ }, [canvas]);
202
+ const onChange = value_ => {
203
+ // Update inner or controlled
204
+ if (!props.hasOwnProperty('value')) setName(value_);
205
+ if ((0, _utils.is)('function', onChangeName)) onChangeName(value_);
206
+ };
207
+ const trackToValue = _react.default.useCallback(async (track, version = 'canvas') => {
208
+ var _refs$root$current3;
209
+ const rootDocument = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current3 = refs.root.current) === null || _refs$root$current3 === void 0 ? void 0 : _refs$root$current3.ownerDocument) || window.document : undefined;
210
+ const canvasElement = document.createElement('canvas');
211
+ const {
212
+ width,
213
+ height
214
+ } = track.getSettings();
215
+ canvasElement.width = width || window.innerWidth;
216
+ canvasElement.height = height || window.innerHeight;
217
+
218
+ // Hide elements
219
+ const elements = Array.from(rootDocument.body.querySelectorAll('.onesy-ScreenCapture-root')).map(element => {
220
+ if (element.parentElement.classList.contains('onesy-Move-root')) return element.parentElement;
221
+ return element;
222
+ });
223
+ elements.forEach(item => item.style.visibility = 'hidden');
224
+
225
+ // Wait for media options window to hide
226
+ await (0, _utils.wait)(414);
227
+
228
+ // Draw the frame
229
+ canvasElement.getContext('2d').drawImage(refs.element.current, 0, 0);
230
+
231
+ // Unhide the elements
232
+ elements.forEach(item => item.style.removeProperty('visibility'));
233
+ if (version === 'canvas') return canvasElement;
234
+ const image = canvasElement.toDataURL(type, quality);
235
+ return image;
236
+ }, [type, quality]);
237
+ const make = _react.default.useCallback(async (version = 'image', options = {}) => {
238
+ var _refs$root$current4;
239
+ const rootDocument = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current4 = refs.root.current) === null || _refs$root$current4 === void 0 ? void 0 : _refs$root$current4.ownerDocument) || window.document : undefined;
240
+ refs.element.current = rootDocument.createElement('video');
241
+ let tracks;
242
+ const cleanUp = () => {
243
+ // Stop tracks
244
+ (tracks || []).forEach(item => item.stop());
245
+
246
+ // Unload the element
247
+ refs.element.current = undefined;
314
248
  };
315
- if (!supported)
316
- return null;
317
- const rootDocumentElement = (0, utils_1.isEnvironment)('browser') ? (((_a = refs.root.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) || window.document) : undefined;
318
- return ((0, jsx_runtime_1.jsxs)(Surface, Object.assign({ ref: item => {
319
- if (ref) {
320
- if ((0, utils_1.is)('function', ref))
321
- ref(item);
322
- else
323
- ref.current = item;
324
- }
325
- refs.root.current = item;
326
- }, id: 'onesy-screen-capture', tonal: tonal, color: color, gap: 0, direction: 'column', align: 'center', Component: Line, AdditionalProps: {
327
- Component
328
- }, className: (0, style_react_1.classNames)([
329
- (0, utils_2.staticClassName)('ScreenCapture', theme) && [
330
- 'onesy-ScreenCapture-root'
331
- ],
332
- className,
333
- classes.root
334
- ]) }, other, { children: [(0, jsx_runtime_1.jsxs)(Line, Object.assign({ gap: 1, direction: 'row', align: 'center', justify: 'center' }, { children: [view && ((0, jsx_runtime_1.jsx)(Tooltip, Object.assign({ name: l('View') }, tooltipProps, TooltipProps, { children: (0, jsx_runtime_1.jsx)(IconButton, Object.assign({ onClick: onView, loading: loading.includes('view'), disabled: done.includes('view') }, iconButtonProps, IconButtonProps, { children: done.includes('view') ? (0, jsx_runtime_1.jsx)(Buttons_1.IconDoneAnimated, { add: true, in: true }) : (0, jsx_runtime_1.jsx)(IconView, {}) })) }))), free && ((0, jsx_runtime_1.jsx)(Tooltip, Object.assign({ name: canvas ? l('Save') : l('Free form') }, tooltipProps, TooltipProps, { children: (0, jsx_runtime_1.jsx)(IconButton, Object.assign({ onClick: (event) => canvas ? onFreeSave(event) : onFree(event), loading: loading.includes('free'), disabled: done.includes('free') }, iconButtonProps, IconButtonProps, { children: done.includes('free') ? (0, jsx_runtime_1.jsx)(Buttons_1.IconDoneAnimated, { add: true, in: true }) : canvas ? (0, jsx_runtime_1.jsx)(IconDownload, {}) : (0, jsx_runtime_1.jsx)(IconFree, {}) })) })))] })), (0, jsx_runtime_1.jsx)(TextField, Object.assign({ name: l('Name'), value: name, onChange: onChange }, textFieldProps, TextFieldProps)), canvas && ((0, jsx_runtime_1.jsx)(Portal, Object.assign({ element: rootDocumentElement.body }, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ className: (0, style_react_1.classNames)([
335
- (0, utils_2.staticClassName)('ScreenCapture', theme) && [
336
- 'onesy-ScreenCapture-image-wrapper'
337
- ],
338
- classes.wrapper
339
- ]) }, { children: (0, jsx_runtime_1.jsx)(ImageCrop, Object.assign({ image: canvas, onSelectorChange: onImageCropSelectorChange, TooltipProps: {
340
- portal: false
341
- } }, ImageCropProps)) })) })))] })));
249
+ try {
250
+ refs.element.current.srcObject = await window.navigator.mediaDevices.getDisplayMedia(_objectSpread({
251
+ preferCurrentTab: true
252
+ }, options));
253
+ const mediaStream = refs.element.current.srcObject;
254
+ if (!mediaStream) throw new Error('No media stream');
255
+
256
+ // Required to work
257
+ await refs.element.current.play();
258
+ tracks = mediaStream.getVideoTracks();
259
+ const track = tracks[0];
260
+ const value = await trackToValue(track, version);
261
+
262
+ // Clean up
263
+ cleanUp();
264
+ return value;
265
+ } catch (error) {
266
+ console.log('ScreenCapture make', error);
267
+
268
+ // Clean up
269
+ cleanUp();
270
+ }
271
+ }, []);
272
+ const onView = _react.default.useCallback(async event => {
273
+ setLoading(items => [...items, 'view']);
274
+ try {
275
+ const image = await make();
276
+ (0, _utils.download)(name, image);
277
+ } catch (error) {
278
+ console.log('onView', error);
279
+ }
280
+ setLoading(items => items.filter(item => item !== 'view'));
281
+ setDone(items => [...items, 'view']);
282
+ setTimeout(() => {
283
+ setDone(items => items.filter(item => item !== 'view'));
284
+ }, 1400);
285
+ if ((0, _utils.is)('function', onView_)) onView_(event);
286
+ }, [name, make]);
287
+
288
+ // const onEntirePage = async (event: React.MouseEvent<any>) => {
289
+ // setLoading(items => [...items, 'entirePage']);
290
+
291
+ // try {
292
+ // const rootDocument = isEnvironment('browser') ? (refs.root.current?.ownerDocument || window.document) : undefined;
293
+
294
+ // await elementToCanvas(rootDocument.body, {
295
+ // response: 'download',
296
+
297
+ // filter: ['.onesy-Widgets-root', '#onesy-screen-capture'],
298
+
299
+ // download: {
300
+ // name,
301
+ // type,
302
+ // quality
303
+ // }
304
+ // });
305
+ // }
306
+ // catch (error) {
307
+ // console.log('onEntirePage', error);
308
+ // }
309
+
310
+ // setLoading(items => items.filter(item => item !== 'entirePage'));
311
+
312
+ // setDone(items => [...items, 'entirePage']);
313
+
314
+ // setTimeout(() => {
315
+ // setDone(items => items.filter(item => item !== 'entirePage'));
316
+ // }, 1400);
317
+
318
+ // if (is('function', onEntirePage_)) onEntirePage_(event);
319
+ // };
320
+
321
+ const onFree = async event => {
322
+ setLoading(items => [...items, 'free']);
323
+
324
+ // Update canvas
325
+ try {
326
+ const valueCanvas = await make('canvas');
327
+ setCanvas(valueCanvas);
328
+ } catch (error) {
329
+ console.log('onFree', error);
330
+ }
331
+ setLoading(items => items.filter(item => item !== 'free'));
332
+ if ((0, _utils.is)('function', onFree_)) onFree_(event);
333
+ };
334
+ const onFreeSave = event => {
335
+ // Crop the canvas
336
+ const valueCanvas = (0, _utils.canvasCrop)(refs.canvas.current, refs.canvasSelectorValue.current.left, refs.canvasSelectorValue.current.top, refs.canvasSelectorValue.current.width, refs.canvasSelectorValue.current.height);
337
+
338
+ // Download the image from canvas datauri
339
+ // of the image type and quality, name
340
+ const uri = valueCanvas.toDataURL(type, quality);
341
+ (0, _utils.download)(name, uri, type);
342
+
343
+ // Clear the image
344
+ setCanvas('');
345
+ setDone(items => [...items, 'free']);
346
+ setTimeout(() => {
347
+ setDone(items => items.filter(item => item !== 'free'));
348
+ }, 1400);
349
+ if ((0, _utils.is)('function', onFreeSave_)) onFreeSave_(event);
350
+ };
351
+ const onFreeClose = event => {
352
+ // Clear the image
353
+ setCanvas('');
354
+ if ((0, _utils.is)('function', onFreeClose_)) onFreeClose_(event);
355
+ };
356
+ const onImageCropSelectorChange = _react.default.useCallback(values => {
357
+ setCanvasSelectorValue(values);
358
+ }, []);
359
+ const iconButtonProps = {
360
+ tonal,
361
+ color: 'inherit',
362
+ elevation: false
363
+ };
364
+ const textFieldProps = {
365
+ tonal,
366
+ color: 'inherit',
367
+ version: 'text',
368
+ size: 'small',
369
+ fullWidth: true
370
+ };
371
+ const tooltipProps = {
372
+ position: 'top',
373
+ portal: false,
374
+ interactive: false
375
+ };
376
+ if (!supported) return null;
377
+ const rootDocumentElement = (0, _utils.isEnvironment)('browser') ? ((_refs$root$current5 = refs.root.current) === null || _refs$root$current5 === void 0 ? void 0 : _refs$root$current5.ownerDocument) || window.document : undefined;
378
+ return /*#__PURE__*/_react.default.createElement(Surface, (0, _extends2.default)({
379
+ ref: item => {
380
+ if (ref) {
381
+ if ((0, _utils.is)('function', ref)) ref(item);else ref.current = item;
382
+ }
383
+ refs.root.current = item;
384
+ },
385
+ id: "onesy-screen-capture",
386
+ tonal: tonal,
387
+ color: color,
388
+ gap: 0,
389
+ direction: "column",
390
+ align: "center",
391
+ Component: Line,
392
+ AdditionalProps: {
393
+ Component
394
+ },
395
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('ScreenCapture', theme) && ['onesy-ScreenCapture-root'], className, classes.root])
396
+ }, other), /*#__PURE__*/_react.default.createElement(Line, {
397
+ gap: 1,
398
+ direction: "row",
399
+ align: "center",
400
+ justify: "center"
401
+ }, view && /*#__PURE__*/_react.default.createElement(Tooltip, (0, _extends2.default)({
402
+ name: l('View')
403
+ }, tooltipProps, TooltipProps), /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({
404
+ onClick: onView,
405
+ loading: loading.includes('view'),
406
+ disabled: done.includes('view')
407
+ }, iconButtonProps, IconButtonProps), done.includes('view') ? /*#__PURE__*/_react.default.createElement(_Buttons.IconDoneAnimated, {
408
+ add: true,
409
+ in: true
410
+ }) : /*#__PURE__*/_react.default.createElement(IconView, null))), free && /*#__PURE__*/_react.default.createElement(Tooltip, (0, _extends2.default)({
411
+ name: canvas ? l('Save') : l('Free form')
412
+ }, tooltipProps, TooltipProps), /*#__PURE__*/_react.default.createElement(IconButton, (0, _extends2.default)({
413
+ onClick: event => canvas ? onFreeSave(event) : onFree(event),
414
+ loading: loading.includes('free'),
415
+ disabled: done.includes('free')
416
+ }, iconButtonProps, IconButtonProps), done.includes('free') ? /*#__PURE__*/_react.default.createElement(_Buttons.IconDoneAnimated, {
417
+ add: true,
418
+ in: true
419
+ }) : canvas ? /*#__PURE__*/_react.default.createElement(IconDownload, null) : /*#__PURE__*/_react.default.createElement(IconFree, null)))), /*#__PURE__*/_react.default.createElement(TextField, (0, _extends2.default)({
420
+ name: l('Name'),
421
+ value: name,
422
+ onChange: onChange
423
+ }, textFieldProps, TextFieldProps)), canvas && /*#__PURE__*/_react.default.createElement(Portal, {
424
+ element: rootDocumentElement.body
425
+ }, /*#__PURE__*/_react.default.createElement("div", {
426
+ className: (0, _styleReact.classNames)([(0, _utils2.staticClassName)('ScreenCapture', theme) && ['onesy-ScreenCapture-image-wrapper'], classes.wrapper])
427
+ }, /*#__PURE__*/_react.default.createElement(ImageCrop, (0, _extends2.default)({
428
+ image: canvas,
429
+ onSelectorChange: onImageCropSelectorChange,
430
+ TooltipProps: {
431
+ portal: false
432
+ }
433
+ }, ImageCropProps)))));
342
434
  });
343
435
  ScreenCapture.displayName = 'onesy-ScreenCapture';
344
- exports.default = ScreenCapture;
436
+ var _default = exports.default = ScreenCapture;