@edifice.io/react 2.0.0-develop-rc.4 → 2.0.0-develop-rc.10
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 +17 -88
- package/dist/audience.js +15 -14
- package/dist/audience.js.map +1 -0
- package/dist/components/ActionBar/ActionBar.js +8 -7
- package/dist/components/ActionBar/ActionBar.js.map +1 -0
- package/dist/components/Alert/Alert.js +62 -61
- package/dist/components/Alert/Alert.js.map +1 -0
- package/dist/components/AppHeader/AppHeader.js +19 -18
- package/dist/components/AppHeader/AppHeader.js.map +1 -0
- package/dist/components/AppIcon/AppIcon.d.ts +1 -1
- package/dist/components/AppIcon/AppIcon.js +45 -44
- package/dist/components/AppIcon/AppIcon.js.map +1 -0
- package/dist/components/Attachment/Attachment.js +14 -13
- package/dist/components/Attachment/Attachment.js.map +1 -0
- package/dist/components/Avatar/Avatar.js +28 -27
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Badge/Badge.js +21 -20
- package/dist/components/Badge/Badge.js.map +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/components/Breadcrumb/Breadcrumb.js +24 -23
- package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/components/Breadcrumb/BreadcrumbItem.js +12 -11
- package/dist/components/Breadcrumb/BreadcrumbItem.js.map +1 -0
- package/dist/components/Breadcrumb/BreadcrumbList.js +11 -10
- package/dist/components/Breadcrumb/BreadcrumbList.js.map +1 -0
- package/dist/components/Breadcrumb/BreadcrumbNav.d.ts +1 -1
- package/dist/components/Breadcrumb/BreadcrumbNav.js +16 -15
- package/dist/components/Breadcrumb/BreadcrumbNav.js.map +1 -0
- package/dist/components/Button/Button.js +33 -32
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Button/IconButton.js +16 -15
- package/dist/components/Button/IconButton.js.map +1 -0
- package/dist/components/Button/SearchButton.js +16 -15
- package/dist/components/Button/SearchButton.js.map +1 -0
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.js +48 -47
- package/dist/components/Card/Card.js.map +1 -0
- package/dist/components/Card/CardBody.js +14 -13
- package/dist/components/Card/CardBody.js.map +1 -0
- package/dist/components/Card/CardContext.d.ts +1 -1
- package/dist/components/Card/CardContext.js +8 -7
- package/dist/components/Card/CardContext.js.map +1 -0
- package/dist/components/Card/CardFooter.js +6 -5
- package/dist/components/Card/CardFooter.js.map +1 -0
- package/dist/components/Card/CardHeader.js +15 -14
- package/dist/components/Card/CardHeader.js.map +1 -0
- package/dist/components/Card/CardImage.js +14 -13
- package/dist/components/Card/CardImage.js.map +1 -0
- package/dist/components/Card/CardText.js +9 -8
- package/dist/components/Card/CardText.js.map +1 -0
- package/dist/components/Card/CardTitle.js +9 -8
- package/dist/components/Card/CardTitle.js.map +1 -0
- package/dist/components/Card/CardUser.js +9 -8
- package/dist/components/Card/CardUser.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +31 -30
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/ColorPicker/ColorPalette.js +5 -4
- package/dist/components/ColorPicker/ColorPalette.js.map +1 -0
- package/dist/components/ColorPicker/ColorPicker.js +29 -28
- package/dist/components/ColorPicker/ColorPicker.js.map +1 -0
- package/dist/components/ColorPicker/ColorPickerItem.js +12 -11
- package/dist/components/ColorPicker/ColorPickerItem.js.map +1 -0
- package/dist/components/Combobox/Combobox.js +36 -35
- package/dist/components/Combobox/Combobox.js.map +1 -0
- package/dist/components/Combobox/ComboboxTrigger.js +22 -21
- package/dist/components/Combobox/ComboboxTrigger.js.map +1 -0
- package/dist/components/Dropdown/Dropdown.js +56 -55
- package/dist/components/Dropdown/Dropdown.js.map +1 -0
- package/dist/components/Dropdown/DropdownCheckboxItem.js +27 -26
- package/dist/components/Dropdown/DropdownCheckboxItem.js.map +1 -0
- package/dist/components/Dropdown/DropdownContext.js +8 -7
- package/dist/components/Dropdown/DropdownContext.js.map +1 -0
- package/dist/components/Dropdown/DropdownItem.js +28 -27
- package/dist/components/Dropdown/DropdownItem.js.map +1 -0
- package/dist/components/Dropdown/DropdownMenu.js +22 -21
- package/dist/components/Dropdown/DropdownMenu.js.map +1 -0
- package/dist/components/Dropdown/DropdownMenuGroup.js +10 -9
- package/dist/components/Dropdown/DropdownMenuGroup.js.map +1 -0
- package/dist/components/Dropdown/DropdownRadioItem.js +27 -26
- package/dist/components/Dropdown/DropdownRadioItem.js.map +1 -0
- package/dist/components/Dropdown/DropdownSeparator.js +4 -3
- package/dist/components/Dropdown/DropdownSeparator.js.map +1 -0
- package/dist/components/Dropdown/DropdownTrigger.js +29 -28
- package/dist/components/Dropdown/DropdownTrigger.js.map +1 -0
- package/dist/components/Dropzone/Dropzone.js +48 -47
- package/dist/components/Dropzone/Dropzone.js.map +1 -0
- package/dist/components/Dropzone/DropzoneContext.js +9 -8
- package/dist/components/Dropzone/DropzoneContext.js.map +1 -0
- package/dist/components/Dropzone/DropzoneDrag.js +8 -7
- package/dist/components/Dropzone/DropzoneDrag.js.map +1 -0
- package/dist/components/Dropzone/DropzoneFile.js +26 -25
- package/dist/components/Dropzone/DropzoneFile.js.map +1 -0
- package/dist/components/Dropzone/DropzoneImport.js +21 -20
- package/dist/components/Dropzone/DropzoneImport.js.map +1 -0
- package/dist/components/EmptyScreen/EmptyScreen.js +17 -16
- package/dist/components/EmptyScreen/EmptyScreen.js.map +1 -0
- package/dist/components/FileCard/FileCard.d.ts +1 -1
- package/dist/components/FileCard/FileCard.js +38 -37
- package/dist/components/FileCard/FileCard.js.map +1 -0
- package/dist/components/FileCard/FileIcon.d.ts +1 -1
- package/dist/components/FileCard/FileIcon.js +12 -11
- package/dist/components/FileCard/FileIcon.js.map +1 -0
- package/dist/components/Form/FormContext.js +8 -7
- package/dist/components/Form/FormContext.js.map +1 -0
- package/dist/components/Form/FormControl.js +31 -30
- package/dist/components/Form/FormControl.js.map +1 -0
- package/dist/components/Form/FormText.js +13 -12
- package/dist/components/Form/FormText.js.map +1 -0
- package/dist/components/Grid/Grid.js +28 -27
- package/dist/components/Grid/Grid.js.map +1 -0
- package/dist/components/Heading/Heading.js +15 -14
- package/dist/components/Heading/Heading.js.map +1 -0
- package/dist/components/Icon/Icon.js +9 -8
- package/dist/components/Icon/Icon.js.map +1 -0
- package/dist/components/Image/Image.js +40 -39
- package/dist/components/Image/Image.js.map +1 -0
- package/dist/components/ImagePicker/ImagePicker.d.ts +1 -1
- package/dist/components/ImagePicker/ImagePicker.js +52 -51
- package/dist/components/ImagePicker/ImagePicker.js.map +1 -0
- package/dist/components/Input/Input.js +29 -28
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/Label/Label.js +31 -30
- package/dist/components/Label/Label.js.map +1 -0
- package/dist/components/Loading/Loading.js +24 -23
- package/dist/components/Loading/Loading.js.map +1 -0
- package/dist/components/LoadingScreen/LoadingScreen.js +21 -20
- package/dist/components/LoadingScreen/LoadingScreen.js.map +1 -0
- package/dist/components/Logo/Logo.js +13 -12
- package/dist/components/Logo/Logo.js.map +1 -0
- package/dist/components/Menu/Menu.js +40 -39
- package/dist/components/Menu/Menu.js.map +1 -0
- package/dist/components/Menu/MenuButton.js +18 -17
- package/dist/components/Menu/MenuButton.js.map +1 -0
- package/dist/components/Menu/MenuContext.js +9 -8
- package/dist/components/Menu/MenuContext.js.map +1 -0
- package/dist/components/Menu/MenuItem.js +15 -14
- package/dist/components/Menu/MenuItem.js.map +1 -0
- package/dist/components/Modal/Modal.js +50 -49
- package/dist/components/Modal/Modal.js.map +1 -0
- package/dist/components/Modal/ModalBody.js +12 -11
- package/dist/components/Modal/ModalBody.js.map +1 -0
- package/dist/components/Modal/ModalContext.js +9 -8
- package/dist/components/Modal/ModalContext.js.map +1 -0
- package/dist/components/Modal/ModalFooter.js +4 -3
- package/dist/components/Modal/ModalFooter.js.map +1 -0
- package/dist/components/Modal/ModalHeader.js +23 -22
- package/dist/components/Modal/ModalHeader.js.map +1 -0
- package/dist/components/Modal/ModalSubtitle.js +4 -3
- package/dist/components/Modal/ModalSubtitle.js.map +1 -0
- package/dist/components/Popover/Popover.js +34 -33
- package/dist/components/Popover/Popover.js.map +1 -0
- package/dist/components/Radio/Radio.js +27 -26
- package/dist/components/Radio/Radio.js.map +1 -0
- package/dist/components/SearchBar/SearchBar.js +30 -29
- package/dist/components/SearchBar/SearchBar.js.map +1 -0
- package/dist/components/Select/Select.js +32 -31
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Select/SelectTrigger.js +5 -4
- package/dist/components/Select/SelectTrigger.js.map +1 -0
- package/dist/components/Table/TableExplorer.js +8 -7
- package/dist/components/Table/TableExplorer.js.map +1 -0
- package/dist/components/Tabs/Tabs.js +59 -58
- package/dist/components/Tabs/Tabs.js.map +1 -0
- package/dist/components/Tabs/TabsContext.js +9 -8
- package/dist/components/Tabs/TabsContext.js.map +1 -0
- package/dist/components/Tabs/TabsItem.js +21 -20
- package/dist/components/Tabs/TabsItem.js.map +1 -0
- package/dist/components/Tabs/TabsList.js +19 -18
- package/dist/components/Tabs/TabsList.js.map +1 -0
- package/dist/components/Tabs/TabsPanel.js +10 -9
- package/dist/components/Tabs/TabsPanel.js.map +1 -0
- package/dist/components/TextArea/TextArea.js +32 -31
- package/dist/components/TextArea/TextArea.js.map +1 -0
- package/dist/components/TextArea/TextareaCounter.js +7 -6
- package/dist/components/TextArea/TextareaCounter.js.map +1 -0
- package/dist/components/Toolbar/Toolbar.js +61 -60
- package/dist/components/Toolbar/Toolbar.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.js +29 -28
- package/dist/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/TreeView/TreeItem.js +47 -46
- package/dist/components/TreeView/TreeItem.js.map +1 -0
- package/dist/components/TreeView/TreeView.js +34 -33
- package/dist/components/TreeView/TreeView.js.map +1 -0
- package/dist/components/TreeView/hooks/useTreeItemEvents.js +19 -18
- package/dist/components/TreeView/hooks/useTreeItemEvents.js.map +1 -0
- package/dist/components/UploadCard/UploadCard.js +53 -52
- package/dist/components/UploadCard/UploadCard.js.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js +8 -7
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/core/OdeClientProvider/OdeClientProvider.d.ts +1 -1
- package/dist/core/OdeClientProvider/OdeClientProvider.js +45 -44
- package/dist/core/OdeClientProvider/OdeClientProvider.js.map +1 -0
- package/dist/core/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/dist/core/ThemeProvider/ThemeProvider.js +36 -35
- package/dist/core/ThemeProvider/ThemeProvider.js.map +1 -0
- package/dist/core/useAvatar/useAvatar.d.ts +1 -1
- package/dist/core/useAvatar/useAvatar.js +22 -21
- package/dist/core/useAvatar/useAvatar.js.map +1 -0
- package/dist/core/useBookmark/useBookmark.d.ts +1 -1
- package/dist/core/useBookmark/useBookmark.js +10 -9
- package/dist/core/useBookmark/useBookmark.js.map +1 -0
- package/dist/core/useConf/useConf.d.ts +1 -1
- package/dist/core/useConf/useConf.js +8 -7
- package/dist/core/useConf/useConf.js.map +1 -0
- package/dist/core/useConversation/useConversation.js +30 -29
- package/dist/core/useConversation/useConversation.js.map +1 -0
- package/dist/core/useCookiesConsent/useCookiesConsent.js +17 -16
- package/dist/core/useCookiesConsent/useCookiesConsent.js.map +1 -0
- package/dist/core/useDate/useDate.js +36 -35
- package/dist/core/useDate/useDate.js.map +1 -0
- package/dist/core/useHasWorkflow/useHasWorkflow.js +16 -15
- package/dist/core/useHasWorkflow/useHasWorkflow.js.map +1 -0
- package/dist/core/useHeader/useHeader.d.ts +1 -1
- package/dist/core/useHeader/useHeader.js +42 -41
- package/dist/core/useHeader/useHeader.js.map +1 -0
- package/dist/core/useHttpErrorToast/useHttpErrorToast.js +18 -17
- package/dist/core/useHttpErrorToast/useHttpErrorToast.js.map +1 -0
- package/dist/core/useIsAdml/useIsAdml.js +12 -11
- package/dist/core/useIsAdml/useIsAdml.js.map +1 -0
- package/dist/core/useLibraryUrl/useLibraryUrl.js +17 -16
- package/dist/core/useLibraryUrl/useLibraryUrl.js.map +1 -0
- package/dist/core/useMediaLibrary/useMediaLibrary.d.ts +1 -1
- package/dist/core/useMediaLibrary/useMediaLibrary.js +33 -32
- package/dist/core/useMediaLibrary/useMediaLibrary.js.map +1 -0
- package/dist/core/useOdeIcons/useOdeIcons.d.ts +1 -1
- package/dist/core/useOdeIcons/useOdeIcons.js +38 -37
- package/dist/core/useOdeIcons/useOdeIcons.js.map +1 -0
- package/dist/core/usePaths/usePaths.js +3 -2
- package/dist/core/usePaths/usePaths.js.map +1 -0
- package/dist/core/usePreferences/usePreferences.js +6 -5
- package/dist/core/usePreferences/usePreferences.js.map +1 -0
- package/dist/core/useResource/useResource.d.ts +1 -1
- package/dist/core/useResource/useResource.js +15 -14
- package/dist/core/useResource/useResource.js.map +1 -0
- package/dist/core/useResourceSearch/useResourceSearch.d.ts +1 -1
- package/dist/core/useResourceSearch/useResourceSearch.js +23 -22
- package/dist/core/useResourceSearch/useResourceSearch.js.map +1 -0
- package/dist/core/useSession/useSession.js +7 -6
- package/dist/core/useSession/useSession.js.map +1 -0
- package/dist/core/useTrashedResource/useTrashedResource.js +19 -18
- package/dist/core/useTrashedResource/useTrashedResource.js.map +1 -0
- package/dist/core/useUpload/useUpload.d.ts +1 -1
- package/dist/core/useUpload/useUpload.js +69 -68
- package/dist/core/useUpload/useUpload.js.map +1 -0
- package/dist/core/useUploadFiles/useUploadFiles.d.ts +1 -1
- package/dist/core/useUploadFiles/useUploadFiles.js +83 -82
- package/dist/core/useUploadFiles/useUploadFiles.js.map +1 -0
- package/dist/core/useUser/useUser.d.ts +1 -1
- package/dist/core/useUser/useUser.js +16 -15
- package/dist/core/useUser/useUser.js.map +1 -0
- package/dist/core/useWorkspaceFile/useWorkspaceFile.d.ts +1 -1
- package/dist/core/useWorkspaceFile/useWorkspaceFile.js +32 -31
- package/dist/core/useWorkspaceFile/useWorkspaceFile.js.map +1 -0
- package/dist/core/useWorkspaceSearch/useWorkspaceSearch.d.ts +1 -1
- package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js +42 -41
- package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js.map +1 -0
- package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js +18 -17
- package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js.map +1 -0
- package/dist/core/useZendeskGuide/useZendeskGuide.js +47 -46
- package/dist/core/useZendeskGuide/useZendeskGuide.js.map +1 -0
- package/dist/editor.js +57 -56
- package/dist/editor.js.map +1 -0
- package/dist/hooks/useBrowserInfo/useBrowserInfo.js +12 -11
- package/dist/hooks/useBrowserInfo/useBrowserInfo.js.map +1 -0
- package/dist/hooks/useClickOutside/useClickOutside.js +19 -18
- package/dist/hooks/useClickOutside/useClickOutside.js.map +1 -0
- package/dist/hooks/useDebounce/useDebounce.js +11 -10
- package/dist/hooks/useDebounce/useDebounce.js.map +1 -0
- package/dist/hooks/useDropdown/useDropdown.d.ts +1 -1
- package/dist/hooks/useDropdown/useDropdown.js +97 -96
- package/dist/hooks/useDropdown/useDropdown.js.map +1 -0
- package/dist/hooks/useDropzone/useDropzone.js +54 -53
- package/dist/hooks/useDropzone/useDropzone.js.map +1 -0
- package/dist/hooks/useHover/useHover.js +15 -14
- package/dist/hooks/useHover/useHover.js.map +1 -0
- package/dist/hooks/useImage/useImage.js +14 -13
- package/dist/hooks/useImage/useImage.js.map +1 -0
- package/dist/hooks/useImageResizer/useImageResizer.js +32 -31
- package/dist/hooks/useImageResizer/useImageResizer.js.map +1 -0
- package/dist/hooks/useKeyPress/useKeyPress.js +11 -10
- package/dist/hooks/useKeyPress/useKeyPress.js.map +1 -0
- package/dist/hooks/useScrollToTop/useScrollToTop.js +5 -4
- package/dist/hooks/useScrollToTop/useScrollToTop.js.map +1 -0
- package/dist/hooks/useThumbnail/useThumbnail.js +22 -21
- package/dist/hooks/useThumbnail/useThumbnail.js.map +1 -0
- package/dist/hooks/useTitle/useTitle.js +8 -7
- package/dist/hooks/useTitle/useTitle.js.map +1 -0
- package/dist/hooks/useToast/useToast.js +26 -25
- package/dist/hooks/useToast/useToast.js.map +1 -0
- package/dist/hooks/useToggle/useToggle.js +7 -6
- package/dist/hooks/useToggle/useToggle.js.map +1 -0
- package/dist/hooks/useTrapFocus/useTrapFocus.js +12 -11
- package/dist/hooks/useTrapFocus/useTrapFocus.js.map +1 -0
- package/dist/index.js +226 -225
- package/dist/index.js.map +1 -0
- package/dist/modals.js +15 -14
- package/dist/modals.js.map +1 -0
- package/dist/modules/audience/ReactionChoice.d.ts +1 -1
- package/dist/modules/audience/ReactionChoice.js +25 -24
- package/dist/modules/audience/ReactionChoice.js.map +1 -0
- package/dist/modules/audience/ReactionModal.Card.d.ts +1 -1
- package/dist/modules/audience/ReactionModal.Card.js +26 -25
- package/dist/modules/audience/ReactionModal.Card.js.map +1 -0
- package/dist/modules/audience/ReactionModal.d.ts +1 -1
- package/dist/modules/audience/ReactionModal.js +59 -59
- package/dist/modules/audience/ReactionModal.js.map +1 -0
- package/dist/modules/audience/ReactionSummary.d.ts +1 -1
- package/dist/modules/audience/ReactionSummary.js +20 -19
- package/dist/modules/audience/ReactionSummary.js.map +1 -0
- package/dist/modules/audience/ViewsByProfileCard.d.ts +1 -1
- package/dist/modules/audience/ViewsByProfileCard.js +23 -22
- package/dist/modules/audience/ViewsByProfileCard.js.map +1 -0
- package/dist/modules/audience/ViewsCounter.js +15 -14
- package/dist/modules/audience/ViewsCounter.js.map +1 -0
- package/dist/modules/audience/ViewsModal.d.ts +1 -1
- package/dist/modules/audience/ViewsModal.js +33 -32
- package/dist/modules/audience/ViewsModal.js.map +1 -0
- package/dist/modules/audience/hooks/useReactionIcons.d.ts +1 -1
- package/dist/modules/audience/hooks/useReactionIcons.js +14 -13
- package/dist/modules/audience/hooks/useReactionIcons.js.map +1 -0
- package/dist/modules/audience/hooks/useReactions.d.ts +3 -3
- package/dist/modules/audience/hooks/useReactions.js +25 -24
- package/dist/modules/audience/hooks/useReactions.js.map +1 -0
- package/dist/modules/audience/hooks/useViews.d.ts +2 -2
- package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js +60 -59
- package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js.map +1 -0
- package/dist/modules/editor/components/Editor/Editor.d.ts +1 -1
- package/dist/modules/editor/components/Editor/Editor.js +71 -70
- package/dist/modules/editor/components/Editor/Editor.js.map +1 -0
- package/dist/modules/editor/components/Editor/MathsModal.d.ts +0 -1
- package/dist/modules/editor/components/Editor/MathsModal.js +38 -37
- package/dist/modules/editor/components/Editor/MathsModal.js.map +1 -0
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js +15 -14
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js.map +1 -0
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js +38 -37
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js.map +1 -0
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js +34 -33
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js.map +1 -0
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js +13 -12
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js.map +1 -0
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js +37 -36
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js.map +1 -0
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js +36 -35
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js.map +1 -0
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js +31 -30
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js.map +1 -0
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +96 -95
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js.map +1 -0
- package/dist/modules/editor/components/NodeView/AttachmentNodeView.js +7 -6
- package/dist/modules/editor/components/NodeView/AttachmentNodeView.js.map +1 -0
- package/dist/modules/editor/components/NodeView/AudioNodeView.js +7 -6
- package/dist/modules/editor/components/NodeView/AudioNodeView.js.map +1 -0
- package/dist/modules/editor/components/NodeView/ImageNodeView.js +7 -6
- package/dist/modules/editor/components/NodeView/ImageNodeView.js.map +1 -0
- package/dist/modules/editor/components/NodeView/LinkerNodeView.js +7 -6
- package/dist/modules/editor/components/NodeView/LinkerNodeView.js.map +1 -0
- package/dist/modules/editor/components/NodeView/VideoNodeView.js +7 -6
- package/dist/modules/editor/components/NodeView/VideoNodeView.js.map +1 -0
- package/dist/modules/editor/components/Renderer/AttachmentRenderer.js +25 -24
- package/dist/modules/editor/components/Renderer/AttachmentRenderer.js.map +1 -0
- package/dist/modules/editor/components/Renderer/AudioRenderer.js +8 -7
- package/dist/modules/editor/components/Renderer/AudioRenderer.js.map +1 -0
- package/dist/modules/editor/components/Renderer/LinkerRenderer.js +27 -26
- package/dist/modules/editor/components/Renderer/LinkerRenderer.js.map +1 -0
- package/dist/modules/editor/components/Renderer/MediaRenderer.js +38 -37
- package/dist/modules/editor/components/Renderer/MediaRenderer.js.map +1 -0
- package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js +3 -2
- package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js.map +1 -0
- package/dist/modules/editor/components/Toolbar/LinkToolbar.d.ts +1 -1
- package/dist/modules/editor/components/Toolbar/LinkToolbar.js +33 -32
- package/dist/modules/editor/components/Toolbar/LinkToolbar.js.map +1 -0
- package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js +22 -21
- package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js.map +1 -0
- package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js +31 -30
- package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js.map +1 -0
- package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js +21 -20
- package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js.map +1 -0
- package/dist/modules/editor/components/Toolbar/TableToolbar.d.ts +1 -1
- package/dist/modules/editor/components/Toolbar/TableToolbar.js +42 -41
- package/dist/modules/editor/components/Toolbar/TableToolbar.js.map +1 -0
- package/dist/modules/editor/hooks/useActionOptions.js +48 -47
- package/dist/modules/editor/hooks/useActionOptions.js.map +1 -0
- package/dist/modules/editor/hooks/useCommentEditor.js +28 -27
- package/dist/modules/editor/hooks/useCommentEditor.js.map +1 -0
- package/dist/modules/editor/hooks/useEditorContext.js +9 -8
- package/dist/modules/editor/hooks/useEditorContext.js.map +1 -0
- package/dist/modules/editor/hooks/useImageModal.d.ts +1 -1
- package/dist/modules/editor/hooks/useImageModal.js +33 -32
- package/dist/modules/editor/hooks/useImageModal.js.map +1 -0
- package/dist/modules/editor/hooks/useImageSelection.js +32 -31
- package/dist/modules/editor/hooks/useImageSelection.js.map +1 -0
- package/dist/modules/editor/hooks/useLinkToolbar.js +25 -24
- package/dist/modules/editor/hooks/useLinkToolbar.js.map +1 -0
- package/dist/modules/editor/hooks/useMathsModal.js +10 -9
- package/dist/modules/editor/hooks/useMathsModal.js.map +1 -0
- package/dist/modules/editor/hooks/useMathsStyles.js +14 -13
- package/dist/modules/editor/hooks/useMathsStyles.js.map +1 -0
- package/dist/modules/editor/hooks/useMediaLibraryEditor.d.ts +1 -1
- package/dist/modules/editor/hooks/useMediaLibraryEditor.js +97 -96
- package/dist/modules/editor/hooks/useMediaLibraryEditor.js.map +1 -0
- package/dist/modules/editor/hooks/useResizeMedia.js +32 -31
- package/dist/modules/editor/hooks/useResizeMedia.js.map +1 -0
- package/dist/modules/editor/hooks/useSpeechRecognition.js +13 -12
- package/dist/modules/editor/hooks/useSpeechRecognition.js.map +1 -0
- package/dist/modules/editor/hooks/useSpeechSynthetisis.js +14 -13
- package/dist/modules/editor/hooks/useSpeechSynthetisis.js.map +1 -0
- package/dist/modules/editor/hooks/useTipTapEditor.js +58 -57
- package/dist/modules/editor/hooks/useTipTapEditor.js.map +1 -0
- package/dist/modules/editor/utils/has-extension.js +3 -2
- package/dist/modules/editor/utils/has-extension.js.map +1 -0
- package/dist/modules/editor/utils/has-mark.js +3 -2
- package/dist/modules/editor/utils/has-mark.js.map +1 -0
- package/dist/modules/editor/utils/has-text-style.js +4 -3
- package/dist/modules/editor/utils/has-text-style.js.map +1 -0
- package/dist/modules/modals/OnboardingModal/OnboardingModal.d.ts +0 -1
- package/dist/modules/modals/OnboardingModal/OnboardingModal.js +50 -49
- package/dist/modules/modals/OnboardingModal/OnboardingModal.js.map +1 -0
- package/dist/modules/modals/OnboardingModal/useOnboardingModal.js +19 -18
- package/dist/modules/modals/OnboardingModal/useOnboardingModal.js.map +1 -0
- package/dist/modules/modals/PublishModal/PublishModal.d.ts +1 -1
- package/dist/modules/modals/PublishModal/PublishModal.js +98 -97
- package/dist/modules/modals/PublishModal/PublishModal.js.map +1 -0
- package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js +20 -19
- package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js.map +1 -0
- package/dist/modules/modals/PublishModal/components/AgeSelect.js +15 -14
- package/dist/modules/modals/PublishModal/components/AgeSelect.js.map +1 -0
- package/dist/modules/modals/PublishModal/components/LangSelect.js +12 -11
- package/dist/modules/modals/PublishModal/components/LangSelect.js.map +1 -0
- package/dist/modules/modals/PublishModal/components/PublishModalFooter.js +17 -16
- package/dist/modules/modals/PublishModal/components/PublishModalFooter.js.map +1 -0
- package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js +20 -19
- package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js.map +1 -0
- package/dist/modules/modals/PublishModal/components/ToastError.js +18 -17
- package/dist/modules/modals/PublishModal/components/ToastError.js.map +1 -0
- package/dist/modules/modals/PublishModal/components/ToastSuccess.d.ts +1 -1
- package/dist/modules/modals/PublishModal/components/ToastSuccess.js +13 -12
- package/dist/modules/modals/PublishModal/components/ToastSuccess.js.map +1 -0
- package/dist/modules/modals/PublishModal/constants/ageOptions.js +3 -2
- package/dist/modules/modals/PublishModal/constants/ageOptions.js.map +1 -0
- package/dist/modules/modals/PublishModal/hooks/useActivitiesOptions.js +5 -4
- package/dist/modules/modals/PublishModal/hooks/useActivitiesOptions.js.map +1 -0
- package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js +17 -16
- package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js.map +1 -0
- package/dist/modules/modals/PublishModal/hooks/usePublishModal.d.ts +1 -1
- package/dist/modules/modals/PublishModal/hooks/usePublishModal.js +80 -79
- package/dist/modules/modals/PublishModal/hooks/usePublishModal.js.map +1 -0
- package/dist/modules/modals/PublishModal/hooks/useSubjectsOptions.js +42 -41
- package/dist/modules/modals/PublishModal/hooks/useSubjectsOptions.js.map +1 -0
- package/dist/modules/modals/ResourceModal/ResourceModal.d.ts +1 -1
- package/dist/modules/modals/ResourceModal/ResourceModal.js +116 -115
- package/dist/modules/modals/ResourceModal/ResourceModal.js.map +1 -0
- package/dist/modules/modals/ResourceModal/apps/BlogPublic.d.ts +1 -1
- package/dist/modules/modals/ResourceModal/apps/BlogPublic.js +48 -47
- package/dist/modules/modals/ResourceModal/apps/BlogPublic.js.map +1 -0
- package/dist/modules/modals/ResourceModal/hooks/useSlug.d.ts +1 -1
- package/dist/modules/modals/ResourceModal/hooks/useSlug.js +33 -32
- package/dist/modules/modals/ResourceModal/hooks/useSlug.js.map +1 -0
- package/dist/modules/modals/ResourceModal/hooks/useThumb.d.ts +1 -1
- package/dist/modules/modals/ResourceModal/hooks/useThumb.js +13 -12
- package/dist/modules/modals/ResourceModal/hooks/useThumb.js.map +1 -0
- package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.d.ts +1 -1
- package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js +11 -10
- package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js.map +1 -0
- package/dist/modules/modals/ShareModal/ShareBookmarkLine.d.ts +1 -1
- package/dist/modules/modals/ShareModal/ShareModal.d.ts +1 -1
- package/dist/modules/modals/ShareModal/apps/ShareBlog.d.ts +1 -1
- package/dist/modules/modals/ShareModal/apps/ShareBlog.js +34 -33
- package/dist/modules/modals/ShareModal/apps/ShareBlog.js.map +1 -0
- package/dist/modules/modals/ShareModal/hooks/useSearch.d.ts +1 -1
- package/dist/modules/modals/ShareModal/hooks/useShare.d.ts +1 -1
- package/dist/modules/modals/ShareModal/hooks/useShareBookmark.d.ts +1 -1
- package/dist/modules/modals/ShareModal/hooks/useShareMutation.d.ts +1 -1
- package/dist/modules/modals/ShareModal/hooks/useShareMutation.js +13 -12
- package/dist/modules/modals/ShareModal/hooks/useShareMutation.js.map +1 -0
- package/dist/modules/modals/ShareModal/utils/hasRight.d.ts +1 -1
- package/dist/modules/modals/ShareModal/utils/showShareRightLine.d.ts +1 -1
- package/dist/modules/multimedia/AudioRecorder/AudioRecorder.d.ts +1 -1
- package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js +44 -43
- package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js.map +1 -0
- package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js +19 -18
- package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js.map +1 -0
- package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.d.ts +1 -1
- package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js +158 -157
- package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js.map +1 -0
- package/dist/modules/multimedia/Embed/Embed.js +23 -22
- package/dist/modules/multimedia/Embed/Embed.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js +80 -79
- package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js +38 -37
- package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/effects/blur.js +50 -49
- package/dist/modules/multimedia/ImageEditor/effects/blur.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/effects/crop.js +100 -99
- package/dist/modules/multimedia/ImageEditor/effects/crop.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/effects/misc.js +108 -107
- package/dist/modules/multimedia/ImageEditor/effects/misc.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/effects/resize.js +97 -96
- package/dist/modules/multimedia/ImageEditor/effects/resize.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/effects/rotate.js +26 -25
- package/dist/modules/multimedia/ImageEditor/effects/rotate.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js +56 -57
- package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js +57 -56
- package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js +29 -28
- package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/utils/aggregate.js +10 -9
- package/dist/modules/multimedia/ImageEditor/utils/aggregate.js.map +1 -0
- package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.d.ts +1 -1
- package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js +34 -33
- package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js.map +1 -0
- package/dist/modules/multimedia/Linker/ExternalLinker.js +37 -36
- package/dist/modules/multimedia/Linker/ExternalLinker.js.map +1 -0
- package/dist/modules/multimedia/Linker/InternalLinker.d.ts +1 -1
- package/dist/modules/multimedia/Linker/InternalLinker.js +89 -88
- package/dist/modules/multimedia/Linker/InternalLinker.js.map +1 -0
- package/dist/modules/multimedia/LinkerCard/LinkerCard.d.ts +1 -1
- package/dist/modules/multimedia/LinkerCard/LinkerCard.js +32 -31
- package/dist/modules/multimedia/LinkerCard/LinkerCard.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/MediaLibrary.d.ts +1 -1
- package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +119 -118
- package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.d.ts +2 -2
- package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js +9 -8
- package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js +16 -15
- package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js +13 -12
- package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js +10 -9
- package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.d.ts +1 -1
- package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js +29 -28
- package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js +23 -22
- package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js +18 -17
- package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +10 -9
- package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js +17 -16
- package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js.map +1 -0
- package/dist/modules/multimedia/MediaLibrary/innertabs/index.js +19 -18
- package/dist/modules/multimedia/MediaLibrary/innertabs/index.js.map +1 -0
- package/dist/modules/multimedia/UploadFiles/UploadFiles.d.ts +1 -1
- package/dist/modules/multimedia/UploadFiles/UploadFiles.js +42 -41
- package/dist/modules/multimedia/UploadFiles/UploadFiles.js.map +1 -0
- package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js +60 -59
- package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js.map +1 -0
- package/dist/modules/multimedia/VideoRecorder/VideoRecorder.d.ts +1 -1
- package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js +154 -153
- package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js.map +1 -0
- package/dist/modules/multimedia/Workspace/Workspace.d.ts +1 -1
- package/dist/modules/multimedia/Workspace/Workspace.js +113 -112
- package/dist/modules/multimedia/Workspace/Workspace.js.map +1 -0
- package/dist/multimedia.js +19 -18
- package/dist/multimedia.js.map +1 -0
- package/dist/portal/Header/Badge.js +6 -5
- package/dist/portal/Header/Badge.js.map +1 -0
- package/dist/portal/Header/Header.js +138 -137
- package/dist/portal/Header/Header.js.map +1 -0
- package/dist/portal/Header/NavItem.js +12 -11
- package/dist/portal/Header/NavItem.js.map +1 -0
- package/dist/portal/Header/NavLink.js +15 -14
- package/dist/portal/Header/NavLink.js.map +1 -0
- package/dist/portal/Header/Navbar.js +10 -9
- package/dist/portal/Header/Navbar.js.map +1 -0
- package/dist/portal/Header/NavbarNav.js +10 -9
- package/dist/portal/Header/NavbarNav.js.map +1 -0
- package/dist/portal/Header/WidgetApps.d.ts +1 -1
- package/dist/portal/Header/WidgetApps.js +17 -16
- package/dist/portal/Header/WidgetApps.js.map +1 -0
- package/dist/portal/Help/Help.d.ts +0 -1
- package/dist/portal/Help/Help.js +19 -18
- package/dist/portal/Help/Help.js.map +1 -0
- package/dist/portal/Help/hooks/useHelp.js +64 -63
- package/dist/portal/Help/hooks/useHelp.js.map +1 -0
- package/dist/portal/Layout/Layout.js +36 -35
- package/dist/portal/Layout/Layout.js.map +1 -0
- package/dist/portal/SearchEngine/SearchEngine.js +26 -25
- package/dist/portal/SearchEngine/SearchEngine.js.map +1 -0
- package/dist/utils/MockedDataProvider/MockedDataProvider.d.ts +1 -1
- package/dist/utils/MockedDataProvider/MockedDataProvider.js +22 -21
- package/dist/utils/MockedDataProvider/MockedDataProvider.js.map +1 -0
- package/dist/utils/StringUtils.js +9 -8
- package/dist/utils/StringUtils.js.map +1 -0
- package/dist/utils/addTimestampToUrl.js +5 -4
- package/dist/utils/addTimestampToUrl.js.map +1 -0
- package/dist/utils/blob.js +10 -9
- package/dist/utils/blob.js.map +1 -0
- package/dist/utils/checkUserRight.d.ts +1 -1
- package/dist/utils/checkUserRight.js +28 -27
- package/dist/utils/checkUserRight.js.map +1 -0
- package/dist/utils/fileSize.js +6 -5
- package/dist/utils/fileSize.js.map +1 -0
- package/dist/utils/findTreeNode.js +8 -7
- package/dist/utils/findTreeNode.js.map +1 -0
- package/dist/utils/isActionAvailable.d.ts +1 -1
- package/dist/utils/isActionAvailable.js +5 -4
- package/dist/utils/isActionAvailable.js.map +1 -0
- package/dist/utils/libraryMaps.js +3 -2
- package/dist/utils/libraryMaps.js.map +1 -0
- package/dist/utils/noop.js +3 -2
- package/dist/utils/noop.js.map +1 -0
- package/dist/utils/ref.js +9 -8
- package/dist/utils/ref.js.map +1 -0
- package/dist/utils/thumbnail.js +4 -3
- package/dist/utils/thumbnail.js.map +1 -0
- package/dist/utils/time.js +8 -7
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/treeview.d.ts +1 -1
- package/dist/utils/treeview.js +97 -96
- package/dist/utils/treeview.js.map +1 -0
- package/dist/utils/video.js +3 -2
- package/dist/utils/video.js.map +1 -0
- package/dist/widgets/BookmarkedApps/BookmarkedApps.d.ts +1 -1
- package/dist/widgets/BookmarkedApps/BookmarkedApps.js +7 -6
- package/dist/widgets/BookmarkedApps/BookmarkedApps.js.map +1 -0
- package/dist/widgets/Widget/Widget.js +19 -18
- package/dist/widgets/Widget/Widget.js.map +1 -0
- package/package.json +19 -28
|
@@ -1,169 +1,169 @@
|
|
|
1
|
-
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef, useState, useRef, useImperativeHandle, useEffect, useCallback } from "react";
|
|
3
|
-
import { odeServices } from "edifice
|
|
4
|
-
import { useTranslation } from "react-i18next";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { getBestSupportedMimeType } from "../../../utils/video.js";
|
|
8
|
-
import { Select } from "../../../components/Select/Select.js";
|
|
9
|
-
import { Icon } from "../../../components/Icon/Icon.js";
|
|
10
|
-
import { FormControl } from "../../../components/Form/FormControl.js";
|
|
11
|
-
import { Label } from "../../../components/Label/Label.js";
|
|
12
|
-
import { convertMsToMS } from "../../../utils/time.js";
|
|
13
|
-
import { Toolbar } from "../../../components/Toolbar/Toolbar.js";
|
|
14
|
-
import { LoadingScreen } from "../../../components/LoadingScreen/LoadingScreen.js";
|
|
15
|
-
const
|
|
16
|
-
appCode,
|
|
17
|
-
caption,
|
|
18
|
-
onSuccess,
|
|
19
|
-
onError,
|
|
20
|
-
onRecordUpdated,
|
|
21
|
-
hideSaveAction = !1
|
|
22
|
-
},
|
|
23
|
-
const [
|
|
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
24
|
audio: !0,
|
|
25
25
|
video: {
|
|
26
26
|
facingMode: "environment",
|
|
27
|
-
aspectRatio:
|
|
27
|
+
aspectRatio: V / L
|
|
28
28
|
}
|
|
29
|
-
}), [
|
|
30
|
-
uploadBlob
|
|
31
|
-
} =
|
|
32
|
-
device
|
|
33
|
-
} =
|
|
34
|
-
|
|
35
|
-
save:
|
|
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
36
|
}));
|
|
37
37
|
const {
|
|
38
38
|
t
|
|
39
|
-
} =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}, []),
|
|
43
|
-
|
|
44
|
-
}), [
|
|
45
|
-
if (
|
|
46
|
-
const
|
|
47
|
-
type:
|
|
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
48
|
});
|
|
49
|
-
if (
|
|
50
|
-
const
|
|
51
|
-
|
|
49
|
+
if (z(r), h) {
|
|
50
|
+
const e = window.URL.createObjectURL(r);
|
|
51
|
+
h(e);
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
o.current.autoplay = !1, o.current.srcObject = null, o.current.src = window.URL.createObjectURL(r);
|
|
54
54
|
}
|
|
55
|
-
}, [
|
|
56
|
-
if (
|
|
57
|
-
const
|
|
55
|
+
}, [d, x]), f(() => {
|
|
56
|
+
if (d) {
|
|
57
|
+
const r = Date.now(), e = window.setInterval(
|
|
58
58
|
// Compute exact elapsed time by diffing the start time.
|
|
59
|
-
() =>
|
|
59
|
+
() => q(Date.now() - r),
|
|
60
60
|
500
|
|
61
61
|
);
|
|
62
62
|
return () => {
|
|
63
|
-
window.clearInterval(
|
|
63
|
+
window.clearInterval(e);
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
-
}, [
|
|
67
|
-
if (
|
|
68
|
-
const
|
|
66
|
+
}, [d]), f(() => {
|
|
67
|
+
if (v) {
|
|
68
|
+
const r = window.setInterval(() => A((e) => e + 500), 500);
|
|
69
69
|
return () => {
|
|
70
|
-
window.clearInterval(
|
|
70
|
+
window.clearInterval(r);
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
|
-
}, [
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
},
|
|
78
|
-
const
|
|
79
|
-
switch (
|
|
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
80
|
case "mobile":
|
|
81
81
|
case "tablet": {
|
|
82
|
-
const
|
|
82
|
+
const s = {
|
|
83
83
|
deviceId: "environment",
|
|
84
84
|
label: t("video.back.camera"),
|
|
85
85
|
groupId: "",
|
|
86
86
|
kind: "videoinput"
|
|
87
|
-
},
|
|
87
|
+
}, g = {
|
|
88
88
|
deviceId: "user",
|
|
89
89
|
label: t("video.front.camera"),
|
|
90
90
|
groupId: "",
|
|
91
91
|
kind: "videoinput"
|
|
92
92
|
};
|
|
93
|
-
(
|
|
93
|
+
(e == null ? void 0 : e.length) > 1 ? C([s, g]) : C([s]);
|
|
94
94
|
break;
|
|
95
95
|
}
|
|
96
96
|
default:
|
|
97
|
-
|
|
97
|
+
C(e);
|
|
98
98
|
break;
|
|
99
99
|
}
|
|
100
|
-
},
|
|
100
|
+
}, D = async (r) => {
|
|
101
101
|
try {
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
} catch (
|
|
105
|
-
console.error(
|
|
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
106
|
}
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
mimeType:
|
|
112
|
-
}),
|
|
113
|
-
data
|
|
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
114
|
}) => {
|
|
115
|
-
|
|
116
|
-
},
|
|
117
|
-
}, [
|
|
118
|
-
var
|
|
119
|
-
|
|
120
|
-
}, [
|
|
121
|
-
var
|
|
122
|
-
|
|
123
|
-
}, [
|
|
124
|
-
|
|
125
|
-
},
|
|
126
|
-
if (
|
|
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
127
|
console.error("Error while saving video: recorded video is undefined.");
|
|
128
128
|
return;
|
|
129
129
|
}
|
|
130
|
-
const
|
|
131
|
-
duration:
|
|
130
|
+
const r = await ie(H, {
|
|
131
|
+
duration: b
|
|
132
132
|
});
|
|
133
|
-
if (
|
|
134
|
-
return
|
|
135
|
-
|
|
136
|
-
},
|
|
137
|
-
|
|
138
|
-
},
|
|
139
|
-
var
|
|
140
|
-
const
|
|
141
|
-
let
|
|
142
|
-
|
|
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
143
|
audio: !0,
|
|
144
144
|
video: {
|
|
145
|
-
aspectRatio:
|
|
146
|
-
facingMode:
|
|
145
|
+
aspectRatio: V / L,
|
|
146
|
+
facingMode: e == null ? void 0 : e.deviceId
|
|
147
147
|
}
|
|
148
|
-
} :
|
|
148
|
+
} : s = {
|
|
149
149
|
audio: !0,
|
|
150
150
|
video: {
|
|
151
|
-
aspectRatio:
|
|
152
|
-
deviceId:
|
|
151
|
+
aspectRatio: V / L,
|
|
152
|
+
deviceId: e.deviceId
|
|
153
153
|
}
|
|
154
|
-
},
|
|
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
155
|
};
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}, [
|
|
159
|
-
const
|
|
156
|
+
f(() => {
|
|
157
|
+
b >= O && M();
|
|
158
|
+
}, [b, M]);
|
|
159
|
+
const ue = [{
|
|
160
160
|
type: "icon",
|
|
161
161
|
name: "record",
|
|
162
162
|
props: {
|
|
163
|
-
icon: /* @__PURE__ */
|
|
163
|
+
icon: /* @__PURE__ */ i(u, { name: "record", color: d || l ? "" : "red" }),
|
|
164
164
|
color: "danger",
|
|
165
|
-
disabled:
|
|
166
|
-
onClick:
|
|
165
|
+
disabled: d || l || p,
|
|
166
|
+
onClick: ce,
|
|
167
167
|
"aria-label": t("bbm.video.record.start")
|
|
168
168
|
},
|
|
169
169
|
tooltip: t("bbm.video.record.start")
|
|
@@ -171,31 +171,31 @@ const VIDEO_HEIGHT = 9, VIDEO_WIDTH = 16, VideoRecorder = /* @__PURE__ */ forwar
|
|
|
171
171
|
type: "icon",
|
|
172
172
|
name: "stop",
|
|
173
173
|
props: {
|
|
174
|
-
icon: /* @__PURE__ */
|
|
175
|
-
disabled: !
|
|
176
|
-
onClick:
|
|
174
|
+
icon: /* @__PURE__ */ i(u, { name: "record-stop" }),
|
|
175
|
+
disabled: !d || l || p,
|
|
176
|
+
onClick: M,
|
|
177
177
|
"aria-label": t("bbm.video.record.stop")
|
|
178
178
|
},
|
|
179
179
|
tooltip: t("bbm.video.record.stop")
|
|
180
180
|
}, {
|
|
181
181
|
type: "icon",
|
|
182
182
|
name: "play",
|
|
183
|
-
visibility:
|
|
183
|
+
visibility: v ? "hide" : "show",
|
|
184
184
|
props: {
|
|
185
|
-
icon: /* @__PURE__ */
|
|
186
|
-
disabled: !
|
|
187
|
-
onClick:
|
|
185
|
+
icon: /* @__PURE__ */ i(u, { name: "play-filled" }),
|
|
186
|
+
disabled: !l || p,
|
|
187
|
+
onClick: F,
|
|
188
188
|
"aria-label": t("bbm.video.play.start")
|
|
189
189
|
},
|
|
190
190
|
tooltip: t("bbm.video.play.start")
|
|
191
191
|
}, {
|
|
192
192
|
type: "icon",
|
|
193
193
|
name: "pause",
|
|
194
|
-
visibility:
|
|
194
|
+
visibility: v ? "show" : "hide",
|
|
195
195
|
props: {
|
|
196
|
-
icon: /* @__PURE__ */
|
|
197
|
-
disabled: !
|
|
198
|
-
onClick:
|
|
196
|
+
icon: /* @__PURE__ */ i(u, { name: "pause" }),
|
|
197
|
+
disabled: !l || p,
|
|
198
|
+
onClick: F,
|
|
199
199
|
"aria-label": t("bbm.video.play.pause")
|
|
200
200
|
},
|
|
201
201
|
tooltip: t("bbm.video.play.pause")
|
|
@@ -205,55 +205,56 @@ const VIDEO_HEIGHT = 9, VIDEO_WIDTH = 16, VideoRecorder = /* @__PURE__ */ forwar
|
|
|
205
205
|
type: "icon",
|
|
206
206
|
name: "reset",
|
|
207
207
|
props: {
|
|
208
|
-
icon: /* @__PURE__ */
|
|
209
|
-
disabled: !
|
|
210
|
-
onClick:
|
|
208
|
+
icon: /* @__PURE__ */ i(u, { name: "refresh" }),
|
|
209
|
+
disabled: !l || p,
|
|
210
|
+
onClick: de,
|
|
211
211
|
"aria-label": t("bbm.video.record.reset")
|
|
212
212
|
},
|
|
213
213
|
tooltip: t("bbm.video.record.reset")
|
|
214
214
|
}, {
|
|
215
215
|
type: "icon",
|
|
216
216
|
name: "save",
|
|
217
|
-
visibility:
|
|
217
|
+
visibility: X ? "hide" : "show",
|
|
218
218
|
props: {
|
|
219
|
-
icon: /* @__PURE__ */
|
|
220
|
-
disabled: !
|
|
221
|
-
onClick:
|
|
219
|
+
icon: /* @__PURE__ */ i(u, { name: "save" }),
|
|
220
|
+
disabled: !l || p || $,
|
|
221
|
+
onClick: _,
|
|
222
222
|
"aria-label": t("bbm.video.record.save")
|
|
223
223
|
},
|
|
224
224
|
tooltip: t("bbm.video.record.save")
|
|
225
225
|
}];
|
|
226
|
-
return /* @__PURE__ */
|
|
227
|
-
/* @__PURE__ */
|
|
228
|
-
|
|
229
|
-
/* @__PURE__ */
|
|
230
|
-
/* @__PURE__ */
|
|
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
231
|
] }) }),
|
|
232
|
-
/* @__PURE__ */
|
|
233
|
-
/* @__PURE__ */
|
|
234
|
-
(
|
|
235
|
-
|
|
236
|
-
/* @__PURE__ */
|
|
237
|
-
/* @__PURE__ */
|
|
238
|
-
|
|
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
239
|
"/",
|
|
240
|
-
|
|
240
|
+
w(O)
|
|
241
241
|
] })
|
|
242
242
|
] }),
|
|
243
|
-
|
|
244
|
-
/* @__PURE__ */
|
|
245
|
-
/* @__PURE__ */
|
|
246
|
-
|
|
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
247
|
"/",
|
|
248
|
-
|
|
248
|
+
w(b)
|
|
249
249
|
] })
|
|
250
250
|
] })
|
|
251
251
|
] }),
|
|
252
|
-
|
|
252
|
+
c && /* @__PURE__ */ i(Ce, { items: ue, className: "position-absolute bottom-0 start-50 bg-white" })
|
|
253
253
|
] }),
|
|
254
|
-
|
|
254
|
+
p && /* @__PURE__ */ i(Te, { position: !1, caption: t("bbm.video.save.loader.caption") })
|
|
255
255
|
] });
|
|
256
|
-
})
|
|
256
|
+
});
|
|
257
257
|
export {
|
|
258
|
-
|
|
258
|
+
He as default
|
|
259
259
|
};
|
|
260
|
+
//# sourceMappingURL=VideoRecorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|