@edifice.io/react 2.0.0-develop-rc.8 → 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.
- package/README.md +88 -17
- package/dist/common/OnboardingModal/OnboardingModal.js +59 -0
- package/dist/common/OnboardingModal/useOnboardingModal.js +30 -0
- package/dist/{modules/modals → common}/PublishModal/PublishModal.d.ts +1 -1
- package/dist/common/PublishModal/PublishModal.js +120 -0
- package/dist/common/PublishModal/components/ActivitiesDropdown.js +29 -0
- package/dist/common/PublishModal/components/AgeSelect.js +20 -0
- package/dist/common/PublishModal/components/LangSelect.js +19 -0
- package/dist/common/PublishModal/components/PublishModalFooter.js +23 -0
- package/dist/common/PublishModal/components/SubjectsDropdown.js +29 -0
- package/dist/common/PublishModal/components/ToastError.js +24 -0
- package/dist/{modules/modals → common}/PublishModal/components/ToastSuccess.d.ts +1 -1
- package/dist/common/PublishModal/components/ToastSuccess.js +18 -0
- package/dist/common/PublishModal/constants/ageOptions.js +4 -0
- package/dist/{modules/modals → common}/PublishModal/hooks/useActivitiesOptions.js +4 -5
- package/dist/common/PublishModal/hooks/useLanguageOptions.js +43 -0
- package/dist/{modules/modals → common}/PublishModal/hooks/usePublishModal.d.ts +1 -1
- package/dist/common/PublishModal/hooks/usePublishModal.js +106 -0
- package/dist/{modules/modals → common}/PublishModal/hooks/useSubjectsOptions.js +41 -42
- package/dist/{modules/modals → common}/ResourceModal/ResourceModal.d.ts +3 -3
- package/dist/common/ResourceModal/ResourceModal.js +156 -0
- package/dist/{modules/modals → common}/ResourceModal/apps/BlogPublic.d.ts +2 -2
- package/dist/common/ResourceModal/apps/BlogPublic.js +62 -0
- package/dist/{modules/modals → common}/ResourceModal/hooks/useSlug.d.ts +1 -1
- package/dist/common/ResourceModal/hooks/useSlug.js +41 -0
- package/dist/{modules/modals → common}/ResourceModal/hooks/useThumb.d.ts +1 -1
- package/dist/common/ResourceModal/hooks/useThumb.js +17 -0
- package/dist/{modules/modals → common}/ResourceModal/hooks/useUpdateMutation.d.ts +3 -3
- package/dist/common/ResourceModal/hooks/useUpdateMutation.js +12 -0
- package/dist/common/ResourceModal/index.d.ts +3 -0
- package/dist/common/ShareModal/ShareBookmark.js +22 -0
- package/dist/{modules/modals → common}/ShareModal/ShareBookmarkLine.d.ts +1 -1
- package/dist/common/ShareModal/ShareBookmarkLine.js +42 -0
- package/dist/{modules/modals → common}/ShareModal/ShareModal.d.ts +2 -2
- package/dist/common/ShareModal/ShareModal.js +128 -0
- package/dist/common/ShareModal/apps/ShareBlog.d.ts +8 -0
- package/dist/common/ShareModal/apps/ShareBlog.js +43 -0
- package/dist/{modules/modals → common}/ShareModal/hooks/useSearch.d.ts +2 -2
- package/dist/common/ShareModal/hooks/useSearch.js +178 -0
- package/dist/{modules/modals → common}/ShareModal/hooks/useShare.d.ts +1 -1
- package/dist/common/ShareModal/hooks/useShare.js +192 -0
- package/dist/{modules/modals → common}/ShareModal/hooks/useShareBookmark.d.ts +1 -1
- package/dist/common/ShareModal/hooks/useShareBookmark.js +67 -0
- package/dist/{modules/modals → common}/ShareModal/hooks/useShareMutation.d.ts +3 -3
- package/dist/common/ShareModal/hooks/useShareMutation.js +15 -0
- package/dist/common/ShareModal/index.d.ts +3 -0
- package/dist/{modules/modals → common}/ShareModal/utils/hasRight.d.ts +1 -1
- package/dist/common/ShareModal/utils/hasRight.js +4 -0
- package/dist/{modules/modals → common}/ShareModal/utils/showShareRightLine.d.ts +1 -1
- package/dist/common/ShareModal/utils/showShareRightLine.js +4 -0
- package/dist/components/ActionBar/ActionBar.d.ts +1 -1
- package/dist/components/ActionBar/ActionBar.js +6 -8
- package/dist/components/ActionBar/index.d.ts +1 -0
- package/dist/components/Alert/Alert.d.ts +1 -1
- package/dist/components/Alert/Alert.js +60 -62
- package/dist/components/Alert/index.d.ts +1 -0
- package/dist/components/AppHeader/AppHeader.d.ts +1 -1
- package/dist/components/AppHeader/AppHeader.js +18 -20
- package/dist/components/AppHeader/index.d.ts +1 -0
- package/dist/components/AppIcon/AppIcon.d.ts +1 -1
- package/dist/components/AppIcon/AppIcon.js +44 -45
- package/dist/components/Attachment/Attachment.d.ts +1 -1
- package/dist/components/Attachment/Attachment.js +13 -15
- package/dist/components/Attachment/index.d.ts +1 -0
- package/dist/{modules/audience → components/Audience}/ReactionChoice.d.ts +1 -1
- package/dist/components/Audience/ReactionChoice.js +33 -0
- package/dist/{modules/audience → components/Audience}/ReactionModal.Card.d.ts +1 -1
- package/dist/components/Audience/ReactionModal.Card.js +33 -0
- package/dist/{modules/audience → components/Audience}/ReactionModal.d.ts +1 -1
- package/dist/components/Audience/ReactionModal.js +73 -0
- package/dist/{modules/audience → components/Audience}/ReactionSummary.d.ts +1 -1
- package/dist/components/Audience/ReactionSummary.js +27 -0
- package/dist/{modules/audience → components/Audience}/ViewsByProfileCard.d.ts +1 -1
- package/dist/components/Audience/ViewsByProfileCard.js +36 -0
- package/dist/components/Audience/ViewsCounter.js +18 -0
- package/dist/{modules/audience → components/Audience}/ViewsModal.d.ts +1 -1
- package/dist/components/Audience/ViewsModal.js +40 -0
- package/dist/{modules/audience → components/Audience}/hooks/useReactionIcons.d.ts +1 -1
- package/dist/components/Audience/hooks/useReactionIcons.js +38 -0
- package/dist/{modules/audience → components/Audience}/hooks/useReactions.d.ts +3 -3
- package/dist/components/Audience/hooks/useReactions.js +35 -0
- package/dist/{modules/audience → components/Audience}/hooks/useViews.d.ts +2 -2
- package/dist/components/Avatar/Avatar.d.ts +1 -1
- package/dist/components/Avatar/Avatar.js +27 -29
- package/dist/components/Avatar/index.d.ts +1 -0
- package/dist/components/Badge/Badge.d.ts +1 -1
- package/dist/components/Badge/Badge.js +20 -22
- package/dist/components/Badge/index.d.ts +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.js +23 -24
- package/dist/components/Breadcrumb/BreadcrumbItem.js +11 -12
- package/dist/components/Breadcrumb/BreadcrumbList.js +10 -11
- package/dist/components/Breadcrumb/BreadcrumbNav.d.ts +1 -1
- package/dist/components/Breadcrumb/BreadcrumbNav.js +15 -16
- package/dist/components/Button/Button.d.ts +1 -1
- package/dist/components/Button/Button.js +32 -34
- package/dist/components/Button/IconButton.d.ts +1 -1
- package/dist/components/Button/IconButton.js +15 -17
- package/dist/components/Button/SearchButton.d.ts +1 -1
- package/dist/components/Button/SearchButton.js +15 -17
- package/dist/components/Button/index.d.ts +3 -0
- package/dist/components/Card/Card.d.ts +4 -4
- package/dist/components/Card/Card.js +47 -49
- package/dist/components/Card/CardBody.d.ts +1 -1
- package/dist/components/Card/CardBody.js +13 -14
- package/dist/components/Card/CardContext.d.ts +1 -1
- package/dist/components/Card/CardContext.js +7 -8
- package/dist/components/Card/CardFooter.js +5 -6
- package/dist/components/Card/CardHeader.js +14 -15
- package/dist/components/Card/CardImage.d.ts +1 -1
- package/dist/components/Card/CardImage.js +13 -14
- package/dist/components/Card/CardText.js +8 -9
- package/dist/components/Card/CardTitle.js +8 -9
- package/dist/components/Card/CardUser.js +8 -9
- package/dist/components/Card/index.d.ts +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +1 -1
- package/dist/components/Checkbox/Checkbox.js +30 -32
- package/dist/components/Checkbox/index.d.ts +1 -0
- package/dist/components/ColorPicker/ColorPalette.js +4 -5
- package/dist/components/ColorPicker/ColorPicker.d.ts +1 -1
- package/dist/components/ColorPicker/ColorPicker.js +28 -30
- package/dist/components/ColorPicker/ColorPickerItem.d.ts +1 -1
- package/dist/components/ColorPicker/ColorPickerItem.js +11 -13
- package/dist/components/ColorPicker/index.d.ts +3 -1
- package/dist/components/Combobox/Combobox.d.ts +1 -1
- package/dist/components/Combobox/Combobox.js +35 -36
- package/dist/components/Combobox/ComboboxTrigger.js +21 -22
- package/dist/components/Combobox/index.d.ts +1 -0
- package/dist/components/Dropdown/Dropdown.d.ts +1 -1
- package/dist/components/Dropdown/Dropdown.js +55 -57
- package/dist/components/Dropdown/DropdownCheckboxItem.js +26 -27
- package/dist/components/Dropdown/DropdownContext.js +7 -8
- package/dist/components/Dropdown/DropdownItem.js +27 -28
- package/dist/components/Dropdown/DropdownMenu.js +21 -22
- package/dist/components/Dropdown/DropdownMenuGroup.js +9 -10
- package/dist/components/Dropdown/DropdownRadioItem.js +26 -27
- package/dist/components/Dropdown/DropdownSeparator.js +3 -4
- package/dist/components/Dropdown/DropdownTrigger.js +28 -29
- package/dist/components/Dropdown/index.d.ts +1 -0
- package/dist/components/Dropzone/Dropzone.d.ts +1 -1
- package/dist/components/Dropzone/Dropzone.js +47 -48
- package/dist/components/Dropzone/DropzoneContext.js +8 -9
- package/dist/components/Dropzone/DropzoneDrag.js +7 -8
- package/dist/components/Dropzone/DropzoneFile.js +25 -26
- package/dist/components/Dropzone/DropzoneImport.js +20 -21
- package/dist/components/Dropzone/index.d.ts +1 -0
- package/dist/components/EmptyScreen/EmptyScreen.d.ts +1 -1
- package/dist/components/EmptyScreen/EmptyScreen.js +16 -18
- package/dist/components/EmptyScreen/index.d.ts +1 -0
- package/dist/components/FileCard/FileCard.d.ts +2 -2
- package/dist/components/FileCard/FileCard.js +37 -39
- package/dist/components/FileCard/FileIcon.d.ts +1 -1
- package/dist/components/FileCard/FileIcon.js +11 -12
- package/dist/components/FileCard/index.d.ts +1 -0
- package/dist/components/Form/FormContext.js +7 -8
- package/dist/components/Form/FormControl.d.ts +1 -1
- package/dist/components/Form/FormControl.js +30 -32
- package/dist/components/Form/FormText.d.ts +1 -1
- package/dist/components/Form/FormText.js +12 -14
- package/dist/components/Form/index.d.ts +2 -1
- package/dist/components/Grid/Grid.js +27 -28
- package/dist/components/Heading/Heading.d.ts +1 -1
- package/dist/components/Heading/Heading.js +14 -16
- package/dist/components/Heading/index.d.ts +1 -0
- package/dist/components/Image/Image.d.ts +1 -1
- package/dist/components/Image/Image.js +39 -41
- package/dist/components/Image/index.d.ts +1 -0
- package/dist/components/ImagePicker/ImagePicker.d.ts +1 -1
- package/dist/components/ImagePicker/ImagePicker.js +51 -52
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Input/Input.js +28 -30
- package/dist/components/Input/index.d.ts +1 -0
- package/dist/components/Label/Label.d.ts +1 -1
- package/dist/components/Label/Label.js +30 -32
- package/dist/components/Label/index.d.ts +1 -0
- package/dist/components/Loading/Loading.d.ts +1 -1
- package/dist/components/Loading/Loading.js +23 -25
- package/dist/components/Loading/index.d.ts +1 -0
- package/dist/components/LoadingScreen/LoadingScreen.d.ts +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js +20 -22
- package/dist/components/LoadingScreen/index.d.ts +1 -1
- package/dist/components/Logo/Logo.d.ts +1 -1
- package/dist/components/Logo/Logo.js +12 -14
- package/dist/components/Logo/index.d.ts +1 -0
- package/dist/components/Menu/Menu.js +39 -40
- package/dist/components/Menu/MenuButton.js +17 -18
- package/dist/components/Menu/MenuContext.js +8 -9
- package/dist/components/Menu/MenuItem.js +14 -15
- package/dist/components/Modal/Modal.d.ts +4 -1
- package/dist/components/Modal/Modal.js +49 -51
- package/dist/components/Modal/ModalBody.js +11 -12
- package/dist/components/Modal/ModalContext.js +8 -9
- package/dist/components/Modal/ModalFooter.js +3 -4
- package/dist/components/Modal/ModalHeader.js +22 -23
- package/dist/components/Modal/ModalSubtitle.js +3 -4
- package/dist/components/Modal/index.d.ts +1 -0
- package/dist/components/Popover/Popover.js +33 -34
- package/dist/components/Radio/Radio.d.ts +1 -1
- package/dist/components/Radio/Radio.js +26 -28
- package/dist/components/Radio/index.d.ts +1 -0
- package/dist/components/SearchBar/SearchBar.d.ts +1 -1
- package/dist/components/SearchBar/SearchBar.js +29 -31
- package/dist/components/SearchBar/index.d.ts +1 -0
- package/dist/components/Select/Select.d.ts +1 -1
- package/dist/components/Select/Select.js +31 -33
- package/dist/components/Select/SelectTrigger.js +4 -5
- package/dist/components/Select/index.d.ts +1 -0
- package/dist/components/Table/Table.components.d.ts +20 -0
- package/dist/components/Table/Table.components.js +39 -0
- package/dist/components/Table/Table.d.ts +33 -0
- package/dist/components/Table/Table.js +16 -0
- package/dist/components/Table/TableExplorer.d.ts +1 -1
- package/dist/components/Table/index.d.ts +2 -1
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/Tabs/Tabs.js +58 -59
- package/dist/components/Tabs/TabsContext.js +8 -9
- package/dist/components/Tabs/TabsItem.js +20 -21
- package/dist/components/Tabs/TabsList.js +18 -19
- package/dist/components/Tabs/TabsPanel.js +9 -10
- package/dist/components/Tabs/index.d.ts +1 -0
- package/dist/components/TextArea/TextArea.d.ts +1 -1
- package/dist/components/TextArea/TextArea.js +31 -33
- package/dist/components/TextArea/TextareaCounter.js +6 -7
- package/dist/components/TextArea/index.d.ts +1 -0
- package/dist/components/Toolbar/Toolbar.d.ts +1 -1
- package/dist/components/Toolbar/Toolbar.js +60 -62
- package/dist/components/Toolbar/index.d.ts +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.js +28 -30
- package/dist/components/Tooltip/index.d.ts +1 -0
- package/dist/components/TreeView/TreeItem.js +46 -47
- package/dist/components/TreeView/TreeView.d.ts +1 -1
- package/dist/components/TreeView/TreeView.js +33 -35
- package/dist/components/TreeView/hooks/useTreeItemEvents.js +18 -19
- package/dist/components/TreeView/index.d.ts +1 -0
- package/dist/components/UploadCard/UploadCard.js +52 -53
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.js +6 -8
- package/dist/components/VisuallyHidden/index.d.ts +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/core/OdeClientProvider/OdeClientProvider.d.ts +1 -1
- package/dist/core/OdeClientProvider/OdeClientProvider.js +44 -45
- package/dist/core/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/dist/core/ThemeProvider/ThemeProvider.js +36 -36
- package/dist/core/index.d.ts +1 -0
- package/dist/core/useAvatar/useAvatar.d.ts +1 -1
- package/dist/core/useAvatar/useAvatar.js +21 -22
- package/dist/core/useBookmark/useBookmark.d.ts +1 -1
- package/dist/core/useBookmark/useBookmark.js +9 -10
- package/dist/core/useCantoo/index.d.ts +1 -0
- package/dist/core/useCantoo/useCantoo.d.ts +1 -0
- package/dist/core/useCantoo/useCantoo.js +18 -0
- package/dist/core/useConf/useConf.d.ts +1 -1
- package/dist/core/useConf/useConf.js +7 -8
- package/dist/core/useConversation/useConversation.js +29 -30
- package/dist/core/useCookiesConsent/useCookiesConsent.js +16 -17
- package/dist/core/useDate/useDate.js +35 -36
- package/dist/core/useHasWorkflow/useHasWorkflow.js +15 -16
- package/dist/core/useHeader/useHeader.d.ts +1 -1
- package/dist/core/useHeader/useHeader.js +45 -42
- package/dist/core/useHttpErrorToast/useHttpErrorToast.js +17 -18
- package/dist/core/useIsAdml/useIsAdml.js +11 -12
- package/dist/core/useLibraryUrl/useLibraryUrl.js +16 -17
- package/dist/core/useMediaLibrary/useMediaLibrary.d.ts +2 -2
- package/dist/core/useMediaLibrary/useMediaLibrary.js +32 -33
- package/dist/core/useOdeIcons/useOdeIcons.d.ts +1 -1
- package/dist/core/useOdeIcons/useOdeIcons.js +37 -38
- package/dist/core/usePaths/usePaths.js +2 -3
- package/dist/core/usePreferences/usePreferences.js +5 -6
- package/dist/core/useResource/useResource.d.ts +1 -1
- package/dist/core/useResource/useResource.js +14 -15
- package/dist/core/useResourceSearch/useResourceSearch.d.ts +1 -1
- package/dist/core/useResourceSearch/useResourceSearch.js +22 -23
- package/dist/core/useSession/useSession.js +6 -7
- package/dist/core/useTrashedResource/useTrashedResource.js +18 -19
- package/dist/core/useUpload/useUpload.d.ts +1 -1
- package/dist/core/useUpload/useUpload.js +68 -69
- package/dist/core/useUploadFiles/useUploadFiles.d.ts +1 -1
- package/dist/core/useUploadFiles/useUploadFiles.js +82 -83
- package/dist/core/useUser/useUser.d.ts +1 -1
- package/dist/core/useUser/useUser.js +15 -16
- package/dist/core/useWorkspaceFile/useWorkspaceFile.d.ts +1 -1
- package/dist/core/useWorkspaceFile/useWorkspaceFile.js +31 -32
- package/dist/core/useWorkspaceSearch/useWorkspaceSearch.d.ts +1 -1
- package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js +41 -42
- package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js +17 -18
- package/dist/core/useZendeskGuide/useZendeskGuide.js +46 -47
- package/dist/hooks/useBrowserInfo/useBrowserInfo.js +11 -12
- package/dist/hooks/useClickOutside/useClickOutside.js +18 -19
- package/dist/hooks/useDebounce/useDebounce.js +10 -11
- package/dist/hooks/useDropdown/useDropdown.d.ts +1 -1
- package/dist/hooks/useDropdown/useDropdown.js +96 -97
- package/dist/hooks/useDropzone/useDropzone.js +53 -54
- package/dist/hooks/useHover/useHover.js +14 -15
- package/dist/hooks/useImage/useImage.js +13 -14
- package/dist/hooks/useImageResizer/useImageResizer.js +31 -32
- package/dist/hooks/useKeyPress/useKeyPress.js +10 -11
- package/dist/hooks/useScrollToTop/useScrollToTop.js +4 -5
- package/dist/hooks/useThumbnail/useThumbnail.js +21 -22
- package/dist/hooks/useTitle/useTitle.js +7 -8
- package/dist/hooks/useToast/useToast.js +25 -26
- package/dist/hooks/useToggle/useToggle.js +6 -7
- package/dist/hooks/useTrapFocus/useTrapFocus.js +11 -12
- package/dist/index.d.ts +3 -1
- package/dist/index.js +274 -226
- package/dist/{modules/multimedia → multimedia}/AudioRecorder/AudioRecorder.d.ts +1 -1
- package/dist/multimedia/AudioRecorder/AudioRecorder.js +49 -0
- package/dist/multimedia/AudioRecorder/AudioRecorderTimer.js +24 -0
- package/dist/{modules/multimedia → multimedia}/AudioRecorder/useAudioRecorder.d.ts +2 -2
- package/dist/multimedia/AudioRecorder/useAudioRecorder.js +307 -0
- package/dist/multimedia/Embed/Embed.js +32 -0
- package/dist/multimedia/ImageEditor/components/ImageEditor.js +116 -0
- package/dist/multimedia/ImageEditor/components/ImageEditorToolbar.js +69 -0
- package/dist/multimedia/ImageEditor/effects/blur.js +72 -0
- package/dist/multimedia/ImageEditor/effects/crop.js +155 -0
- package/dist/multimedia/ImageEditor/effects/misc.js +162 -0
- package/dist/multimedia/ImageEditor/effects/resize.js +157 -0
- package/dist/multimedia/ImageEditor/effects/rotate.js +33 -0
- package/dist/multimedia/ImageEditor/hooks/useHistoryTool.js +66 -0
- package/dist/multimedia/ImageEditor/hooks/useImageEditor.js +76 -0
- package/dist/multimedia/ImageEditor/hooks/useImageEffects.js +52 -0
- package/dist/multimedia/ImageEditor/utils/aggregate.js +13 -0
- package/dist/{modules/multimedia → multimedia}/ImagePickerWorkspace/ImagePickerWorkspace.d.ts +1 -1
- package/dist/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js +39 -0
- package/dist/multimedia/Linker/ExternalLinker.js +45 -0
- package/dist/{modules/multimedia → multimedia}/Linker/InternalLinker.d.ts +1 -1
- package/dist/multimedia/Linker/InternalLinker.js +114 -0
- package/dist/{modules/multimedia → multimedia}/LinkerCard/LinkerCard.d.ts +3 -3
- package/dist/multimedia/LinkerCard/LinkerCard.js +38 -0
- package/dist/multimedia/LinkerCard/index.d.ts +2 -0
- package/dist/{modules/multimedia → multimedia}/MediaLibrary/MediaLibrary.d.ts +2 -2
- package/dist/multimedia/MediaLibrary/MediaLibrary.js +211 -0
- package/dist/{modules/multimedia → multimedia}/MediaLibrary/MediaLibraryContext.d.ts +2 -2
- package/dist/multimedia/MediaLibrary/MediaLibraryContext.js +12 -0
- package/dist/multimedia/MediaLibrary/innertabs/Audio.js +19 -0
- package/dist/multimedia/MediaLibrary/innertabs/ExternalLink.js +17 -0
- package/dist/multimedia/MediaLibrary/innertabs/Iframe.js +14 -0
- package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/InternalLink.d.ts +1 -1
- package/dist/multimedia/MediaLibrary/innertabs/InternalLink.js +35 -0
- package/dist/multimedia/MediaLibrary/innertabs/Upload.js +34 -0
- package/dist/multimedia/MediaLibrary/innertabs/Video.js +22 -0
- package/dist/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +14 -0
- package/dist/multimedia/MediaLibrary/innertabs/Workspace.js +31 -0
- package/dist/multimedia/MediaLibrary/innertabs/index.js +21 -0
- package/dist/{modules/multimedia → multimedia}/UploadFiles/UploadFiles.d.ts +1 -1
- package/dist/multimedia/UploadFiles/UploadFiles.js +56 -0
- package/dist/multimedia/VideoEmbed/VideoEmbed.js +77 -0
- package/dist/{modules/multimedia → multimedia}/VideoRecorder/VideoRecorder.d.ts +1 -1
- package/dist/multimedia/VideoRecorder/VideoRecorder.js +259 -0
- package/dist/{modules/multimedia → multimedia}/Workspace/Workspace.d.ts +1 -1
- package/dist/multimedia/Workspace/Workspace.js +169 -0
- package/dist/portal/Header/Badge.js +5 -6
- package/dist/portal/Header/Header.js +138 -138
- package/dist/portal/Header/NavItem.js +11 -12
- package/dist/portal/Header/NavLink.js +14 -15
- package/dist/portal/Header/Navbar.js +9 -10
- package/dist/portal/Header/NavbarNav.js +9 -10
- package/dist/portal/Header/WidgetApps.d.ts +1 -1
- package/dist/portal/Header/WidgetApps.js +16 -17
- package/dist/portal/Help/Help.js +18 -19
- package/dist/portal/Help/hooks/useHelp.js +63 -64
- package/dist/portal/Layout/Layout.js +36 -36
- package/dist/portal/SearchEngine/SearchEngine.js +25 -26
- package/dist/utils/MockedDataProvider/MockedDataProvider.d.ts +1 -1
- package/dist/utils/MockedDataProvider/MockedDataProvider.js +21 -22
- package/dist/utils/StringUtils.js +8 -9
- package/dist/utils/addTimestampToUrl.js +4 -5
- package/dist/utils/blob.js +9 -10
- package/dist/utils/checkUserRight.d.ts +1 -1
- package/dist/utils/checkUserRight.js +27 -28
- package/dist/utils/fileSize.js +5 -6
- package/dist/utils/findTreeNode.js +7 -8
- package/dist/utils/isActionAvailable.d.ts +1 -1
- package/dist/utils/isActionAvailable.js +4 -5
- package/dist/utils/libraryMaps.js +2 -3
- package/dist/utils/noop.js +2 -3
- package/dist/utils/ref.js +8 -9
- package/dist/utils/thumbnail.js +3 -4
- package/dist/utils/time.js +7 -8
- package/dist/utils/treeview.d.ts +1 -1
- package/dist/utils/treeview.js +96 -97
- package/dist/utils/video.js +2 -3
- package/dist/widgets/BookmarkedApps/BookmarkedApps.d.ts +1 -1
- package/dist/widgets/BookmarkedApps/BookmarkedApps.js +6 -7
- package/dist/widgets/Widget/Widget.js +18 -19
- package/package.json +27 -58
- package/dist/audience.js +0 -17
- package/dist/audience.js.map +0 -1
- package/dist/components/ActionBar/ActionBar.js.map +0 -1
- package/dist/components/Alert/Alert.js.map +0 -1
- package/dist/components/AppHeader/AppHeader.js.map +0 -1
- package/dist/components/AppIcon/AppIcon.js.map +0 -1
- package/dist/components/Attachment/Attachment.js.map +0 -1
- package/dist/components/Avatar/Avatar.js.map +0 -1
- package/dist/components/Badge/Badge.js.map +0 -1
- package/dist/components/Breadcrumb/Breadcrumb.js.map +0 -1
- package/dist/components/Breadcrumb/BreadcrumbItem.js.map +0 -1
- package/dist/components/Breadcrumb/BreadcrumbList.js.map +0 -1
- package/dist/components/Breadcrumb/BreadcrumbNav.js.map +0 -1
- package/dist/components/Button/Button.js.map +0 -1
- package/dist/components/Button/IconButton.js.map +0 -1
- package/dist/components/Button/SearchButton.js.map +0 -1
- package/dist/components/Card/Card.js.map +0 -1
- package/dist/components/Card/CardBody.js.map +0 -1
- package/dist/components/Card/CardContext.js.map +0 -1
- package/dist/components/Card/CardFooter.js.map +0 -1
- package/dist/components/Card/CardHeader.js.map +0 -1
- package/dist/components/Card/CardImage.js.map +0 -1
- package/dist/components/Card/CardText.js.map +0 -1
- package/dist/components/Card/CardTitle.js.map +0 -1
- package/dist/components/Card/CardUser.js.map +0 -1
- package/dist/components/Checkbox/Checkbox.js.map +0 -1
- package/dist/components/ColorPicker/ColorPalette.js.map +0 -1
- package/dist/components/ColorPicker/ColorPicker.js.map +0 -1
- package/dist/components/ColorPicker/ColorPickerItem.js.map +0 -1
- package/dist/components/Combobox/Combobox.js.map +0 -1
- package/dist/components/Combobox/ComboboxTrigger.js.map +0 -1
- package/dist/components/Dropdown/Dropdown.js.map +0 -1
- package/dist/components/Dropdown/DropdownCheckboxItem.js.map +0 -1
- package/dist/components/Dropdown/DropdownContext.js.map +0 -1
- package/dist/components/Dropdown/DropdownItem.js.map +0 -1
- package/dist/components/Dropdown/DropdownMenu.js.map +0 -1
- package/dist/components/Dropdown/DropdownMenuGroup.js.map +0 -1
- package/dist/components/Dropdown/DropdownRadioItem.js.map +0 -1
- package/dist/components/Dropdown/DropdownSeparator.js.map +0 -1
- package/dist/components/Dropdown/DropdownTrigger.js.map +0 -1
- package/dist/components/Dropzone/Dropzone.js.map +0 -1
- package/dist/components/Dropzone/DropzoneContext.js.map +0 -1
- package/dist/components/Dropzone/DropzoneDrag.js.map +0 -1
- package/dist/components/Dropzone/DropzoneFile.js.map +0 -1
- package/dist/components/Dropzone/DropzoneImport.js.map +0 -1
- package/dist/components/EmptyScreen/EmptyScreen.js.map +0 -1
- package/dist/components/FileCard/FileCard.js.map +0 -1
- package/dist/components/FileCard/FileIcon.js.map +0 -1
- package/dist/components/Form/FormContext.js.map +0 -1
- package/dist/components/Form/FormControl.js.map +0 -1
- package/dist/components/Form/FormText.js.map +0 -1
- package/dist/components/Grid/Grid.js.map +0 -1
- package/dist/components/Heading/Heading.js.map +0 -1
- package/dist/components/Icon/Icon.d.ts +0 -17
- package/dist/components/Icon/Icon.js +0 -11
- package/dist/components/Icon/Icon.js.map +0 -1
- package/dist/components/Icon/index.d.ts +0 -1
- package/dist/components/Image/Image.js.map +0 -1
- package/dist/components/ImagePicker/ImagePicker.js.map +0 -1
- package/dist/components/Input/Input.js.map +0 -1
- package/dist/components/Label/Label.js.map +0 -1
- package/dist/components/Loading/Loading.js.map +0 -1
- package/dist/components/LoadingScreen/LoadingScreen.js.map +0 -1
- package/dist/components/Logo/Logo.js.map +0 -1
- package/dist/components/Menu/Menu.js.map +0 -1
- package/dist/components/Menu/MenuButton.js.map +0 -1
- package/dist/components/Menu/MenuContext.js.map +0 -1
- package/dist/components/Menu/MenuItem.js.map +0 -1
- package/dist/components/Modal/Modal.js.map +0 -1
- package/dist/components/Modal/ModalBody.js.map +0 -1
- package/dist/components/Modal/ModalContext.js.map +0 -1
- package/dist/components/Modal/ModalFooter.js.map +0 -1
- package/dist/components/Modal/ModalHeader.js.map +0 -1
- package/dist/components/Modal/ModalSubtitle.js.map +0 -1
- package/dist/components/Popover/Popover.js.map +0 -1
- package/dist/components/Radio/Radio.js.map +0 -1
- package/dist/components/SearchBar/SearchBar.js.map +0 -1
- package/dist/components/Select/Select.js.map +0 -1
- package/dist/components/Select/SelectTrigger.js.map +0 -1
- package/dist/components/Table/TableExplorer.js +0 -10
- package/dist/components/Table/TableExplorer.js.map +0 -1
- package/dist/components/Tabs/Tabs.js.map +0 -1
- package/dist/components/Tabs/TabsContext.js.map +0 -1
- package/dist/components/Tabs/TabsItem.js.map +0 -1
- package/dist/components/Tabs/TabsList.js.map +0 -1
- package/dist/components/Tabs/TabsPanel.js.map +0 -1
- package/dist/components/TextArea/TextArea.js.map +0 -1
- package/dist/components/TextArea/TextareaCounter.js.map +0 -1
- package/dist/components/Toolbar/Toolbar.js.map +0 -1
- package/dist/components/Tooltip/Tooltip.js.map +0 -1
- package/dist/components/TreeView/TreeItem.js.map +0 -1
- package/dist/components/TreeView/TreeView.js.map +0 -1
- package/dist/components/TreeView/hooks/useTreeItemEvents.js.map +0 -1
- package/dist/components/UploadCard/UploadCard.js.map +0 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +0 -1
- package/dist/core/OdeClientProvider/OdeClientProvider.js.map +0 -1
- package/dist/core/ThemeProvider/ThemeProvider.js.map +0 -1
- package/dist/core/useAvatar/useAvatar.js.map +0 -1
- package/dist/core/useBookmark/useBookmark.js.map +0 -1
- package/dist/core/useConf/useConf.js.map +0 -1
- package/dist/core/useConversation/useConversation.js.map +0 -1
- package/dist/core/useCookiesConsent/useCookiesConsent.js.map +0 -1
- package/dist/core/useDate/useDate.js.map +0 -1
- package/dist/core/useHasWorkflow/useHasWorkflow.js.map +0 -1
- package/dist/core/useHeader/useHeader.js.map +0 -1
- package/dist/core/useHttpErrorToast/useHttpErrorToast.js.map +0 -1
- package/dist/core/useIsAdml/useIsAdml.js.map +0 -1
- package/dist/core/useLibraryUrl/useLibraryUrl.js.map +0 -1
- package/dist/core/useMediaLibrary/useMediaLibrary.js.map +0 -1
- package/dist/core/useOdeIcons/useOdeIcons.js.map +0 -1
- package/dist/core/usePaths/usePaths.js.map +0 -1
- package/dist/core/usePreferences/usePreferences.js.map +0 -1
- package/dist/core/useResource/useResource.js.map +0 -1
- package/dist/core/useResourceSearch/useResourceSearch.js.map +0 -1
- package/dist/core/useSession/useSession.js.map +0 -1
- package/dist/core/useTrashedResource/useTrashedResource.js.map +0 -1
- package/dist/core/useUpload/useUpload.js.map +0 -1
- package/dist/core/useUploadFiles/useUploadFiles.js.map +0 -1
- package/dist/core/useUser/useUser.js.map +0 -1
- package/dist/core/useWorkspaceFile/useWorkspaceFile.js.map +0 -1
- package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js.map +0 -1
- package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js.map +0 -1
- package/dist/core/useZendeskGuide/useZendeskGuide.js.map +0 -1
- package/dist/editor.js +0 -59
- package/dist/editor.js.map +0 -1
- package/dist/hooks/useBrowserInfo/useBrowserInfo.js.map +0 -1
- package/dist/hooks/useClickOutside/useClickOutside.js.map +0 -1
- package/dist/hooks/useDebounce/useDebounce.js.map +0 -1
- package/dist/hooks/useDropdown/useDropdown.js.map +0 -1
- package/dist/hooks/useDropzone/useDropzone.js.map +0 -1
- package/dist/hooks/useHover/useHover.js.map +0 -1
- package/dist/hooks/useImage/useImage.js.map +0 -1
- package/dist/hooks/useImageResizer/useImageResizer.js.map +0 -1
- package/dist/hooks/useKeyPress/useKeyPress.js.map +0 -1
- package/dist/hooks/useScrollToTop/useScrollToTop.js.map +0 -1
- package/dist/hooks/useThumbnail/useThumbnail.js.map +0 -1
- package/dist/hooks/useTitle/useTitle.js.map +0 -1
- package/dist/hooks/useToast/useToast.js.map +0 -1
- package/dist/hooks/useToggle/useToggle.js.map +0 -1
- package/dist/hooks/useTrapFocus/useTrapFocus.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/modals.js +0 -17
- package/dist/modals.js.map +0 -1
- package/dist/modules/audience/ReactionChoice.js +0 -34
- package/dist/modules/audience/ReactionChoice.js.map +0 -1
- package/dist/modules/audience/ReactionModal.Card.js +0 -35
- package/dist/modules/audience/ReactionModal.Card.js.map +0 -1
- package/dist/modules/audience/ReactionModal.js +0 -73
- package/dist/modules/audience/ReactionModal.js.map +0 -1
- package/dist/modules/audience/ReactionSummary.js +0 -28
- package/dist/modules/audience/ReactionSummary.js.map +0 -1
- package/dist/modules/audience/ViewsByProfileCard.js +0 -36
- package/dist/modules/audience/ViewsByProfileCard.js.map +0 -1
- package/dist/modules/audience/ViewsCounter.js +0 -19
- package/dist/modules/audience/ViewsCounter.js.map +0 -1
- package/dist/modules/audience/ViewsModal.js +0 -41
- package/dist/modules/audience/ViewsModal.js.map +0 -1
- package/dist/modules/audience/hooks/useReactionIcons.js +0 -38
- package/dist/modules/audience/hooks/useReactionIcons.js.map +0 -1
- package/dist/modules/audience/hooks/useReactions.js +0 -36
- package/dist/modules/audience/hooks/useReactions.js.map +0 -1
- package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.d.ts +0 -8
- package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js +0 -133
- package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js.map +0 -1
- package/dist/modules/editor/components/BubbleMenuEditImage/index.d.ts +0 -1
- package/dist/modules/editor/components/Editor/Editor.d.ts +0 -45
- package/dist/modules/editor/components/Editor/Editor.js +0 -84
- package/dist/modules/editor/components/Editor/Editor.js.map +0 -1
- package/dist/modules/editor/components/Editor/MathsModal.d.ts +0 -7
- package/dist/modules/editor/components/Editor/MathsModal.js +0 -51
- package/dist/modules/editor/components/Editor/MathsModal.js.map +0 -1
- package/dist/modules/editor/components/Editor/index.d.ts +0 -2
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.d.ts +0 -22
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js +0 -18
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js.map +0 -1
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.d.ts +0 -14
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js +0 -55
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js.map +0 -1
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.d.ts +0 -14
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js +0 -48
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js.map +0 -1
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.d.ts +0 -9
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js +0 -19
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js.map +0 -1
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.d.ts +0 -14
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js +0 -51
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js.map +0 -1
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.d.ts +0 -10
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js +0 -63
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js.map +0 -1
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.d.ts +0 -10
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js +0 -53
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js.map +0 -1
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.d.ts +0 -10
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +0 -320
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js.map +0 -1
- package/dist/modules/editor/components/EditorToolbar/index.d.ts +0 -1
- package/dist/modules/editor/components/NodeView/AttachmentNodeView.d.ts +0 -2
- package/dist/modules/editor/components/NodeView/AttachmentNodeView.js +0 -11
- package/dist/modules/editor/components/NodeView/AttachmentNodeView.js.map +0 -1
- package/dist/modules/editor/components/NodeView/AudioNodeView.d.ts +0 -2
- package/dist/modules/editor/components/NodeView/AudioNodeView.js +0 -11
- package/dist/modules/editor/components/NodeView/AudioNodeView.js.map +0 -1
- package/dist/modules/editor/components/NodeView/ImageNodeView.d.ts +0 -2
- package/dist/modules/editor/components/NodeView/ImageNodeView.js +0 -11
- package/dist/modules/editor/components/NodeView/ImageNodeView.js.map +0 -1
- package/dist/modules/editor/components/NodeView/LinkerNodeView.d.ts +0 -2
- package/dist/modules/editor/components/NodeView/LinkerNodeView.js +0 -11
- package/dist/modules/editor/components/NodeView/LinkerNodeView.js.map +0 -1
- package/dist/modules/editor/components/NodeView/VideoNodeView.d.ts +0 -2
- package/dist/modules/editor/components/NodeView/VideoNodeView.js +0 -11
- package/dist/modules/editor/components/NodeView/VideoNodeView.js.map +0 -1
- package/dist/modules/editor/components/NodeView/index.d.ts +0 -5
- package/dist/modules/editor/components/Renderer/AttachmentRenderer.d.ts +0 -7
- package/dist/modules/editor/components/Renderer/AttachmentRenderer.js +0 -35
- package/dist/modules/editor/components/Renderer/AttachmentRenderer.js.map +0 -1
- package/dist/modules/editor/components/Renderer/AudioRenderer.d.ts +0 -7
- package/dist/modules/editor/components/Renderer/AudioRenderer.js +0 -12
- package/dist/modules/editor/components/Renderer/AudioRenderer.js.map +0 -1
- package/dist/modules/editor/components/Renderer/LinkerRenderer.d.ts +0 -9
- package/dist/modules/editor/components/Renderer/LinkerRenderer.js +0 -35
- package/dist/modules/editor/components/Renderer/LinkerRenderer.js.map +0 -1
- package/dist/modules/editor/components/Renderer/MediaRenderer.d.ts +0 -2
- package/dist/modules/editor/components/Renderer/MediaRenderer.js +0 -70
- package/dist/modules/editor/components/Renderer/MediaRenderer.js.map +0 -1
- package/dist/modules/editor/components/Renderer/index.d.ts +0 -4
- package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.d.ts +0 -2
- package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js +0 -9
- package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js.map +0 -1
- package/dist/modules/editor/components/Toolbar/LinkToolbar.d.ts +0 -15
- package/dist/modules/editor/components/Toolbar/LinkToolbar.js +0 -60
- package/dist/modules/editor/components/Toolbar/LinkToolbar.js.map +0 -1
- package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.d.ts +0 -9
- package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js +0 -29
- package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js.map +0 -1
- package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.d.ts +0 -13
- package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js +0 -46
- package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js.map +0 -1
- package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.d.ts +0 -9
- package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js +0 -28
- package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js.map +0 -1
- package/dist/modules/editor/components/Toolbar/TableToolbar.d.ts +0 -9
- package/dist/modules/editor/components/Toolbar/TableToolbar.js +0 -89
- package/dist/modules/editor/components/Toolbar/TableToolbar.js.map +0 -1
- package/dist/modules/editor/components/Toolbar/index.d.ts +0 -2
- package/dist/modules/editor/components/index.d.ts +0 -6
- package/dist/modules/editor/hooks/index.d.ts +0 -12
- package/dist/modules/editor/hooks/useActionOptions.d.ts +0 -5
- package/dist/modules/editor/hooks/useActionOptions.js +0 -76
- package/dist/modules/editor/hooks/useActionOptions.js.map +0 -1
- package/dist/modules/editor/hooks/useCommentEditor.d.ts +0 -13
- package/dist/modules/editor/hooks/useCommentEditor.js +0 -38
- package/dist/modules/editor/hooks/useCommentEditor.js.map +0 -1
- package/dist/modules/editor/hooks/useEditorContext.d.ts +0 -37
- package/dist/modules/editor/hooks/useEditorContext.js +0 -13
- package/dist/modules/editor/hooks/useEditorContext.js.map +0 -1
- package/dist/modules/editor/hooks/useImageModal.d.ts +0 -31
- package/dist/modules/editor/hooks/useImageModal.js +0 -47
- package/dist/modules/editor/hooks/useImageModal.js.map +0 -1
- package/dist/modules/editor/hooks/useImageSelection.d.ts +0 -21
- package/dist/modules/editor/hooks/useImageSelection.js +0 -47
- package/dist/modules/editor/hooks/useImageSelection.js.map +0 -1
- package/dist/modules/editor/hooks/useLinkToolbar.d.ts +0 -17
- package/dist/modules/editor/hooks/useLinkToolbar.js +0 -38
- package/dist/modules/editor/hooks/useLinkToolbar.js.map +0 -1
- package/dist/modules/editor/hooks/useMathsModal.d.ts +0 -17
- package/dist/modules/editor/hooks/useMathsModal.js +0 -18
- package/dist/modules/editor/hooks/useMathsModal.js.map +0 -1
- package/dist/modules/editor/hooks/useMathsStyles.d.ts +0 -1
- package/dist/modules/editor/hooks/useMathsStyles.js +0 -21
- package/dist/modules/editor/hooks/useMathsStyles.js.map +0 -1
- package/dist/modules/editor/hooks/useMediaLibraryEditor.d.ts +0 -19
- package/dist/modules/editor/hooks/useMediaLibraryEditor.js +0 -153
- package/dist/modules/editor/hooks/useMediaLibraryEditor.js.map +0 -1
- package/dist/modules/editor/hooks/useResizeMedia.d.ts +0 -10
- package/dist/modules/editor/hooks/useResizeMedia.js +0 -48
- package/dist/modules/editor/hooks/useResizeMedia.js.map +0 -1
- package/dist/modules/editor/hooks/useSpeechRecognition.d.ts +0 -6
- package/dist/modules/editor/hooks/useSpeechRecognition.js +0 -22
- package/dist/modules/editor/hooks/useSpeechRecognition.js.map +0 -1
- package/dist/modules/editor/hooks/useSpeechSynthetisis.d.ts +0 -12
- package/dist/modules/editor/hooks/useSpeechSynthetisis.js +0 -21
- package/dist/modules/editor/hooks/useSpeechSynthetisis.js.map +0 -1
- package/dist/modules/editor/hooks/useTipTapEditor.d.ts +0 -15
- package/dist/modules/editor/hooks/useTipTapEditor.js +0 -76
- package/dist/modules/editor/hooks/useTipTapEditor.js.map +0 -1
- package/dist/modules/editor/index.d.ts +0 -3
- package/dist/modules/editor/utils/has-extension.d.ts +0 -2
- package/dist/modules/editor/utils/has-extension.js +0 -5
- package/dist/modules/editor/utils/has-extension.js.map +0 -1
- package/dist/modules/editor/utils/has-mark.d.ts +0 -2
- package/dist/modules/editor/utils/has-mark.js +0 -5
- package/dist/modules/editor/utils/has-mark.js.map +0 -1
- package/dist/modules/editor/utils/has-text-style.d.ts +0 -2
- package/dist/modules/editor/utils/has-text-style.js +0 -6
- package/dist/modules/editor/utils/has-text-style.js.map +0 -1
- package/dist/modules/modals/OnboardingModal/OnboardingModal.js +0 -60
- package/dist/modules/modals/OnboardingModal/OnboardingModal.js.map +0 -1
- package/dist/modules/modals/OnboardingModal/useOnboardingModal.js +0 -31
- package/dist/modules/modals/OnboardingModal/useOnboardingModal.js.map +0 -1
- package/dist/modules/modals/PublishModal/PublishModal.js +0 -121
- package/dist/modules/modals/PublishModal/PublishModal.js.map +0 -1
- package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js +0 -30
- package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js.map +0 -1
- package/dist/modules/modals/PublishModal/components/AgeSelect.js +0 -21
- package/dist/modules/modals/PublishModal/components/AgeSelect.js.map +0 -1
- package/dist/modules/modals/PublishModal/components/LangSelect.js +0 -20
- package/dist/modules/modals/PublishModal/components/LangSelect.js.map +0 -1
- package/dist/modules/modals/PublishModal/components/PublishModalFooter.js +0 -24
- package/dist/modules/modals/PublishModal/components/PublishModalFooter.js.map +0 -1
- package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js +0 -30
- package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js.map +0 -1
- package/dist/modules/modals/PublishModal/components/ToastError.js +0 -25
- package/dist/modules/modals/PublishModal/components/ToastError.js.map +0 -1
- package/dist/modules/modals/PublishModal/components/ToastSuccess.js +0 -19
- package/dist/modules/modals/PublishModal/components/ToastSuccess.js.map +0 -1
- package/dist/modules/modals/PublishModal/constants/ageOptions.js +0 -5
- package/dist/modules/modals/PublishModal/constants/ageOptions.js.map +0 -1
- package/dist/modules/modals/PublishModal/hooks/useActivitiesOptions.js.map +0 -1
- package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js +0 -44
- package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js.map +0 -1
- package/dist/modules/modals/PublishModal/hooks/usePublishModal.js +0 -107
- package/dist/modules/modals/PublishModal/hooks/usePublishModal.js.map +0 -1
- package/dist/modules/modals/PublishModal/hooks/useSubjectsOptions.js.map +0 -1
- package/dist/modules/modals/ResourceModal/ResourceModal.js +0 -158
- package/dist/modules/modals/ResourceModal/ResourceModal.js.map +0 -1
- package/dist/modules/modals/ResourceModal/apps/BlogPublic.js +0 -64
- package/dist/modules/modals/ResourceModal/apps/BlogPublic.js.map +0 -1
- package/dist/modules/modals/ResourceModal/hooks/useSlug.js +0 -42
- package/dist/modules/modals/ResourceModal/hooks/useSlug.js.map +0 -1
- package/dist/modules/modals/ResourceModal/hooks/useThumb.js +0 -18
- package/dist/modules/modals/ResourceModal/hooks/useThumb.js.map +0 -1
- package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js +0 -14
- package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js.map +0 -1
- package/dist/modules/modals/ResourceModal/index.d.ts +0 -3
- package/dist/modules/modals/ShareModal/apps/ShareBlog.d.ts +0 -9
- package/dist/modules/modals/ShareModal/apps/ShareBlog.js +0 -44
- package/dist/modules/modals/ShareModal/apps/ShareBlog.js.map +0 -1
- package/dist/modules/modals/ShareModal/hooks/useShareMutation.js +0 -17
- package/dist/modules/modals/ShareModal/hooks/useShareMutation.js.map +0 -1
- package/dist/modules/modals/ShareModal/index.d.ts +0 -3
- package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js +0 -50
- package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js.map +0 -1
- package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js +0 -25
- package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js.map +0 -1
- package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js +0 -308
- package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js.map +0 -1
- package/dist/modules/multimedia/Embed/Embed.js +0 -33
- package/dist/modules/multimedia/Embed/Embed.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js +0 -117
- package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js +0 -70
- package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/effects/blur.js +0 -73
- package/dist/modules/multimedia/ImageEditor/effects/blur.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/effects/crop.js +0 -156
- package/dist/modules/multimedia/ImageEditor/effects/crop.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/effects/misc.js +0 -163
- package/dist/modules/multimedia/ImageEditor/effects/misc.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/effects/resize.js +0 -158
- package/dist/modules/multimedia/ImageEditor/effects/resize.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/effects/rotate.js +0 -34
- package/dist/modules/multimedia/ImageEditor/effects/rotate.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js +0 -65
- package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js +0 -77
- package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js +0 -53
- package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js.map +0 -1
- package/dist/modules/multimedia/ImageEditor/utils/aggregate.js +0 -14
- package/dist/modules/multimedia/ImageEditor/utils/aggregate.js.map +0 -1
- package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js +0 -40
- package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js.map +0 -1
- package/dist/modules/multimedia/Linker/ExternalLinker.js +0 -46
- package/dist/modules/multimedia/Linker/ExternalLinker.js.map +0 -1
- package/dist/modules/multimedia/Linker/InternalLinker.js +0 -115
- package/dist/modules/multimedia/Linker/InternalLinker.js.map +0 -1
- package/dist/modules/multimedia/LinkerCard/LinkerCard.js +0 -40
- package/dist/modules/multimedia/LinkerCard/LinkerCard.js.map +0 -1
- package/dist/modules/multimedia/LinkerCard/index.d.ts +0 -1
- package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +0 -212
- package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js.map +0 -1
- package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js +0 -13
- package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js.map +0 -1
- package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js +0 -20
- package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js.map +0 -1
- package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js +0 -18
- package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js.map +0 -1
- package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js +0 -15
- package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js.map +0 -1
- package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js +0 -36
- package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js.map +0 -1
- package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js +0 -35
- package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js.map +0 -1
- package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js +0 -23
- package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js.map +0 -1
- package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +0 -15
- package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js.map +0 -1
- package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js +0 -32
- package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js.map +0 -1
- package/dist/modules/multimedia/MediaLibrary/innertabs/index.js +0 -22
- package/dist/modules/multimedia/MediaLibrary/innertabs/index.js.map +0 -1
- package/dist/modules/multimedia/UploadFiles/UploadFiles.js +0 -57
- package/dist/modules/multimedia/UploadFiles/UploadFiles.js.map +0 -1
- package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js +0 -78
- package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js.map +0 -1
- package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js +0 -260
- package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js.map +0 -1
- package/dist/modules/multimedia/Workspace/Workspace.js +0 -170
- package/dist/modules/multimedia/Workspace/Workspace.js.map +0 -1
- package/dist/multimedia.js +0 -21
- package/dist/multimedia.js.map +0 -1
- package/dist/portal/Header/Badge.js.map +0 -1
- package/dist/portal/Header/Header.js.map +0 -1
- package/dist/portal/Header/NavItem.js.map +0 -1
- package/dist/portal/Header/NavLink.js.map +0 -1
- package/dist/portal/Header/Navbar.js.map +0 -1
- package/dist/portal/Header/NavbarNav.js.map +0 -1
- package/dist/portal/Header/WidgetApps.js.map +0 -1
- package/dist/portal/Help/Help.js.map +0 -1
- package/dist/portal/Help/hooks/useHelp.js.map +0 -1
- package/dist/portal/Layout/Layout.js.map +0 -1
- package/dist/portal/SearchEngine/SearchEngine.js.map +0 -1
- package/dist/utils/MockedDataProvider/MockedDataProvider.js.map +0 -1
- package/dist/utils/StringUtils.js.map +0 -1
- package/dist/utils/addTimestampToUrl.js.map +0 -1
- package/dist/utils/blob.js.map +0 -1
- package/dist/utils/checkUserRight.js.map +0 -1
- package/dist/utils/fileSize.js.map +0 -1
- package/dist/utils/findTreeNode.js.map +0 -1
- package/dist/utils/isActionAvailable.js.map +0 -1
- package/dist/utils/libraryMaps.js.map +0 -1
- package/dist/utils/noop.js.map +0 -1
- package/dist/utils/ref.js.map +0 -1
- package/dist/utils/thumbnail.js.map +0 -1
- package/dist/utils/time.js.map +0 -1
- package/dist/utils/treeview.js.map +0 -1
- package/dist/utils/video.js.map +0 -1
- package/dist/widgets/BookmarkedApps/BookmarkedApps.js.map +0 -1
- package/dist/widgets/Widget/Widget.js.map +0 -1
- /package/dist/{modules/modals → common}/OnboardingModal/OnboardingModal.d.ts +0 -0
- /package/dist/{modules/modals → common}/OnboardingModal/index.d.ts +0 -0
- /package/dist/{modules/modals → common}/OnboardingModal/useOnboardingModal.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/components/ActivitiesDropdown.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/components/AgeSelect.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/components/LangSelect.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/components/PublishModalFooter.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/components/SubjectsDropdown.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/components/ToastError.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/constants/ageOptions.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/hooks/useActivitiesOptions.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/hooks/useLanguageOptions.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/hooks/useSubjectsOptions.d.ts +0 -0
- /package/dist/{modules/modals → common}/PublishModal/index.d.ts +0 -0
- /package/dist/{modules/modals → common}/ShareModal/ShareBookmark.d.ts +0 -0
- /package/dist/{modules/modals → common}/index.d.ts +0 -0
- /package/dist/{modules/audience → components/Audience}/ViewsCounter.d.ts +0 -0
- /package/dist/{modules/audience → components/Audience}/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/AudioRecorder/AudioRecorderTimer.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/AudioRecorder/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/Embed/Embed.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/Embed/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/components/ImageEditor.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/components/ImageEditorToolbar.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/blur.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/crop.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/misc.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/resize.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/rotate.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useHistoryTool.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useImageEditor.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useImageEffects.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/utils/aggregate.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImageEditor/utils/debounceAggregate.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/ImagePickerWorkspace/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/Linker/ExternalLinker.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/Linker/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/MediaLibrary/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Audio.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/ExternalLink.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Iframe.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Upload.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Video.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/VideoEmbedder.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Workspace.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/UploadFiles/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/VideoEmbed/VideoEmbed.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/VideoEmbed/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/VideoRecorder/index.d.ts +0 -0
- /package/dist/{modules/multimedia → multimedia}/Workspace/index.d.ts +0 -0
- /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":";;;;;;;;;;;;;AAqBA,MAAMA,IAAaA,CAAC;AAAA,EAAEC,WAAAA;AAA2B,MAAM;AAC/C,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe,GACvB;AAAA,IAAEC,YAAAA;AAAAA,MAAeC,EAAuB,GAExC,CAACC,GAAKC,CAAM,IAAIC,EAAiB,GACjC,CAACC,GAAYC,CAAa,IAAIF,EAAiB,GAC/C,CAACG,GAAUC,CAAW,IAAIJ,EAA+BK,MAAS,GAClE,CAACC,GAAmBC,CAAoB,IAAIP,EAAqB,GACjEQ,IAAoBC,EAAoBX,KAAO,IAAI,GAAG,GACtDY,IAAgBC,KAEhB,CAACC,CAAS,IAAIC;AAEpBC,EAAAA,EAAU,MAAM;AACQ,IAAAC;EACxB,GAAG,CAAE,CAAA,GAELD,EAAU,MAAM;AACd,QAAIR,KAAqBE,GAAmB;AAC1C,YAAMQ,IAAgBC,EACnBd,SAAAA,EACAe,mBAAmBZ,GAAmBE,CAAiB;AAC1D,UAAIQ,GAAe;AACjBZ,QAAAA,EAAYY,CAAa;AACzB,cAAMf,IAAagB,EAChBd,SAAAA,EACAgB,wBAAwBH,GAAeR,CAAiB;AAC3DN,QAAAA,EAAcD,CAAU,GACxBR,EAAUQ,CAAU;AAAA,MAAA;AAEpBG,QAAAA,EAAYC,MAAS,GACXZ;IAEd;AAAA,EAAA,GAEC,CAACe,GAAmBF,CAAiB,CAAC;AAEzC,QAAMS,IAAwB,YAAY;AAClCK,UAAAA,IAA4B,MAAMC,QAAQC,IAAI,CAClDL,EAAYd,SAAAA,EAAWoB,cACvBN,EAAYd,WAAWqB,UAAW,CAAA,CACnC,EAAEC,KAAMC,CAAAA,MAAYA,EAAQC,KAAAA,CAAM;AACnCpB,IAAAA,EAAqBa,CAAyB;AAAA,EAAA;AAGhD,WAASQ,EAAgBC,GAA4C;AAC7D/B,UAAAA,IAAc+B,EAAMC,cAAcC;AACxChC,IAAAA,EAAOD,CAAG,GACAA,EAAAA,KAAAA,QAAAA,EAAKkC,SAASlC,IAAMO,MAAS;AAAA,EACzC;AAEA,WAAS4B,IAA8B;AACrCrC,IAAAA,EAAW,UAAU;AAAA,EACvB;AAEA,QAAMsC,IAAgBA,MAChB1B,IACEL,IAEA,gBAAAgC,EAAC,OAAI,EAAA,WAAU,iBACb,UAAA;AAAA,IAAC,gBAAAA,EAAA,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,MAAC,gBAAAC,EAAAC,GAAA,EACC,KAAKlC,EAASmC,MACd,KAAK,UAAUnC,EAASoC,aACxB,WAAU,4BACX,CAAA;AAAA,MACApC,EAASoC;AAAAA,IAAAA,GACZ;AAAA,IACCtC,KACC,gBAAAmC,EAAC,OACC,EAAA,WAAU,6BACV,yBAAyB;AAAA,MACvBI,QAAQvC;AAAAA,IAAAA,GAEX;AAAA,EAEL,EAAA,CAAA,IAIA,gBAAAkC,EAAC,OAAI,EAAA,WAAU,8CACb,UAAA;AAAA,IAAA,gBAAAC,EAACK,GACC,EAAA,UAAU,GAAG7B,CAAS,+BACtB,OAAOlB,EAAE,8BAA8B,GACvC,MAAMA,EAAE,6BAA6B,EAAE,CAAA;AAAA,IAEzC,gBAAAyC,EAACO,KACC,SAAQ,SACR,OAAM,WACN,SAAST,GACT,WAAU,2BAETvC,UAAAA;AAAAA,MAAAA,EAAE,wBAAwB;AAAA,MAAE;AAAA,MAAC,gBAAA0C,EAACO,GAAK,EAAA,MAAK,cAAa,CAAA;AAAA,IAAA,GACxD;AAAA,EACF,EAAA,CAAA,IAKD,gBAAAP,EAAA,OAAA,EAAI,WAAU,kCACb,UAAC,gBAAAD,EAAAO,GAAA,EACC,SAAQ,SACR,OAAM,WACN,SAAST,GACT,WAAU,qBAETvC,UAAAA;AAAAA,IAAAA,EAAE,wBAAwB;AAAA,IAAE;AAAA,IAAC,gBAAA0C,EAACO,GAAK,EAAA,MAAK,cAAa,CAAA;AAAA,EAAA,EACxD,CAAA,EACF,CAAA;AAMJ,SAAA,gBAAAR,EAAC,OAAI,EAAA,WAAU,4CACb,UAAA;AAAA,IAAC,gBAAAA,EAAA,OAAA,EAAI,WAAU,eACb,UAAA;AAAA,MAAA,gBAAAC,EAACO,GAAK,EAAA,MAAK,SAAQ,WAAU,QAAM;AAAA,MAClCjD,EAAE,qBAAqB;AAAA,IAAA,GAC1B;AAAA,sBACCkD,GAAY,EAAA,IAAIlC,GACf,UAAA,gBAAA0B,EAACS,KACC,MAAK,MACL,MAAK,QACL,aAAanD,EAAE,2BAA2B,GAC1C,UAAUkC,EAAgB,CAAA,GAE9B;AAAA,IACCM,EAAc;AAAA,EACjB,EAAA,CAAA;AAEJ;"}
|
|
@@ -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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"}
|