@edifice.io/react 2.0.0-develop-rc.7 → 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/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 +60 -59
- 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 +29 -28
- 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 +15 -14
- 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 +16 -15
- package/dist/core/useLibraryUrl/useLibraryUrl.js.map +1 -0
- package/dist/core/useMediaLibrary/useMediaLibrary.d.ts +1 -1
- package/dist/core/useMediaLibrary/useMediaLibrary.js +32 -31
- 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 -0
- 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 +18 -17
- package/dist/core/useTrashedResource/useTrashedResource.js.map +1 -0
- package/dist/core/useUpload/useUpload.d.ts +5 -4
- package/dist/core/useUpload/useUpload.js +69 -68
- package/dist/core/useUpload/useUpload.js.map +1 -0
- package/dist/core/useUploadFiles/useUploadFiles.d.ts +6 -6
- package/dist/core/useUploadFiles/useUploadFiles.js +82 -81
- 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 +5 -5
- package/dist/core/useWorkspaceFile/useWorkspaceFile.js +31 -30
- package/dist/core/useWorkspaceFile/useWorkspaceFile.js.map +1 -0
- package/dist/core/useWorkspaceSearch/useWorkspaceSearch.d.ts +2 -2
- 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.js +96 -95
- package/dist/hooks/useDropdown/useDropdown.js.map +1 -0
- package/dist/hooks/useDropzone/useDropzone.js +53 -52
- 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 +24 -23
- 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 -58
- package/dist/modules/audience/ReactionModal.js.map +1 -0
- package/dist/modules/audience/ReactionSummary.d.ts +1 -1
- package/dist/modules/audience/ReactionSummary.js +19 -18
- 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 +14 -13
- package/dist/modules/audience/ViewsCounter.js.map +1 -0
- package/dist/modules/audience/ViewsModal.d.ts +1 -1
- package/dist/modules/audience/ViewsModal.js +32 -31
- 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 +6 -4
- 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 +3 -3
- package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js +59 -58
- 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 +70 -69
- package/dist/modules/editor/components/Editor/Editor.js.map +1 -0
- 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 +6 -5
- package/dist/modules/editor/components/NodeView/AttachmentNodeView.js.map +1 -0
- package/dist/modules/editor/components/NodeView/AudioNodeView.js +6 -5
- package/dist/modules/editor/components/NodeView/AudioNodeView.js.map +1 -0
- package/dist/modules/editor/components/NodeView/ImageNodeView.js +6 -5
- package/dist/modules/editor/components/NodeView/ImageNodeView.js.map +1 -0
- package/dist/modules/editor/components/NodeView/LinkerNodeView.js +6 -5
- package/dist/modules/editor/components/NodeView/LinkerNodeView.js.map +1 -0
- package/dist/modules/editor/components/NodeView/VideoNodeView.js +6 -5
- 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.js +32 -31
- 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.js +40 -39
- 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 +2 -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.js +49 -48
- 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 +2 -2
- 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 +2 -2
- 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 -0
- package/dist/modules/modals/ShareModal/utils/showShareRightLine.d.ts +1 -0
- package/dist/modules/multimedia/AudioRecorder/AudioRecorder.d.ts +1 -1
- package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js +43 -42
- 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 +22 -21
- package/dist/modules/multimedia/Embed/Embed.js.map +1 -0
- package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js +79 -78
- 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 +39 -38
- 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 +35 -34
- 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 +88 -87
- 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 +4 -4
- 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 +2 -2
- 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 +153 -152
- 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 +110 -109
- 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.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 +35 -34
- 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 +4 -4
|
@@ -1,235 +1,235 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useReducer, useRef, useEffect, useCallback } from "react";
|
|
3
|
-
import { useTranslation } from "react-i18next";
|
|
4
|
-
import
|
|
5
|
-
import { Icon } from "../../../components/Icon/Icon.js";
|
|
6
|
-
function
|
|
7
|
-
var
|
|
8
|
-
function
|
|
1
|
+
import { jsx as S } from "react/jsx-runtime";
|
|
2
|
+
import { useReducer as Q, useRef as P, useEffect as j, useCallback as y } from "react";
|
|
3
|
+
import { useTranslation as X } from "react-i18next";
|
|
4
|
+
import $ from "../../../core/useWorkspaceFile/useWorkspaceFile.js";
|
|
5
|
+
import { Icon as b } from "../../../components/Icon/Icon.js";
|
|
6
|
+
function oe(g, d, Y = !1, F = "protected", W = "media-library") {
|
|
7
|
+
var U;
|
|
8
|
+
function V(t, n) {
|
|
9
9
|
return {
|
|
10
|
-
...
|
|
11
|
-
...
|
|
10
|
+
...t,
|
|
11
|
+
...n.updatedState
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
const [{
|
|
15
|
-
recordState,
|
|
16
|
-
playState,
|
|
17
|
-
micStream,
|
|
18
|
-
micStreamAudioSourceNode,
|
|
19
|
-
audioWorkletNode,
|
|
20
|
-
audioContext,
|
|
21
|
-
encoderWorker,
|
|
22
|
-
maxDuration,
|
|
23
|
-
recordTime,
|
|
24
|
-
isEncoding
|
|
25
|
-
},
|
|
15
|
+
recordState: r,
|
|
16
|
+
playState: u,
|
|
17
|
+
micStream: f,
|
|
18
|
+
micStreamAudioSourceNode: h,
|
|
19
|
+
audioWorkletNode: c,
|
|
20
|
+
audioContext: a,
|
|
21
|
+
encoderWorker: E,
|
|
22
|
+
maxDuration: A,
|
|
23
|
+
recordTime: T,
|
|
24
|
+
isEncoding: L
|
|
25
|
+
}, o] = Q(V, {
|
|
26
26
|
recordState: "IDLE",
|
|
27
27
|
isEncoding: !1,
|
|
28
28
|
playState: "IDLE",
|
|
29
29
|
recordTime: 0,
|
|
30
30
|
maxDuration: 180
|
|
31
31
|
// max duration in s (3 minutes by default)
|
|
32
|
-
}),
|
|
33
|
-
t
|
|
34
|
-
} =
|
|
35
|
-
create
|
|
36
|
-
} =
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
return
|
|
32
|
+
}), v = P(null), e = P(null), D = P(), l = P(), {
|
|
33
|
+
t: i
|
|
34
|
+
} = X(), {
|
|
35
|
+
create: _
|
|
36
|
+
} = $(), N = 128, k = 48e3;
|
|
37
|
+
j(() => {
|
|
38
|
+
const t = new Worker("/infra/public/js/audioEncoder.js");
|
|
39
|
+
return o({
|
|
40
40
|
type: "update",
|
|
41
41
|
updatedState: {
|
|
42
|
-
encoderWorker:
|
|
42
|
+
encoderWorker: t
|
|
43
43
|
}
|
|
44
|
-
}),
|
|
45
|
-
|
|
44
|
+
}), t.postMessage(["init", (a == null ? void 0 : a.sampleRate) || k]), () => {
|
|
45
|
+
I(), t.terminate();
|
|
46
46
|
};
|
|
47
47
|
}, []);
|
|
48
|
-
const
|
|
49
|
-
var
|
|
50
|
-
const
|
|
51
|
-
let
|
|
52
|
-
(!
|
|
53
|
-
},
|
|
54
|
-
|
|
55
|
-
}, [
|
|
56
|
-
const
|
|
48
|
+
const G = (t) => {
|
|
49
|
+
var s, m;
|
|
50
|
+
const n = t.data.inputs[0][0];
|
|
51
|
+
let p = t.data.inputs[0][1];
|
|
52
|
+
(!p || p.filter((R) => R !== void 0).length === 0) && (p = n), (s = D.current) == null || s.push(n), (m = l.current) == null || m.push(p);
|
|
53
|
+
}, I = y(() => {
|
|
54
|
+
f == null || f.getTracks().forEach((t) => t.stop()), h == null || h.disconnect(), c == null || c.port.removeEventListener("message", G), c == null || c.port.close(), c == null || c.disconnect(), a == null || a.close();
|
|
55
|
+
}, [a, c, f, h]), x = async () => {
|
|
56
|
+
const t = await navigator.mediaDevices.getUserMedia({
|
|
57
57
|
audio: !0
|
|
58
|
-
}),
|
|
59
|
-
sampleRate:
|
|
60
|
-
}),
|
|
58
|
+
}), n = new AudioContext({
|
|
59
|
+
sampleRate: k
|
|
60
|
+
}), p = n.createMediaStreamSource(t);
|
|
61
61
|
try {
|
|
62
|
-
await
|
|
63
|
-
} catch (
|
|
64
|
-
console.error(
|
|
62
|
+
await n.audioWorklet.addModule("/infra/public/js/audio-recorder-processor.js");
|
|
63
|
+
} catch (m) {
|
|
64
|
+
console.error(m);
|
|
65
65
|
}
|
|
66
|
-
const
|
|
67
|
-
|
|
66
|
+
const s = new AudioWorkletNode(n, "audio-recorder-processor");
|
|
67
|
+
s.port.addEventListener("message", G), o({
|
|
68
68
|
type: "update",
|
|
69
69
|
updatedState: {
|
|
70
|
-
micStream:
|
|
71
|
-
micStreamAudioSourceNode:
|
|
72
|
-
audioContext:
|
|
70
|
+
micStream: t,
|
|
71
|
+
micStreamAudioSourceNode: p,
|
|
72
|
+
audioContext: n,
|
|
73
73
|
recordTime: 0,
|
|
74
|
-
audioWorkletNode:
|
|
74
|
+
audioWorkletNode: s,
|
|
75
75
|
recordState: "RECORDING",
|
|
76
76
|
playState: "IDLE"
|
|
77
77
|
}
|
|
78
|
-
}),
|
|
79
|
-
},
|
|
80
|
-
|
|
78
|
+
}), l.current = [], D.current = [], s.port.start(), p.connect(s), s.connect(n.destination);
|
|
79
|
+
}, B = y(async () => {
|
|
80
|
+
e.current && (e.current.currentTime = 0, e.current.pause()), r === "PAUSED" ? (o({
|
|
81
81
|
type: "update",
|
|
82
82
|
updatedState: {
|
|
83
83
|
recordState: "RECORDING",
|
|
84
84
|
playState: "IDLE"
|
|
85
85
|
}
|
|
86
|
-
}),
|
|
87
|
-
}, [
|
|
88
|
-
|
|
86
|
+
}), a == null || a.resume(), d == null || d(void 0)) : x();
|
|
87
|
+
}, [r, a, e]), w = y(() => {
|
|
88
|
+
o({
|
|
89
89
|
type: "update",
|
|
90
90
|
updatedState: {
|
|
91
91
|
recordState: "PAUSED",
|
|
92
92
|
playState: "IDLE",
|
|
93
93
|
isEncoding: !0
|
|
94
94
|
}
|
|
95
|
-
}),
|
|
96
|
-
const
|
|
97
|
-
|
|
95
|
+
}), a == null || a.suspend(), E && D.current && l.current && (E.postMessage(["wav", l.current, D.current, l.current.length * N]), E.onmessage = (t) => {
|
|
96
|
+
const n = window.URL.createObjectURL(t.data);
|
|
97
|
+
o({
|
|
98
98
|
type: "update",
|
|
99
99
|
updatedState: {
|
|
100
100
|
isEncoding: !1
|
|
101
101
|
}
|
|
102
|
-
}),
|
|
102
|
+
}), e.current && (e.current.src = n), d && d(n);
|
|
103
103
|
});
|
|
104
|
-
}, [
|
|
105
|
-
var
|
|
106
|
-
|
|
104
|
+
}, [a, E, d]), q = y(() => {
|
|
105
|
+
var t;
|
|
106
|
+
o({
|
|
107
107
|
type: "update",
|
|
108
108
|
updatedState: {
|
|
109
109
|
playState: "PLAYING"
|
|
110
110
|
}
|
|
111
|
-
}), ((
|
|
112
|
-
}, [
|
|
113
|
-
var
|
|
114
|
-
(
|
|
111
|
+
}), ((t = e == null ? void 0 : e.current) != null && t.currentTime || e.current) && e.current.play();
|
|
112
|
+
}, [e]), Z = y(() => {
|
|
113
|
+
var t;
|
|
114
|
+
(t = e == null ? void 0 : e.current) == null || t.pause(), o({
|
|
115
115
|
type: "update",
|
|
116
116
|
updatedState: {
|
|
117
117
|
playState: "PAUSED"
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
|
-
}, [
|
|
121
|
-
|
|
120
|
+
}, [e]), z = y(() => {
|
|
121
|
+
I(), o({
|
|
122
122
|
type: "update",
|
|
123
123
|
updatedState: {
|
|
124
124
|
playState: "IDLE",
|
|
125
125
|
recordState: "IDLE"
|
|
126
126
|
}
|
|
127
|
-
}),
|
|
128
|
-
}, [
|
|
129
|
-
var
|
|
130
|
-
const
|
|
131
|
-
if (!
|
|
127
|
+
}), l.current = [], D.current = [], d && d(void 0);
|
|
128
|
+
}, [I, d]), O = y(async () => {
|
|
129
|
+
var n;
|
|
130
|
+
const t = (n = v.current) == null ? void 0 : n.value;
|
|
131
|
+
if (!t) {
|
|
132
132
|
console.error("Audio name is required");
|
|
133
133
|
return;
|
|
134
134
|
}
|
|
135
|
-
return
|
|
135
|
+
return e.current && (e.current.pause(), e.current.currentTime = 0), o({
|
|
136
136
|
type: "update",
|
|
137
137
|
updatedState: {
|
|
138
138
|
recordState: "SAVING",
|
|
139
139
|
playState: "IDLE"
|
|
140
140
|
}
|
|
141
|
-
}), new Promise((
|
|
141
|
+
}), new Promise((p, s) => {
|
|
142
142
|
try {
|
|
143
|
-
|
|
144
|
-
if (
|
|
145
|
-
const
|
|
143
|
+
E && D.current && l.current && (E.postMessage(["mp3", l.current, D.current, l.current.length * N]), E.onmessage = async (m) => {
|
|
144
|
+
if (m.data instanceof Blob) {
|
|
145
|
+
const R = new File([m.data], t, {
|
|
146
146
|
type: "audio/mp3"
|
|
147
|
-
}),
|
|
148
|
-
application,
|
|
149
|
-
visibility
|
|
147
|
+
}), C = await _(R, {
|
|
148
|
+
application: W,
|
|
149
|
+
visibility: F
|
|
150
150
|
});
|
|
151
|
-
|
|
151
|
+
C && g && g(C), o({
|
|
152
152
|
type: "update",
|
|
153
153
|
updatedState: {
|
|
154
154
|
recordState: "SAVED"
|
|
155
155
|
}
|
|
156
|
-
}),
|
|
156
|
+
}), p(C);
|
|
157
157
|
}
|
|
158
158
|
});
|
|
159
|
-
} catch (
|
|
160
|
-
|
|
159
|
+
} catch (m) {
|
|
160
|
+
o({
|
|
161
161
|
type: "update",
|
|
162
162
|
updatedState: {
|
|
163
163
|
playState: "IDLE",
|
|
164
164
|
recordState: "IDLE"
|
|
165
165
|
}
|
|
166
|
-
}), console.error("Error while saving",
|
|
166
|
+
}), console.error("Error while saving", m), s();
|
|
167
167
|
}
|
|
168
168
|
});
|
|
169
|
-
}, [
|
|
170
|
-
|
|
169
|
+
}, [r, g, I]), H = y(() => {
|
|
170
|
+
e != null && e.current && (e.current.pause(), e.current.currentTime = 0), o({
|
|
171
171
|
type: "update",
|
|
172
172
|
updatedState: {
|
|
173
173
|
playState: "IDLE"
|
|
174
174
|
}
|
|
175
175
|
});
|
|
176
|
-
}, [
|
|
177
|
-
|
|
176
|
+
}, [e]), J = y(() => {
|
|
177
|
+
o({
|
|
178
178
|
type: "update",
|
|
179
179
|
updatedState: {
|
|
180
180
|
playState: "PAUSED"
|
|
181
181
|
}
|
|
182
|
-
}),
|
|
183
|
-
}, [
|
|
184
|
-
|
|
185
|
-
if (
|
|
186
|
-
const
|
|
182
|
+
}), e.current && (e.current.currentTime = 0);
|
|
183
|
+
}, [e]);
|
|
184
|
+
j(() => {
|
|
185
|
+
if (r === "RECORDING" && a) {
|
|
186
|
+
const t = window.setInterval(
|
|
187
187
|
// Compute exact elapsed time by diffing the start time.
|
|
188
188
|
() => {
|
|
189
|
-
|
|
189
|
+
o({
|
|
190
190
|
type: "update",
|
|
191
191
|
updatedState: {
|
|
192
|
-
recordTime:
|
|
192
|
+
recordTime: a.currentTime
|
|
193
193
|
}
|
|
194
|
-
}),
|
|
194
|
+
}), a.currentTime >= A && (w(), window.clearInterval(t));
|
|
195
195
|
},
|
|
196
196
|
100
|
|
197
197
|
);
|
|
198
|
-
return () => window.clearInterval(
|
|
198
|
+
return () => window.clearInterval(t);
|
|
199
199
|
}
|
|
200
|
-
}, [
|
|
201
|
-
const
|
|
200
|
+
}, [a, w, A, r]);
|
|
201
|
+
const M = i(r === "IDLE" ? "bbm.audio.record.start" : "bbm.audio.record.resume"), K = [{
|
|
202
202
|
type: "icon",
|
|
203
203
|
name: "record",
|
|
204
|
-
visibility:
|
|
204
|
+
visibility: r === "RECORDING" ? "hide" : "show",
|
|
205
205
|
props: {
|
|
206
|
-
icon: /* @__PURE__ */
|
|
206
|
+
icon: /* @__PURE__ */ S(b, { name: "record" }),
|
|
207
207
|
color: "danger",
|
|
208
|
-
disabled:
|
|
209
|
-
onClick:
|
|
210
|
-
"aria-label":
|
|
208
|
+
disabled: r !== "IDLE" && r !== "PAUSED" || T >= A,
|
|
209
|
+
onClick: B,
|
|
210
|
+
"aria-label": M
|
|
211
211
|
},
|
|
212
|
-
tooltip:
|
|
212
|
+
tooltip: M
|
|
213
213
|
}, {
|
|
214
214
|
type: "icon",
|
|
215
215
|
name: "recordPause",
|
|
216
|
-
visibility:
|
|
216
|
+
visibility: r === "RECORDING" ? "show" : "hide",
|
|
217
217
|
props: {
|
|
218
|
-
icon: /* @__PURE__ */
|
|
218
|
+
icon: /* @__PURE__ */ S(b, { name: "record-pause" }),
|
|
219
219
|
color: "danger",
|
|
220
|
-
disabled:
|
|
221
|
-
onClick:
|
|
222
|
-
"aria-label":
|
|
220
|
+
disabled: r !== "RECORDING",
|
|
221
|
+
onClick: w,
|
|
222
|
+
"aria-label": i("bbm.audio.record.pause")
|
|
223
223
|
},
|
|
224
|
-
tooltip:
|
|
224
|
+
tooltip: i("bbm.audio.record.pause")
|
|
225
225
|
}, {
|
|
226
226
|
type: "divider"
|
|
227
227
|
}, {
|
|
228
228
|
type: "icon",
|
|
229
229
|
name: "encoding",
|
|
230
|
-
visibility:
|
|
230
|
+
visibility: L ? "show" : "hide",
|
|
231
231
|
props: {
|
|
232
|
-
icon: /* @__PURE__ */
|
|
232
|
+
icon: /* @__PURE__ */ S(b, { name: "loader", style: {
|
|
233
233
|
animation: "loading 1s infinite"
|
|
234
234
|
} }),
|
|
235
235
|
disabled: !0
|
|
@@ -237,71 +237,72 @@ function useAudioRecorder(onSaveSuccess, onUpdateRecord, hideSaveAction = !1, vi
|
|
|
237
237
|
}, {
|
|
238
238
|
type: "icon",
|
|
239
239
|
name: "play",
|
|
240
|
-
visibility:
|
|
240
|
+
visibility: L || u === "PLAYING" ? "hide" : "show",
|
|
241
241
|
props: {
|
|
242
|
-
icon: /* @__PURE__ */
|
|
243
|
-
disabled:
|
|
244
|
-
onClick:
|
|
245
|
-
"aria-label":
|
|
242
|
+
icon: /* @__PURE__ */ S(b, { name: "play-filled" }),
|
|
243
|
+
disabled: r !== "RECORDED" && r !== "PAUSED" && r !== "SAVED",
|
|
244
|
+
onClick: q,
|
|
245
|
+
"aria-label": i("bbm.audio.play.start")
|
|
246
246
|
},
|
|
247
|
-
tooltip:
|
|
247
|
+
tooltip: i("bbm.audio.play.start")
|
|
248
248
|
}, {
|
|
249
249
|
type: "icon",
|
|
250
250
|
name: "playPause",
|
|
251
|
-
visibility: !
|
|
251
|
+
visibility: !L && u === "PLAYING" ? "show" : "hide",
|
|
252
252
|
props: {
|
|
253
|
-
icon: /* @__PURE__ */
|
|
254
|
-
onClick:
|
|
255
|
-
"aria-label":
|
|
253
|
+
icon: /* @__PURE__ */ S(b, { name: "pause" }),
|
|
254
|
+
onClick: Z,
|
|
255
|
+
"aria-label": i("bbm.audio.play.pause")
|
|
256
256
|
},
|
|
257
|
-
tooltip:
|
|
257
|
+
tooltip: i("bbm.audio.play.pause")
|
|
258
258
|
}, {
|
|
259
259
|
type: "icon",
|
|
260
260
|
name: "stop",
|
|
261
261
|
props: {
|
|
262
|
-
icon: /* @__PURE__ */
|
|
263
|
-
disabled:
|
|
264
|
-
onClick:
|
|
265
|
-
"aria-label":
|
|
262
|
+
icon: /* @__PURE__ */ S(b, { name: "restart" }),
|
|
263
|
+
disabled: u !== "PLAYING" && u !== "PAUSED",
|
|
264
|
+
onClick: H,
|
|
265
|
+
"aria-label": i("bbm.audio.play.stop")
|
|
266
266
|
},
|
|
267
|
-
tooltip:
|
|
267
|
+
tooltip: i("bbm.audio.play.stop")
|
|
268
268
|
}, {
|
|
269
269
|
type: "divider"
|
|
270
270
|
}, {
|
|
271
271
|
type: "icon",
|
|
272
272
|
name: "reset",
|
|
273
273
|
props: {
|
|
274
|
-
icon: /* @__PURE__ */
|
|
275
|
-
disabled:
|
|
276
|
-
onClick:
|
|
277
|
-
"aria-label":
|
|
274
|
+
icon: /* @__PURE__ */ S(b, { name: "refresh" }),
|
|
275
|
+
disabled: r !== "RECORDED" && r !== "PAUSED" && u !== "PLAYING" && u !== "PAUSED",
|
|
276
|
+
onClick: z,
|
|
277
|
+
"aria-label": i("bbm.audio.record.reset")
|
|
278
278
|
},
|
|
279
|
-
tooltip:
|
|
279
|
+
tooltip: i("bbm.audio.record.reset")
|
|
280
280
|
}, {
|
|
281
281
|
type: "icon",
|
|
282
282
|
name: "save",
|
|
283
|
-
visibility:
|
|
283
|
+
visibility: Y ? "hide" : "show",
|
|
284
284
|
props: {
|
|
285
|
-
icon: /* @__PURE__ */
|
|
286
|
-
disabled:
|
|
287
|
-
onClick:
|
|
288
|
-
"aria-label":
|
|
285
|
+
icon: /* @__PURE__ */ S(b, { name: "save" }),
|
|
286
|
+
disabled: r !== "RECORDED" && r !== "PAUSED" && u !== "PLAYING" && u !== "PAUSED" || r === "SAVED" || !((U = v.current) != null && U.value),
|
|
287
|
+
onClick: O,
|
|
288
|
+
"aria-label": i("bbm.audio.record.save")
|
|
289
289
|
},
|
|
290
|
-
tooltip:
|
|
290
|
+
tooltip: i("bbm.audio.record.save")
|
|
291
291
|
}];
|
|
292
292
|
return {
|
|
293
|
-
recordState,
|
|
294
|
-
playState,
|
|
295
|
-
audioContext,
|
|
296
|
-
recordTime:
|
|
297
|
-
maxDuration:
|
|
298
|
-
audioRef,
|
|
299
|
-
audioNameRef,
|
|
300
|
-
toolbarItems,
|
|
301
|
-
handlePlayEnded,
|
|
302
|
-
handleSave
|
|
293
|
+
recordState: r,
|
|
294
|
+
playState: u,
|
|
295
|
+
audioContext: a,
|
|
296
|
+
recordTime: T * 1e3,
|
|
297
|
+
maxDuration: A * 1e3,
|
|
298
|
+
audioRef: e,
|
|
299
|
+
audioNameRef: v,
|
|
300
|
+
toolbarItems: K,
|
|
301
|
+
handlePlayEnded: J,
|
|
302
|
+
handleSave: O
|
|
303
303
|
};
|
|
304
304
|
}
|
|
305
305
|
export {
|
|
306
|
-
|
|
306
|
+
oe as default
|
|
307
307
|
};
|
|
308
|
+
//# sourceMappingURL=useAudioRecorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAudioRecorder.js","sources":["../../../../src/modules/multimedia/AudioRecorder/useAudioRecorder.tsx"],"sourcesContent":["import { useCallback, useEffect, useReducer, useRef } from 'react';\n\nimport { WorkspaceElement, WorkspaceVisibility } from '@edifice.io/ts-client';\nimport { useTranslation } from 'react-i18next';\n\nimport { Icon, ToolbarItem } from '../../../components';\nimport { useWorkspaceFile } from '../../../core';\n\nexport type RecordState =\n | 'IDLE'\n | 'RECORDING'\n | 'PAUSED'\n | 'RECORDED'\n | 'SAVING'\n | 'SAVED';\n\nexport type PlayState = 'IDLE' | 'PLAYING' | 'PAUSED';\n\ntype AudioReducerState = {\n recordState: RecordState;\n playState: PlayState;\n isEncoding: boolean;\n\n // The audio recorder is based on the Web Audio API (https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API)\n // See also https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletNode for more information.\n micStream?: MediaStream;\n micStreamAudioSourceNode?: MediaStreamAudioSourceNode;\n audioWorkletNode?: AudioWorkletNode;\n audioContext?: AudioContext;\n\n // encoder and web socket for sending encoded audio to the backend\n encoderWorker?: Worker;\n\n recordTime: number;\n // max duration in s (3 minutes by default)\n maxDuration: number;\n};\n\nexport default function useAudioRecorder(\n onSaveSuccess?: (resource: WorkspaceElement) => void,\n onUpdateRecord?: (audioUrl?: string) => void,\n hideSaveAction = false,\n visibility: WorkspaceVisibility = 'protected',\n application = 'media-library',\n) {\n function audioReducer(\n state: AudioReducerState,\n action: {\n type: 'update';\n updatedState?: Partial<AudioReducerState>;\n },\n ): AudioReducerState {\n return { ...state, ...action.updatedState };\n }\n\n const [\n {\n recordState,\n playState,\n micStream,\n micStreamAudioSourceNode,\n audioWorkletNode,\n audioContext,\n encoderWorker,\n maxDuration,\n recordTime,\n isEncoding,\n },\n dispatch,\n ] = useReducer(audioReducer, {\n recordState: 'IDLE',\n isEncoding: false,\n playState: 'IDLE',\n recordTime: 0,\n maxDuration: 180, // max duration in s (3 minutes by default)\n });\n const audioNameRef = useRef<HTMLInputElement>(null);\n const audioRef = useRef<HTMLAudioElement>(null);\n const leftChannelRef = useRef<Float32Array[]>();\n const rightChannelRef = useRef<Float32Array[]>();\n\n const { t } = useTranslation();\n const { create } = useWorkspaceFile();\n\n const BUFFER_SIZE = 128; // https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletProcessor\n const DEFAULT_SAMPLE_RATE = 48000;\n\n // Init Web Socket to send audio chunks to backend\n useEffect(() => {\n const encoderWorker = new Worker('/infra/public/js/audioEncoder.js');\n dispatch({\n type: 'update',\n updatedState: { encoderWorker: encoderWorker },\n });\n encoderWorker.postMessage([\n 'init',\n audioContext?.sampleRate || DEFAULT_SAMPLE_RATE,\n ]);\n\n return () => {\n closeAudioStream();\n encoderWorker.terminate();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n /**\n * Handle message received from the audio recorder processor.\n * Basically the Audio recorder processor returns the input channels that will be treated by the audioEncoder worker.\n * The audio recorder processor script is located here: /infra/public/js/audio-recorder-processor.js\n * The script follows the AudioWorkletProcessor API (https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletProcessor)\n * This method gets called for each block of 128 sample-frames.\n *\n * @param event is the input returned, containing leftChannel and rightChannel arrays.\n */\n const handleAudioWorkletNodeMessage = (event: MessageEvent) => {\n const leftChannel = (event.data.inputs as Float32Array[][])[0][0];\n let rightChannel = (event.data.inputs as Float32Array[][])[0][1];\n if (\n !rightChannel ||\n rightChannel.filter((data) => data !== undefined).length === 0\n ) {\n rightChannel = leftChannel;\n }\n leftChannelRef.current?.push(leftChannel);\n rightChannelRef.current?.push(rightChannel);\n };\n\n /**\n * Close opened audio stream and clean channels\n */\n const closeAudioStream = useCallback(() => {\n // Close audio stream\n micStream?.getTracks().forEach((track) => track.stop());\n micStreamAudioSourceNode?.disconnect();\n audioWorkletNode?.port.removeEventListener(\n 'message',\n handleAudioWorkletNodeMessage,\n );\n audioWorkletNode?.port.close();\n audioWorkletNode?.disconnect();\n audioContext?.close();\n }, [audioContext, audioWorkletNode, micStream, micStreamAudioSourceNode]);\n\n const initRecording = async () => {\n // Request access to the user's microphone\n const micStream: MediaStream = await navigator.mediaDevices.getUserMedia({\n audio: true,\n });\n\n // Create the microphone stream\n const audioContext = new AudioContext({ sampleRate: DEFAULT_SAMPLE_RATE });\n const micStreamAudioSourceNode: MediaStreamAudioSourceNode =\n audioContext.createMediaStreamSource(micStream);\n\n // Create and connect AudioWorkletNode for processing the audio stream\n // https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletProcessor\n try {\n await audioContext.audioWorklet.addModule(\n '/infra/public/js/audio-recorder-processor.js',\n );\n } catch (err) {\n console.error(err);\n }\n\n const audioWorkletNode = new AudioWorkletNode(\n audioContext,\n 'audio-recorder-processor',\n );\n\n // Message received from the audio recorder processor. cf handleAudioWorkletNodeMessage function.\n // Basically the Audio recorder processor returns the input channels that will be treated by the audioEncoder worker.\n audioWorkletNode.port.addEventListener(\n 'message',\n handleAudioWorkletNodeMessage,\n );\n\n // Store the audio context and stream in the state, reset record time and set states\n dispatch({\n type: 'update',\n updatedState: {\n micStream,\n micStreamAudioSourceNode,\n audioContext,\n recordTime: 0,\n audioWorkletNode,\n recordState: 'RECORDING',\n playState: 'IDLE',\n },\n });\n\n // Clean audio channels\n rightChannelRef.current = [];\n leftChannelRef.current = [];\n\n audioWorkletNode.port.start();\n\n micStreamAudioSourceNode.connect(audioWorkletNode);\n audioWorkletNode.connect(audioContext.destination);\n };\n\n const handleRecord = useCallback(async () => {\n if (audioRef.current) {\n audioRef.current.currentTime = 0;\n audioRef.current.pause();\n }\n if (recordState === 'PAUSED') {\n // Resume recording\n dispatch({\n type: 'update',\n updatedState: { recordState: 'RECORDING', playState: 'IDLE' },\n });\n audioContext?.resume();\n onUpdateRecord?.(undefined);\n } else {\n // Start new recording\n initRecording();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [recordState, audioContext, audioRef]);\n\n const handleRecordPause = useCallback(() => {\n dispatch({\n type: 'update',\n updatedState: {\n recordState: 'PAUSED',\n playState: 'IDLE',\n isEncoding: true,\n },\n });\n audioContext?.suspend();\n if (encoderWorker && leftChannelRef.current && rightChannelRef.current) {\n // Encode audio\n encoderWorker.postMessage([\n 'wav',\n rightChannelRef.current,\n leftChannelRef.current,\n rightChannelRef.current.length * BUFFER_SIZE,\n ]);\n encoderWorker.onmessage = (event: MessageEvent) => {\n const audioUrl = window.URL.createObjectURL(event.data);\n\n dispatch({\n type: 'update',\n updatedState: { isEncoding: false },\n });\n\n if (audioRef.current) {\n audioRef.current.src = audioUrl;\n }\n\n if (onUpdateRecord) {\n onUpdateRecord(audioUrl);\n }\n };\n }\n }, [audioContext, encoderWorker, onUpdateRecord]);\n\n const handlePlay = useCallback(() => {\n dispatch({ type: 'update', updatedState: { playState: 'PLAYING' } });\n if (audioRef?.current?.currentTime) {\n audioRef.current.play();\n } else {\n if (audioRef.current) {\n audioRef.current.play();\n }\n }\n }, [audioRef]);\n\n const handlePlayPause = useCallback(() => {\n audioRef?.current?.pause();\n dispatch({ type: 'update', updatedState: { playState: 'PAUSED' } });\n }, [audioRef]);\n\n const handleReset = useCallback(() => {\n closeAudioStream();\n\n dispatch({\n type: 'update',\n updatedState: {\n playState: 'IDLE',\n recordState: 'IDLE',\n },\n });\n\n // Clean channels\n rightChannelRef.current = [];\n leftChannelRef.current = [];\n\n if (onUpdateRecord) {\n onUpdateRecord(undefined);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [closeAudioStream, onUpdateRecord]);\n\n const handleSave: () => Promise<WorkspaceElement | undefined> =\n useCallback(async () => {\n const audioName = audioNameRef.current?.value;\n if (!audioName) {\n console.error('Audio name is required');\n return;\n }\n if (audioRef.current) {\n audioRef.current.pause();\n audioRef.current.currentTime = 0;\n }\n dispatch({\n type: 'update',\n updatedState: { recordState: 'SAVING', playState: 'IDLE' },\n });\n return new Promise<WorkspaceElement | undefined>((resolve, reject) => {\n try {\n if (\n encoderWorker &&\n leftChannelRef.current &&\n rightChannelRef.current\n ) {\n encoderWorker.postMessage([\n 'mp3',\n rightChannelRef.current,\n leftChannelRef.current,\n rightChannelRef.current.length * BUFFER_SIZE,\n ]);\n\n encoderWorker.onmessage = async (event: MessageEvent) => {\n if (event.data instanceof Blob) {\n const file = new File([event.data], audioName!, {\n type: 'audio/mp3',\n });\n\n const resourceAudio = await create(file, {\n application,\n visibility,\n });\n\n if (resourceAudio && onSaveSuccess) {\n onSaveSuccess(resourceAudio);\n }\n\n dispatch({\n type: 'update',\n updatedState: { recordState: 'SAVED' },\n });\n\n resolve(resourceAudio);\n }\n };\n }\n } catch (error) {\n dispatch({\n type: 'update',\n updatedState: { playState: 'IDLE', recordState: 'IDLE' },\n });\n console.error('Error while saving', error);\n reject();\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [recordState, onSaveSuccess, closeAudioStream]);\n\n const handlePlayStop = useCallback(() => {\n // Stop Playing the record\n if (audioRef?.current) {\n audioRef.current.pause();\n audioRef.current.currentTime = 0;\n }\n dispatch({ type: 'update', updatedState: { playState: 'IDLE' } });\n }, [audioRef]);\n\n const handlePlayEnded = useCallback(() => {\n dispatch({ type: 'update', updatedState: { playState: 'PAUSED' } });\n if (audioRef.current) {\n audioRef.current.currentTime = 0;\n }\n }, [audioRef]);\n\n /**\n * Auto-stop recording when max allowed duration is reached.\n */\n useEffect(() => {\n if (recordState === 'RECORDING' && audioContext) {\n const timer = window.setInterval(\n // Compute exact elapsed time by diffing the start time.\n () => {\n dispatch({\n type: 'update',\n updatedState: {\n recordTime: audioContext.currentTime,\n },\n });\n\n if (audioContext.currentTime >= maxDuration) {\n handleRecordPause();\n window.clearInterval(timer);\n }\n },\n 100,\n );\n\n return () => window.clearInterval(timer);\n }\n }, [audioContext, handleRecordPause, maxDuration, recordState]);\n\n const recordText =\n recordState === 'IDLE'\n ? t('bbm.audio.record.start')\n : t('bbm.audio.record.resume');\n\n const toolbarItems: ToolbarItem[] = [\n {\n type: 'icon',\n name: 'record',\n visibility: recordState === 'RECORDING' ? 'hide' : 'show',\n props: {\n icon: <Icon name=\"record\" />,\n color: 'danger',\n disabled:\n (recordState !== 'IDLE' && recordState !== 'PAUSED') ||\n recordTime >= maxDuration,\n onClick: handleRecord,\n 'aria-label': recordText,\n },\n tooltip: recordText,\n },\n {\n type: 'icon',\n name: 'recordPause',\n visibility: recordState === 'RECORDING' ? 'show' : 'hide',\n props: {\n icon: <Icon name=\"record-pause\" />,\n color: 'danger',\n disabled: recordState !== 'RECORDING',\n onClick: handleRecordPause,\n 'aria-label': t('bbm.audio.record.pause'),\n },\n tooltip: t('bbm.audio.record.pause'),\n },\n { type: 'divider' },\n {\n type: 'icon',\n name: 'encoding',\n visibility: isEncoding ? 'show' : 'hide',\n props: {\n icon: (\n <Icon name=\"loader\" style={{ animation: 'loading 1s infinite' }} />\n ),\n disabled: true,\n },\n },\n {\n type: 'icon',\n name: 'play',\n visibility: isEncoding || playState === 'PLAYING' ? 'hide' : 'show',\n props: {\n icon: <Icon name=\"play-filled\" />,\n disabled:\n recordState !== 'RECORDED' &&\n recordState !== 'PAUSED' &&\n recordState !== 'SAVED',\n onClick: handlePlay,\n 'aria-label': t('bbm.audio.play.start'),\n },\n tooltip: t('bbm.audio.play.start'),\n },\n {\n type: 'icon',\n name: 'playPause',\n visibility: !isEncoding && playState === 'PLAYING' ? 'show' : 'hide',\n props: {\n icon: <Icon name=\"pause\" />,\n onClick: handlePlayPause,\n 'aria-label': t('bbm.audio.play.pause'),\n },\n tooltip: t('bbm.audio.play.pause'),\n },\n {\n type: 'icon',\n name: 'stop',\n props: {\n icon: <Icon name=\"restart\" />,\n disabled: playState !== 'PLAYING' && playState !== 'PAUSED',\n onClick: handlePlayStop,\n 'aria-label': t('bbm.audio.play.stop'),\n },\n tooltip: t('bbm.audio.play.stop'),\n },\n { type: 'divider' },\n {\n type: 'icon',\n name: 'reset',\n props: {\n icon: <Icon name=\"refresh\" />,\n disabled:\n recordState !== 'RECORDED' &&\n recordState !== 'PAUSED' &&\n playState !== 'PLAYING' &&\n playState !== 'PAUSED',\n onClick: handleReset,\n 'aria-label': t('bbm.audio.record.reset'),\n },\n tooltip: t('bbm.audio.record.reset'),\n },\n {\n type: 'icon',\n name: 'save',\n visibility: hideSaveAction ? 'hide' : 'show',\n props: {\n icon: <Icon name=\"save\" />,\n disabled:\n (recordState !== 'RECORDED' &&\n recordState !== 'PAUSED' &&\n playState !== 'PLAYING' &&\n playState !== 'PAUSED') ||\n recordState === 'SAVED' ||\n !audioNameRef.current?.value,\n onClick: handleSave,\n 'aria-label': t('bbm.audio.record.save'),\n },\n tooltip: t('bbm.audio.record.save'),\n },\n ];\n\n return {\n recordState,\n playState,\n audioContext,\n recordTime: recordTime * 1000,\n maxDuration: maxDuration * 1000,\n audioRef,\n audioNameRef,\n toolbarItems,\n handlePlayEnded,\n handleSave,\n };\n}\n"],"names":["useAudioRecorder","onSaveSuccess","onUpdateRecord","hideSaveAction","visibility","application","audioReducer","state","action","updatedState","recordState","playState","micStream","micStreamAudioSourceNode","audioWorkletNode","audioContext","encoderWorker","maxDuration","recordTime","isEncoding","dispatch","useReducer","audioNameRef","useRef","audioRef","leftChannelRef","rightChannelRef","t","useTranslation","create","useWorkspaceFile","BUFFER_SIZE","DEFAULT_SAMPLE_RATE","useEffect","Worker","type","postMessage","sampleRate","closeAudioStream","terminate","handleAudioWorkletNodeMessage","event","leftChannel","data","inputs","rightChannel","filter","undefined","length","current","push","useCallback","getTracks","forEach","track","stop","disconnect","port","removeEventListener","close","initRecording","navigator","mediaDevices","getUserMedia","audio","AudioContext","createMediaStreamSource","audioWorklet","addModule","err","console","error","AudioWorkletNode","addEventListener","start","connect","destination","handleRecord","currentTime","pause","resume","handleRecordPause","suspend","onmessage","audioUrl","window","URL","createObjectURL","src","handlePlay","play","handlePlayPause","handleReset","handleSave","audioName","value","Promise","resolve","reject","Blob","file","File","resourceAudio","handlePlayStop","handlePlayEnded","timer","setInterval","clearInterval","recordText","toolbarItems","name","props","icon","jsx","Icon","color","disabled","onClick","tooltip","animation"],"mappings":"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"}
|
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
import { useTranslation } from "react-i18next";
|
|
4
|
-
import { TextArea } from "../../../components/TextArea/TextArea.js";
|
|
5
|
-
import { Icon } from "../../../components/Icon/Icon.js";
|
|
6
|
-
import { FormControl } from "../../../components/Form/FormControl.js";
|
|
7
|
-
const
|
|
8
|
-
onSuccess
|
|
1
|
+
import { jsxs as i, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { useState as o } from "react";
|
|
3
|
+
import { useTranslation as s } from "react-i18next";
|
|
4
|
+
import { TextArea as c } from "../../../components/TextArea/TextArea.js";
|
|
5
|
+
import { Icon as b } from "../../../components/Icon/Icon.js";
|
|
6
|
+
import { FormControl as f } from "../../../components/Form/FormControl.js";
|
|
7
|
+
const N = ({
|
|
8
|
+
onSuccess: l
|
|
9
9
|
}) => {
|
|
10
10
|
const {
|
|
11
11
|
t
|
|
12
|
-
} =
|
|
13
|
-
function
|
|
14
|
-
const
|
|
15
|
-
|
|
12
|
+
} = s(), [e, n] = o();
|
|
13
|
+
function d(a) {
|
|
14
|
+
const m = a.target.value;
|
|
15
|
+
n(m), m != null && m.length ? l(m) : l();
|
|
16
16
|
}
|
|
17
|
-
return /* @__PURE__ */
|
|
18
|
-
/* @__PURE__ */
|
|
19
|
-
/* @__PURE__ */
|
|
20
|
-
/* @__PURE__ */
|
|
17
|
+
return /* @__PURE__ */ i("div", { className: "d-flex flex-column flex-fill", children: [
|
|
18
|
+
/* @__PURE__ */ r("div", { className: "mb-32", children: t("bbm.embed.description") }),
|
|
19
|
+
/* @__PURE__ */ i("div", { className: "mb-8 d-flex", children: [
|
|
20
|
+
/* @__PURE__ */ r(b, { name: "code", className: "me-8" }),
|
|
21
21
|
t("bbm.embed.title")
|
|
22
22
|
] }),
|
|
23
|
-
/* @__PURE__ */
|
|
24
|
-
!!(
|
|
25
|
-
__html:
|
|
23
|
+
/* @__PURE__ */ r(f, { id: "iframeContent", children: /* @__PURE__ */ r(c, { size: "md", height: "sm", placeholder: t("bbm.embed.placeholder"), onChange: d }) }),
|
|
24
|
+
!!(e != null && e.length) && /* @__PURE__ */ r("div", { className: "embed-preview mt-12", dangerouslySetInnerHTML: {
|
|
25
|
+
__html: e
|
|
26
26
|
} }),
|
|
27
|
-
!(
|
|
27
|
+
!(e != null && e.length) && /* @__PURE__ */ r("div", { className: "embed-preview mt-12 d-flex align-items-center justify-content-center bg-gray-300 text-black-50 rounded-3", children: /* @__PURE__ */ r("strong", { children: t("bbm.embed.preview") }) })
|
|
28
28
|
] });
|
|
29
29
|
};
|
|
30
30
|
export {
|
|
31
|
-
|
|
31
|
+
N as default
|
|
32
32
|
};
|
|
33
|
+
//# sourceMappingURL=Embed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Embed.js","sources":["../../../../src/modules/multimedia/Embed/Embed.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { FormControl, Icon, TextArea } from '../../../components';\n\nexport interface EmbedProps {\n onSuccess: (resource?: string) => void;\n}\n\nconst Embed = ({ onSuccess }: EmbedProps) => {\n const { t } = useTranslation();\n\n const [htmlContent, setHTMLContent] = useState<string>();\n\n function handleContentChange(event: React.ChangeEvent<HTMLTextAreaElement>) {\n const HTMLContent = event.target.value;\n\n setHTMLContent(HTMLContent);\n\n if (HTMLContent?.length) {\n onSuccess(HTMLContent);\n } else {\n onSuccess();\n }\n }\n\n return (\n <div className=\"d-flex flex-column flex-fill\">\n <div className=\"mb-32\">{t('bbm.embed.description')}</div>\n <div className=\"mb-8 d-flex\">\n <Icon name=\"code\" className=\"me-8\" />\n {t('bbm.embed.title')}\n </div>\n <FormControl id=\"iframeContent\">\n <TextArea\n size=\"md\"\n height=\"sm\"\n placeholder={t('bbm.embed.placeholder')}\n onChange={handleContentChange}\n />\n </FormControl>\n {!!htmlContent?.length && (\n <div\n className=\"embed-preview mt-12\"\n dangerouslySetInnerHTML={{ __html: htmlContent }}\n ></div>\n )}\n {!htmlContent?.length && (\n <div className=\"embed-preview mt-12 d-flex align-items-center justify-content-center bg-gray-300 text-black-50 rounded-3\">\n <strong>{t('bbm.embed.preview')}</strong>\n </div>\n )}\n </div>\n );\n};\n\nexport default Embed;\n"],"names":["Embed","onSuccess","t","useTranslation","htmlContent","setHTMLContent","useState","handleContentChange","event","HTMLContent","target","value","length","jsxs","jsx","Icon","FormControl","TextArea","__html"],"mappings":";;;;;;AAUA,MAAMA,IAAQA,CAAC;AAAA,EAAEC,WAAAA;AAAsB,MAAM;AACrC,QAAA;AAAA,IAAEC;AAAAA,MAAMC,EAAe,GAEvB,CAACC,GAAaC,CAAc,IAAIC,EAAiB;AAEvD,WAASC,EAAoBC,GAA+C;AACpEC,UAAAA,IAAcD,EAAME,OAAOC;AAEjCN,IAAAA,EAAeI,CAAW,GAEtBA,KAAAA,QAAAA,EAAaG,SACfX,EAAUQ,CAAW,IAEXR;EAEd;AAGE,SAAA,gBAAAY,EAAC,OAAI,EAAA,WAAU,gCACb,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAI,EAAA,WAAU,SAASZ,UAAAA,EAAE,uBAAuB,GAAE;AAAA,IACnD,gBAAAW,EAAC,OAAI,EAAA,WAAU,eACb,UAAA;AAAA,MAAA,gBAAAC,EAACC,GAAK,EAAA,MAAK,QAAO,WAAU,QAAM;AAAA,MACjCb,EAAE,iBAAiB;AAAA,IAAA,GACtB;AAAA,sBACCc,GAAY,EAAA,IAAG,iBACd,UAAA,gBAAAF,EAACG,KACC,MAAK,MACL,QAAO,MACP,aAAaf,EAAE,uBAAuB,GACtC,UAAUK,EAAoB,CAAA,GAElC;AAAA,IACC,CAAC,EAACH,KAAAA,QAAAA,EAAaQ,6BACb,OACC,EAAA,WAAU,uBACV,yBAAyB;AAAA,MAAEM,QAAQd;AAAAA,IAAAA,GACpC;AAAA,IAEF,EAACA,KAAAA,QAAAA,EAAaQ,WACb,gBAAAE,EAAC,OAAI,EAAA,WAAU,4GACb,UAAA,gBAAAA,EAAC,UAAQZ,EAAAA,UAAAA,EAAE,mBAAmB,EAAE,CAAA,GAClC;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
|