@edifice.io/react 2.0.0-develop-rc.12 → 2.0.0-develop-rc.13

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 (879) hide show
  1. package/README.md +88 -17
  2. package/dist/common/OnboardingModal/OnboardingModal.js +59 -0
  3. package/dist/common/OnboardingModal/useOnboardingModal.js +30 -0
  4. package/dist/{modules/modals → common}/PublishModal/PublishModal.d.ts +1 -1
  5. package/dist/common/PublishModal/PublishModal.js +120 -0
  6. package/dist/common/PublishModal/components/ActivitiesDropdown.js +29 -0
  7. package/dist/common/PublishModal/components/AgeSelect.js +20 -0
  8. package/dist/common/PublishModal/components/LangSelect.js +19 -0
  9. package/dist/common/PublishModal/components/PublishModalFooter.js +23 -0
  10. package/dist/common/PublishModal/components/SubjectsDropdown.js +29 -0
  11. package/dist/common/PublishModal/components/ToastError.js +24 -0
  12. package/dist/{modules/modals → common}/PublishModal/components/ToastSuccess.d.ts +1 -1
  13. package/dist/common/PublishModal/components/ToastSuccess.js +18 -0
  14. package/dist/common/PublishModal/constants/ageOptions.js +4 -0
  15. package/dist/{modules/modals → common}/PublishModal/hooks/useActivitiesOptions.js +4 -5
  16. package/dist/common/PublishModal/hooks/useLanguageOptions.js +43 -0
  17. package/dist/{modules/modals → common}/PublishModal/hooks/usePublishModal.d.ts +1 -1
  18. package/dist/common/PublishModal/hooks/usePublishModal.js +106 -0
  19. package/dist/{modules/modals → common}/PublishModal/hooks/useSubjectsOptions.js +41 -42
  20. package/dist/{modules/modals → common}/ResourceModal/ResourceModal.d.ts +3 -3
  21. package/dist/common/ResourceModal/ResourceModal.js +156 -0
  22. package/dist/{modules/modals → common}/ResourceModal/apps/BlogPublic.d.ts +2 -2
  23. package/dist/common/ResourceModal/apps/BlogPublic.js +62 -0
  24. package/dist/{modules/modals → common}/ResourceModal/hooks/useSlug.d.ts +1 -1
  25. package/dist/common/ResourceModal/hooks/useSlug.js +41 -0
  26. package/dist/{modules/modals → common}/ResourceModal/hooks/useThumb.d.ts +1 -1
  27. package/dist/common/ResourceModal/hooks/useThumb.js +17 -0
  28. package/dist/{modules/modals → common}/ResourceModal/hooks/useUpdateMutation.d.ts +3 -3
  29. package/dist/common/ResourceModal/hooks/useUpdateMutation.js +12 -0
  30. package/dist/common/ResourceModal/index.d.ts +3 -0
  31. package/dist/common/ShareModal/ShareBookmark.js +22 -0
  32. package/dist/{modules/modals → common}/ShareModal/ShareBookmarkLine.d.ts +1 -1
  33. package/dist/common/ShareModal/ShareBookmarkLine.js +42 -0
  34. package/dist/{modules/modals → common}/ShareModal/ShareModal.d.ts +2 -2
  35. package/dist/common/ShareModal/ShareModal.js +128 -0
  36. package/dist/common/ShareModal/apps/ShareBlog.d.ts +8 -0
  37. package/dist/common/ShareModal/apps/ShareBlog.js +43 -0
  38. package/dist/{modules/modals → common}/ShareModal/hooks/useSearch.d.ts +2 -2
  39. package/dist/common/ShareModal/hooks/useSearch.js +178 -0
  40. package/dist/{modules/modals → common}/ShareModal/hooks/useShare.d.ts +1 -1
  41. package/dist/common/ShareModal/hooks/useShare.js +192 -0
  42. package/dist/{modules/modals → common}/ShareModal/hooks/useShareBookmark.d.ts +1 -1
  43. package/dist/common/ShareModal/hooks/useShareBookmark.js +67 -0
  44. package/dist/{modules/modals → common}/ShareModal/hooks/useShareMutation.d.ts +3 -3
  45. package/dist/common/ShareModal/hooks/useShareMutation.js +15 -0
  46. package/dist/common/ShareModal/index.d.ts +3 -0
  47. package/dist/{modules/modals → common}/ShareModal/utils/hasRight.d.ts +1 -1
  48. package/dist/common/ShareModal/utils/hasRight.js +4 -0
  49. package/dist/{modules/modals → common}/ShareModal/utils/showShareRightLine.d.ts +1 -1
  50. package/dist/common/ShareModal/utils/showShareRightLine.js +4 -0
  51. package/dist/components/ActionBar/ActionBar.d.ts +1 -1
  52. package/dist/components/ActionBar/ActionBar.js +6 -8
  53. package/dist/components/ActionBar/index.d.ts +1 -0
  54. package/dist/components/Alert/Alert.d.ts +1 -1
  55. package/dist/components/Alert/Alert.js +60 -62
  56. package/dist/components/Alert/index.d.ts +1 -0
  57. package/dist/components/AppHeader/AppHeader.d.ts +1 -1
  58. package/dist/components/AppHeader/AppHeader.js +18 -20
  59. package/dist/components/AppHeader/index.d.ts +1 -0
  60. package/dist/components/AppIcon/AppIcon.d.ts +1 -1
  61. package/dist/components/AppIcon/AppIcon.js +44 -45
  62. package/dist/components/Attachment/Attachment.d.ts +1 -1
  63. package/dist/components/Attachment/Attachment.js +13 -15
  64. package/dist/components/Attachment/index.d.ts +1 -0
  65. package/dist/{modules/audience → components/Audience}/ReactionChoice.d.ts +1 -1
  66. package/dist/components/Audience/ReactionChoice.js +33 -0
  67. package/dist/{modules/audience → components/Audience}/ReactionModal.Card.d.ts +1 -1
  68. package/dist/components/Audience/ReactionModal.Card.js +33 -0
  69. package/dist/{modules/audience → components/Audience}/ReactionModal.d.ts +1 -1
  70. package/dist/components/Audience/ReactionModal.js +73 -0
  71. package/dist/{modules/audience → components/Audience}/ReactionSummary.d.ts +1 -1
  72. package/dist/components/Audience/ReactionSummary.js +27 -0
  73. package/dist/{modules/audience → components/Audience}/ViewsByProfileCard.d.ts +1 -1
  74. package/dist/components/Audience/ViewsByProfileCard.js +36 -0
  75. package/dist/components/Audience/ViewsCounter.js +18 -0
  76. package/dist/{modules/audience → components/Audience}/ViewsModal.d.ts +1 -1
  77. package/dist/components/Audience/ViewsModal.js +40 -0
  78. package/dist/{modules/audience → components/Audience}/hooks/useReactionIcons.d.ts +1 -1
  79. package/dist/components/Audience/hooks/useReactionIcons.js +38 -0
  80. package/dist/{modules/audience → components/Audience}/hooks/useReactions.d.ts +3 -3
  81. package/dist/components/Audience/hooks/useReactions.js +35 -0
  82. package/dist/{modules/audience → components/Audience}/hooks/useViews.d.ts +2 -2
  83. package/dist/components/Avatar/Avatar.d.ts +1 -1
  84. package/dist/components/Avatar/Avatar.js +27 -29
  85. package/dist/components/Avatar/index.d.ts +1 -0
  86. package/dist/components/Badge/Badge.d.ts +1 -1
  87. package/dist/components/Badge/Badge.js +20 -22
  88. package/dist/components/Badge/index.d.ts +1 -0
  89. package/dist/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  90. package/dist/components/Breadcrumb/Breadcrumb.js +23 -24
  91. package/dist/components/Breadcrumb/BreadcrumbItem.js +11 -12
  92. package/dist/components/Breadcrumb/BreadcrumbList.js +10 -11
  93. package/dist/components/Breadcrumb/BreadcrumbNav.d.ts +1 -1
  94. package/dist/components/Breadcrumb/BreadcrumbNav.js +15 -16
  95. package/dist/components/Button/Button.d.ts +1 -1
  96. package/dist/components/Button/Button.js +32 -34
  97. package/dist/components/Button/IconButton.d.ts +1 -1
  98. package/dist/components/Button/IconButton.js +15 -17
  99. package/dist/components/Button/SearchButton.d.ts +1 -1
  100. package/dist/components/Button/SearchButton.js +15 -17
  101. package/dist/components/Button/index.d.ts +3 -0
  102. package/dist/components/Card/Card.d.ts +4 -4
  103. package/dist/components/Card/Card.js +47 -49
  104. package/dist/components/Card/CardBody.d.ts +1 -1
  105. package/dist/components/Card/CardBody.js +13 -14
  106. package/dist/components/Card/CardContext.d.ts +1 -1
  107. package/dist/components/Card/CardContext.js +7 -8
  108. package/dist/components/Card/CardFooter.js +5 -6
  109. package/dist/components/Card/CardHeader.js +14 -15
  110. package/dist/components/Card/CardImage.d.ts +1 -1
  111. package/dist/components/Card/CardImage.js +13 -14
  112. package/dist/components/Card/CardText.js +8 -9
  113. package/dist/components/Card/CardTitle.js +8 -9
  114. package/dist/components/Card/CardUser.js +8 -9
  115. package/dist/components/Card/index.d.ts +1 -0
  116. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  117. package/dist/components/Checkbox/Checkbox.js +30 -32
  118. package/dist/components/Checkbox/index.d.ts +1 -0
  119. package/dist/components/ColorPicker/ColorPalette.js +4 -5
  120. package/dist/components/ColorPicker/ColorPicker.d.ts +1 -1
  121. package/dist/components/ColorPicker/ColorPicker.js +28 -30
  122. package/dist/components/ColorPicker/ColorPickerItem.d.ts +1 -1
  123. package/dist/components/ColorPicker/ColorPickerItem.js +11 -13
  124. package/dist/components/ColorPicker/index.d.ts +3 -1
  125. package/dist/components/Combobox/Combobox.d.ts +1 -1
  126. package/dist/components/Combobox/Combobox.js +35 -36
  127. package/dist/components/Combobox/ComboboxTrigger.js +21 -22
  128. package/dist/components/Combobox/index.d.ts +1 -0
  129. package/dist/components/Dropdown/Dropdown.d.ts +1 -1
  130. package/dist/components/Dropdown/Dropdown.js +55 -57
  131. package/dist/components/Dropdown/DropdownCheckboxItem.js +26 -27
  132. package/dist/components/Dropdown/DropdownContext.js +7 -8
  133. package/dist/components/Dropdown/DropdownItem.js +27 -28
  134. package/dist/components/Dropdown/DropdownMenu.js +21 -22
  135. package/dist/components/Dropdown/DropdownMenuGroup.js +9 -10
  136. package/dist/components/Dropdown/DropdownRadioItem.js +26 -27
  137. package/dist/components/Dropdown/DropdownSeparator.js +3 -4
  138. package/dist/components/Dropdown/DropdownTrigger.js +28 -29
  139. package/dist/components/Dropdown/index.d.ts +1 -0
  140. package/dist/components/Dropzone/Dropzone.d.ts +1 -1
  141. package/dist/components/Dropzone/Dropzone.js +47 -48
  142. package/dist/components/Dropzone/DropzoneContext.js +8 -9
  143. package/dist/components/Dropzone/DropzoneDrag.js +7 -8
  144. package/dist/components/Dropzone/DropzoneFile.js +25 -26
  145. package/dist/components/Dropzone/DropzoneImport.js +20 -21
  146. package/dist/components/Dropzone/index.d.ts +1 -0
  147. package/dist/components/EmptyScreen/EmptyScreen.d.ts +1 -1
  148. package/dist/components/EmptyScreen/EmptyScreen.js +16 -18
  149. package/dist/components/EmptyScreen/index.d.ts +1 -0
  150. package/dist/components/FileCard/FileCard.d.ts +2 -2
  151. package/dist/components/FileCard/FileCard.js +37 -39
  152. package/dist/components/FileCard/FileIcon.d.ts +1 -1
  153. package/dist/components/FileCard/FileIcon.js +11 -12
  154. package/dist/components/FileCard/index.d.ts +1 -0
  155. package/dist/components/Form/FormContext.js +7 -8
  156. package/dist/components/Form/FormControl.d.ts +1 -1
  157. package/dist/components/Form/FormControl.js +30 -32
  158. package/dist/components/Form/FormText.d.ts +1 -1
  159. package/dist/components/Form/FormText.js +12 -14
  160. package/dist/components/Form/index.d.ts +2 -1
  161. package/dist/components/Grid/Grid.js +27 -28
  162. package/dist/components/Heading/Heading.d.ts +1 -1
  163. package/dist/components/Heading/Heading.js +14 -16
  164. package/dist/components/Heading/index.d.ts +1 -0
  165. package/dist/components/Image/Image.d.ts +1 -1
  166. package/dist/components/Image/Image.js +39 -41
  167. package/dist/components/Image/index.d.ts +1 -0
  168. package/dist/components/ImagePicker/ImagePicker.d.ts +1 -1
  169. package/dist/components/ImagePicker/ImagePicker.js +51 -52
  170. package/dist/components/Input/Input.d.ts +1 -1
  171. package/dist/components/Input/Input.js +28 -30
  172. package/dist/components/Input/index.d.ts +1 -0
  173. package/dist/components/Label/Label.d.ts +1 -1
  174. package/dist/components/Label/Label.js +30 -32
  175. package/dist/components/Label/index.d.ts +1 -0
  176. package/dist/components/Loading/Loading.d.ts +1 -1
  177. package/dist/components/Loading/Loading.js +23 -25
  178. package/dist/components/Loading/index.d.ts +1 -0
  179. package/dist/components/LoadingScreen/LoadingScreen.d.ts +1 -1
  180. package/dist/components/LoadingScreen/LoadingScreen.js +20 -22
  181. package/dist/components/LoadingScreen/index.d.ts +1 -1
  182. package/dist/components/Logo/Logo.d.ts +1 -1
  183. package/dist/components/Logo/Logo.js +12 -14
  184. package/dist/components/Logo/index.d.ts +1 -0
  185. package/dist/components/Menu/Menu.js +39 -40
  186. package/dist/components/Menu/MenuButton.js +17 -18
  187. package/dist/components/Menu/MenuContext.js +8 -9
  188. package/dist/components/Menu/MenuItem.js +14 -15
  189. package/dist/components/Modal/Modal.d.ts +4 -1
  190. package/dist/components/Modal/Modal.js +49 -51
  191. package/dist/components/Modal/ModalBody.js +11 -12
  192. package/dist/components/Modal/ModalContext.js +8 -9
  193. package/dist/components/Modal/ModalFooter.js +3 -4
  194. package/dist/components/Modal/ModalHeader.js +22 -23
  195. package/dist/components/Modal/ModalSubtitle.js +3 -4
  196. package/dist/components/Modal/index.d.ts +1 -0
  197. package/dist/components/Popover/Popover.js +33 -34
  198. package/dist/components/Radio/Radio.d.ts +1 -1
  199. package/dist/components/Radio/Radio.js +26 -28
  200. package/dist/components/Radio/index.d.ts +1 -0
  201. package/dist/components/SearchBar/SearchBar.d.ts +1 -1
  202. package/dist/components/SearchBar/SearchBar.js +29 -31
  203. package/dist/components/SearchBar/index.d.ts +1 -0
  204. package/dist/components/Select/Select.d.ts +1 -1
  205. package/dist/components/Select/Select.js +31 -33
  206. package/dist/components/Select/SelectTrigger.js +4 -5
  207. package/dist/components/Select/index.d.ts +1 -0
  208. package/dist/components/Table/Table.components.d.ts +20 -0
  209. package/dist/components/Table/Table.components.js +39 -0
  210. package/dist/components/Table/Table.d.ts +33 -0
  211. package/dist/components/Table/Table.js +16 -0
  212. package/dist/components/Table/TableExplorer.d.ts +1 -1
  213. package/dist/components/Table/index.d.ts +2 -1
  214. package/dist/components/Tabs/Tabs.d.ts +1 -1
  215. package/dist/components/Tabs/Tabs.js +58 -59
  216. package/dist/components/Tabs/TabsContext.js +8 -9
  217. package/dist/components/Tabs/TabsItem.js +20 -21
  218. package/dist/components/Tabs/TabsList.js +18 -19
  219. package/dist/components/Tabs/TabsPanel.js +9 -10
  220. package/dist/components/Tabs/index.d.ts +1 -0
  221. package/dist/components/TextArea/TextArea.d.ts +1 -1
  222. package/dist/components/TextArea/TextArea.js +31 -33
  223. package/dist/components/TextArea/TextareaCounter.js +6 -7
  224. package/dist/components/TextArea/index.d.ts +1 -0
  225. package/dist/components/Toolbar/Toolbar.d.ts +1 -1
  226. package/dist/components/Toolbar/Toolbar.js +60 -62
  227. package/dist/components/Toolbar/index.d.ts +1 -0
  228. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  229. package/dist/components/Tooltip/Tooltip.js +28 -30
  230. package/dist/components/Tooltip/index.d.ts +1 -0
  231. package/dist/components/TreeView/TreeItem.js +46 -47
  232. package/dist/components/TreeView/TreeView.d.ts +1 -1
  233. package/dist/components/TreeView/TreeView.js +33 -35
  234. package/dist/components/TreeView/hooks/useTreeItemEvents.js +18 -19
  235. package/dist/components/TreeView/index.d.ts +1 -0
  236. package/dist/components/UploadCard/UploadCard.js +52 -53
  237. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  238. package/dist/components/VisuallyHidden/VisuallyHidden.js +6 -8
  239. package/dist/components/VisuallyHidden/index.d.ts +1 -1
  240. package/dist/components/index.d.ts +1 -1
  241. package/dist/core/OdeClientProvider/OdeClientProvider.d.ts +1 -1
  242. package/dist/core/OdeClientProvider/OdeClientProvider.js +44 -45
  243. package/dist/core/ThemeProvider/ThemeProvider.d.ts +1 -1
  244. package/dist/core/ThemeProvider/ThemeProvider.js +36 -36
  245. package/dist/core/index.d.ts +1 -0
  246. package/dist/core/useAvatar/useAvatar.d.ts +1 -1
  247. package/dist/core/useAvatar/useAvatar.js +21 -22
  248. package/dist/core/useBookmark/useBookmark.d.ts +1 -1
  249. package/dist/core/useBookmark/useBookmark.js +9 -10
  250. package/dist/core/useCantoo/index.d.ts +1 -0
  251. package/dist/core/useCantoo/useCantoo.d.ts +1 -0
  252. package/dist/core/useCantoo/useCantoo.js +18 -0
  253. package/dist/core/useConf/useConf.d.ts +1 -1
  254. package/dist/core/useConf/useConf.js +7 -8
  255. package/dist/core/useConversation/useConversation.js +29 -30
  256. package/dist/core/useCookiesConsent/useCookiesConsent.js +16 -17
  257. package/dist/core/useDate/useDate.js +35 -36
  258. package/dist/core/useHasWorkflow/useHasWorkflow.js +15 -16
  259. package/dist/core/useHeader/useHeader.d.ts +1 -1
  260. package/dist/core/useHeader/useHeader.js +45 -42
  261. package/dist/core/useHttpErrorToast/useHttpErrorToast.js +17 -18
  262. package/dist/core/useIsAdml/useIsAdml.js +11 -12
  263. package/dist/core/useLibraryUrl/useLibraryUrl.js +16 -17
  264. package/dist/core/useMediaLibrary/useMediaLibrary.d.ts +2 -2
  265. package/dist/core/useMediaLibrary/useMediaLibrary.js +32 -33
  266. package/dist/core/useOdeIcons/useOdeIcons.d.ts +1 -1
  267. package/dist/core/useOdeIcons/useOdeIcons.js +37 -38
  268. package/dist/core/usePaths/usePaths.js +2 -3
  269. package/dist/core/usePreferences/usePreferences.js +5 -6
  270. package/dist/core/useResource/useResource.d.ts +1 -1
  271. package/dist/core/useResource/useResource.js +14 -15
  272. package/dist/core/useResourceSearch/useResourceSearch.d.ts +1 -1
  273. package/dist/core/useResourceSearch/useResourceSearch.js +22 -23
  274. package/dist/core/useSession/useSession.js +6 -7
  275. package/dist/core/useTrashedResource/useTrashedResource.js +18 -19
  276. package/dist/core/useUpload/useUpload.d.ts +1 -1
  277. package/dist/core/useUpload/useUpload.js +68 -69
  278. package/dist/core/useUploadFiles/useUploadFiles.d.ts +1 -1
  279. package/dist/core/useUploadFiles/useUploadFiles.js +82 -83
  280. package/dist/core/useUser/useUser.d.ts +1 -1
  281. package/dist/core/useUser/useUser.js +15 -16
  282. package/dist/core/useWorkspaceFile/useWorkspaceFile.d.ts +1 -1
  283. package/dist/core/useWorkspaceFile/useWorkspaceFile.js +31 -32
  284. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.d.ts +1 -1
  285. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js +41 -42
  286. package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js +17 -18
  287. package/dist/core/useZendeskGuide/useZendeskGuide.js +46 -47
  288. package/dist/hooks/useBrowserInfo/useBrowserInfo.js +11 -12
  289. package/dist/hooks/useClickOutside/useClickOutside.js +18 -19
  290. package/dist/hooks/useDebounce/useDebounce.js +10 -11
  291. package/dist/hooks/useDropdown/useDropdown.d.ts +1 -1
  292. package/dist/hooks/useDropdown/useDropdown.js +96 -97
  293. package/dist/hooks/useDropzone/useDropzone.js +53 -54
  294. package/dist/hooks/useHover/useHover.js +14 -15
  295. package/dist/hooks/useImage/useImage.js +13 -14
  296. package/dist/hooks/useImageResizer/useImageResizer.js +31 -32
  297. package/dist/hooks/useKeyPress/useKeyPress.js +10 -11
  298. package/dist/hooks/useScrollToTop/useScrollToTop.js +4 -5
  299. package/dist/hooks/useThumbnail/useThumbnail.js +21 -22
  300. package/dist/hooks/useTitle/useTitle.js +7 -8
  301. package/dist/hooks/useToast/useToast.js +25 -26
  302. package/dist/hooks/useToggle/useToggle.js +6 -7
  303. package/dist/hooks/useTrapFocus/useTrapFocus.js +11 -12
  304. package/dist/index.d.ts +3 -1
  305. package/dist/index.js +274 -226
  306. package/dist/{modules/multimedia → multimedia}/AudioRecorder/AudioRecorder.d.ts +1 -1
  307. package/dist/multimedia/AudioRecorder/AudioRecorder.js +49 -0
  308. package/dist/multimedia/AudioRecorder/AudioRecorderTimer.js +24 -0
  309. package/dist/{modules/multimedia → multimedia}/AudioRecorder/useAudioRecorder.d.ts +2 -2
  310. package/dist/multimedia/AudioRecorder/useAudioRecorder.js +307 -0
  311. package/dist/multimedia/Embed/Embed.js +32 -0
  312. package/dist/multimedia/ImageEditor/components/ImageEditor.js +116 -0
  313. package/dist/multimedia/ImageEditor/components/ImageEditorToolbar.js +69 -0
  314. package/dist/multimedia/ImageEditor/effects/blur.js +72 -0
  315. package/dist/multimedia/ImageEditor/effects/crop.js +155 -0
  316. package/dist/multimedia/ImageEditor/effects/misc.js +162 -0
  317. package/dist/multimedia/ImageEditor/effects/resize.js +157 -0
  318. package/dist/multimedia/ImageEditor/effects/rotate.js +33 -0
  319. package/dist/multimedia/ImageEditor/hooks/useHistoryTool.js +66 -0
  320. package/dist/multimedia/ImageEditor/hooks/useImageEditor.js +76 -0
  321. package/dist/multimedia/ImageEditor/hooks/useImageEffects.js +52 -0
  322. package/dist/multimedia/ImageEditor/utils/aggregate.js +13 -0
  323. package/dist/{modules/multimedia → multimedia}/ImagePickerWorkspace/ImagePickerWorkspace.d.ts +1 -1
  324. package/dist/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js +39 -0
  325. package/dist/multimedia/Linker/ExternalLinker.js +45 -0
  326. package/dist/{modules/multimedia → multimedia}/Linker/InternalLinker.d.ts +1 -1
  327. package/dist/multimedia/Linker/InternalLinker.js +114 -0
  328. package/dist/{modules/multimedia → multimedia}/LinkerCard/LinkerCard.d.ts +3 -3
  329. package/dist/multimedia/LinkerCard/LinkerCard.js +38 -0
  330. package/dist/multimedia/LinkerCard/index.d.ts +2 -0
  331. package/dist/{modules/multimedia → multimedia}/MediaLibrary/MediaLibrary.d.ts +2 -2
  332. package/dist/multimedia/MediaLibrary/MediaLibrary.js +211 -0
  333. package/dist/{modules/multimedia → multimedia}/MediaLibrary/MediaLibraryContext.d.ts +2 -2
  334. package/dist/multimedia/MediaLibrary/MediaLibraryContext.js +12 -0
  335. package/dist/multimedia/MediaLibrary/innertabs/Audio.js +19 -0
  336. package/dist/multimedia/MediaLibrary/innertabs/ExternalLink.js +17 -0
  337. package/dist/multimedia/MediaLibrary/innertabs/Iframe.js +14 -0
  338. package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/InternalLink.d.ts +1 -1
  339. package/dist/multimedia/MediaLibrary/innertabs/InternalLink.js +35 -0
  340. package/dist/multimedia/MediaLibrary/innertabs/Upload.js +34 -0
  341. package/dist/multimedia/MediaLibrary/innertabs/Video.js +22 -0
  342. package/dist/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +14 -0
  343. package/dist/multimedia/MediaLibrary/innertabs/Workspace.js +31 -0
  344. package/dist/multimedia/MediaLibrary/innertabs/index.js +21 -0
  345. package/dist/{modules/multimedia → multimedia}/UploadFiles/UploadFiles.d.ts +1 -1
  346. package/dist/multimedia/UploadFiles/UploadFiles.js +56 -0
  347. package/dist/multimedia/VideoEmbed/VideoEmbed.js +77 -0
  348. package/dist/{modules/multimedia → multimedia}/VideoRecorder/VideoRecorder.d.ts +1 -1
  349. package/dist/multimedia/VideoRecorder/VideoRecorder.js +259 -0
  350. package/dist/{modules/multimedia → multimedia}/Workspace/Workspace.d.ts +1 -1
  351. package/dist/multimedia/Workspace/Workspace.js +169 -0
  352. package/dist/portal/Header/Badge.js +5 -6
  353. package/dist/portal/Header/Header.js +138 -138
  354. package/dist/portal/Header/NavItem.js +11 -12
  355. package/dist/portal/Header/NavLink.js +14 -15
  356. package/dist/portal/Header/Navbar.js +9 -10
  357. package/dist/portal/Header/NavbarNav.js +9 -10
  358. package/dist/portal/Header/WidgetApps.d.ts +1 -1
  359. package/dist/portal/Header/WidgetApps.js +16 -17
  360. package/dist/portal/Help/Help.js +18 -19
  361. package/dist/portal/Help/hooks/useHelp.js +63 -64
  362. package/dist/portal/Layout/Layout.js +36 -36
  363. package/dist/portal/SearchEngine/SearchEngine.js +25 -26
  364. package/dist/utils/MockedDataProvider/MockedDataProvider.d.ts +1 -1
  365. package/dist/utils/MockedDataProvider/MockedDataProvider.js +21 -22
  366. package/dist/utils/StringUtils.js +8 -9
  367. package/dist/utils/addTimestampToUrl.js +4 -5
  368. package/dist/utils/blob.js +9 -10
  369. package/dist/utils/checkUserRight.d.ts +1 -1
  370. package/dist/utils/checkUserRight.js +27 -28
  371. package/dist/utils/fileSize.js +5 -6
  372. package/dist/utils/findTreeNode.js +7 -8
  373. package/dist/utils/isActionAvailable.d.ts +1 -1
  374. package/dist/utils/isActionAvailable.js +4 -5
  375. package/dist/utils/libraryMaps.js +2 -3
  376. package/dist/utils/noop.js +2 -3
  377. package/dist/utils/ref.js +8 -9
  378. package/dist/utils/thumbnail.js +3 -4
  379. package/dist/utils/time.js +7 -8
  380. package/dist/utils/treeview.d.ts +1 -1
  381. package/dist/utils/treeview.js +96 -97
  382. package/dist/utils/video.js +2 -3
  383. package/dist/widgets/BookmarkedApps/BookmarkedApps.d.ts +1 -1
  384. package/dist/widgets/BookmarkedApps/BookmarkedApps.js +6 -7
  385. package/dist/widgets/Widget/Widget.js +18 -19
  386. package/package.json +27 -58
  387. package/dist/audience.js +0 -17
  388. package/dist/audience.js.map +0 -1
  389. package/dist/components/ActionBar/ActionBar.js.map +0 -1
  390. package/dist/components/Alert/Alert.js.map +0 -1
  391. package/dist/components/AppHeader/AppHeader.js.map +0 -1
  392. package/dist/components/AppIcon/AppIcon.js.map +0 -1
  393. package/dist/components/Attachment/Attachment.js.map +0 -1
  394. package/dist/components/Avatar/Avatar.js.map +0 -1
  395. package/dist/components/Badge/Badge.js.map +0 -1
  396. package/dist/components/Breadcrumb/Breadcrumb.js.map +0 -1
  397. package/dist/components/Breadcrumb/BreadcrumbItem.js.map +0 -1
  398. package/dist/components/Breadcrumb/BreadcrumbList.js.map +0 -1
  399. package/dist/components/Breadcrumb/BreadcrumbNav.js.map +0 -1
  400. package/dist/components/Button/Button.js.map +0 -1
  401. package/dist/components/Button/IconButton.js.map +0 -1
  402. package/dist/components/Button/SearchButton.js.map +0 -1
  403. package/dist/components/Card/Card.js.map +0 -1
  404. package/dist/components/Card/CardBody.js.map +0 -1
  405. package/dist/components/Card/CardContext.js.map +0 -1
  406. package/dist/components/Card/CardFooter.js.map +0 -1
  407. package/dist/components/Card/CardHeader.js.map +0 -1
  408. package/dist/components/Card/CardImage.js.map +0 -1
  409. package/dist/components/Card/CardText.js.map +0 -1
  410. package/dist/components/Card/CardTitle.js.map +0 -1
  411. package/dist/components/Card/CardUser.js.map +0 -1
  412. package/dist/components/Checkbox/Checkbox.js.map +0 -1
  413. package/dist/components/ColorPicker/ColorPalette.js.map +0 -1
  414. package/dist/components/ColorPicker/ColorPicker.js.map +0 -1
  415. package/dist/components/ColorPicker/ColorPickerItem.js.map +0 -1
  416. package/dist/components/Combobox/Combobox.js.map +0 -1
  417. package/dist/components/Combobox/ComboboxTrigger.js.map +0 -1
  418. package/dist/components/Dropdown/Dropdown.js.map +0 -1
  419. package/dist/components/Dropdown/DropdownCheckboxItem.js.map +0 -1
  420. package/dist/components/Dropdown/DropdownContext.js.map +0 -1
  421. package/dist/components/Dropdown/DropdownItem.js.map +0 -1
  422. package/dist/components/Dropdown/DropdownMenu.js.map +0 -1
  423. package/dist/components/Dropdown/DropdownMenuGroup.js.map +0 -1
  424. package/dist/components/Dropdown/DropdownRadioItem.js.map +0 -1
  425. package/dist/components/Dropdown/DropdownSeparator.js.map +0 -1
  426. package/dist/components/Dropdown/DropdownTrigger.js.map +0 -1
  427. package/dist/components/Dropzone/Dropzone.js.map +0 -1
  428. package/dist/components/Dropzone/DropzoneContext.js.map +0 -1
  429. package/dist/components/Dropzone/DropzoneDrag.js.map +0 -1
  430. package/dist/components/Dropzone/DropzoneFile.js.map +0 -1
  431. package/dist/components/Dropzone/DropzoneImport.js.map +0 -1
  432. package/dist/components/EmptyScreen/EmptyScreen.js.map +0 -1
  433. package/dist/components/FileCard/FileCard.js.map +0 -1
  434. package/dist/components/FileCard/FileIcon.js.map +0 -1
  435. package/dist/components/Form/FormContext.js.map +0 -1
  436. package/dist/components/Form/FormControl.js.map +0 -1
  437. package/dist/components/Form/FormText.js.map +0 -1
  438. package/dist/components/Grid/Grid.js.map +0 -1
  439. package/dist/components/Heading/Heading.js.map +0 -1
  440. package/dist/components/Icon/Icon.d.ts +0 -17
  441. package/dist/components/Icon/Icon.js +0 -11
  442. package/dist/components/Icon/Icon.js.map +0 -1
  443. package/dist/components/Icon/index.d.ts +0 -1
  444. package/dist/components/Image/Image.js.map +0 -1
  445. package/dist/components/ImagePicker/ImagePicker.js.map +0 -1
  446. package/dist/components/Input/Input.js.map +0 -1
  447. package/dist/components/Label/Label.js.map +0 -1
  448. package/dist/components/Loading/Loading.js.map +0 -1
  449. package/dist/components/LoadingScreen/LoadingScreen.js.map +0 -1
  450. package/dist/components/Logo/Logo.js.map +0 -1
  451. package/dist/components/Menu/Menu.js.map +0 -1
  452. package/dist/components/Menu/MenuButton.js.map +0 -1
  453. package/dist/components/Menu/MenuContext.js.map +0 -1
  454. package/dist/components/Menu/MenuItem.js.map +0 -1
  455. package/dist/components/Modal/Modal.js.map +0 -1
  456. package/dist/components/Modal/ModalBody.js.map +0 -1
  457. package/dist/components/Modal/ModalContext.js.map +0 -1
  458. package/dist/components/Modal/ModalFooter.js.map +0 -1
  459. package/dist/components/Modal/ModalHeader.js.map +0 -1
  460. package/dist/components/Modal/ModalSubtitle.js.map +0 -1
  461. package/dist/components/Popover/Popover.js.map +0 -1
  462. package/dist/components/Radio/Radio.js.map +0 -1
  463. package/dist/components/SearchBar/SearchBar.js.map +0 -1
  464. package/dist/components/Select/Select.js.map +0 -1
  465. package/dist/components/Select/SelectTrigger.js.map +0 -1
  466. package/dist/components/Table/TableExplorer.js +0 -10
  467. package/dist/components/Table/TableExplorer.js.map +0 -1
  468. package/dist/components/Tabs/Tabs.js.map +0 -1
  469. package/dist/components/Tabs/TabsContext.js.map +0 -1
  470. package/dist/components/Tabs/TabsItem.js.map +0 -1
  471. package/dist/components/Tabs/TabsList.js.map +0 -1
  472. package/dist/components/Tabs/TabsPanel.js.map +0 -1
  473. package/dist/components/TextArea/TextArea.js.map +0 -1
  474. package/dist/components/TextArea/TextareaCounter.js.map +0 -1
  475. package/dist/components/Toolbar/Toolbar.js.map +0 -1
  476. package/dist/components/Tooltip/Tooltip.js.map +0 -1
  477. package/dist/components/TreeView/TreeItem.js.map +0 -1
  478. package/dist/components/TreeView/TreeView.js.map +0 -1
  479. package/dist/components/TreeView/hooks/useTreeItemEvents.js.map +0 -1
  480. package/dist/components/UploadCard/UploadCard.js.map +0 -1
  481. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +0 -1
  482. package/dist/core/OdeClientProvider/OdeClientProvider.js.map +0 -1
  483. package/dist/core/ThemeProvider/ThemeProvider.js.map +0 -1
  484. package/dist/core/useAvatar/useAvatar.js.map +0 -1
  485. package/dist/core/useBookmark/useBookmark.js.map +0 -1
  486. package/dist/core/useConf/useConf.js.map +0 -1
  487. package/dist/core/useConversation/useConversation.js.map +0 -1
  488. package/dist/core/useCookiesConsent/useCookiesConsent.js.map +0 -1
  489. package/dist/core/useDate/useDate.js.map +0 -1
  490. package/dist/core/useHasWorkflow/useHasWorkflow.js.map +0 -1
  491. package/dist/core/useHeader/useHeader.js.map +0 -1
  492. package/dist/core/useHttpErrorToast/useHttpErrorToast.js.map +0 -1
  493. package/dist/core/useIsAdml/useIsAdml.js.map +0 -1
  494. package/dist/core/useLibraryUrl/useLibraryUrl.js.map +0 -1
  495. package/dist/core/useMediaLibrary/useMediaLibrary.js.map +0 -1
  496. package/dist/core/useOdeIcons/useOdeIcons.js.map +0 -1
  497. package/dist/core/usePaths/usePaths.js.map +0 -1
  498. package/dist/core/usePreferences/usePreferences.js.map +0 -1
  499. package/dist/core/useResource/useResource.js.map +0 -1
  500. package/dist/core/useResourceSearch/useResourceSearch.js.map +0 -1
  501. package/dist/core/useSession/useSession.js.map +0 -1
  502. package/dist/core/useTrashedResource/useTrashedResource.js.map +0 -1
  503. package/dist/core/useUpload/useUpload.js.map +0 -1
  504. package/dist/core/useUploadFiles/useUploadFiles.js.map +0 -1
  505. package/dist/core/useUser/useUser.js.map +0 -1
  506. package/dist/core/useWorkspaceFile/useWorkspaceFile.js.map +0 -1
  507. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js.map +0 -1
  508. package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js.map +0 -1
  509. package/dist/core/useZendeskGuide/useZendeskGuide.js.map +0 -1
  510. package/dist/editor.js +0 -59
  511. package/dist/editor.js.map +0 -1
  512. package/dist/hooks/useBrowserInfo/useBrowserInfo.js.map +0 -1
  513. package/dist/hooks/useClickOutside/useClickOutside.js.map +0 -1
  514. package/dist/hooks/useDebounce/useDebounce.js.map +0 -1
  515. package/dist/hooks/useDropdown/useDropdown.js.map +0 -1
  516. package/dist/hooks/useDropzone/useDropzone.js.map +0 -1
  517. package/dist/hooks/useHover/useHover.js.map +0 -1
  518. package/dist/hooks/useImage/useImage.js.map +0 -1
  519. package/dist/hooks/useImageResizer/useImageResizer.js.map +0 -1
  520. package/dist/hooks/useKeyPress/useKeyPress.js.map +0 -1
  521. package/dist/hooks/useScrollToTop/useScrollToTop.js.map +0 -1
  522. package/dist/hooks/useThumbnail/useThumbnail.js.map +0 -1
  523. package/dist/hooks/useTitle/useTitle.js.map +0 -1
  524. package/dist/hooks/useToast/useToast.js.map +0 -1
  525. package/dist/hooks/useToggle/useToggle.js.map +0 -1
  526. package/dist/hooks/useTrapFocus/useTrapFocus.js.map +0 -1
  527. package/dist/index.js.map +0 -1
  528. package/dist/modals.js +0 -17
  529. package/dist/modals.js.map +0 -1
  530. package/dist/modules/audience/ReactionChoice.js +0 -34
  531. package/dist/modules/audience/ReactionChoice.js.map +0 -1
  532. package/dist/modules/audience/ReactionModal.Card.js +0 -35
  533. package/dist/modules/audience/ReactionModal.Card.js.map +0 -1
  534. package/dist/modules/audience/ReactionModal.js +0 -73
  535. package/dist/modules/audience/ReactionModal.js.map +0 -1
  536. package/dist/modules/audience/ReactionSummary.js +0 -28
  537. package/dist/modules/audience/ReactionSummary.js.map +0 -1
  538. package/dist/modules/audience/ViewsByProfileCard.js +0 -36
  539. package/dist/modules/audience/ViewsByProfileCard.js.map +0 -1
  540. package/dist/modules/audience/ViewsCounter.js +0 -19
  541. package/dist/modules/audience/ViewsCounter.js.map +0 -1
  542. package/dist/modules/audience/ViewsModal.js +0 -41
  543. package/dist/modules/audience/ViewsModal.js.map +0 -1
  544. package/dist/modules/audience/hooks/useReactionIcons.js +0 -38
  545. package/dist/modules/audience/hooks/useReactionIcons.js.map +0 -1
  546. package/dist/modules/audience/hooks/useReactions.js +0 -36
  547. package/dist/modules/audience/hooks/useReactions.js.map +0 -1
  548. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.d.ts +0 -8
  549. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js +0 -133
  550. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js.map +0 -1
  551. package/dist/modules/editor/components/BubbleMenuEditImage/index.d.ts +0 -1
  552. package/dist/modules/editor/components/Editor/Editor.d.ts +0 -45
  553. package/dist/modules/editor/components/Editor/Editor.js +0 -84
  554. package/dist/modules/editor/components/Editor/Editor.js.map +0 -1
  555. package/dist/modules/editor/components/Editor/MathsModal.d.ts +0 -7
  556. package/dist/modules/editor/components/Editor/MathsModal.js +0 -51
  557. package/dist/modules/editor/components/Editor/MathsModal.js.map +0 -1
  558. package/dist/modules/editor/components/Editor/index.d.ts +0 -2
  559. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.d.ts +0 -22
  560. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js +0 -18
  561. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js.map +0 -1
  562. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.d.ts +0 -14
  563. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js +0 -55
  564. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js.map +0 -1
  565. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.d.ts +0 -14
  566. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js +0 -48
  567. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js.map +0 -1
  568. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.d.ts +0 -9
  569. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js +0 -19
  570. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js.map +0 -1
  571. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.d.ts +0 -14
  572. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js +0 -51
  573. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js.map +0 -1
  574. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.d.ts +0 -10
  575. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js +0 -63
  576. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js.map +0 -1
  577. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.d.ts +0 -10
  578. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js +0 -53
  579. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js.map +0 -1
  580. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.d.ts +0 -10
  581. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +0 -320
  582. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js.map +0 -1
  583. package/dist/modules/editor/components/EditorToolbar/index.d.ts +0 -1
  584. package/dist/modules/editor/components/NodeView/AttachmentNodeView.d.ts +0 -2
  585. package/dist/modules/editor/components/NodeView/AttachmentNodeView.js +0 -11
  586. package/dist/modules/editor/components/NodeView/AttachmentNodeView.js.map +0 -1
  587. package/dist/modules/editor/components/NodeView/AudioNodeView.d.ts +0 -2
  588. package/dist/modules/editor/components/NodeView/AudioNodeView.js +0 -11
  589. package/dist/modules/editor/components/NodeView/AudioNodeView.js.map +0 -1
  590. package/dist/modules/editor/components/NodeView/ImageNodeView.d.ts +0 -2
  591. package/dist/modules/editor/components/NodeView/ImageNodeView.js +0 -11
  592. package/dist/modules/editor/components/NodeView/ImageNodeView.js.map +0 -1
  593. package/dist/modules/editor/components/NodeView/LinkerNodeView.d.ts +0 -2
  594. package/dist/modules/editor/components/NodeView/LinkerNodeView.js +0 -11
  595. package/dist/modules/editor/components/NodeView/LinkerNodeView.js.map +0 -1
  596. package/dist/modules/editor/components/NodeView/VideoNodeView.d.ts +0 -2
  597. package/dist/modules/editor/components/NodeView/VideoNodeView.js +0 -11
  598. package/dist/modules/editor/components/NodeView/VideoNodeView.js.map +0 -1
  599. package/dist/modules/editor/components/NodeView/index.d.ts +0 -5
  600. package/dist/modules/editor/components/Renderer/AttachmentRenderer.d.ts +0 -7
  601. package/dist/modules/editor/components/Renderer/AttachmentRenderer.js +0 -35
  602. package/dist/modules/editor/components/Renderer/AttachmentRenderer.js.map +0 -1
  603. package/dist/modules/editor/components/Renderer/AudioRenderer.d.ts +0 -7
  604. package/dist/modules/editor/components/Renderer/AudioRenderer.js +0 -12
  605. package/dist/modules/editor/components/Renderer/AudioRenderer.js.map +0 -1
  606. package/dist/modules/editor/components/Renderer/LinkerRenderer.d.ts +0 -9
  607. package/dist/modules/editor/components/Renderer/LinkerRenderer.js +0 -35
  608. package/dist/modules/editor/components/Renderer/LinkerRenderer.js.map +0 -1
  609. package/dist/modules/editor/components/Renderer/MediaRenderer.d.ts +0 -2
  610. package/dist/modules/editor/components/Renderer/MediaRenderer.js +0 -70
  611. package/dist/modules/editor/components/Renderer/MediaRenderer.js.map +0 -1
  612. package/dist/modules/editor/components/Renderer/index.d.ts +0 -4
  613. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.d.ts +0 -2
  614. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js +0 -9
  615. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js.map +0 -1
  616. package/dist/modules/editor/components/Toolbar/LinkToolbar.d.ts +0 -15
  617. package/dist/modules/editor/components/Toolbar/LinkToolbar.js +0 -60
  618. package/dist/modules/editor/components/Toolbar/LinkToolbar.js.map +0 -1
  619. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.d.ts +0 -9
  620. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js +0 -29
  621. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js.map +0 -1
  622. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.d.ts +0 -13
  623. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js +0 -46
  624. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js.map +0 -1
  625. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.d.ts +0 -9
  626. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js +0 -28
  627. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js.map +0 -1
  628. package/dist/modules/editor/components/Toolbar/TableToolbar.d.ts +0 -9
  629. package/dist/modules/editor/components/Toolbar/TableToolbar.js +0 -89
  630. package/dist/modules/editor/components/Toolbar/TableToolbar.js.map +0 -1
  631. package/dist/modules/editor/components/Toolbar/index.d.ts +0 -2
  632. package/dist/modules/editor/components/index.d.ts +0 -6
  633. package/dist/modules/editor/hooks/index.d.ts +0 -12
  634. package/dist/modules/editor/hooks/useActionOptions.d.ts +0 -5
  635. package/dist/modules/editor/hooks/useActionOptions.js +0 -76
  636. package/dist/modules/editor/hooks/useActionOptions.js.map +0 -1
  637. package/dist/modules/editor/hooks/useCommentEditor.d.ts +0 -13
  638. package/dist/modules/editor/hooks/useCommentEditor.js +0 -38
  639. package/dist/modules/editor/hooks/useCommentEditor.js.map +0 -1
  640. package/dist/modules/editor/hooks/useEditorContext.d.ts +0 -37
  641. package/dist/modules/editor/hooks/useEditorContext.js +0 -13
  642. package/dist/modules/editor/hooks/useEditorContext.js.map +0 -1
  643. package/dist/modules/editor/hooks/useImageModal.d.ts +0 -31
  644. package/dist/modules/editor/hooks/useImageModal.js +0 -47
  645. package/dist/modules/editor/hooks/useImageModal.js.map +0 -1
  646. package/dist/modules/editor/hooks/useImageSelection.d.ts +0 -21
  647. package/dist/modules/editor/hooks/useImageSelection.js +0 -47
  648. package/dist/modules/editor/hooks/useImageSelection.js.map +0 -1
  649. package/dist/modules/editor/hooks/useLinkToolbar.d.ts +0 -17
  650. package/dist/modules/editor/hooks/useLinkToolbar.js +0 -38
  651. package/dist/modules/editor/hooks/useLinkToolbar.js.map +0 -1
  652. package/dist/modules/editor/hooks/useMathsModal.d.ts +0 -17
  653. package/dist/modules/editor/hooks/useMathsModal.js +0 -18
  654. package/dist/modules/editor/hooks/useMathsModal.js.map +0 -1
  655. package/dist/modules/editor/hooks/useMathsStyles.d.ts +0 -1
  656. package/dist/modules/editor/hooks/useMathsStyles.js +0 -21
  657. package/dist/modules/editor/hooks/useMathsStyles.js.map +0 -1
  658. package/dist/modules/editor/hooks/useMediaLibraryEditor.d.ts +0 -19
  659. package/dist/modules/editor/hooks/useMediaLibraryEditor.js +0 -153
  660. package/dist/modules/editor/hooks/useMediaLibraryEditor.js.map +0 -1
  661. package/dist/modules/editor/hooks/useResizeMedia.d.ts +0 -10
  662. package/dist/modules/editor/hooks/useResizeMedia.js +0 -48
  663. package/dist/modules/editor/hooks/useResizeMedia.js.map +0 -1
  664. package/dist/modules/editor/hooks/useSpeechRecognition.d.ts +0 -6
  665. package/dist/modules/editor/hooks/useSpeechRecognition.js +0 -22
  666. package/dist/modules/editor/hooks/useSpeechRecognition.js.map +0 -1
  667. package/dist/modules/editor/hooks/useSpeechSynthetisis.d.ts +0 -12
  668. package/dist/modules/editor/hooks/useSpeechSynthetisis.js +0 -21
  669. package/dist/modules/editor/hooks/useSpeechSynthetisis.js.map +0 -1
  670. package/dist/modules/editor/hooks/useTipTapEditor.d.ts +0 -15
  671. package/dist/modules/editor/hooks/useTipTapEditor.js +0 -76
  672. package/dist/modules/editor/hooks/useTipTapEditor.js.map +0 -1
  673. package/dist/modules/editor/index.d.ts +0 -3
  674. package/dist/modules/editor/utils/has-extension.d.ts +0 -2
  675. package/dist/modules/editor/utils/has-extension.js +0 -5
  676. package/dist/modules/editor/utils/has-extension.js.map +0 -1
  677. package/dist/modules/editor/utils/has-mark.d.ts +0 -2
  678. package/dist/modules/editor/utils/has-mark.js +0 -5
  679. package/dist/modules/editor/utils/has-mark.js.map +0 -1
  680. package/dist/modules/editor/utils/has-text-style.d.ts +0 -2
  681. package/dist/modules/editor/utils/has-text-style.js +0 -6
  682. package/dist/modules/editor/utils/has-text-style.js.map +0 -1
  683. package/dist/modules/modals/OnboardingModal/OnboardingModal.js +0 -60
  684. package/dist/modules/modals/OnboardingModal/OnboardingModal.js.map +0 -1
  685. package/dist/modules/modals/OnboardingModal/useOnboardingModal.js +0 -31
  686. package/dist/modules/modals/OnboardingModal/useOnboardingModal.js.map +0 -1
  687. package/dist/modules/modals/PublishModal/PublishModal.js +0 -121
  688. package/dist/modules/modals/PublishModal/PublishModal.js.map +0 -1
  689. package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js +0 -30
  690. package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js.map +0 -1
  691. package/dist/modules/modals/PublishModal/components/AgeSelect.js +0 -21
  692. package/dist/modules/modals/PublishModal/components/AgeSelect.js.map +0 -1
  693. package/dist/modules/modals/PublishModal/components/LangSelect.js +0 -20
  694. package/dist/modules/modals/PublishModal/components/LangSelect.js.map +0 -1
  695. package/dist/modules/modals/PublishModal/components/PublishModalFooter.js +0 -24
  696. package/dist/modules/modals/PublishModal/components/PublishModalFooter.js.map +0 -1
  697. package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js +0 -30
  698. package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js.map +0 -1
  699. package/dist/modules/modals/PublishModal/components/ToastError.js +0 -25
  700. package/dist/modules/modals/PublishModal/components/ToastError.js.map +0 -1
  701. package/dist/modules/modals/PublishModal/components/ToastSuccess.js +0 -19
  702. package/dist/modules/modals/PublishModal/components/ToastSuccess.js.map +0 -1
  703. package/dist/modules/modals/PublishModal/constants/ageOptions.js +0 -5
  704. package/dist/modules/modals/PublishModal/constants/ageOptions.js.map +0 -1
  705. package/dist/modules/modals/PublishModal/hooks/useActivitiesOptions.js.map +0 -1
  706. package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js +0 -44
  707. package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js.map +0 -1
  708. package/dist/modules/modals/PublishModal/hooks/usePublishModal.js +0 -107
  709. package/dist/modules/modals/PublishModal/hooks/usePublishModal.js.map +0 -1
  710. package/dist/modules/modals/PublishModal/hooks/useSubjectsOptions.js.map +0 -1
  711. package/dist/modules/modals/ResourceModal/ResourceModal.js +0 -158
  712. package/dist/modules/modals/ResourceModal/ResourceModal.js.map +0 -1
  713. package/dist/modules/modals/ResourceModal/apps/BlogPublic.js +0 -64
  714. package/dist/modules/modals/ResourceModal/apps/BlogPublic.js.map +0 -1
  715. package/dist/modules/modals/ResourceModal/hooks/useSlug.js +0 -42
  716. package/dist/modules/modals/ResourceModal/hooks/useSlug.js.map +0 -1
  717. package/dist/modules/modals/ResourceModal/hooks/useThumb.js +0 -18
  718. package/dist/modules/modals/ResourceModal/hooks/useThumb.js.map +0 -1
  719. package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js +0 -14
  720. package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js.map +0 -1
  721. package/dist/modules/modals/ResourceModal/index.d.ts +0 -3
  722. package/dist/modules/modals/ShareModal/apps/ShareBlog.d.ts +0 -9
  723. package/dist/modules/modals/ShareModal/apps/ShareBlog.js +0 -44
  724. package/dist/modules/modals/ShareModal/apps/ShareBlog.js.map +0 -1
  725. package/dist/modules/modals/ShareModal/hooks/useShareMutation.js +0 -17
  726. package/dist/modules/modals/ShareModal/hooks/useShareMutation.js.map +0 -1
  727. package/dist/modules/modals/ShareModal/index.d.ts +0 -3
  728. package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js +0 -50
  729. package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js.map +0 -1
  730. package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js +0 -25
  731. package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js.map +0 -1
  732. package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js +0 -308
  733. package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js.map +0 -1
  734. package/dist/modules/multimedia/Embed/Embed.js +0 -33
  735. package/dist/modules/multimedia/Embed/Embed.js.map +0 -1
  736. package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js +0 -117
  737. package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js.map +0 -1
  738. package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js +0 -70
  739. package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js.map +0 -1
  740. package/dist/modules/multimedia/ImageEditor/effects/blur.js +0 -73
  741. package/dist/modules/multimedia/ImageEditor/effects/blur.js.map +0 -1
  742. package/dist/modules/multimedia/ImageEditor/effects/crop.js +0 -156
  743. package/dist/modules/multimedia/ImageEditor/effects/crop.js.map +0 -1
  744. package/dist/modules/multimedia/ImageEditor/effects/misc.js +0 -163
  745. package/dist/modules/multimedia/ImageEditor/effects/misc.js.map +0 -1
  746. package/dist/modules/multimedia/ImageEditor/effects/resize.js +0 -158
  747. package/dist/modules/multimedia/ImageEditor/effects/resize.js.map +0 -1
  748. package/dist/modules/multimedia/ImageEditor/effects/rotate.js +0 -34
  749. package/dist/modules/multimedia/ImageEditor/effects/rotate.js.map +0 -1
  750. package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js +0 -65
  751. package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js.map +0 -1
  752. package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js +0 -77
  753. package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js.map +0 -1
  754. package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js +0 -53
  755. package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js.map +0 -1
  756. package/dist/modules/multimedia/ImageEditor/utils/aggregate.js +0 -14
  757. package/dist/modules/multimedia/ImageEditor/utils/aggregate.js.map +0 -1
  758. package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js +0 -40
  759. package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js.map +0 -1
  760. package/dist/modules/multimedia/Linker/ExternalLinker.js +0 -46
  761. package/dist/modules/multimedia/Linker/ExternalLinker.js.map +0 -1
  762. package/dist/modules/multimedia/Linker/InternalLinker.js +0 -115
  763. package/dist/modules/multimedia/Linker/InternalLinker.js.map +0 -1
  764. package/dist/modules/multimedia/LinkerCard/LinkerCard.js +0 -40
  765. package/dist/modules/multimedia/LinkerCard/LinkerCard.js.map +0 -1
  766. package/dist/modules/multimedia/LinkerCard/index.d.ts +0 -1
  767. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +0 -212
  768. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js.map +0 -1
  769. package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js +0 -13
  770. package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js.map +0 -1
  771. package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js +0 -20
  772. package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js.map +0 -1
  773. package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js +0 -18
  774. package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js.map +0 -1
  775. package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js +0 -15
  776. package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js.map +0 -1
  777. package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js +0 -36
  778. package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js.map +0 -1
  779. package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js +0 -35
  780. package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js.map +0 -1
  781. package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js +0 -23
  782. package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js.map +0 -1
  783. package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +0 -15
  784. package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js.map +0 -1
  785. package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js +0 -32
  786. package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js.map +0 -1
  787. package/dist/modules/multimedia/MediaLibrary/innertabs/index.js +0 -22
  788. package/dist/modules/multimedia/MediaLibrary/innertabs/index.js.map +0 -1
  789. package/dist/modules/multimedia/UploadFiles/UploadFiles.js +0 -57
  790. package/dist/modules/multimedia/UploadFiles/UploadFiles.js.map +0 -1
  791. package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js +0 -78
  792. package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js.map +0 -1
  793. package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js +0 -260
  794. package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js.map +0 -1
  795. package/dist/modules/multimedia/Workspace/Workspace.js +0 -170
  796. package/dist/modules/multimedia/Workspace/Workspace.js.map +0 -1
  797. package/dist/multimedia.js +0 -21
  798. package/dist/multimedia.js.map +0 -1
  799. package/dist/portal/Header/Badge.js.map +0 -1
  800. package/dist/portal/Header/Header.js.map +0 -1
  801. package/dist/portal/Header/NavItem.js.map +0 -1
  802. package/dist/portal/Header/NavLink.js.map +0 -1
  803. package/dist/portal/Header/Navbar.js.map +0 -1
  804. package/dist/portal/Header/NavbarNav.js.map +0 -1
  805. package/dist/portal/Header/WidgetApps.js.map +0 -1
  806. package/dist/portal/Help/Help.js.map +0 -1
  807. package/dist/portal/Help/hooks/useHelp.js.map +0 -1
  808. package/dist/portal/Layout/Layout.js.map +0 -1
  809. package/dist/portal/SearchEngine/SearchEngine.js.map +0 -1
  810. package/dist/utils/MockedDataProvider/MockedDataProvider.js.map +0 -1
  811. package/dist/utils/StringUtils.js.map +0 -1
  812. package/dist/utils/addTimestampToUrl.js.map +0 -1
  813. package/dist/utils/blob.js.map +0 -1
  814. package/dist/utils/checkUserRight.js.map +0 -1
  815. package/dist/utils/fileSize.js.map +0 -1
  816. package/dist/utils/findTreeNode.js.map +0 -1
  817. package/dist/utils/isActionAvailable.js.map +0 -1
  818. package/dist/utils/libraryMaps.js.map +0 -1
  819. package/dist/utils/noop.js.map +0 -1
  820. package/dist/utils/ref.js.map +0 -1
  821. package/dist/utils/thumbnail.js.map +0 -1
  822. package/dist/utils/time.js.map +0 -1
  823. package/dist/utils/treeview.js.map +0 -1
  824. package/dist/utils/video.js.map +0 -1
  825. package/dist/widgets/BookmarkedApps/BookmarkedApps.js.map +0 -1
  826. package/dist/widgets/Widget/Widget.js.map +0 -1
  827. /package/dist/{modules/modals → common}/OnboardingModal/OnboardingModal.d.ts +0 -0
  828. /package/dist/{modules/modals → common}/OnboardingModal/index.d.ts +0 -0
  829. /package/dist/{modules/modals → common}/OnboardingModal/useOnboardingModal.d.ts +0 -0
  830. /package/dist/{modules/modals → common}/PublishModal/components/ActivitiesDropdown.d.ts +0 -0
  831. /package/dist/{modules/modals → common}/PublishModal/components/AgeSelect.d.ts +0 -0
  832. /package/dist/{modules/modals → common}/PublishModal/components/LangSelect.d.ts +0 -0
  833. /package/dist/{modules/modals → common}/PublishModal/components/PublishModalFooter.d.ts +0 -0
  834. /package/dist/{modules/modals → common}/PublishModal/components/SubjectsDropdown.d.ts +0 -0
  835. /package/dist/{modules/modals → common}/PublishModal/components/ToastError.d.ts +0 -0
  836. /package/dist/{modules/modals → common}/PublishModal/constants/ageOptions.d.ts +0 -0
  837. /package/dist/{modules/modals → common}/PublishModal/hooks/useActivitiesOptions.d.ts +0 -0
  838. /package/dist/{modules/modals → common}/PublishModal/hooks/useLanguageOptions.d.ts +0 -0
  839. /package/dist/{modules/modals → common}/PublishModal/hooks/useSubjectsOptions.d.ts +0 -0
  840. /package/dist/{modules/modals → common}/PublishModal/index.d.ts +0 -0
  841. /package/dist/{modules/modals → common}/ShareModal/ShareBookmark.d.ts +0 -0
  842. /package/dist/{modules/modals → common}/index.d.ts +0 -0
  843. /package/dist/{modules/audience → components/Audience}/ViewsCounter.d.ts +0 -0
  844. /package/dist/{modules/audience → components/Audience}/index.d.ts +0 -0
  845. /package/dist/{modules/multimedia → multimedia}/AudioRecorder/AudioRecorderTimer.d.ts +0 -0
  846. /package/dist/{modules/multimedia → multimedia}/AudioRecorder/index.d.ts +0 -0
  847. /package/dist/{modules/multimedia → multimedia}/Embed/Embed.d.ts +0 -0
  848. /package/dist/{modules/multimedia → multimedia}/Embed/index.d.ts +0 -0
  849. /package/dist/{modules/multimedia → multimedia}/ImageEditor/components/ImageEditor.d.ts +0 -0
  850. /package/dist/{modules/multimedia → multimedia}/ImageEditor/components/ImageEditorToolbar.d.ts +0 -0
  851. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/blur.d.ts +0 -0
  852. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/crop.d.ts +0 -0
  853. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/misc.d.ts +0 -0
  854. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/resize.d.ts +0 -0
  855. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/rotate.d.ts +0 -0
  856. /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useHistoryTool.d.ts +0 -0
  857. /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useImageEditor.d.ts +0 -0
  858. /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useImageEffects.d.ts +0 -0
  859. /package/dist/{modules/multimedia → multimedia}/ImageEditor/index.d.ts +0 -0
  860. /package/dist/{modules/multimedia → multimedia}/ImageEditor/utils/aggregate.d.ts +0 -0
  861. /package/dist/{modules/multimedia → multimedia}/ImageEditor/utils/debounceAggregate.d.ts +0 -0
  862. /package/dist/{modules/multimedia → multimedia}/ImagePickerWorkspace/index.d.ts +0 -0
  863. /package/dist/{modules/multimedia → multimedia}/Linker/ExternalLinker.d.ts +0 -0
  864. /package/dist/{modules/multimedia → multimedia}/Linker/index.d.ts +0 -0
  865. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/index.d.ts +0 -0
  866. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Audio.d.ts +0 -0
  867. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/ExternalLink.d.ts +0 -0
  868. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Iframe.d.ts +0 -0
  869. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Upload.d.ts +0 -0
  870. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Video.d.ts +0 -0
  871. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/VideoEmbedder.d.ts +0 -0
  872. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Workspace.d.ts +0 -0
  873. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/index.d.ts +0 -0
  874. /package/dist/{modules/multimedia → multimedia}/UploadFiles/index.d.ts +0 -0
  875. /package/dist/{modules/multimedia → multimedia}/VideoEmbed/VideoEmbed.d.ts +0 -0
  876. /package/dist/{modules/multimedia → multimedia}/VideoEmbed/index.d.ts +0 -0
  877. /package/dist/{modules/multimedia → multimedia}/VideoRecorder/index.d.ts +0 -0
  878. /package/dist/{modules/multimedia → multimedia}/Workspace/index.d.ts +0 -0
  879. /package/dist/{modules/multimedia → multimedia}/index.d.ts +0 -0
@@ -1,23 +0,0 @@
1
- import { jsx as d } from "react/jsx-runtime";
2
- import { useRef as a } from "react";
3
- import { useTranslation as p } from "react-i18next";
4
- import { useMediaLibraryContext as m } from "../MediaLibraryContext.js";
5
- import u from "../../VideoRecorder/VideoRecorder.js";
6
- const v = () => {
7
- const {
8
- appCode: t,
9
- setResult: e,
10
- setPreSuccess: n
11
- } = m(), {
12
- t: s
13
- } = p(), r = a(null), i = (o) => {
14
- o ? (e(o), n(() => r.current.save)) : e();
15
- }, c = (o) => {
16
- console.error(o);
17
- };
18
- return /* @__PURE__ */ d(u, { ref: r, appCode: t, caption: s("bbm.video.caption"), onRecordUpdated: i, onError: c, hideSaveAction: !0 });
19
- };
20
- export {
21
- v as Video
22
- };
23
- //# sourceMappingURL=Video.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Video.js","sources":["../../../../../src/modules/multimedia/MediaLibrary/innertabs/Video.tsx"],"sourcesContent":["import { useRef } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { VideoRecorder } from '../../VideoRecorder';\nimport { VideoRecorderRef } from '../../VideoRecorder/VideoRecorder';\nimport { useMediaLibraryContext } from '../MediaLibraryContext';\n\nexport const Video = () => {\n const { appCode, setResult, setPreSuccess } = useMediaLibraryContext();\n const { t } = useTranslation();\n const ref = useRef<VideoRecorderRef>(null);\n\n const handleRecordUpdated = (recordUrl?: string) => {\n if (recordUrl) {\n setResult(recordUrl);\n setPreSuccess(() => ref.current!.save);\n } else {\n setResult();\n }\n };\n\n const handleError = (err: string) => {\n console.error(err);\n };\n\n return (\n <VideoRecorder\n ref={ref}\n appCode={appCode}\n caption={t('bbm.video.caption')}\n onRecordUpdated={handleRecordUpdated}\n onError={handleError}\n hideSaveAction={true}\n ></VideoRecorder>\n );\n};\n"],"names":["Video","appCode","setResult","setPreSuccess","useMediaLibraryContext","t","useTranslation","ref","useRef","handleRecordUpdated","recordUrl","current","save","handleError","err","console","error","jsx","VideoRecorder"],"mappings":";;;;;AAQO,MAAMA,IAAQA,MAAM;AACnB,QAAA;AAAA,IAAEC,SAAAA;AAAAA,IAASC,WAAAA;AAAAA,IAAWC,eAAAA;AAAAA,MAAkBC,EAAuB,GAC/D;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe,GACvBC,IAAMC,EAAyB,IAAI,GAEnCC,IAAsBA,CAACC,MAAuB;AAClD,IAAIA,KACFR,EAAUQ,CAAS,GACLP,EAAA,MAAMI,EAAII,QAASC,IAAI,KAE3BV;EACZ,GAGIW,IAAcA,CAACC,MAAgB;AACnCC,YAAQC,MAAMF,CAAG;AAAA,EAAA;AAGnB,SACG,gBAAAG,EAAAC,GAAA,EACC,KAAAX,GACA,SAAAN,GACA,SAASI,EAAE,mBAAmB,GAC9B,iBAAiBI,GACjB,SAASI,GACT,gBAAgB,GACjB,CAAA;AAEL;"}
@@ -1,15 +0,0 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import r from "../../VideoEmbed/VideoEmbed.js";
3
- import { useMediaLibraryContext as t } from "../MediaLibraryContext.js";
4
- const i = () => {
5
- const {
6
- setResult: e
7
- } = t();
8
- return /* @__PURE__ */ s(r, { onSuccess: (o) => {
9
- e(o);
10
- } });
11
- };
12
- export {
13
- i as VideoEmbedder
14
- };
15
- //# sourceMappingURL=VideoEmbedder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VideoEmbedder.js","sources":["../../../../../src/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.tsx"],"sourcesContent":["import VideoEmbed from '../../VideoEmbed/VideoEmbed';\nimport { useMediaLibraryContext } from '../MediaLibraryContext';\n\nexport const VideoEmbedder = () => {\n const { setResult } = useMediaLibraryContext();\n\n const handleOnSuccess = (ressource?: string) => {\n setResult(ressource);\n };\n\n return <VideoEmbed onSuccess={handleOnSuccess}></VideoEmbed>;\n};\n"],"names":["VideoEmbedder","setResult","useMediaLibraryContext","jsx","VideoEmbed","handleOnSuccess","ressource"],"mappings":";;;AAGO,MAAMA,IAAgBA,MAAM;AAC3B,QAAA;AAAA,IAAEC,WAAAA;AAAAA,MAAcC,EAAuB;AAMtC,SAAA,gBAAAC,EAACC,GAAW,EAAA,WAJKC,CAACC,MAAuB;AAC9CL,IAAAA,EAAUK,CAAS;AAAA,EAAA,EAG0B,CAAA;AACjD;"}
@@ -1,32 +0,0 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { useMediaLibraryContext as a } from "../MediaLibraryContext.js";
3
- import c from "../../Workspace/Workspace.js";
4
- const p = () => {
5
- const {
6
- type: r,
7
- setResultCounter: i,
8
- setResult: t,
9
- multiple: l,
10
- visibility: o
11
- } = a();
12
- function n() {
13
- switch (r) {
14
- case "image":
15
- return "img";
16
- case "audio":
17
- return "audio";
18
- case "video":
19
- return "video";
20
- default:
21
- return null;
22
- }
23
- }
24
- function u(e) {
25
- i(e.length), e.length ? t(e) : t();
26
- }
27
- return /* @__PURE__ */ s(c, { roles: n(), onSelect: u, multiple: l, className: "border rounded overflow-y-auto", defaultFolder: o, showPublicFolder: o === "public" });
28
- };
29
- export {
30
- p as Workspace
31
- };
32
- //# sourceMappingURL=Workspace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Workspace.js","sources":["../../../../../src/modules/multimedia/MediaLibrary/innertabs/Workspace.tsx"],"sourcesContent":["import { Role, WorkspaceElement } from '@edifice.io/ts-client';\n\nimport { Workspace as Component } from '../../Workspace';\nimport { useMediaLibraryContext } from '../MediaLibraryContext';\n\nexport const Workspace = () => {\n const { type, setResultCounter, setResult, multiple, visibility } =\n useMediaLibraryContext();\n\n function getDocumentRoleFilter(): Role | Role[] | null {\n switch (type) {\n case 'image':\n return 'img';\n case 'audio':\n return 'audio';\n case 'video':\n return 'video';\n default:\n return null; // = all document roles\n }\n }\n\n function handleSelect(result: WorkspaceElement[]) {\n setResultCounter(result.length);\n if (result.length) {\n setResult(result);\n } else {\n setResult();\n }\n }\n\n return (\n <Component\n roles={getDocumentRoleFilter()}\n onSelect={handleSelect}\n multiple={multiple}\n className=\"border rounded overflow-y-auto\"\n defaultFolder={visibility}\n showPublicFolder={visibility === 'public'}\n ></Component>\n );\n};\n"],"names":["Workspace","type","setResultCounter","setResult","multiple","visibility","useMediaLibraryContext","getDocumentRoleFilter","handleSelect","result","length","jsx","Component"],"mappings":";;;AAKO,MAAMA,IAAYA,MAAM;AACvB,QAAA;AAAA,IAAEC,MAAAA;AAAAA,IAAMC,kBAAAA;AAAAA,IAAkBC,WAAAA;AAAAA,IAAWC,UAAAA;AAAAA,IAAUC,YAAAA;AAAAA,MACnDC,EAAuB;AAEzB,WAASC,IAA8C;AACrD,YAAQN,GAAI;AAAA,MACV,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT,KAAK;AACI,eAAA;AAAA,MACT;AACS,eAAA;AAAA,IACX;AAAA,EACF;AAEA,WAASO,EAAaC,GAA4B;AAChDP,IAAAA,EAAiBO,EAAOC,MAAM,GAC1BD,EAAOC,SACTP,EAAUM,CAAM,IAENN;EAEd;AAEA,SACG,gBAAAQ,EAAAC,GAAA,EACC,OAAOL,KACP,UAAUC,GACV,UAAAJ,GACA,WAAU,kCACV,eAAeC,GACf,kBAAkBA,MAAe,SAClC,CAAA;AAEL;"}
@@ -1,22 +0,0 @@
1
- import { Audio as o } from "./Audio.js";
2
- import { ExternalLink as r } from "./ExternalLink.js";
3
- import { Iframe as m } from "./Iframe.js";
4
- import { InternalLink as i } from "./InternalLink.js";
5
- import { Upload as t } from "./Upload.js";
6
- import { Video as p } from "./Video.js";
7
- import { VideoEmbedder as e } from "./VideoEmbedder.js";
8
- import { Workspace as f } from "./Workspace.js";
9
- const c = {
10
- Audio: o,
11
- Video: p,
12
- Upload: t,
13
- ExternalLink: r,
14
- Workspace: f,
15
- InternalLink: i,
16
- Iframe: m,
17
- VideoEmbedder: e
18
- };
19
- export {
20
- c as InnerTabs
21
- };
22
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/modules/multimedia/MediaLibrary/innertabs/index.ts"],"sourcesContent":["import { Audio } from './Audio';\nimport { ExternalLink } from './ExternalLink';\nimport { Iframe } from './Iframe';\nimport { InternalLink } from './InternalLink';\nimport { Upload } from './Upload';\nimport { Video } from './Video';\nimport { VideoEmbedder } from './VideoEmbedder';\nimport { Workspace } from './Workspace';\n\nexport const InnerTabs = {\n Audio,\n Video,\n Upload,\n ExternalLink,\n Workspace,\n InternalLink,\n Iframe,\n VideoEmbedder,\n};\n"],"names":["InnerTabs","Audio","Video","Upload","ExternalLink","Workspace","InternalLink","Iframe","VideoEmbedder"],"mappings":";;;;;;;;AASO,MAAMA,IAAY;AAAA,EACvBC,OAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,eAAAA;AACF;"}
@@ -1,57 +0,0 @@
1
- import { jsxs as h, Fragment as y, jsx as s } from "react/jsx-runtime";
2
- import { useRef as F, useEffect as I } from "react";
3
- import { customSize as v } from "../../../utils/fileSize.js";
4
- import E from "../../../core/useUploadFiles/useUploadFiles.js";
5
- import { UploadCard as L } from "../../../components/UploadCard/UploadCard.js";
6
- import j from "../ImageEditor/components/ImageEditor.js";
7
- const k = ({
8
- onFilesChange: m,
9
- visibility: c = "protected"
10
- }) => {
11
- const {
12
- files: i,
13
- uploadedFiles: p,
14
- getUploadStatus: d,
15
- uploadFile: u,
16
- removeFile: l,
17
- updateImage: g,
18
- editingImage: o,
19
- setEditingImage: a,
20
- getUrl: U
21
- } = E({
22
- handleOnChange: m,
23
- application: "media-library",
24
- visibility: c
25
- }), r = F(/* @__PURE__ */ new Map());
26
- I(() => {
27
- const e = r.current;
28
- return () => {
29
- e.forEach((t) => URL.revokeObjectURL(t)), e.clear();
30
- };
31
- }, []);
32
- const b = (e) => {
33
- const n = e.type.startsWith("image") ? r.current.get(e.name) : "";
34
- return r.current.has(e.name) || r.current.set(e.name, URL.createObjectURL(e)), {
35
- name: e.name,
36
- info: {
37
- type: e.type,
38
- weight: v(e.size || 0, 1)
39
- },
40
- src: n
41
- };
42
- }, R = (e) => {
43
- const t = r.current.get(e.name);
44
- t && (URL.revokeObjectURL(t), r.current.delete(e.name)), l(e);
45
- };
46
- return /* @__PURE__ */ h(y, { children: [
47
- i.map((e) => {
48
- const t = p.find((n) => n.name === e.name);
49
- return /* @__PURE__ */ s(L, { status: d(e), item: b(e), onEdit: () => a(t), onRetry: () => u(e), onDelete: () => R(e) }, e.name);
50
- }),
51
- o && /* @__PURE__ */ s(j, { altText: o.alt, legend: o.title, image: U(o, !0), isOpen: !!o, onCancel: () => a(void 0), onSave: g, onError: console.error })
52
- ] });
53
- };
54
- export {
55
- k as default
56
- };
57
- //# sourceMappingURL=UploadFiles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UploadFiles.js","sources":["../../../../src/modules/multimedia/UploadFiles/UploadFiles.tsx"],"sourcesContent":["import { WorkspaceElement, WorkspaceVisibility } from '@edifice.io/ts-client';\n\nimport { useEffect, useRef } from 'react';\nimport { UploadCard } from '../../../components';\nimport { useUploadFiles } from '../../../core';\nimport { customSize } from '../../../utils/fileSize';\nimport { ImageEditor } from '../ImageEditor';\n\nconst UploadFiles = ({\n onFilesChange,\n visibility = 'protected',\n}: {\n onFilesChange: (uploadedFiles: WorkspaceElement[]) => void;\n visibility?: WorkspaceVisibility;\n}) => {\n const {\n files,\n uploadedFiles,\n getUploadStatus,\n uploadFile,\n removeFile,\n updateImage,\n editingImage,\n setEditingImage,\n getUrl,\n } = useUploadFiles({\n handleOnChange: onFilesChange,\n application: 'media-library',\n visibility,\n });\n\n /**\n * By using useRef to store blobs\n * We know that ref doesn't re-render\n * We avoid unexpected images/blob download when uploading files\n */\n const fileBlobs = useRef(new Map());\n\n useEffect(() => {\n const blobs = fileBlobs.current;\n\n /**\n * We use the clean up function inside the useEffect to revoke blobs\n */\n return () => {\n blobs.forEach((url) => URL.revokeObjectURL(url));\n blobs.clear();\n };\n }, []);\n\n /**\n * We create the current element with a function\n * @param file\n */\n const renderItem = (file: File) => {\n const isTypeImage = file.type.startsWith('image');\n const src = isTypeImage ? fileBlobs.current.get(file.name) : '';\n /**\n * We check if a blob already exists for a file\n * If not, we add a new blob\n */\n if (!fileBlobs.current.has(file.name)) {\n fileBlobs.current.set(file.name, URL.createObjectURL(file));\n }\n\n return {\n name: file.name,\n info: {\n type: file.type,\n weight: customSize(file.size || 0, 1),\n },\n src,\n };\n };\n\n /**\n * We delete file's blob\n * We remove the file from the uploaded list\n * @param file\n */\n const handleRemoveFile = (file: File) => {\n const blobUrl = fileBlobs.current.get(file.name);\n if (blobUrl) {\n URL.revokeObjectURL(blobUrl);\n fileBlobs.current.delete(file.name);\n }\n removeFile(file);\n };\n\n return (\n <>\n {files.map((file) => {\n const resource = uploadedFiles.find(\n (uploadedFile) => uploadedFile.name === file.name,\n );\n\n return (\n <UploadCard\n key={file.name}\n status={getUploadStatus(file)}\n item={renderItem(file)}\n onEdit={() => setEditingImage(resource)}\n onRetry={() => uploadFile(file)}\n onDelete={() => handleRemoveFile(file)}\n />\n );\n })}\n {editingImage && (\n <ImageEditor\n altText={editingImage.alt}\n legend={editingImage.title}\n image={getUrl(editingImage, true)}\n isOpen={!!editingImage}\n onCancel={() => setEditingImage(undefined)}\n onSave={updateImage}\n onError={console.error}\n />\n )}\n </>\n );\n};\n\nUploadFiles.displayName = 'UploadFiles';\n\nexport default UploadFiles;\n"],"names":["UploadFiles","onFilesChange","visibility","files","uploadedFiles","getUploadStatus","uploadFile","removeFile","updateImage","editingImage","setEditingImage","getUrl","useUploadFiles","handleOnChange","application","fileBlobs","useRef","Map","useEffect","blobs","current","forEach","url","URL","revokeObjectURL","clear","renderItem","file","src","type","startsWith","get","name","has","set","createObjectURL","info","weight","customSize","size","handleRemoveFile","blobUrl","delete","map","resource","find","uploadedFile","jsx","UploadCard","ImageEditor","alt","title","undefined","console","error"],"mappings":";;;;;;AAQA,MAAMA,IAAcA,CAAC;AAAA,EACnBC,eAAAA;AAAAA,EACAC,YAAAA,IAAa;AAIf,MAAM;AACE,QAAA;AAAA,IACJC,OAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAC,QAAAA;AAAAA,MACEC,EAAe;AAAA,IACjBC,gBAAgBZ;AAAAA,IAChBa,aAAa;AAAA,IACbZ,YAAAA;AAAAA,EAAAA,CACD,GAOKa,IAAYC,EAAWC,oBAAAA,IAAK,CAAA;AAElCC,EAAAA,EAAU,MAAM;AACd,UAAMC,IAAQJ,EAAUK;AAKxB,WAAO,MAAM;AACXD,MAAAA,EAAME,QAASC,CAAAA,MAAQC,IAAIC,gBAAgBF,CAAG,CAAC,GAC/CH,EAAMM,MAAM;AAAA,IAAA;AAAA,EAEhB,GAAG,CAAE,CAAA;AAMCC,QAAAA,IAAaA,CAACC,MAAe;AAEjC,UAAMC,IADcD,EAAKE,KAAKC,WAAW,OAAO,IACtBf,EAAUK,QAAQW,IAAIJ,EAAKK,IAAI,IAAI;AAK7D,WAAKjB,EAAUK,QAAQa,IAAIN,EAAKK,IAAI,KAClCjB,EAAUK,QAAQc,IAAIP,EAAKK,MAAMT,IAAIY,gBAAgBR,CAAI,CAAC,GAGrD;AAAA,MACLK,MAAML,EAAKK;AAAAA,MACXI,MAAM;AAAA,QACJP,MAAMF,EAAKE;AAAAA,QACXQ,QAAQC,EAAWX,EAAKY,QAAQ,GAAG,CAAC;AAAA,MACtC;AAAA,MACAX,KAAAA;AAAAA,IAAAA;AAAAA,EACF,GAQIY,IAAmBA,CAACb,MAAe;AACvC,UAAMc,IAAU1B,EAAUK,QAAQW,IAAIJ,EAAKK,IAAI;AAC/C,IAAIS,MACFlB,IAAIC,gBAAgBiB,CAAO,GACjBrB,EAAAA,QAAQsB,OAAOf,EAAKK,IAAI,IAEpCzB,EAAWoB,CAAI;AAAA,EAAA;AAGjB,SAEKxB,gBAAAA,EAAAA,GAAAA,EAAAA,UAAAA;AAAAA,IAAAA,EAAMwC,IAAKhB,CAASA,MAAA;AACnB,YAAMiB,IAAWxC,EAAcyC,KAC5BC,OAAiBA,EAAad,SAASL,EAAKK,IAC/C;AAGE,aAAA,gBAAAe,EAACC,GAEC,EAAA,QAAQ3C,EAAgBsB,CAAI,GAC5B,MAAMD,EAAWC,CAAI,GACrB,QAAQ,MAAMjB,EAAgBkC,CAAQ,GACtC,SAAS,MAAMtC,EAAWqB,CAAI,GAC9B,UAAU,MAAMa,EAAiBb,CAAI,EALhCA,GAAAA,EAAKK,IAMV;AAAA,IAAA,CAEL;AAAA,IACAvB,KACE,gBAAAsC,EAAAE,GAAA,EACC,SAASxC,EAAayC,KACtB,QAAQzC,EAAa0C,OACrB,OAAOxC,EAAOF,GAAc,EAAI,GAChC,QAAQ,CAAC,CAACA,GACV,UAAU,MAAMC,EAAgB0C,MAAS,GACzC,QAAQ5C,GACR,SAAS6C,QAAQC,MAEpB,CAAA;AAAA,EACH,EAAA,CAAA;AAEJ;"}
@@ -1,78 +0,0 @@
1
- import { jsxs as o, jsx as r } from "react/jsx-runtime";
2
- import { useState as s, useId as I, useEffect as h } from "react";
3
- import { odeServices as l } from "@edifice.io/ts-client";
4
- import { useTranslation as T } from "react-i18next";
5
- import { useMediaLibraryContext as F } from "../MediaLibrary/MediaLibraryContext.js";
6
- import S from "../../../hooks/useDebounce/useDebounce.js";
7
- import U from "../../../core/usePaths/usePaths.js";
8
- import { Icon as c } from "../../../components/Icon/Icon.js";
9
- import { FormControl as V } from "../../../components/Form/FormControl.js";
10
- import { Input as k } from "../../../components/Input/Input.js";
11
- import { Image as j } from "../../../components/Image/Image.js";
12
- import { EmptyScreen as D } from "../../../components/EmptyScreen/EmptyScreen.js";
13
- import { Button as p } from "../../../components/Button/Button.js";
14
- const O = ({
15
- onSuccess: n
16
- }) => {
17
- const {
18
- t: i
19
- } = T(), {
20
- switchType: u
21
- } = F(), [g, x] = s(), [b, C] = s(), [d, v] = s(void 0), [a, N] = s(), m = S(g || "", 300), y = I(), [E] = U();
22
- h(() => {
23
- w();
24
- }, []), h(() => {
25
- if (a && m) {
26
- const t = l.embedder().getProviderFromUrl(a, m);
27
- if (t) {
28
- v(t);
29
- const e = l.embedder().getEmbedCodeForProvider(t, m);
30
- C(e), n(e);
31
- } else
32
- v(void 0), n();
33
- }
34
- }, [m, a]);
35
- const w = async () => {
36
- const t = await Promise.all([l.embedder().getDefault(), l.embedder().getCustom()]).then((e) => e.flat());
37
- N(t);
38
- };
39
- function P(t) {
40
- const e = t.currentTarget.value;
41
- x(e), n(e != null && e.length ? e : void 0);
42
- }
43
- function f() {
44
- u("embedder");
45
- }
46
- const L = () => m ? d ? /* @__PURE__ */ o("div", { className: "mx-auto mt-16", children: [
47
- /* @__PURE__ */ o("div", { className: "video-embed-provider d-flex align-items-center", children: [
48
- /* @__PURE__ */ r(j, { src: d.logo, alt: "Logo " + d.displayName, className: "video-embed-provider-logo" }),
49
- d.displayName
50
- ] }),
51
- b && /* @__PURE__ */ r("div", { className: "video-embed-preview mt-12", dangerouslySetInnerHTML: {
52
- __html: b
53
- } })
54
- ] }) : /* @__PURE__ */ o("div", { className: "d-flex flex-column align-items-center m-16", children: [
55
- /* @__PURE__ */ r(D, { imageSrc: `${E}/emptyscreen/illu-error.svg`, title: i("bbm.video.previewError.title"), text: i("bbm.video.previewError.text") }),
56
- /* @__PURE__ */ o(p, { variant: "ghost", color: "primary", onClick: f, className: "align-items-start mt-16", children: [
57
- i("bbm.video.useEmbedCode"),
58
- " ",
59
- /* @__PURE__ */ r(c, { name: "arrow-right" })
60
- ] })
61
- ] }) : /* @__PURE__ */ r("div", { className: "d-flex my-16 align-items-start", children: /* @__PURE__ */ o(p, { variant: "ghost", color: "primary", onClick: f, className: "align-items-start", children: [
62
- i("bbm.video.useEmbedCode"),
63
- " ",
64
- /* @__PURE__ */ r(c, { name: "arrow-right" })
65
- ] }) });
66
- return /* @__PURE__ */ o("div", { className: "d-flex flex-column flex-fill video-embed", children: [
67
- /* @__PURE__ */ o("div", { className: "mb-8 d-flex", children: [
68
- /* @__PURE__ */ r(c, { name: "globe", className: "me-8" }),
69
- i("bbm.video.url.title")
70
- ] }),
71
- /* @__PURE__ */ r(V, { id: y, children: /* @__PURE__ */ r(k, { size: "md", type: "text", placeholder: i("bbm.video.url.placeholder"), onChange: P }) }),
72
- L()
73
- ] });
74
- };
75
- export {
76
- O as default
77
- };
78
- //# sourceMappingURL=VideoEmbed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VideoEmbed.js","sources":["../../../../src/modules/multimedia/VideoEmbed/VideoEmbed.tsx"],"sourcesContent":["import { useEffect, useId, useState } from 'react';\n\nimport { Embedder, odeServices } from '@edifice.io/ts-client';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n Button,\n EmptyScreen,\n FormControl,\n Icon,\n Image,\n Input,\n} from '../../../components';\nimport { usePaths } from '../../../core';\nimport { useDebounce } from '../../../hooks';\nimport { useMediaLibraryContext } from '../MediaLibrary/MediaLibraryContext';\n\nexport interface VideoEmbedProps {\n onSuccess: (resource?: string) => void;\n}\n\nconst VideoEmbed = ({ onSuccess }: VideoEmbedProps) => {\n const { t } = useTranslation();\n const { switchType } = useMediaLibraryContext();\n\n const [url, setUrl] = useState<string>();\n const [embedVideo, setEmbedVideo] = useState<string>();\n const [embedder, setEmbedder] = useState<Embedder | undefined>(undefined);\n const [whiteListProvider, setWhiteListProvider] = useState<Embedder[]>();\n const debounceChangeUrl = useDebounce<string>(url || '', 300);\n const formControlId = useId();\n\n const [imagePath] = usePaths();\n\n useEffect(() => {\n initWhiteListProvider();\n }, []);\n\n useEffect(() => {\n if (whiteListProvider && debounceChangeUrl) {\n const embedderFound = odeServices\n .embedder()\n .getProviderFromUrl(whiteListProvider, debounceChangeUrl);\n if (embedderFound) {\n setEmbedder(embedderFound);\n const embedVideo = odeServices\n .embedder()\n .getEmbedCodeForProvider(embedderFound, debounceChangeUrl);\n setEmbedVideo(embedVideo);\n onSuccess(embedVideo);\n } else {\n setEmbedder(undefined);\n onSuccess();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debounceChangeUrl, whiteListProvider]);\n\n const initWhiteListProvider = async () => {\n const whiteListProviderResponse = await Promise.all([\n odeServices.embedder().getDefault(),\n odeServices.embedder().getCustom(),\n ]).then((results) => results.flat());\n setWhiteListProvider(whiteListProviderResponse);\n };\n\n function handleUrlChange(event: React.ChangeEvent<HTMLInputElement>) {\n const url: string = event.currentTarget.value;\n setUrl(url);\n onSuccess(url?.length ? url : undefined);\n }\n\n function handleSwitchToEmbedderClick() {\n switchType('embedder');\n }\n\n const renderContent = () => {\n if (debounceChangeUrl) {\n if (embedder) {\n return (\n <div className=\"mx-auto mt-16\">\n <div className=\"video-embed-provider d-flex align-items-center\">\n <Image\n src={embedder.logo}\n alt={'Logo ' + embedder.displayName}\n className=\"video-embed-provider-logo\"\n ></Image>\n {embedder.displayName}\n </div>\n {embedVideo && (\n <div\n className=\"video-embed-preview mt-12\"\n dangerouslySetInnerHTML={{\n __html: embedVideo,\n }}\n ></div>\n )}\n </div>\n );\n } else {\n return (\n <div className=\"d-flex flex-column align-items-center m-16\">\n <EmptyScreen\n imageSrc={`${imagePath}/emptyscreen/illu-error.svg`}\n title={t('bbm.video.previewError.title')}\n text={t('bbm.video.previewError.text')}\n />\n <Button\n variant=\"ghost\"\n color=\"primary\"\n onClick={handleSwitchToEmbedderClick}\n className=\"align-items-start mt-16\"\n >\n {t('bbm.video.useEmbedCode')} <Icon name=\"arrow-right\" />\n </Button>\n </div>\n );\n }\n } else {\n return (\n <div className=\"d-flex my-16 align-items-start\">\n <Button\n variant=\"ghost\"\n color=\"primary\"\n onClick={handleSwitchToEmbedderClick}\n className=\"align-items-start\"\n >\n {t('bbm.video.useEmbedCode')} <Icon name=\"arrow-right\" />\n </Button>\n </div>\n );\n }\n };\n\n return (\n <div className=\"d-flex flex-column flex-fill video-embed\">\n <div className=\"mb-8 d-flex\">\n <Icon name=\"globe\" className=\"me-8\" />\n {t('bbm.video.url.title')}\n </div>\n <FormControl id={formControlId}>\n <Input\n size=\"md\"\n type=\"text\"\n placeholder={t('bbm.video.url.placeholder')}\n onChange={handleUrlChange}\n />\n </FormControl>\n {renderContent()}\n </div>\n );\n};\n\nexport default VideoEmbed;\n"],"names":["VideoEmbed","onSuccess","t","useTranslation","switchType","useMediaLibraryContext","url","setUrl","useState","embedVideo","setEmbedVideo","embedder","setEmbedder","undefined","whiteListProvider","setWhiteListProvider","debounceChangeUrl","useDebounce","formControlId","useId","imagePath","usePaths","useEffect","initWhiteListProvider","embedderFound","odeServices","getProviderFromUrl","getEmbedCodeForProvider","whiteListProviderResponse","Promise","all","getDefault","getCustom","then","results","flat","handleUrlChange","event","currentTarget","value","length","handleSwitchToEmbedderClick","renderContent","jsxs","jsx","Image","logo","displayName","__html","EmptyScreen","Button","Icon","FormControl","Input"],"mappings":"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"}
@@ -1,260 +0,0 @@
1
- import { jsx as i, jsxs as m, Fragment as G } from "react/jsx-runtime";
2
- import { forwardRef as pe, useState as n, useRef as W, useImperativeHandle as ve, useEffect as f, useCallback as N } from "react";
3
- import { odeServices as fe } from "@edifice.io/ts-client";
4
- import { useTranslation as be } from "react-i18next";
5
- import he from "../../../hooks/useBrowserInfo/useBrowserInfo.js";
6
- import ye from "../../../core/useUpload/useUpload.js";
7
- import { getBestSupportedMimeType as ge } from "../../../utils/video.js";
8
- import { Select as we } from "../../../components/Select/Select.js";
9
- import { Icon as u } from "../../../components/Icon/Icon.js";
10
- import { FormControl as Ie } from "../../../components/Form/FormControl.js";
11
- import { Label as ke } from "../../../components/Label/Label.js";
12
- import { convertMsToMS as w } from "../../../utils/time.js";
13
- import { Toolbar as Ce } from "../../../components/Toolbar/Toolbar.js";
14
- import { LoadingScreen as Te } from "../../../components/LoadingScreen/LoadingScreen.js";
15
- const L = 9, V = 16, He = /* @__PURE__ */ pe(({
16
- appCode: J,
17
- caption: K,
18
- onSuccess: I,
19
- onError: Q,
20
- onRecordUpdated: h,
21
- hideSaveAction: X = !1
22
- }, Y) => {
23
- const [O, Z] = n(18e4), [k, C] = n([]), [d, T] = n(!1), [l, j] = n(!1), [v, y] = n(!1), [p, R] = n(!1), [$, S] = n(!1), [U, ee] = n({
24
- audio: !0,
25
- video: {
26
- facingMode: "environment",
27
- aspectRatio: V / L
28
- }
29
- }), [c, P] = n(), [re, oe] = n(""), [x, B] = n([]), [H, z] = n(), [b, q] = n(0), [te, A] = n(0), o = W(null), a = W(null), {
30
- uploadBlob: ie
31
- } = ye(void 0, J), {
32
- device: ne
33
- } = he(navigator.userAgent);
34
- ve(Y, () => ({
35
- save: _
36
- }));
37
- const {
38
- t
39
- } = be();
40
- f(() => {
41
- ae(), se();
42
- }, []), f(() => (c || D(U), () => {
43
- c && c.getTracks().forEach((r) => r.stop());
44
- }), [c]), f(() => {
45
- if (x.length && !d && o.current) {
46
- const r = new Blob(x, {
47
- type: re
48
- });
49
- if (z(r), h) {
50
- const e = window.URL.createObjectURL(r);
51
- h(e);
52
- }
53
- o.current.autoplay = !1, o.current.srcObject = null, o.current.src = window.URL.createObjectURL(r);
54
- }
55
- }, [d, x]), f(() => {
56
- if (d) {
57
- const r = Date.now(), e = window.setInterval(
58
- // Compute exact elapsed time by diffing the start time.
59
- () => q(Date.now() - r),
60
- 500
61
- );
62
- return () => {
63
- window.clearInterval(e);
64
- };
65
- }
66
- }, [d]), f(() => {
67
- if (v) {
68
- const r = window.setInterval(() => A((e) => e + 500), 500);
69
- return () => {
70
- window.clearInterval(r);
71
- };
72
- }
73
- }, [v]);
74
- const ae = async () => {
75
- const r = await fe.video().getVideoConf();
76
- Z((r.maxDuration ?? 3) * 60 * 1e3);
77
- }, se = async () => {
78
- const e = (await navigator.mediaDevices.enumerateDevices()).filter((s) => s.kind === "videoinput");
79
- switch (ne.type) {
80
- case "mobile":
81
- case "tablet": {
82
- const s = {
83
- deviceId: "environment",
84
- label: t("video.back.camera"),
85
- groupId: "",
86
- kind: "videoinput"
87
- }, g = {
88
- deviceId: "user",
89
- label: t("video.front.camera"),
90
- groupId: "",
91
- kind: "videoinput"
92
- };
93
- (e == null ? void 0 : e.length) > 1 ? C([s, g]) : C([s]);
94
- break;
95
- }
96
- default:
97
- C(e);
98
- break;
99
- }
100
- }, D = async (r) => {
101
- try {
102
- const e = await navigator.mediaDevices.getUserMedia(r);
103
- P(e), o.current && (o.current.src && (window.URL.revokeObjectURL(o.current.src), o.current.src = ""), o.current.srcObject = e, o.current.autoplay = !0, o.current.volume = 1, o.current.muted = !0);
104
- } catch (e) {
105
- console.error(e);
106
- }
107
- }, ce = N(() => {
108
- T(!0), o && o.current && (o.current.muted = !0);
109
- const r = ge();
110
- oe(r), c && (a.current = new MediaRecorder(c, {
111
- mimeType: r
112
- }), a.current.ondataavailable = ({
113
- data: e
114
- }) => {
115
- e.size > 0 && B((s) => [...s, e]);
116
- }, a.current.onerror = (e) => console.error(e), a.current.start(1e3));
117
- }, [c]), M = N(() => {
118
- var r;
119
- T(!1), j(!0), ((r = a.current) == null ? void 0 : r.state) === "recording" && (a.current.requestData(), a.current.stop());
120
- }, [a]), F = N(() => {
121
- var r, e;
122
- o && o.current && (o.current.muted = !1), v ? ((e = o == null ? void 0 : o.current) == null || e.pause(), y(!1)) : ((r = o == null ? void 0 : o.current) == null || r.play(), y(!0));
123
- }, [v]), de = () => {
124
- j(!1), T(!1), y(!1), S(!1), q(0), B([]), z(void 0), D(U), h && h();
125
- }, _ = async () => {
126
- if (R(!0), !H) {
127
- console.error("Error while saving video: recorded video is undefined.");
128
- return;
129
- }
130
- const r = await ie(H, {
131
- duration: b
132
- });
133
- if (r != null)
134
- return I == null || I([r]), R(!1), S(!0), [r];
135
- Q("Error while uploading video"), R(!1), S(!0);
136
- }, le = () => {
137
- y(!1), A(0), o.current && (o.current.currentTime = 0);
138
- }, me = (r) => {
139
- var g;
140
- const e = k.find((E) => E.label === r);
141
- let s = {};
142
- e != null && e.deviceId ? ((e == null ? void 0 : e.deviceId) === "environment" || (e == null ? void 0 : e.deviceId) === "user" ? s = {
143
- audio: !0,
144
- video: {
145
- aspectRatio: V / L,
146
- facingMode: e == null ? void 0 : e.deviceId
147
- }
148
- } : s = {
149
- audio: !0,
150
- video: {
151
- aspectRatio: V / L,
152
- deviceId: e.deviceId
153
- }
154
- }, ee(s), c && (((g = a.current) == null ? void 0 : g.state) === "recording" && (a.current.requestData(), a.current.stop()), c.getTracks().forEach((E) => E.stop()), P(void 0)), D(s)) : console.error("Selected input device id is null");
155
- };
156
- f(() => {
157
- b >= O && M();
158
- }, [b, M]);
159
- const ue = [{
160
- type: "icon",
161
- name: "record",
162
- props: {
163
- icon: /* @__PURE__ */ i(u, { name: "record", color: d || l ? "" : "red" }),
164
- color: "danger",
165
- disabled: d || l || p,
166
- onClick: ce,
167
- "aria-label": t("bbm.video.record.start")
168
- },
169
- tooltip: t("bbm.video.record.start")
170
- }, {
171
- type: "icon",
172
- name: "stop",
173
- props: {
174
- icon: /* @__PURE__ */ i(u, { name: "record-stop" }),
175
- disabled: !d || l || p,
176
- onClick: M,
177
- "aria-label": t("bbm.video.record.stop")
178
- },
179
- tooltip: t("bbm.video.record.stop")
180
- }, {
181
- type: "icon",
182
- name: "play",
183
- visibility: v ? "hide" : "show",
184
- props: {
185
- icon: /* @__PURE__ */ i(u, { name: "play-filled" }),
186
- disabled: !l || p,
187
- onClick: F,
188
- "aria-label": t("bbm.video.play.start")
189
- },
190
- tooltip: t("bbm.video.play.start")
191
- }, {
192
- type: "icon",
193
- name: "pause",
194
- visibility: v ? "show" : "hide",
195
- props: {
196
- icon: /* @__PURE__ */ i(u, { name: "pause" }),
197
- disabled: !l || p,
198
- onClick: F,
199
- "aria-label": t("bbm.video.play.pause")
200
- },
201
- tooltip: t("bbm.video.play.pause")
202
- }, {
203
- type: "divider"
204
- }, {
205
- type: "icon",
206
- name: "reset",
207
- props: {
208
- icon: /* @__PURE__ */ i(u, { name: "refresh" }),
209
- disabled: !l || p,
210
- onClick: de,
211
- "aria-label": t("bbm.video.record.reset")
212
- },
213
- tooltip: t("bbm.video.record.reset")
214
- }, {
215
- type: "icon",
216
- name: "save",
217
- visibility: X ? "hide" : "show",
218
- props: {
219
- icon: /* @__PURE__ */ i(u, { name: "save" }),
220
- disabled: !l || p || $,
221
- onClick: _,
222
- "aria-label": t("bbm.video.record.save")
223
- },
224
- tooltip: t("bbm.video.record.save")
225
- }];
226
- return /* @__PURE__ */ m("div", { className: "video-recorder d-flex flex-fill flex-column align-items-center pb-8", children: [
227
- /* @__PURE__ */ i("div", { className: "video-recorder-caption d-none d-md-block", children: K }),
228
- k.length > 1 && /* @__PURE__ */ i("div", { className: "video-recorder-devices mb-12", children: /* @__PURE__ */ m(Ie, { id: "selectInputDevice", children: [
229
- /* @__PURE__ */ i(ke, { className: "d-none d-md-block", children: t("bbm.video.record.select.devices.label") }),
230
- /* @__PURE__ */ i(we, { placeholderOption: t("bbm.video.record.select.devices.placeholder"), options: k.map((r) => r.label), onValueChange: me })
231
- ] }) }),
232
- /* @__PURE__ */ m("div", { className: "video-recorder-video-container position-relative align-self-stretch", children: [
233
- /* @__PURE__ */ i("video", { ref: o, playsInline: !0, autoPlay: !0, controls: !1, muted: !0, onEnded: le, className: "rounded", children: /* @__PURE__ */ i("track", { default: !0, kind: "captions", srcLang: "fr", src: "" }) }),
234
- (d || l) && /* @__PURE__ */ m("div", { className: "video-recorder-time d-flex align-items-center font-monospace fs-6 text-bg-dark rounded", children: [
235
- d && /* @__PURE__ */ m(G, { children: [
236
- /* @__PURE__ */ i(u, { name: "record", size: "12", color: "red", className: "me-4" }),
237
- /* @__PURE__ */ m("span", { children: [
238
- w(b),
239
- "/",
240
- w(O)
241
- ] })
242
- ] }),
243
- l && /* @__PURE__ */ m(G, { children: [
244
- /* @__PURE__ */ i(u, { name: "record-video", size: "14", className: "me-4" }),
245
- /* @__PURE__ */ m("span", { children: [
246
- w(te),
247
- "/",
248
- w(b)
249
- ] })
250
- ] })
251
- ] }),
252
- c && /* @__PURE__ */ i(Ce, { items: ue, className: "position-absolute bottom-0 start-50 bg-white" })
253
- ] }),
254
- p && /* @__PURE__ */ i(Te, { position: !1, caption: t("bbm.video.save.loader.caption") })
255
- ] });
256
- });
257
- export {
258
- He as default
259
- };
260
- //# sourceMappingURL=VideoRecorder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VideoRecorder.js","sources":["../../../../src/modules/multimedia/VideoRecorder/VideoRecorder.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\n\nimport { WorkspaceElement, odeServices } from '@edifice.io/ts-client';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n FormControl,\n Icon,\n Label,\n LoadingScreen,\n OptionsType,\n Select,\n} from '../../../components';\nimport { Toolbar, ToolbarItem } from '../../../components/Toolbar';\nimport { useUpload } from '../../../core/useUpload';\nimport useBrowserInfo from '../../../hooks/useBrowserInfo/useBrowserInfo';\nimport { convertMsToMS, getBestSupportedMimeType } from '../../../utils';\n\nexport interface VideoRecorderProps {\n appCode: string;\n caption?: string;\n onSuccess?: (res: WorkspaceElement[]) => void;\n onError: (error: string) => void;\n onRecordUpdated?: (recordURL?: string) => void;\n hideSaveAction?: boolean;\n}\n\nconst VIDEO_HEIGHT = 9;\nconst VIDEO_WIDTH = 16;\n\nexport interface VideoRecorderRef {\n save: () => Promise<WorkspaceElement | undefined>;\n}\n\nconst VideoRecorder = forwardRef(\n (\n {\n appCode,\n caption,\n onSuccess,\n onError,\n onRecordUpdated,\n hideSaveAction = false,\n }: VideoRecorderProps,\n ref,\n ) => {\n const [maxDuration, setMaxDuration] = useState<number>(180000);\n const [inputDevices, setInputDevices] = useState<MediaDeviceInfo[]>([]);\n\n const [recording, setRecording] = useState<boolean>(false);\n const [recorded, setRecorded] = useState<boolean>(false);\n const [playing, setPlaying] = useState<boolean>(false);\n const [saving, setSaving] = useState<boolean>(false);\n const [saved, setSaved] = useState<boolean>(false);\n\n const [mediaStreamConstraints, setMediaStreamConstraints] =\n useState<MediaStreamConstraints>({\n audio: true,\n video: {\n facingMode: 'environment',\n aspectRatio: VIDEO_WIDTH / VIDEO_HEIGHT,\n },\n });\n const [stream, setStream] = useState<MediaStream>();\n const [mimeType, setMimeType] = useState<string>('');\n\n const [recordedChunks, setRecordedChunks] = useState<Blob[]>([]);\n const [recordedVideo, setRecordedVideo] = useState<Blob>();\n\n const [recordedTime, setRecordedTime] = useState<number>(0);\n const [playedTime, setPlayedTime] = useState<number>(0);\n\n const videoRef = useRef<HTMLVideoElement>(null);\n const recorderRef = useRef<MediaRecorder | null>(null);\n\n const { uploadBlob } = useUpload(undefined, appCode);\n\n const { device } = useBrowserInfo(navigator.userAgent);\n\n // We add one methods to handle save action from parent component\n useImperativeHandle(ref, () => ({\n save: handleSave,\n }));\n\n const { t } = useTranslation();\n\n /**\n * Get max duration from Conf and input devices list.\n */\n useEffect(() => {\n initMaxDuration();\n initInputDevices();\n }, []);\n\n /**\n * Enable video stream and stop streaming on clean up.\n */\n useEffect(() => {\n if (!stream) {\n enableStream(mediaStreamConstraints);\n }\n return () => {\n if (stream) {\n stream.getTracks().forEach((track) => track.stop());\n }\n };\n }, [stream]);\n\n /**\n * Get last updated recorded chunk and set the recorded video as source for user to watch it.\n */\n useEffect(() => {\n if (recordedChunks.length && !recording && videoRef.current) {\n const finalVideo: Blob = new Blob(recordedChunks, { type: mimeType });\n setRecordedVideo(finalVideo);\n\n if (onRecordUpdated) {\n const videoUrl = window.URL.createObjectURL(finalVideo);\n onRecordUpdated(videoUrl);\n }\n videoRef.current.autoplay = false;\n videoRef.current.srcObject = null;\n videoRef.current.src = window.URL.createObjectURL(finalVideo);\n }\n }, [recording, recordedChunks]);\n\n /**\n * Handle recording countup.\n * Recording cannot be paused.\n */\n useEffect(() => {\n if (recording) {\n // Get the start timestamp.\n const startedAt = Date.now();\n const timer = window.setInterval(\n // Compute exact elapsed time by diffing the start time.\n () => setRecordedTime(Date.now() - startedAt),\n 500,\n );\n\n return () => {\n window.clearInterval(timer);\n };\n }\n }, [recording]);\n\n /**\n * Handle playing countup.\n * Playing can be paused and resumed.\n */\n useEffect(() => {\n if (playing) {\n // Compute an approximative elapsed time by cumulating small inaccurate values.\n const timer = window.setInterval(\n () => setPlayedTime((prev) => prev + 500),\n 500,\n );\n\n return () => {\n window.clearInterval(timer);\n };\n }\n }, [playing]);\n\n const initMaxDuration = async () => {\n const videoConfResponse = await odeServices.video().getVideoConf();\n setMaxDuration((videoConfResponse.maxDuration ?? 3) * 60 * 1000);\n };\n\n const initInputDevices = async () => {\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevices = devices.filter(\n (device) => device.kind === 'videoinput',\n );\n // console, mobile, tablet, smarttv, wearable, embedded\n switch (device.type) {\n case 'mobile':\n case 'tablet': {\n const backCamera = {\n deviceId: 'environment',\n label: t('video.back.camera'),\n groupId: '',\n kind: 'videoinput',\n } as MediaDeviceInfo;\n const frontCamera = {\n deviceId: 'user',\n label: t('video.front.camera'),\n groupId: '',\n kind: 'videoinput',\n } as MediaDeviceInfo;\n\n if (videoDevices?.length > 1) {\n // mobile/tablet has more than 1 camera\n setInputDevices([backCamera, frontCamera]);\n } else {\n // else we let the system use the only one that exists (or none)\n setInputDevices([backCamera]);\n }\n break;\n }\n default:\n // \"Desktop\" or other future types => list all cameras without distinction.\n setInputDevices(videoDevices);\n break;\n }\n };\n\n const enableStream = async (\n mediaStreamConstraints: MediaStreamConstraints,\n ) => {\n try {\n const mediaStream: MediaStream =\n await navigator.mediaDevices.getUserMedia(mediaStreamConstraints);\n setStream(mediaStream);\n\n if (videoRef.current) {\n if (videoRef.current.src) {\n window.URL.revokeObjectURL(videoRef.current.src);\n videoRef.current.src = '';\n }\n videoRef.current.srcObject = mediaStream;\n videoRef.current.autoplay = true;\n videoRef.current.volume = 1;\n videoRef.current.muted = true;\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const handleRecord = useCallback(() => {\n setRecording(true);\n\n if (videoRef && videoRef.current) {\n videoRef.current.muted = true;\n }\n\n const mimeType = getBestSupportedMimeType();\n setMimeType(mimeType);\n\n if (stream) {\n recorderRef.current = new MediaRecorder(stream, { mimeType });\n recorderRef.current.ondataavailable = ({ data }: BlobEvent) => {\n if (data.size > 0) {\n setRecordedChunks((prev) => [...prev, data]);\n }\n };\n recorderRef.current.onerror = (event) => console.error(event);\n recorderRef.current.start(1000); // collect 1000ms of data\n }\n }, [stream]);\n\n const handleStop = useCallback(() => {\n setRecording(false);\n setRecorded(true);\n\n if (recorderRef.current?.state === 'recording') {\n recorderRef.current.requestData();\n recorderRef.current.stop();\n }\n }, [recorderRef]);\n\n const handlePlayPause = useCallback(() => {\n if (videoRef && videoRef.current) {\n videoRef.current.muted = false;\n }\n\n if (!playing) {\n videoRef?.current?.play();\n setPlaying(true);\n } else {\n videoRef?.current?.pause();\n setPlaying(false);\n }\n }, [playing]);\n\n const handleReset = () => {\n setRecorded(false);\n setRecording(false);\n setPlaying(false);\n setSaved(false);\n setRecordedTime(0);\n setRecordedChunks([]);\n setRecordedVideo(undefined);\n enableStream(mediaStreamConstraints);\n\n if (onRecordUpdated) {\n onRecordUpdated();\n }\n };\n\n const handleSave = async () => {\n setSaving(true);\n if (!recordedVideo) {\n console.error('Error while saving video: recorded video is undefined.');\n return;\n }\n\n const resVideo = await uploadBlob(recordedVideo, {\n duration: recordedTime,\n });\n\n if (resVideo != null) {\n onSuccess?.([resVideo]);\n setSaving(false);\n setSaved(true);\n return [resVideo];\n } else {\n onError('Error while uploading video');\n setSaving(false);\n setSaved(true);\n }\n };\n\n const handleEnded = () => {\n setPlaying(false);\n setPlayedTime(0);\n if (videoRef.current) {\n videoRef.current.currentTime = 0;\n }\n };\n\n const handleInputDeviceChange = (option: OptionsType | string) => {\n const selectedDevice = inputDevices.find(\n (inputDevice) => inputDevice.label === option,\n );\n\n let mediaStreamConstraints: MediaStreamConstraints = {};\n if (selectedDevice?.deviceId) {\n if (\n selectedDevice?.deviceId === 'environment' ||\n selectedDevice?.deviceId === 'user'\n ) {\n mediaStreamConstraints = {\n audio: true,\n video: {\n aspectRatio: VIDEO_WIDTH / VIDEO_HEIGHT,\n facingMode: selectedDevice?.deviceId,\n },\n };\n } else {\n mediaStreamConstraints = {\n audio: true,\n video: {\n aspectRatio: VIDEO_WIDTH / VIDEO_HEIGHT,\n deviceId: selectedDevice.deviceId,\n },\n };\n }\n\n setMediaStreamConstraints(mediaStreamConstraints);\n\n if (stream) {\n if (recorderRef.current?.state === 'recording') {\n recorderRef.current.requestData();\n recorderRef.current.stop();\n }\n stream.getTracks().forEach((track) => track.stop());\n setStream(undefined);\n }\n enableStream(mediaStreamConstraints);\n } else {\n console.error('Selected input device id is null');\n }\n };\n\n /**\n * Auto-stop recording when max allowed duration is reached.\n */\n useEffect(() => {\n if (recordedTime >= maxDuration) {\n handleStop();\n }\n }, [recordedTime, handleStop]);\n\n const toolbarItems: ToolbarItem[] = [\n {\n type: 'icon',\n name: 'record',\n props: {\n icon: (\n <Icon name=\"record\" color={recording || recorded ? '' : 'red'} />\n ),\n color: 'danger',\n disabled: recording || recorded || saving,\n onClick: handleRecord,\n 'aria-label': t('bbm.video.record.start'),\n },\n tooltip: t('bbm.video.record.start'),\n },\n {\n type: 'icon',\n name: 'stop',\n props: {\n icon: <Icon name=\"record-stop\" />,\n disabled: !recording || recorded || saving,\n onClick: handleStop,\n 'aria-label': t('bbm.video.record.stop'),\n },\n tooltip: t('bbm.video.record.stop'),\n },\n {\n type: 'icon',\n name: 'play',\n visibility: !playing ? 'show' : 'hide',\n props: {\n icon: <Icon name=\"play-filled\" />,\n disabled: !recorded || saving,\n onClick: handlePlayPause,\n 'aria-label': t('bbm.video.play.start'),\n },\n tooltip: t('bbm.video.play.start'),\n },\n {\n type: 'icon',\n name: 'pause',\n visibility: playing ? 'show' : 'hide',\n props: {\n icon: <Icon name=\"pause\" />,\n disabled: !recorded || saving,\n onClick: handlePlayPause,\n 'aria-label': t('bbm.video.play.pause'),\n },\n tooltip: t('bbm.video.play.pause'),\n },\n { type: 'divider' },\n {\n type: 'icon',\n name: 'reset',\n props: {\n icon: <Icon name=\"refresh\" />,\n disabled: !recorded || saving,\n onClick: handleReset,\n 'aria-label': t('bbm.video.record.reset'),\n },\n tooltip: t('bbm.video.record.reset'),\n },\n {\n type: 'icon',\n name: 'save',\n visibility: hideSaveAction ? 'hide' : 'show',\n props: {\n icon: <Icon name=\"save\" />,\n disabled: !recorded || saving || saved,\n onClick: handleSave,\n 'aria-label': t('bbm.video.record.save'),\n },\n tooltip: t('bbm.video.record.save'),\n },\n ];\n\n return (\n <div className=\"video-recorder d-flex flex-fill flex-column align-items-center pb-8\">\n <div className=\"video-recorder-caption d-none d-md-block\">\n {caption}\n </div>\n {inputDevices.length > 1 && (\n <div className=\"video-recorder-devices mb-12\">\n <FormControl id=\"selectInputDevice\">\n <Label className=\"d-none d-md-block\">\n {t('bbm.video.record.select.devices.label')}\n </Label>\n <Select\n placeholderOption={t(\n 'bbm.video.record.select.devices.placeholder',\n )}\n options={inputDevices.map(\n (videoInputDevice) => videoInputDevice.label,\n )}\n onValueChange={handleInputDeviceChange}\n />\n </FormControl>\n </div>\n )}\n\n <div className=\"video-recorder-video-container position-relative align-self-stretch\">\n <video\n ref={videoRef}\n playsInline={true}\n autoPlay={true}\n controls={false}\n muted={true}\n onEnded={handleEnded}\n className=\"rounded\"\n >\n <track default kind=\"captions\" srcLang=\"fr\" src=\"\"></track>\n </video>\n {(recording || recorded) && (\n <div className=\"video-recorder-time d-flex align-items-center font-monospace fs-6 text-bg-dark rounded\">\n {recording && (\n <>\n <Icon name=\"record\" size=\"12\" color=\"red\" className=\"me-4\" />\n <span>\n {convertMsToMS(recordedTime)}/{convertMsToMS(maxDuration)}\n </span>\n </>\n )}\n {recorded && (\n <>\n <Icon name=\"record-video\" size=\"14\" className=\"me-4\" />\n <span>\n {convertMsToMS(playedTime)}/{convertMsToMS(recordedTime)}\n </span>\n </>\n )}\n </div>\n )}\n {stream && (\n <Toolbar\n items={toolbarItems}\n className=\"position-absolute bottom-0 start-50 bg-white\"\n />\n )}\n </div>\n {saving && (\n <LoadingScreen\n position={false}\n caption={t('bbm.video.save.loader.caption')}\n />\n )}\n </div>\n );\n },\n);\n\nexport default VideoRecorder;\n"],"names":["VIDEO_HEIGHT","VIDEO_WIDTH","VideoRecorder","appCode","caption","onSuccess","onError","onRecordUpdated","hideSaveAction","ref","maxDuration","setMaxDuration","useState","inputDevices","setInputDevices","recording","setRecording","recorded","setRecorded","playing","setPlaying","saving","setSaving","saved","setSaved","mediaStreamConstraints","setMediaStreamConstraints","audio","video","facingMode","aspectRatio","stream","setStream","mimeType","setMimeType","recordedChunks","setRecordedChunks","recordedVideo","setRecordedVideo","recordedTime","setRecordedTime","playedTime","setPlayedTime","videoRef","useRef","recorderRef","uploadBlob","useUpload","undefined","device","useBrowserInfo","navigator","userAgent","useImperativeHandle","save","handleSave","t","useTranslation","useEffect","initMaxDuration","initInputDevices","enableStream","getTracks","forEach","track","stop","length","current","finalVideo","Blob","type","videoUrl","window","URL","createObjectURL","autoplay","srcObject","src","startedAt","Date","now","timer","setInterval","clearInterval","prev","videoConfResponse","odeServices","getVideoConf","videoDevices","mediaDevices","enumerateDevices","filter","kind","backCamera","deviceId","label","groupId","frontCamera","mediaStream","getUserMedia","revokeObjectURL","volume","muted","err","console","error","handleRecord","useCallback","getBestSupportedMimeType","MediaRecorder","ondataavailable","data","size","onerror","event","start","handleStop","state","requestData","handlePlayPause","pause","play","handleReset","resVideo","duration","handleEnded","currentTime","handleInputDeviceChange","option","selectedDevice","find","inputDevice","toolbarItems","name","props","icon","Icon","color","disabled","onClick","tooltip","jsx","visibility","jsxs","FormControl","Label","Select","map","videoInputDevice","Fragment","convertMsToMS","Toolbar","LoadingScreen"],"mappings":"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"}