@edifice.io/react 2.6.9-develop-b2school.20261013134048 → 2.6.9-develop-enabling.20261013152718
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/_virtual/_rolldown/runtime.js +1 -0
- package/dist/audience.js +1 -16
- package/dist/comments.js +1 -4
- package/dist/components/ActionBar/ActionBar.js +1 -8
- package/dist/components/AddAttachments/AddAttachments.js +1 -75
- package/dist/components/AddAttachments/components/AddAttachmentToWorkspaceModal.js +1 -41
- package/dist/components/AddAttachments/components/SingleAttachment.js +1 -27
- package/dist/components/AddAttachments/hooks/useFileToAttachment.js +1 -16
- package/dist/components/Alert/Alert.js +1 -105
- package/dist/components/AppHeader/AppHeader.js +1 -22
- package/dist/components/AppIcon/AppIcon.d.ts +15 -1
- package/dist/components/AppIcon/AppIcon.js +1 -60
- package/dist/components/Attachment/Attachment.js +1 -18
- package/dist/components/Avatar/Avatar.js +1 -53
- package/dist/components/AvatarGroup/AvatarGroup.js +1 -24
- package/dist/components/Badge/Badge.js +1 -33
- package/dist/components/BetaSwitch/BetaSwitch.js +1 -27
- package/dist/components/Breadcrumb/Breadcrumb.js +1 -28
- package/dist/components/Breadcrumb/BreadcrumbItem.js +1 -14
- package/dist/components/Breadcrumb/BreadcrumbList.js +1 -13
- package/dist/components/Breadcrumb/BreadcrumbNav.js +1 -22
- package/dist/components/Button/Button.js +1 -36
- package/dist/components/Button/IconButton.js +1 -19
- package/dist/components/Button/SearchButton.js +1 -17
- package/dist/components/ButtonBeta/ButtonBeta.js +1 -37
- package/dist/components/Card/Card.js +1 -53
- package/dist/components/Card/CardBody.js +1 -20
- package/dist/components/Card/CardContext.js +1 -11
- package/dist/components/Card/CardFooter.js +1 -7
- package/dist/components/Card/CardHeader.js +1 -22
- package/dist/components/Card/CardImage.js +1 -21
- package/dist/components/Card/CardText.js +1 -12
- package/dist/components/Card/CardTitle.js +1 -12
- package/dist/components/Card/CardUser.js +1 -10
- package/dist/components/Checkbox/Checkbox.js +1 -35
- package/dist/components/ColorPicker/ColorPalette.js +1 -171
- package/dist/components/ColorPicker/ColorPicker.js +1 -38
- package/dist/components/ColorPicker/ColorPickerItem.js +1 -13
- package/dist/components/Combobox/Combobox.js +1 -61
- package/dist/components/Combobox/ComboboxTrigger.js +1 -57
- package/dist/components/DatePicker/DatePicker.js +1 -40
- package/dist/components/Divider/Divider.js +1 -11
- package/dist/components/Dropdown/Dropdown.d.ts +2 -0
- package/dist/components/Dropdown/Dropdown.js +1 -96
- package/dist/components/Dropdown/DropdownCheckboxItem.js +1 -39
- package/dist/components/Dropdown/DropdownContext.js +1 -11
- package/dist/components/Dropdown/DropdownItem.js +1 -46
- package/dist/components/Dropdown/DropdownItemHidden.js +1 -19
- package/dist/components/Dropdown/DropdownMenu.js +1 -26
- package/dist/components/Dropdown/DropdownMenuGroup.js +1 -12
- package/dist/components/Dropdown/DropdownRadioItem.js +1 -39
- package/dist/components/Dropdown/DropdownSearchInput.js +1 -25
- package/dist/components/Dropdown/DropdownSeparator.js +1 -5
- package/dist/components/Dropdown/DropdownTrigger.js +1 -58
- package/dist/components/Dropdown/DropdownVirtualizedMenu.d.ts +80 -0
- package/dist/components/Dropdown/DropdownVirtualizedMenu.js +1 -0
- package/dist/components/Dropdown/index.d.ts +1 -0
- package/dist/components/Dropdown/useDropdownItemFilter.js +1 -19
- package/dist/components/Dropzone/Dropzone.js +1 -55
- package/dist/components/Dropzone/DropzoneContext.js +1 -12
- package/dist/components/Dropzone/DropzoneDrag.js +1 -11
- package/dist/components/Dropzone/DropzoneFile.js +1 -30
- package/dist/components/Dropzone/DropzoneImport.js +1 -28
- package/dist/components/EmptyScreen/EmptyScreen.js +1 -21
- package/dist/components/Flex/Flex.js +1 -25
- package/dist/components/Form/FormContext.js +1 -11
- package/dist/components/Form/FormControl.js +1 -32
- package/dist/components/Form/FormText.js +1 -22
- package/dist/components/Grid/Grid.d.ts +1 -1
- package/dist/components/Grid/Grid.js +1 -32
- package/dist/components/Heading/Heading.js +1 -16
- package/dist/components/Image/Image.js +1 -44
- package/dist/components/Input/Input.js +1 -64
- package/dist/components/Label/Label.js +1 -37
- package/dist/components/Layout/Layout.js +1 -67
- package/dist/components/Layout/components/Header.js +1 -198
- package/dist/components/Layout/components/HeaderNotificationsOverlay.js +1 -18
- package/dist/components/Layout/components/Help.js +1 -25
- package/dist/components/Layout/components/NavItem.js +1 -14
- package/dist/components/Layout/components/NavLink.d.ts +3 -3
- package/dist/components/Layout/components/NavLink.js +1 -23
- package/dist/components/Layout/components/Navbar.js +1 -13
- package/dist/components/Layout/components/NavbarNav.js +1 -13
- package/dist/components/Layout/components/SearchEngine.js +1 -33
- package/dist/components/Layout/components/WidgetApps.js +1 -23
- package/dist/components/Layout/hooks/useHeader.js +1 -39
- package/dist/components/Layout/hooks/useHelp.js +1 -86
- package/dist/components/LinkPill/LinkPill.js +1 -28
- package/dist/components/List/List.js +1 -54
- package/dist/components/Loading/Loading.js +1 -27
- package/dist/components/LoadingScreen/LoadingScreen.js +1 -25
- package/dist/components/Logo/Logo.js +1 -14
- package/dist/components/LogoBeta/LogoBeta.js +1 -14
- package/dist/components/MediaViewer/MediaViewer.js +1 -36
- package/dist/components/MediaViewer/MediaWrapper.js +1 -72
- package/dist/components/MediaViewer/PdfViewer.js +1 -36
- package/dist/components/MediaViewer/ToolbarViewer.js +1 -41
- package/dist/components/MediaViewer/ToolbarZoom.js +1 -19
- package/dist/components/Menu/components/Menu.js +1 -27
- package/dist/components/Menu/components/MenuButton.js +1 -30
- package/dist/components/Menu/components/MenuContext.js +1 -12
- package/dist/components/Menu/components/MenuItem.js +1 -19
- package/dist/components/Menu/hooks/useMenu.js +1 -50
- package/dist/components/Modal/Modal.js +1 -73
- package/dist/components/Modal/ModalBody.js +1 -15
- package/dist/components/Modal/ModalContext.js +1 -15
- package/dist/components/Modal/ModalFooter.js +1 -5
- package/dist/components/Modal/ModalHeader.js +1 -32
- package/dist/components/Modal/ModalSubtitle.js +1 -5
- package/dist/components/ModalBeta/ModalBeta.js +1 -62
- package/dist/components/ModalBeta/ModalBetaBody.js +1 -15
- package/dist/components/ModalBeta/ModalBetaContext.js +1 -15
- package/dist/components/ModalBeta/ModalBetaFooter.js +1 -7
- package/dist/components/ModalBeta/ModalBetaHeader.js +1 -31
- package/dist/components/PageLayout/PageLayout.js +1 -117
- package/dist/components/PageLayout/PageLayoutContext.js +1 -8
- package/dist/components/PageLayout/components/PageLayoutBreadcrumb.js +1 -10
- package/dist/components/PageLayout/components/PageLayoutContent.js +1 -22
- package/dist/components/PageLayout/components/PageLayoutHeader.js +1 -18
- package/dist/components/PageLayout/components/PageLayoutHelpZone.js +1 -6
- package/dist/components/PageLayout/components/PageLayoutOverlay.js +1 -51
- package/dist/components/PageLayout/components/PageLayoutSidebarLeft.js +1 -18
- package/dist/components/PageLayout/components/PageLayoutSidebarRight.js +1 -18
- package/dist/components/PageLayout/hook/useOverlay.js +1 -15
- package/dist/components/PageLayout/store/overlayStore.js +1 -12
- package/dist/components/Pagination/Pagination.js +1 -14
- package/dist/components/Popover/Popover.js +1 -52
- package/dist/components/PreventPropagation/PreventPropagation.js +1 -9
- package/dist/components/PromotionCard/PromotionCard.js +1 -31
- package/dist/components/PromotionCard/PromotionCardBody.js +1 -15
- package/dist/components/PromotionCard/PromotionCardDescription.js +1 -12
- package/dist/components/PromotionCard/PromotionCardFooter.js +1 -12
- package/dist/components/PromotionCard/PromotionCardHeader.js +1 -17
- package/dist/components/PromotionCard/PromotionCardIcon.js +1 -15
- package/dist/components/PromotionCard/PromotionCardTitle.js +1 -12
- package/dist/components/Radio/Radio.js +1 -31
- package/dist/components/RadioCard/RadioCard.js +1 -32
- package/dist/components/SearchBar/SearchBar.js +1 -54
- package/dist/components/SegmentedControl/SegmentedControl.js +1 -33
- package/dist/components/Select/Select.js +1 -46
- package/dist/components/Select/SelectTrigger.js +1 -6
- package/dist/components/Skeleton/ButtonSkeleton.d.ts +9 -0
- package/dist/components/Skeleton/ButtonSkeleton.js +1 -16
- package/dist/components/Skeleton/Skeleton.d.ts +57 -0
- package/dist/components/Skeleton/Skeleton.js +1 -0
- package/dist/components/Skeleton/TextSkeleton.d.ts +8 -0
- package/dist/components/Skeleton/TextSkeleton.js +1 -16
- package/dist/components/Skeleton/index.d.ts +2 -0
- package/dist/components/SmartEllipsis/SmartEllipsis.js +1 -21
- package/dist/components/StackedGroup/StackedGroup.js +1 -23
- package/dist/components/Stepper/Stepper.js +1 -15
- package/dist/components/Switch/Switch.js +1 -27
- package/dist/components/Table/components/Table.d.ts +34 -7
- package/dist/components/Table/components/Table.js +1 -25
- package/dist/components/Table/components/TableTbody.js +1 -11
- package/dist/components/Table/components/TableTd.js +1 -11
- package/dist/components/Table/components/TableTh.js +1 -11
- package/dist/components/Table/components/TableThead.js +1 -11
- package/dist/components/Table/components/TableTr.js +1 -11
- package/dist/components/Table/components/TableVirtualizedBody.d.ts +29 -0
- package/dist/components/Table/components/TableVirtualizedBody.js +1 -0
- package/dist/components/Tabs/components/Tabs.js +1 -51
- package/dist/components/Tabs/components/TabsItem.js +1 -31
- package/dist/components/Tabs/components/TabsList.js +1 -34
- package/dist/components/Tabs/components/TabsPanel.js +1 -19
- package/dist/components/Tabs/context/TabsContext.js +1 -12
- package/dist/components/Tabs/hooks/useTabs.js +1 -61
- package/dist/components/TextArea/TextArea.js +1 -43
- package/dist/components/TextCounter/TextCounter.js +1 -16
- package/dist/components/Toolbar/Toolbar.js +1 -83
- package/dist/components/Tooltip/Tooltip.js +1 -41
- package/dist/components/Tree/components/DndTree.js +1 -61
- package/dist/components/Tree/components/SortableTree.js +1 -140
- package/dist/components/Tree/components/Tree.js +1 -86
- package/dist/components/Tree/hooks/useTree.js +1 -62
- package/dist/components/Tree/hooks/useTreeSortable.js +1 -198
- package/dist/components/Tree/utilities/tree-sortable.js +1 -161
- package/dist/components/Tree/utilities/tree.js +1 -44
- package/dist/components/TreeView/TreeNode.js +1 -69
- package/dist/components/TreeView/TreeView.js +1 -37
- package/dist/components/TreeView/hooks/useTreeView.js +1 -105
- package/dist/components/TreeView/utilities/treeview.js +1 -177
- package/dist/components/UserRightsList/SaveBookmark.js +1 -29
- package/dist/components/UserRightsList/UserRightsBookmarkRow.js +1 -30
- package/dist/components/UserRightsList/UserRightsItem.js +1 -36
- package/dist/components/UserRightsList/UserRightsList.js +1 -94
- package/dist/components/UserRightsList/helpers/rightsHelpers.js +1 -53
- package/dist/components/UserRightsList/hooks/useBookmarkEntries.js +1 -58
- package/dist/components/UserRightsList/hooks/useSharingItems.js +1 -57
- package/dist/components/UserRightsList/types/types.js +1 -6
- package/dist/components/UserSearch/UserSearch.js +1 -82
- package/dist/components/UserSearch/types/visible.js +1 -4
- package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -8
- package/dist/components/index.d.ts +0 -1
- package/dist/editor.js +1 -79
- package/dist/homepage.js +1 -68
- package/dist/hooks/useBackground/useBackground.js +1 -18
- package/dist/hooks/useBookmark/useBookmark.js +1 -14
- package/dist/hooks/useBreakpoint/useBreakpoint.js +1 -14
- package/dist/hooks/useBrowserInfo/useBrowserInfo.js +1 -15
- package/dist/hooks/useCantoo/useCantoo.js +1 -18
- package/dist/hooks/useCheckable/useCheckable.js +1 -28
- package/dist/hooks/useClickOutside/useClickOutside.js +1 -27
- package/dist/hooks/useConf/useConf.js +1 -13
- package/dist/hooks/useConversation/useConversation.js +1 -39
- package/dist/hooks/useCookiesConsent/useCookiesConsent.js +1 -29
- package/dist/hooks/useDate/useDate.d.ts +32 -14
- package/dist/hooks/useDate/useDate.js +1 -87
- package/dist/hooks/useDebounce/useDebounce.js +1 -15
- package/dist/hooks/useDirectory/useDirectory.js +1 -17
- package/dist/hooks/useDropdown/useDropdown.js +1 -170
- package/dist/hooks/useDropzone/useDropzone.js +1 -98
- package/dist/hooks/useEdificeIcons/useEdificeIcons.js +1 -101
- package/dist/hooks/useHasWorkflow/useHasWorkflow.js +1 -14
- package/dist/hooks/useHover/useHover.js +1 -22
- package/dist/hooks/useHttpErrorToast/useHttpErrorToast.js +1 -36
- package/dist/hooks/useImage/useImage.js +1 -18
- package/dist/hooks/useInfiniteScroll/useInfiniteScroll.js +1 -20
- package/dist/hooks/useIsAdmc/useIsAdmc.js +1 -22
- package/dist/hooks/useIsAdml/useIsAdml.js +1 -18
- package/dist/hooks/useIsAdmlcOrAdmc/useIsAdmlcOrAdmc.js +1 -16
- package/dist/hooks/useKeyPress/useKeyPress.js +1 -14
- package/dist/hooks/useLibraryUrl/useLibraryUrl.js +1 -21
- package/dist/hooks/useMediaLibrary/useMediaLibrary.js +1 -58
- package/dist/hooks/usePreferences/usePreferences.js +1 -10
- package/dist/hooks/usePublicConf/usePublicConf.js +1 -12
- package/dist/hooks/useResource/useResource.js +1 -25
- package/dist/hooks/useResourceSearch/useResourceSearch.js +1 -19
- package/dist/hooks/useScreeb/useScreeb.js +1 -22
- package/dist/hooks/useScrollToTop/useScrollToTop.js +1 -9
- package/dist/hooks/useSession/useSession.js +1 -11
- package/dist/hooks/useThumbnail/useThumbnail.js +1 -33
- package/dist/hooks/useTitle/useTitle.js +1 -10
- package/dist/hooks/useToast/useToast.js +1 -37
- package/dist/hooks/useToggle/useToggle.js +1 -10
- package/dist/hooks/useTrapFocus/useTrapFocus.js +1 -17
- package/dist/hooks/useTrashedResource/useTrashedResource.js +1 -27
- package/dist/hooks/useUiOverride/useUiOverride.js +1 -13
- package/dist/hooks/useUpload/useUpload.js +1 -109
- package/dist/hooks/useUploadFiles/useUploadFiles.js +1 -107
- package/dist/hooks/useUser/useUser.js +1 -22
- package/dist/hooks/useUserPreferences/useUserPreferences.js +1 -40
- package/dist/hooks/useWorkspaceFile/useWorkspaceFile.js +1 -49
- package/dist/hooks/useWorkspaceFolders/useWorkspaceFolders.js +1 -54
- package/dist/hooks/useWorkspaceFolders/useWorkspaceFoldersTree.js +1 -51
- package/dist/hooks/useWorkspaceSearch/useWorkspaceSearch.js +1 -50
- package/dist/hooks/useXitiTrackPageLoad/useXitiTrackPageLoad.js +1 -28
- package/dist/hooks/useZendeskGuide/useZendeskGuide.d.ts +6 -2
- package/dist/hooks/useZendeskGuide/useZendeskGuide.js +1 -132
- package/dist/hooks/useZoom/useZoom.js +1 -14
- package/dist/icons-apps.js +1 -268
- package/dist/icons-audience.js +1 -28
- package/dist/icons-nav.js +1 -40
- package/dist/icons.js +1 -408
- package/dist/index.js +1 -370
- package/dist/modals.js +1 -22
- package/dist/modules/HelpZone/HelpZone.js +1 -50
- package/dist/modules/HelpZone/HelpZoneContainer.js +1 -15
- package/dist/modules/audience/ReactionChoice.js +1 -33
- package/dist/modules/audience/ReactionModal.Card.js +1 -33
- package/dist/modules/audience/ReactionModal.js +1 -75
- package/dist/modules/audience/ReactionSummary.js +1 -27
- package/dist/modules/audience/ViewsByProfileCard.js +1 -40
- package/dist/modules/audience/ViewsCounter.js +1 -20
- package/dist/modules/audience/ViewsModal.js +1 -44
- package/dist/modules/audience/hooks/useReactionIcons.js +1 -45
- package/dist/modules/audience/hooks/useReactions.js +1 -35
- package/dist/modules/comments/components/BadgeProfile.js +1 -18
- package/dist/modules/comments/components/Comment.js +1 -94
- package/dist/modules/comments/components/CommentAvatar.js +1 -17
- package/dist/modules/comments/components/CommentDate.js +1 -24
- package/dist/modules/comments/components/CommentDeleted.js +1 -11
- package/dist/modules/comments/components/CommentForm.js +1 -41
- package/dist/modules/comments/components/CommentList.js +1 -22
- package/dist/modules/comments/components/CommentReplies.js +1 -33
- package/dist/modules/comments/components/CommentTitle.js +1 -7
- package/dist/modules/comments/components/DeleteModal.js +1 -25
- package/dist/modules/comments/components/TextCounter.js +1 -8
- package/dist/modules/comments/context/Context.js +1 -5
- package/dist/modules/comments/hooks/useAutosizeTextarea.js +1 -19
- package/dist/modules/comments/hooks/useCommentReplies.js +1 -36
- package/dist/modules/comments/hooks/useComments.js +1 -71
- package/dist/modules/comments/hooks/useCommentsContext.js +1 -11
- package/dist/modules/comments/hooks/useProfileQueries.js +1 -27
- package/dist/modules/comments/provider/CommentProvider.js +1 -90
- package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js +1 -135
- package/dist/modules/editor/components/BubbleMenuEditInformationPane/BubbleMenuEditInformationPane.js +1 -136
- package/dist/modules/editor/components/Editor/CantooAdaptTextBoxView.js +1 -33
- package/dist/modules/editor/components/Editor/Editor.js +1 -103
- package/dist/modules/editor/components/Editor/EditorPreview.js +1 -56
- package/dist/modules/editor/components/Editor/EditorPreviewSkeleton.js +1 -24
- package/dist/modules/editor/components/Editor/EditorSkeleton.js +1 -31
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Cantoo.js +1 -79
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js +1 -17
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js +1 -54
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js +1 -47
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js +1 -18
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js +1 -50
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js +1 -62
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js +1 -52
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +1 -356
- package/dist/modules/editor/components/MathsModal/MathsModal.js +2 -49
- package/dist/modules/editor/components/NodeView/AttachmentNodeView.js +1 -10
- package/dist/modules/editor/components/NodeView/AudioNodeView.js +1 -10
- package/dist/modules/editor/components/NodeView/ConversationHistoryNodeView.js +1 -10
- package/dist/modules/editor/components/NodeView/IframeNodeView.js +1 -10
- package/dist/modules/editor/components/NodeView/ImageNodeView.js +1 -12
- package/dist/modules/editor/components/NodeView/InformationPaneNodeView.js +1 -10
- package/dist/modules/editor/components/NodeView/LinkerNodeView.js +1 -10
- package/dist/modules/editor/components/NodeView/VideoNodeView.js +1 -10
- package/dist/modules/editor/components/Renderer/AttachmentRenderer.js +1 -50
- package/dist/modules/editor/components/Renderer/AudioRenderer.js +1 -35
- package/dist/modules/editor/components/Renderer/ConversationHistoryRenderer.js +1 -28
- package/dist/modules/editor/components/Renderer/InformationPaneRenderer.js +1 -33
- package/dist/modules/editor/components/Renderer/LinkerRenderer.js +1 -34
- package/dist/modules/editor/components/Renderer/MediaRenderer.js +1 -84
- package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js +1 -8
- package/dist/modules/editor/components/Toolbar/LinkToolbar.js +1 -61
- package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js +1 -54
- package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js +1 -45
- package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js +1 -48
- package/dist/modules/editor/components/Toolbar/TableToolbar.js +1 -89
- package/dist/modules/editor/hooks/useActionOptions.js +1 -86
- package/dist/modules/editor/hooks/useCantooEditor.js +1 -89
- package/dist/modules/editor/hooks/useCommentEditor.js +1 -37
- package/dist/modules/editor/hooks/useEditorContext.js +1 -12
- package/dist/modules/editor/hooks/useImageModal.js +1 -46
- package/dist/modules/editor/hooks/useImageSelection.js +1 -46
- package/dist/modules/editor/hooks/useLinkToolbar.js +1 -37
- package/dist/modules/editor/hooks/useMathsModal.js +1 -17
- package/dist/modules/editor/hooks/useMathsStyles.js +1 -20
- package/dist/modules/editor/hooks/useMediaLibraryEditor.js +3 -152
- package/dist/modules/editor/hooks/useResizeMedia.js +1 -59
- package/dist/modules/editor/hooks/useSpeechRecognition.js +1 -21
- package/dist/modules/editor/hooks/useSpeechSynthetisis.js +1 -20
- package/dist/modules/editor/hooks/useTipTapEditor.js +1 -88
- package/dist/modules/editor/utilities/has-extension.js +1 -4
- package/dist/modules/editor/utilities/has-mark.js +1 -4
- package/dist/modules/editor/utilities/has-text-style.js +1 -5
- package/dist/modules/homepage/components/Communities/Communities.js +1 -36
- package/dist/modules/homepage/components/Communities/CommunitiesContainer.js +1 -35
- package/dist/modules/homepage/components/Communities/CommunitiesSkeleton.js +1 -29
- package/dist/modules/homepage/components/Communities/CommunityItem.js +1 -28
- package/dist/modules/homepage/components/Communities/useCommunities.js +1 -30
- package/dist/modules/homepage/components/Favorites/Favorites.js +1 -31
- package/dist/modules/homepage/components/Favorites/FavoritesContainer.js +1 -10
- package/dist/modules/homepage/components/Header/Header.js +1 -122
- package/dist/modules/homepage/components/HomeCard/HomeCard.js +1 -25
- package/dist/modules/homepage/components/HomeCard/HomeCardContent.js +1 -10
- package/dist/modules/homepage/components/HomeCard/HomeCardHeader.d.ts +1 -5
- package/dist/modules/homepage/components/HomeCard/HomeCardHeader.js +1 -23
- package/dist/modules/homepage/components/LastInfos/LastInfos.js +1 -58
- package/dist/modules/homepage/components/LastInfos/LastInfosContainer.js +1 -37
- package/dist/modules/homepage/components/LastInfos/LastInfosList.js +1 -31
- package/dist/modules/homepage/components/LastInfos/useLastInfos.js +1 -25
- package/dist/modules/homepage/components/MessageFlashList/MessageFlash.js +1 -65
- package/dist/modules/homepage/components/MessageFlashList/MessageFlashList.js +1 -10
- package/dist/modules/homepage/components/MessageFlashList/MessageFlashListContainer.js +1 -14
- package/dist/modules/homepage/components/MessageFlashList/hooks/useMessageFlashList.js +1 -19
- package/dist/modules/homepage/components/MessageFlashList/services/api/index.js +1 -5
- package/dist/modules/homepage/components/MessageFlashList/services/api/messagesFlashService.js +1 -21
- package/dist/modules/homepage/components/MessageFlashList/services/queries/messagesFlash.js +1 -31
- package/dist/modules/homepage/components/Notifications/NotificationItem.js +1 -17
- package/dist/modules/homepage/components/Notifications/NotificationList.js +1 -51
- package/dist/modules/homepage/components/Notifications/NotificationListContainer.js +1 -23
- package/dist/modules/homepage/components/Notifications/NotificationListSkeleton.js +1 -17
- package/dist/modules/homepage/components/Notifications/NotificationSkeleton.d.ts +23 -1
- package/dist/modules/homepage/components/Notifications/NotificationSkeleton.js +1 -19
- package/dist/modules/homepage/components/Notifications/components/CommonNotificationItem.js +1 -32
- package/dist/modules/homepage/components/Notifications/components/NotificationFilterMenu.js +1 -25
- package/dist/modules/homepage/components/Notifications/components/NotificationFilterModal.js +1 -75
- package/dist/modules/homepage/components/Notifications/components/NotificationItemResource.js +1 -20
- package/dist/modules/homepage/components/Notifications/components/NotificationOptionsMenu.js +1 -36
- package/dist/modules/homepage/components/Notifications/components/ReportNotificationModal.js +1 -25
- package/dist/modules/homepage/components/Notifications/components/SystemNotificationItem.js +1 -21
- package/dist/modules/homepage/components/Notifications/components/UserNotificationItem.js +1 -26
- package/dist/modules/homepage/components/Notifications/components/notificationAdapter.js +1 -73
- package/dist/modules/homepage/components/Notifications/hooks/useNotificationList.js +1 -57
- package/dist/modules/homepage/components/Notifications/services/api/index.js +1 -5
- package/dist/modules/homepage/components/Notifications/services/api/notificationService.js +1 -33
- package/dist/modules/homepage/components/Notifications/services/queries/notification.js +1 -84
- package/dist/modules/homepage/components/SchoolSpace/SchoolSpace.js +1 -38
- package/dist/modules/homepage/components/SchoolSpace/SchoolSpaceContainer.js +1 -13
- package/dist/modules/homepage/components/SchoolSpace/useUserSchools.js +1 -39
- package/dist/modules/homepage/components/UsefulLinks/LinkForm.js +1 -67
- package/dist/modules/homepage/components/UsefulLinks/UsefulLinks.js +1 -31
- package/dist/modules/homepage/components/UsefulLinks/UsefulLinksContainer.js +1 -40
- package/dist/modules/homepage/components/UsefulLinks/UsefulLinksModal.js +1 -65
- package/dist/modules/homepage/components/UsefulLinks/hooks/useUsefulLinksContainer.js +1 -26
- package/dist/modules/homepage/components/UsefulLinks/services/api/index.js +1 -5
- package/dist/modules/homepage/components/UsefulLinks/services/api/usefulLinksService.js +1 -50
- package/dist/modules/homepage/components/UsefulLinks/services/queries/usefulLinks.js +1 -65
- package/dist/modules/homepage/components/UserSpace/UserSpace.d.ts +1 -3
- package/dist/modules/homepage/components/UserSpace/UserSpace.js +1 -37
- package/dist/modules/homepage/components/UserSpace/UserSpaceContainer.d.ts +2 -4
- package/dist/modules/homepage/components/UserSpace/UserSpaceContainer.js +1 -20
- package/dist/modules/homepage/components/UserSpace/hooks/useChildren.js +1 -23
- package/dist/modules/homepage/components/UserSpace/hooks/useProfileLinks.js +1 -75
- package/dist/modules/homepage/components/index.d.ts +1 -3
- package/dist/modules/homepage/hooks/useWidget.js +1 -83
- package/dist/modules/homepage/hooks/useWidgetPreferences.js +1 -34
- package/dist/modules/icons/components/IconAdd.js +1 -12
- package/dist/modules/icons/components/IconAddUser.js +1 -12
- package/dist/modules/icons/components/IconAdjustSettings.js +1 -12
- package/dist/modules/icons/components/IconAiFill.js +1 -12
- package/dist/modules/icons/components/IconAlertCircle.js +1 -13
- package/dist/modules/icons/components/IconAlertTriangle.js +1 -13
- package/dist/modules/icons/components/IconAlignCenter.js +1 -12
- package/dist/modules/icons/components/IconAlignJustify.js +1 -12
- package/dist/modules/icons/components/IconAlignLeft.js +1 -12
- package/dist/modules/icons/components/IconAlignRight.js +1 -12
- package/dist/modules/icons/components/IconAnswer.js +1 -13
- package/dist/modules/icons/components/IconApplications.js +1 -12
- package/dist/modules/icons/components/IconArrowDown.js +1 -13
- package/dist/modules/icons/components/IconArrowLeft.js +1 -13
- package/dist/modules/icons/components/IconArrowRight.js +1 -13
- package/dist/modules/icons/components/IconArrowUp.js +1 -13
- package/dist/modules/icons/components/IconBlock.js +1 -12
- package/dist/modules/icons/components/IconBlur.js +1 -13
- package/dist/modules/icons/components/IconBookmark.js +1 -12
- package/dist/modules/icons/components/IconBulle.js +1 -16
- package/dist/modules/icons/components/IconBulleError.js +1 -13
- package/dist/modules/icons/components/IconBulleSuccess.js +1 -13
- package/dist/modules/icons/components/IconBulletList.js +1 -16
- package/dist/modules/icons/components/IconBurgerMenu.js +1 -12
- package/dist/modules/icons/components/IconCalendar.js +1 -12
- package/dist/modules/icons/components/IconCalendarEdit.js +1 -12
- package/dist/modules/icons/components/IconCalendarLight.js +1 -12
- package/dist/modules/icons/components/IconCamera.js +1 -13
- package/dist/modules/icons/components/IconCantoo.js +1 -23
- package/dist/modules/icons/components/IconCenter.js +1 -12
- package/dist/modules/icons/components/IconCheck.js +1 -12
- package/dist/modules/icons/components/IconChecklist.js +1 -13
- package/dist/modules/icons/components/IconClass.js +1 -13
- package/dist/modules/icons/components/IconClock.js +1 -12
- package/dist/modules/icons/components/IconClockAlert.js +1 -17
- package/dist/modules/icons/components/IconClose.js +1 -13
- package/dist/modules/icons/components/IconCloseFullScreen.js +1 -12
- package/dist/modules/icons/components/IconCode.js +1 -12
- package/dist/modules/icons/components/IconCollect.js +1 -12
- package/dist/modules/icons/components/IconCopy.js +1 -12
- package/dist/modules/icons/components/IconCrop.js +1 -13
- package/dist/modules/icons/components/IconCut.js +1 -13
- package/dist/modules/icons/components/IconDelete.js +1 -12
- package/dist/modules/icons/components/IconDeleteColor.js +1 -13
- package/dist/modules/icons/components/IconDeleteColumn.js +1 -12
- package/dist/modules/icons/components/IconDeleteColumnHighlight.js +1 -12
- package/dist/modules/icons/components/IconDeleteRow.js +1 -12
- package/dist/modules/icons/components/IconDeleteRowHighlight.js +1 -12
- package/dist/modules/icons/components/IconDepositeInbox.js +1 -13
- package/dist/modules/icons/components/IconDownload.js +1 -17
- package/dist/modules/icons/components/IconEdit.js +1 -13
- package/dist/modules/icons/components/IconError.js +1 -12
- package/dist/modules/icons/components/IconExercizerAi.js +1 -14
- package/dist/modules/icons/components/IconExternalLink.js +1 -13
- package/dist/modules/icons/components/IconFiles.js +1 -12
- package/dist/modules/icons/components/IconFilter.js +1 -12
- package/dist/modules/icons/components/IconFlag.js +1 -12
- package/dist/modules/icons/components/IconFolder.js +1 -12
- package/dist/modules/icons/components/IconFolderAdd.js +1 -13
- package/dist/modules/icons/components/IconFolderDelete.js +1 -12
- package/dist/modules/icons/components/IconFolderMove.js +1 -17
- package/dist/modules/icons/components/IconForgoing.js +1 -12
- package/dist/modules/icons/components/IconFullScreen.js +1 -12
- package/dist/modules/icons/components/IconGlobe.js +1 -12
- package/dist/modules/icons/components/IconGlobe2.js +1 -16
- package/dist/modules/icons/components/IconGroupAvatar.js +1 -12
- package/dist/modules/icons/components/IconHandMove.js +1 -12
- package/dist/modules/icons/components/IconHeadphone.js +1 -12
- package/dist/modules/icons/components/IconHide.js +1 -13
- package/dist/modules/icons/components/IconHighlightColumn.js +1 -12
- package/dist/modules/icons/components/IconHighlightRow.js +1 -12
- package/dist/modules/icons/components/IconHome.js +1 -12
- package/dist/modules/icons/components/IconHourglass.js +1 -12
- package/dist/modules/icons/components/IconImageSizeLarge.js +1 -12
- package/dist/modules/icons/components/IconImageSizeMedium.js +1 -12
- package/dist/modules/icons/components/IconImageSizeSmall.js +1 -12
- package/dist/modules/icons/components/IconInbox.js +1 -12
- package/dist/modules/icons/components/IconInfoCircle.js +1 -13
- package/dist/modules/icons/components/IconInfoRectangle.js +1 -13
- package/dist/modules/icons/components/IconLabel.js +1 -12
- package/dist/modules/icons/components/IconLandscape.js +1 -12
- package/dist/modules/icons/components/IconLibrary.js +1 -12
- package/dist/modules/icons/components/IconLink.js +1 -16
- package/dist/modules/icons/components/IconListOrder.js +1 -12
- package/dist/modules/icons/components/IconLoader.js +1 -12
- package/dist/modules/icons/components/IconLock.js +1 -12
- package/dist/modules/icons/components/IconLsuArt.js +1 -13
- package/dist/modules/icons/components/IconLsuCompetenceNumerique.js +1 -12
- package/dist/modules/icons/components/IconLsuEmc.js +1 -13
- package/dist/modules/icons/components/IconLsuFrancais.js +1 -13
- package/dist/modules/icons/components/IconLsuHistoireGeo.js +1 -12
- package/dist/modules/icons/components/IconLsuLangue.js +1 -16
- package/dist/modules/icons/components/IconLsuLangue2.js +1 -13
- package/dist/modules/icons/components/IconLsuMath.js +1 -16
- package/dist/modules/icons/components/IconLsuParcoursEducatif.js +1 -12
- package/dist/modules/icons/components/IconLsuSport.js +1 -12
- package/dist/modules/icons/components/IconLsuSvt.js +1 -12
- package/dist/modules/icons/components/IconMail.js +1 -13
- package/dist/modules/icons/components/IconMailRecall.js +1 -13
- package/dist/modules/icons/components/IconMegaphone.js +1 -12
- package/dist/modules/icons/components/IconMergeCells.js +1 -13
- package/dist/modules/icons/components/IconMessageInfo.js +1 -13
- package/dist/modules/icons/components/IconMic.js +1 -12
- package/dist/modules/icons/components/IconMicOff.js +1 -12
- package/dist/modules/icons/components/IconMinus.js +1 -12
- package/dist/modules/icons/components/IconMove.js +1 -14
- package/dist/modules/icons/components/IconNoColors.js +1 -12
- package/dist/modules/icons/components/IconNotes.js +1 -13
- package/dist/modules/icons/components/IconNotification.js +1 -12
- package/dist/modules/icons/components/IconOptions.js +1 -14
- package/dist/modules/icons/components/IconOrderedList.js +1 -16
- package/dist/modules/icons/components/IconPaperclip.js +1 -12
- package/dist/modules/icons/components/IconParcoursCitoyen.js +1 -14
- package/dist/modules/icons/components/IconParcoursSecours.js +1 -14
- package/dist/modules/icons/components/IconPause.js +1 -12
- package/dist/modules/icons/components/IconPinOff.js +1 -12
- package/dist/modules/icons/components/IconPinOn.js +1 -12
- package/dist/modules/icons/components/IconPlaceholder.js +1 -16
- package/dist/modules/icons/components/IconPlay.js +1 -12
- package/dist/modules/icons/components/IconPlayFilled.js +1 -12
- package/dist/modules/icons/components/IconPlus.js +1 -12
- package/dist/modules/icons/components/IconPointerDefault.js +1 -12
- package/dist/modules/icons/components/IconPointerHand.js +1 -12
- package/dist/modules/icons/components/IconPrint.js +1 -12
- package/dist/modules/icons/components/IconQuestion.js +1 -14
- package/dist/modules/icons/components/IconQuestionMark.js +1 -13
- package/dist/modules/icons/components/IconRafterDown.js +1 -12
- package/dist/modules/icons/components/IconRafterLeft.js +1 -12
- package/dist/modules/icons/components/IconRafterRight.js +1 -12
- package/dist/modules/icons/components/IconRafterUp.js +1 -12
- package/dist/modules/icons/components/IconReaction.js +1 -12
- package/dist/modules/icons/components/IconReadMail.js +1 -16
- package/dist/modules/icons/components/IconRecord.js +1 -12
- package/dist/modules/icons/components/IconRecordPause.js +1 -12
- package/dist/modules/icons/components/IconRecordStop.js +1 -12
- package/dist/modules/icons/components/IconRecordVideo.js +1 -12
- package/dist/modules/icons/components/IconRedo.js +1 -13
- package/dist/modules/icons/components/IconRefresh.js +1 -13
- package/dist/modules/icons/components/IconReset.js +1 -12
- package/dist/modules/icons/components/IconRestart.js +1 -12
- package/dist/modules/icons/components/IconRestore.js +1 -12
- package/dist/modules/icons/components/IconSave.js +1 -12
- package/dist/modules/icons/components/IconSearch.js +1 -12
- package/dist/modules/icons/components/IconSee.js +1 -13
- package/dist/modules/icons/components/IconSend.js +1 -12
- package/dist/modules/icons/components/IconSetBackground.js +1 -17
- package/dist/modules/icons/components/IconSettings.js +1 -16
- package/dist/modules/icons/components/IconShare.js +1 -12
- package/dist/modules/icons/components/IconSignature.js +1 -13
- package/dist/modules/icons/components/IconSmartphone.js +1 -13
- package/dist/modules/icons/components/IconSmiley.js +1 -13
- package/dist/modules/icons/components/IconSortAscendingLetters.js +1 -13
- package/dist/modules/icons/components/IconSortDescending.js +1 -13
- package/dist/modules/icons/components/IconSortDescendingLetters.js +1 -13
- package/dist/modules/icons/components/IconSortTime.js +1 -14
- package/dist/modules/icons/components/IconSpeechToText.js +1 -12
- package/dist/modules/icons/components/IconSplitCells.js +1 -13
- package/dist/modules/icons/components/IconSquareRoot.js +1 -12
- package/dist/modules/icons/components/IconStar.js +1 -13
- package/dist/modules/icons/components/IconStarFull.js +1 -13
- package/dist/modules/icons/components/IconSubmission.js +1 -12
- package/dist/modules/icons/components/IconSubmitToValidate.js +1 -12
- package/dist/modules/icons/components/IconSubscript.js +1 -12
- package/dist/modules/icons/components/IconSuccessFill.js +1 -12
- package/dist/modules/icons/components/IconSuccessOutline.js +1 -13
- package/dist/modules/icons/components/IconSuperscript.js +1 -12
- package/dist/modules/icons/components/IconTable.js +1 -12
- package/dist/modules/icons/components/IconTeacher.js +1 -12
- package/dist/modules/icons/components/IconTextBold.js +1 -12
- package/dist/modules/icons/components/IconTextColor.js +1 -16
- package/dist/modules/icons/components/IconTextHighlight.js +1 -16
- package/dist/modules/icons/components/IconTextItalic.js +1 -12
- package/dist/modules/icons/components/IconTextPage.js +1 -12
- package/dist/modules/icons/components/IconTextSize.js +1 -12
- package/dist/modules/icons/components/IconTextToSpeech.js +1 -12
- package/dist/modules/icons/components/IconTextToSpeechOff.js +1 -12
- package/dist/modules/icons/components/IconTextTypo.js +1 -12
- package/dist/modules/icons/components/IconTextUnderline.js +1 -13
- package/dist/modules/icons/components/IconTextVanilla.js +1 -13
- package/dist/modules/icons/components/IconThumbDown.js +1 -12
- package/dist/modules/icons/components/IconThumbUp.js +1 -12
- package/dist/modules/icons/components/IconTool.js +1 -12
- package/dist/modules/icons/components/IconToolCenter.js +1 -12
- package/dist/modules/icons/components/IconTrendingUp.js +1 -16
- package/dist/modules/icons/components/IconUndo.js +1 -13
- package/dist/modules/icons/components/IconUndoAll.js +1 -14
- package/dist/modules/icons/components/IconUndoSlashed.js +1 -12
- package/dist/modules/icons/components/IconUnion.js +1 -15
- package/dist/modules/icons/components/IconUnlink.js +1 -13
- package/dist/modules/icons/components/IconUnlock.js +1 -13
- package/dist/modules/icons/components/IconUnreadMail.js +1 -16
- package/dist/modules/icons/components/IconUpload.js +1 -18
- package/dist/modules/icons/components/IconUser.js +1 -12
- package/dist/modules/icons/components/IconUserSearch.js +1 -13
- package/dist/modules/icons/components/IconUsers.js +1 -13
- package/dist/modules/icons/components/IconVideo.js +1 -12
- package/dist/modules/icons/components/IconViewCalendar.js +1 -12
- package/dist/modules/icons/components/IconViewList.js +1 -15
- package/dist/modules/icons/components/IconWand.js +1 -12
- package/dist/modules/icons/components/IconWrite.js +1 -12
- package/dist/modules/icons/components/IconZoomIn.js +1 -12
- package/dist/modules/icons/components/IconZoomOut.js +1 -12
- package/dist/modules/icons/components/apps/IconAccount.js +1 -12
- package/dist/modules/icons/components/apps/IconActualites.js +1 -12
- package/dist/modules/icons/components/apps/IconAdmin.js +1 -12
- package/dist/modules/icons/components/apps/IconAdminPortal.js +1 -12
- package/dist/modules/icons/components/apps/IconAdmissionPostBac.js +1 -12
- package/dist/modules/icons/components/apps/IconAgenda.js +1 -13
- package/dist/modules/icons/components/apps/IconAppointments.js +1 -12
- package/dist/modules/icons/components/apps/IconArchive.js +1 -12
- package/dist/modules/icons/components/apps/IconAssistance.js +1 -12
- package/dist/modules/icons/components/apps/IconAssistancetic.js +1 -14
- package/dist/modules/icons/components/apps/IconAssr.js +1 -12
- package/dist/modules/icons/components/apps/IconAward.js +1 -12
- package/dist/modules/icons/components/apps/IconBanquesavoir.js +1 -12
- package/dist/modules/icons/components/apps/IconBcdi.js +1 -12
- package/dist/modules/icons/components/apps/IconBiblionisep.js +1 -12
- package/dist/modules/icons/components/apps/IconBlog.js +1 -12
- package/dist/modules/icons/components/apps/IconBookmarkEmpty.js +1 -12
- package/dist/modules/icons/components/apps/IconCahierDeTexte.js +1 -12
- package/dist/modules/icons/components/apps/IconCahierTextes.js +1 -12
- package/dist/modules/icons/components/apps/IconCalendar.js +1 -13
- package/dist/modules/icons/components/apps/IconCanalNumerique.js +1 -12
- package/dist/modules/icons/components/apps/IconCcn.js +1 -12
- package/dist/modules/icons/components/apps/IconCerise.js +1 -12
- package/dist/modules/icons/components/apps/IconCervoprint.js +1 -12
- package/dist/modules/icons/components/apps/IconCharlemagne.js +1 -12
- package/dist/modules/icons/components/apps/IconCharte.js +1 -12
- package/dist/modules/icons/components/apps/IconChat.js +1 -12
- package/dist/modules/icons/components/apps/IconCidj.js +1 -12
- package/dist/modules/icons/components/apps/IconCns.js +1 -12
- package/dist/modules/icons/components/apps/IconCollaborativeWall.js +1 -12
- package/dist/modules/icons/components/apps/IconCommunities.js +1 -12
- package/dist/modules/icons/components/apps/IconCommunity.js +1 -12
- package/dist/modules/icons/components/apps/IconCompetences.js +1 -12
- package/dist/modules/icons/components/apps/IconConnecteurGenerique1.js +1 -12
- package/dist/modules/icons/components/apps/IconConnecteurGenerique2.js +1 -12
- package/dist/modules/icons/components/apps/IconConversation.js +1 -12
- package/dist/modules/icons/components/apps/IconDirectory.js +1 -12
- package/dist/modules/icons/components/apps/IconEdt.js +1 -12
- package/dist/modules/icons/components/apps/IconEducagri.js +1 -12
- package/dist/modules/icons/components/apps/IconEdumedia.js +1 -12
- package/dist/modules/icons/components/apps/IconEdumoov.js +1 -12
- package/dist/modules/icons/components/apps/IconEdutheque.js +1 -12
- package/dist/modules/icons/components/apps/IconElectron.js +1 -12
- package/dist/modules/icons/components/apps/IconElyceepicardie.js +1 -12
- package/dist/modules/icons/components/apps/IconEsidoc.js +1 -12
- package/dist/modules/icons/components/apps/IconEuropress.js +1 -12
- package/dist/modules/icons/components/apps/IconExercizer.js +1 -12
- package/dist/modules/icons/components/apps/IconForms.js +1 -12
- package/dist/modules/icons/components/apps/IconForum.js +1 -12
- package/dist/modules/icons/components/apps/IconGeogebra.js +1 -12
- package/dist/modules/icons/components/apps/IconGepi.js +1 -12
- package/dist/modules/icons/components/apps/IconGlpi.js +1 -12
- package/dist/modules/icons/components/apps/IconHiboutheque.js +1 -12
- package/dist/modules/icons/components/apps/IconItopstore.js +1 -12
- package/dist/modules/icons/components/apps/IconKne.js +1 -12
- package/dist/modules/icons/components/apps/IconLeSiteTv.js +1 -12
- package/dist/modules/icons/components/apps/IconLemonde.js +1 -12
- package/dist/modules/icons/components/apps/IconLesechos.js +1 -12
- package/dist/modules/icons/components/apps/IconLibrary.js +1 -12
- package/dist/modules/icons/components/apps/IconLivretScolaire.js +1 -13
- package/dist/modules/icons/components/apps/IconLool.js +1 -15
- package/dist/modules/icons/components/apps/IconLsu.js +1 -12
- package/dist/modules/icons/components/apps/IconMadmagz.js +1 -12
- package/dist/modules/icons/components/apps/IconMagneto.js +1 -13
- package/dist/modules/icons/components/apps/IconMatholycee.js +1 -12
- package/dist/modules/icons/components/apps/IconMaxicours.js +1 -12
- package/dist/modules/icons/components/apps/IconMediacentre.js +1 -12
- package/dist/modules/icons/components/apps/IconMindmap.js +1 -12
- package/dist/modules/icons/components/apps/IconMinetest.js +1 -12
- package/dist/modules/icons/components/apps/IconMinibadge.js +1 -12
- package/dist/modules/icons/components/apps/IconMonorientationenligne.js +1 -12
- package/dist/modules/icons/components/apps/IconMonstageenligne.js +1 -12
- package/dist/modules/icons/components/apps/IconMoodle.js +1 -12
- package/dist/modules/icons/components/apps/IconMuseefrancaisphoto.js +1 -12
- package/dist/modules/icons/components/apps/IconMyNetwork.js +1 -12
- package/dist/modules/icons/components/apps/IconNabook.js +1 -16
- package/dist/modules/icons/components/apps/IconNetvibes.js +1 -12
- package/dist/modules/icons/components/apps/IconNextcloudDeck.js +1 -12
- package/dist/modules/icons/components/apps/IconNextcloudFiles.js +1 -12
- package/dist/modules/icons/components/apps/IconNextcloudForms.js +1 -12
- package/dist/modules/icons/components/apps/IconNextcloudNotes.js +1 -12
- package/dist/modules/icons/components/apps/IconNextcloudTalk.js +1 -12
- package/dist/modules/icons/components/apps/IconNote.js +1 -12
- package/dist/modules/icons/components/apps/IconNotebook.js +1 -12
- package/dist/modules/icons/components/apps/IconNotes.js +1 -12
- package/dist/modules/icons/components/apps/IconOnisep.js +1 -12
- package/dist/modules/icons/components/apps/IconOnisep2.js +1 -12
- package/dist/modules/icons/components/apps/IconPad.js +1 -12
- package/dist/modules/icons/components/apps/IconPages.js +1 -12
- package/dist/modules/icons/components/apps/IconParametrage.js +1 -12
- package/dist/modules/icons/components/apps/IconParametrages.js +1 -12
- package/dist/modules/icons/components/apps/IconParaschool.js +1 -12
- package/dist/modules/icons/components/apps/IconParcours.js +1 -12
- package/dist/modules/icons/components/apps/IconPearltrees.js +1 -12
- package/dist/modules/icons/components/apps/IconPeertube.js +1 -21
- package/dist/modules/icons/components/apps/IconPicardieCursus.js +1 -12
- package/dist/modules/icons/components/apps/IconPlaceholder.js +1 -16
- package/dist/modules/icons/components/apps/IconPoll.js +1 -12
- package/dist/modules/icons/components/apps/IconPresences.js +1 -12
- package/dist/modules/icons/components/apps/IconProeps.js +1 -12
- package/dist/modules/icons/components/apps/IconPronote.js +1 -12
- package/dist/modules/icons/components/apps/IconPublic.js +1 -12
- package/dist/modules/icons/components/apps/IconQwant.js +1 -12
- package/dist/modules/icons/components/apps/IconQwantJunior.js +1 -12
- package/dist/modules/icons/components/apps/IconRack.js +1 -12
- package/dist/modules/icons/components/apps/IconRbs.js +1 -12
- package/dist/modules/icons/components/apps/IconResidenceArtiste.js +1 -12
- package/dist/modules/icons/components/apps/IconRessourcesdepartementale91.js +1 -12
- package/dist/modules/icons/components/apps/IconSacoche.js +1 -12
- package/dist/modules/icons/components/apps/IconSchoolbook.js +1 -12
- package/dist/modules/icons/components/apps/IconScolinfo.js +1 -12
- package/dist/modules/icons/components/apps/IconScrapbook.js +1 -12
- package/dist/modules/icons/components/apps/IconSearchengine.js +1 -12
- package/dist/modules/icons/components/apps/IconSettingsClass.js +1 -12
- package/dist/modules/icons/components/apps/IconSharebigfiles.js +1 -12
- package/dist/modules/icons/components/apps/IconStatistics.js +1 -12
- package/dist/modules/icons/components/apps/IconStats.js +1 -12
- package/dist/modules/icons/components/apps/IconSuitcase.js +1 -12
- package/dist/modules/icons/components/apps/IconSupport.js +1 -12
- package/dist/modules/icons/components/apps/IconTimeline.js +1 -12
- package/dist/modules/icons/components/apps/IconTimelinegenerator.js +1 -12
- package/dist/modules/icons/components/apps/IconTurboself.js +1 -12
- package/dist/modules/icons/components/apps/IconUniversalis.js +1 -12
- package/dist/modules/icons/components/apps/IconUnstagepourtous.js +1 -12
- package/dist/modules/icons/components/apps/IconUserbook.js +1 -12
- package/dist/modules/icons/components/apps/IconVideo.js +1 -12
- package/dist/modules/icons/components/apps/IconVieScolaire.js +1 -12
- package/dist/modules/icons/components/apps/IconVisioconf.js +1 -12
- package/dist/modules/icons/components/apps/IconVotil.js +1 -14
- package/dist/modules/icons/components/apps/IconWebclasseur.js +1 -12
- package/dist/modules/icons/components/apps/IconWebsite.js +1 -12
- package/dist/modules/icons/components/apps/IconWiki.js +1 -13
- package/dist/modules/icons/components/apps/IconWorkspace.js +1 -12
- package/dist/modules/icons/components/audience/IconCongrats.js +1 -22
- package/dist/modules/icons/components/audience/IconCongratsCounter.js +1 -21
- package/dist/modules/icons/components/audience/IconGreat.js +1 -16
- package/dist/modules/icons/components/audience/IconGreatCounter.js +1 -14
- package/dist/modules/icons/components/audience/IconGuest.js +1 -12
- package/dist/modules/icons/components/audience/IconInteresting.js +1 -15
- package/dist/modules/icons/components/audience/IconInterestingCounter.js +1 -17
- package/dist/modules/icons/components/audience/IconParent.js +1 -12
- package/dist/modules/icons/components/audience/IconPersonnel.js +1 -12
- package/dist/modules/icons/components/audience/IconStudent.js +1 -20
- package/dist/modules/icons/components/audience/IconTeacher.js +1 -12
- package/dist/modules/icons/components/audience/IconThanks.js +1 -18
- package/dist/modules/icons/components/audience/IconThanksCounter.js +1 -16
- package/dist/modules/icons/components/index.d.ts +0 -1
- package/dist/modules/icons/components/logo/IconLogoEdificeFull.js +1 -26
- package/dist/modules/icons/components/logo/IconLogoEdificeSmall.js +1 -17
- package/dist/modules/icons/components/nav/IconCommunities.js +1 -12
- package/dist/modules/icons/components/nav/IconCommunitiesBeta.js +1 -18
- package/dist/modules/icons/components/nav/IconCommunity.js +1 -12
- package/dist/modules/icons/components/nav/IconDisconnect.js +1 -12
- package/dist/modules/icons/components/nav/IconHome.js +1 -12
- package/dist/modules/icons/components/nav/IconHomeBeta.js +1 -13
- package/dist/modules/icons/components/nav/IconMessagesBeta.js +1 -18
- package/dist/modules/icons/components/nav/IconMyApps.js +1 -12
- package/dist/modules/icons/components/nav/IconMyAppsBeta.js +1 -13
- package/dist/modules/icons/components/nav/IconNeoAssistance.js +1 -12
- package/dist/modules/icons/components/nav/IconNeoMessaging.js +1 -12
- package/dist/modules/icons/components/nav/IconNewRelease.js +1 -12
- package/dist/modules/icons/components/nav/IconNotificationBeta.js +1 -14
- package/dist/modules/icons/components/nav/IconOneAssistance.js +1 -12
- package/dist/modules/icons/components/nav/IconOneMessaging.js +1 -12
- package/dist/modules/icons/components/nav/IconOneProfile.js +1 -13
- package/dist/modules/icons/components/nav/IconProfile.js +1 -12
- package/dist/modules/icons/components/nav/IconSearch.js +1 -12
- package/dist/modules/icons/components/nav/IconUserbook.js +1 -12
- package/dist/modules/modals/ConfirmModal/ConfirmModal.js +1 -37
- package/dist/modules/modals/OnboardingModal/OnboardingModal.js +1 -77
- package/dist/modules/modals/OnboardingModal/useOnboardingModal.js +1 -38
- package/dist/modules/modals/PublishModal/PublishModal.js +1 -120
- package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js +1 -29
- package/dist/modules/modals/PublishModal/components/AgeSelect.js +1 -20
- package/dist/modules/modals/PublishModal/components/LangSelect.js +1 -19
- package/dist/modules/modals/PublishModal/components/PublishModalFooter.js +1 -23
- package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js +1 -29
- package/dist/modules/modals/PublishModal/components/ToastError.js +1 -24
- package/dist/modules/modals/PublishModal/components/ToastSuccess.js +1 -18
- package/dist/modules/modals/PublishModal/constants/ageOptions.js +1 -4
- package/dist/modules/modals/PublishModal/hooks/useActivitiesOptions.js +1 -34
- package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js +1 -43
- package/dist/modules/modals/PublishModal/hooks/usePublishModal.js +1 -106
- package/dist/modules/modals/PublishModal/hooks/useSubjectsOptions.js +1 -118
- package/dist/modules/modals/ResourceModal/ResourceModal.js +1 -164
- package/dist/modules/modals/ResourceModal/apps/BlogPublic.js +1 -62
- package/dist/modules/modals/ResourceModal/hooks/useSlug.js +1 -41
- package/dist/modules/modals/ResourceModal/hooks/useThumb.js +1 -17
- package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js +1 -12
- package/dist/modules/modals/ShareModal/ShareBookmark.js +1 -25
- package/dist/modules/modals/ShareModal/ShareBookmarkLine.js +1 -55
- package/dist/modules/modals/ShareModal/ShareModal.js +1 -40
- package/dist/modules/modals/ShareModal/ShareResources.js +1 -149
- package/dist/modules/modals/ShareModal/apps/ShareBlog.js +1 -43
- package/dist/modules/modals/ShareModal/hooks/useSearch.js +1 -174
- package/dist/modules/modals/ShareModal/hooks/useShare.js +1 -199
- package/dist/modules/modals/ShareModal/hooks/useShareBookmark.js +1 -68
- package/dist/modules/modals/ShareModal/hooks/useShareMutation.js +1 -15
- package/dist/modules/modals/ShareModal/hooks/useShareRightDisabled.js +1 -11
- package/dist/modules/modals/ShareModal/hooks/useShareRightVisible.js +1 -11
- package/dist/modules/modals/ShareModal/utils/hasRight.js +1 -4
- package/dist/modules/modals/ShareModal/utils/showShareRightLine.js +1 -4
- package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js +1 -53
- package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js +1 -26
- package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js +1 -314
- package/dist/modules/multimedia/Embed/Embed.js +1 -32
- package/dist/modules/multimedia/FileCard/FileCard.js +1 -104
- package/dist/modules/multimedia/FileCard/FileIcon.js +1 -15
- package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js +1 -130
- package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js +1 -72
- package/dist/modules/multimedia/ImageEditor/effects/blur.js +1 -80
- package/dist/modules/multimedia/ImageEditor/effects/constants.js +1 -4
- package/dist/modules/multimedia/ImageEditor/effects/crop.js +1 -171
- package/dist/modules/multimedia/ImageEditor/effects/misc.js +1 -177
- package/dist/modules/multimedia/ImageEditor/effects/resize.js +1 -166
- package/dist/modules/multimedia/ImageEditor/effects/rotate.js +1 -32
- package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js +1 -65
- package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js +1 -82
- package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js +1 -55
- package/dist/modules/multimedia/ImageEditor/utilities/aggregate.js +1 -13
- package/dist/modules/multimedia/ImagePicker/ImagePicker.js +1 -40
- package/dist/modules/multimedia/Linker/ExternalLinker/ExternalLinker.js +1 -45
- package/dist/modules/multimedia/Linker/InternalLinker/InternalLinker.js +1 -151
- package/dist/modules/multimedia/LinkerCard/LinkerCard.js +1 -34
- package/dist/modules/multimedia/MediaLibrary/MediaLibrary.d.ts +1 -1
- package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +1 -226
- package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js +1 -12
- package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js +1 -19
- package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js +1 -17
- package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js +1 -14
- package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js +1 -35
- package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js +1 -68
- package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js +1 -22
- package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +1 -15
- package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js +1 -31
- package/dist/modules/multimedia/MediaLibrary/innertabs/index.js +1 -21
- package/dist/modules/multimedia/UploadCard/UploadCard.js +1 -75
- package/dist/modules/multimedia/UploadFiles/UploadFiles.js +1 -56
- package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js +1 -76
- package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js +1 -156
- package/dist/modules/multimedia/VideoRecorder/VideoRecorderToolbar.js +1 -96
- package/dist/modules/multimedia/VideoRecorder/useCameras.js +1 -86
- package/dist/modules/multimedia/Workspace/Workspace.js +1 -172
- package/dist/modules/multimedia/WorkspaceFolders/WorkspaceFolders.js +1 -55
- package/dist/modules/multimedia/WorkspaceFolders/components/NewFolderForm.js +1 -39
- package/dist/multimedia.js +1 -32
- package/dist/providers/AntThemeProvider/AntProvider.js +1 -28
- package/dist/providers/AntThemeProvider/antThemeConfig.js +1 -9
- package/dist/providers/EdificeClientProvider/EdificeClientProvider.context.js +1 -5
- package/dist/providers/EdificeClientProvider/EdificeClientProvider.hook.js +1 -11
- package/dist/providers/EdificeClientProvider/EdificeClientProvider.js +1 -54
- package/dist/providers/EdificeScreebProvider/EdificeScreebProvider.js +1 -52
- package/dist/providers/EdificeThemeProvider/EdificeThemeProvider.context.js +1 -5
- package/dist/providers/EdificeThemeProvider/EdificeThemeProvider.hook.js +1 -11
- package/dist/providers/EdificeThemeProvider/EdificeThemeProvider.js +1 -47
- package/dist/providers/MockedProvider/MockedProvider.js +1 -29
- package/dist/providers/MockedProvider/MockedProvider.mocks.js +1 -119
- package/dist/react.css +2 -0
- package/dist/utilities/check-user-rights/check-user-rights.js +1 -46
- package/dist/utilities/create-selectors/create-selectors.js +1 -11
- package/dist/utilities/emptyscreen-mapping/emptyscreen-mapping.js +1 -49
- package/dist/utilities/mime-types/mime-types-utils.js +1 -4
- package/dist/utilities/react-query/react-query-utils.js +1 -13
- package/dist/utilities/refs/ref.js +1 -14
- package/dist/utilities/rotate-transition-style/get-rotate-transition-style.js +1 -12
- package/package.json +11 -12
- package/dist/_virtual/_commonjsHelpers.js +0 -8
- package/dist/_virtual/isSameOrAfter.js +0 -4
- package/dist/_virtual/isToday.js +0 -4
- package/dist/_virtual/localeData.js +0 -4
- package/dist/_virtual/weekday.js +0 -4
- package/dist/components/RadioTile/RadioTile.d.ts +0 -35
- package/dist/components/RadioTile/RadioTile.js +0 -22
- package/dist/components/RadioTile/index.d.ts +0 -2
- package/dist/modules/comments/constants.js +0 -10
- package/dist/modules/homepage/components/Agenda/Agenda.d.ts +0 -10
- package/dist/modules/homepage/components/Agenda/Agenda.js +0 -54
- package/dist/modules/homepage/components/Agenda/AgendaContainer.d.ts +0 -1
- package/dist/modules/homepage/components/Agenda/AgendaContainer.js +0 -14
- package/dist/modules/homepage/components/Agenda/AgendaEventCard.d.ts +0 -10
- package/dist/modules/homepage/components/Agenda/AgendaEventCard.js +0 -30
- package/dist/modules/homepage/components/Agenda/hooks/useAgendaContainer.d.ts +0 -14
- package/dist/modules/homepage/components/Agenda/hooks/useAgendaContainer.js +0 -27
- package/dist/modules/homepage/components/Agenda/index.d.ts +0 -3
- package/dist/modules/homepage/components/Agenda/services/api/agendaService.d.ts +0 -24
- package/dist/modules/homepage/components/Agenda/services/api/agendaService.js +0 -45
- package/dist/modules/homepage/components/Agenda/services/api/index.d.ts +0 -4
- package/dist/modules/homepage/components/Agenda/services/api/index.js +0 -5
- package/dist/modules/homepage/components/Agenda/services/queries/agenda.d.ts +0 -19
- package/dist/modules/homepage/components/Agenda/services/queries/agenda.js +0 -26
- package/dist/modules/homepage/components/Header/MyAppsPopover.d.ts +0 -5
- package/dist/modules/homepage/components/Header/MyAppsPopover.js +0 -28
- package/dist/modules/homepage/components/Header/useSafeHoverPopover.js +0 -32
- package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetToggle.d.ts +0 -16
- package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetToggle.js +0 -15
- package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetsPersonalizationPanel.d.ts +0 -21
- package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetsPersonalizationPanel.js +0 -47
- package/dist/modules/homepage/components/WidgetsPersonalizationPanel/index.d.ts +0 -2
- package/dist/modules/icons/components/IconAddWidget.d.ts +0 -7
- package/dist/modules/icons/components/IconAddWidget.js +0 -12
- package/dist/modules/multimedia/testing/mediaHarness.d.ts +0 -154
- package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrAfter.js +0 -18
- package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isToday.js +0 -19
- package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/localeData.js +0 -82
- package/dist/node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/weekday.js +0 -19
- package/dist/style.css +0 -1
|
@@ -1,68 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useState, useRef, useEffect } from "react";
|
|
3
|
-
import { useTranslation } from "react-i18next";
|
|
4
|
-
import { useMediaLibraryContext } from "../MediaLibraryContext.js";
|
|
5
|
-
import Flex from "../../../../components/Flex/Flex.js";
|
|
6
|
-
import Radio from "../../../../components/Radio/Radio.js";
|
|
7
|
-
import Dropzone from "../../../../components/Dropzone/Dropzone.js";
|
|
8
|
-
import UploadFiles from "../../UploadFiles/UploadFiles.js";
|
|
9
|
-
const acceptedTypes = (type) => {
|
|
10
|
-
const acceptedTypes2 = [];
|
|
11
|
-
switch (type) {
|
|
12
|
-
case "audio":
|
|
13
|
-
acceptedTypes2.push("audio/*");
|
|
14
|
-
break;
|
|
15
|
-
case "video":
|
|
16
|
-
acceptedTypes2.push("video/*");
|
|
17
|
-
break;
|
|
18
|
-
case "image":
|
|
19
|
-
acceptedTypes2.push("image/png"), acceptedTypes2.push("image/jpeg"), acceptedTypes2.push("image/webp"), acceptedTypes2.push("image/gif"), acceptedTypes2.push("image/avif"), acceptedTypes2.push("image/heic");
|
|
20
|
-
break;
|
|
21
|
-
}
|
|
22
|
-
return acceptedTypes2;
|
|
23
|
-
}, orderUploadedFiles = (uploadedFiles, sourceFilesInfo, byAlpha) => {
|
|
24
|
-
const infoOf = (element) => element._id ? sourceFilesInfo[element._id] : void 0, nameOf = (element) => {
|
|
25
|
-
var _a;
|
|
26
|
-
return ((_a = infoOf(element)) == null ? void 0 : _a.name) ?? element.name;
|
|
27
|
-
}, lastModifiedOf = (element) => {
|
|
28
|
-
var _a;
|
|
29
|
-
return ((_a = infoOf(element)) == null ? void 0 : _a.lastModified) ?? 0;
|
|
30
|
-
};
|
|
31
|
-
return byAlpha ? [...uploadedFiles].sort((a, b) => nameOf(a).localeCompare(nameOf(b), void 0, {
|
|
32
|
-
numeric: !0
|
|
33
|
-
})) : [...uploadedFiles].sort((a, b) => lastModifiedOf(b) - lastModifiedOf(a)).reverse();
|
|
34
|
-
}, Upload = () => {
|
|
35
|
-
const {
|
|
36
|
-
t
|
|
37
|
-
} = useTranslation(), {
|
|
38
|
-
type,
|
|
39
|
-
visibility,
|
|
40
|
-
multiple,
|
|
41
|
-
setResult,
|
|
42
|
-
setResultCounter,
|
|
43
|
-
setCancellable,
|
|
44
|
-
setPreSuccess
|
|
45
|
-
} = useMediaLibraryContext(), [sortByAlpha, setSortByAlpha] = useState(!0), [uploadedFiles, setUploadedFiles] = useState([]), sourceFilesInfoRef = useRef({}), handleOnFilesChange = (uploadedFiles2, sourceFilesInfo) => {
|
|
46
|
-
sourceFilesInfoRef.current = sourceFilesInfo, setUploadedFiles(uploadedFiles2), uploadedFiles2.length ? (setCancellable(uploadedFiles2), setResultCounter(uploadedFiles2.length), setResult(uploadedFiles2)) : (setCancellable([]), setResultCounter(void 0), setResult(void 0));
|
|
47
|
-
};
|
|
48
|
-
return useEffect(() => {
|
|
49
|
-
if (!multiple || !uploadedFiles.length) {
|
|
50
|
-
setPreSuccess(void 0);
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
setPreSuccess(() => () => Promise.resolve(orderUploadedFiles(uploadedFiles, sourceFilesInfoRef.current, sortByAlpha)));
|
|
54
|
-
}, [multiple, uploadedFiles, sortByAlpha, setPreSuccess]), /* @__PURE__ */ jsxs("div", { className: "flex-grow-1", children: [
|
|
55
|
-
multiple && /* @__PURE__ */ jsxs(Flex, { className: "mb-16 ms-8", align: "start", direction: "column", gap: "8", children: [
|
|
56
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
57
|
-
t("bbm.upload.sort.title"),
|
|
58
|
-
" :"
|
|
59
|
-
] }),
|
|
60
|
-
/* @__PURE__ */ jsx(Radio, { label: t("bbm.upload.sort.alpha"), name: "media-library-upload-sort", value: "alpha", model: sortByAlpha ? "alpha" : "date", checked: sortByAlpha, onChange: () => setSortByAlpha(!0), "data-testid": "media-library-upload-sort-alpha" }),
|
|
61
|
-
/* @__PURE__ */ jsx(Radio, { label: t("bbm.upload.sort.date"), name: "media-library-upload-sort", value: "date", model: sortByAlpha ? "alpha" : "date", checked: !sortByAlpha, onChange: () => setSortByAlpha(!1), "data-testid": "media-library-upload-sort-date" })
|
|
62
|
-
] }),
|
|
63
|
-
/* @__PURE__ */ jsx(Dropzone, { multiple, accept: acceptedTypes(type ?? "embedder"), children: /* @__PURE__ */ jsx(UploadFiles, { onFilesChange: handleOnFilesChange, visibility }) })
|
|
64
|
-
] });
|
|
65
|
-
};
|
|
66
|
-
export {
|
|
67
|
-
Upload
|
|
68
|
-
};
|
|
1
|
+
import Flex from"../../../../components/Flex/Flex.js";import{useMediaLibraryContext}from"../MediaLibraryContext.js";import Dropzone from"../../../../components/Dropzone/Dropzone.js";import Radio from"../../../../components/Radio/Radio.js";import UploadFiles from"../../UploadFiles/UploadFiles.js";import{useEffect,useRef,useState}from"react";import{jsx,jsxs}from"react/jsx-runtime";import{useTranslation}from"react-i18next";var acceptedTypes=type=>{let acceptedTypes=[];switch(type){case`audio`:acceptedTypes.push(`audio/*`);break;case`video`:acceptedTypes.push(`video/*`);break;case`image`:acceptedTypes.push(`image/png`),acceptedTypes.push(`image/jpeg`),acceptedTypes.push(`image/webp`),acceptedTypes.push(`image/gif`),acceptedTypes.push(`image/avif`),acceptedTypes.push(`image/heic`);break;default:break}return acceptedTypes},orderUploadedFiles=(uploadedFiles,sourceFilesInfo,byAlpha)=>{let infoOf=element=>element._id?sourceFilesInfo[element._id]:void 0,nameOf=element=>infoOf(element)?.name??element.name,lastModifiedOf=element=>infoOf(element)?.lastModified??0;return byAlpha?[...uploadedFiles].sort((a,b)=>nameOf(a).localeCompare(nameOf(b),void 0,{numeric:!0})):[...uploadedFiles].sort((a,b)=>lastModifiedOf(b)-lastModifiedOf(a)).reverse()},Upload=()=>{let{t}=useTranslation(),{type,visibility,multiple,setResult,setResultCounter,setCancellable,setPreSuccess}=useMediaLibraryContext(),[sortByAlpha,setSortByAlpha]=useState(!0),[uploadedFiles,setUploadedFiles]=useState([]),sourceFilesInfoRef=useRef({});return useEffect(()=>{if(!multiple||!uploadedFiles.length){setPreSuccess(void 0);return}setPreSuccess(()=>()=>Promise.resolve(orderUploadedFiles(uploadedFiles,sourceFilesInfoRef.current,sortByAlpha)))},[multiple,uploadedFiles,sortByAlpha,setPreSuccess]),jsxs(`div`,{className:`flex-grow-1`,children:[multiple&&jsxs(Flex,{className:`mb-16 ms-8`,align:`start`,direction:`column`,gap:`8`,children:[jsxs(`div`,{children:[t(`bbm.upload.sort.title`),` :`]}),jsx(Radio,{label:t(`bbm.upload.sort.alpha`),name:`media-library-upload-sort`,value:`alpha`,model:sortByAlpha?`alpha`:`date`,checked:sortByAlpha,onChange:()=>setSortByAlpha(!0),"data-testid":`media-library-upload-sort-alpha`}),jsx(Radio,{label:t(`bbm.upload.sort.date`),name:`media-library-upload-sort`,value:`date`,model:sortByAlpha?`alpha`:`date`,checked:!sortByAlpha,onChange:()=>setSortByAlpha(!1),"data-testid":`media-library-upload-sort-date`})]}),jsx(Dropzone,{multiple,accept:acceptedTypes(type??`embedder`),children:jsx(UploadFiles,{onFilesChange:(uploadedFiles,sourceFilesInfo)=>{sourceFilesInfoRef.current=sourceFilesInfo,setUploadedFiles(uploadedFiles),uploadedFiles.length?(setCancellable(uploadedFiles),setResultCounter(uploadedFiles.length),setResult(uploadedFiles)):(setCancellable([]),setResultCounter(void 0),setResult(void 0))},visibility})})]})};export{Upload};
|
|
@@ -1,22 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useRef } from "react";
|
|
3
|
-
import { useTranslation } from "react-i18next";
|
|
4
|
-
import { useMediaLibraryContext } from "../MediaLibraryContext.js";
|
|
5
|
-
import VideoRecorder from "../../VideoRecorder/VideoRecorder.js";
|
|
6
|
-
const Video = () => {
|
|
7
|
-
const {
|
|
8
|
-
appCode,
|
|
9
|
-
setResult,
|
|
10
|
-
setPreSuccess
|
|
11
|
-
} = useMediaLibraryContext(), {
|
|
12
|
-
t
|
|
13
|
-
} = useTranslation(), ref = useRef(null), handleRecordUpdated = (recordUrl) => {
|
|
14
|
-
recordUrl ? (setResult(recordUrl), setPreSuccess(() => ref.current.save)) : setResult();
|
|
15
|
-
}, handleError = (err) => {
|
|
16
|
-
console.error(err);
|
|
17
|
-
};
|
|
18
|
-
return /* @__PURE__ */ jsx(VideoRecorder, { ref, appCode, caption: t("bbm.video.caption"), onRecordUpdated: handleRecordUpdated, onError: handleError, hideSaveAction: !0 });
|
|
19
|
-
};
|
|
20
|
-
export {
|
|
21
|
-
Video
|
|
22
|
-
};
|
|
1
|
+
import{useMediaLibraryContext}from"../MediaLibraryContext.js";import VideoRecorder from"../../VideoRecorder/VideoRecorder.js";import{useRef}from"react";import{jsx}from"react/jsx-runtime";import{useTranslation}from"react-i18next";var Video=()=>{let{appCode,setResult,setPreSuccess}=useMediaLibraryContext(),{t}=useTranslation(),ref=useRef(null);return jsx(VideoRecorder,{ref,appCode,caption:t(`bbm.video.caption`),onRecordUpdated:recordUrl=>{recordUrl?(setResult(recordUrl),setPreSuccess(()=>ref.current.save)):setResult()},onError:err=>{console.error(err)},hideSaveAction:!0})};export{Video};
|
|
@@ -1,15 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import VideoEmbed from "../../VideoEmbed/VideoEmbed.js";
|
|
3
|
-
import { useMediaLibraryContext } from "../MediaLibraryContext.js";
|
|
4
|
-
const VideoEmbedder = () => {
|
|
5
|
-
const {
|
|
6
|
-
switchType,
|
|
7
|
-
setResult
|
|
8
|
-
} = useMediaLibraryContext();
|
|
9
|
-
return /* @__PURE__ */ jsx(VideoEmbed, { switchType, onSuccess: (ressource) => {
|
|
10
|
-
setResult(ressource);
|
|
11
|
-
} });
|
|
12
|
-
};
|
|
13
|
-
export {
|
|
14
|
-
VideoEmbedder
|
|
15
|
-
};
|
|
1
|
+
import{useMediaLibraryContext}from"../MediaLibraryContext.js";import VideoEmbed from"../../VideoEmbed/VideoEmbed.js";import{jsx}from"react/jsx-runtime";var VideoEmbedder=()=>{let{switchType,setResult}=useMediaLibraryContext();return jsx(VideoEmbed,{switchType,onSuccess:ressource=>{setResult(ressource)}})};export{VideoEmbedder};
|
|
@@ -1,31 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useMediaLibraryContext } from "../MediaLibraryContext.js";
|
|
3
|
-
import Workspace$1 from "../../Workspace/Workspace.js";
|
|
4
|
-
const Workspace = () => {
|
|
5
|
-
const {
|
|
6
|
-
type,
|
|
7
|
-
setResultCounter,
|
|
8
|
-
setResult,
|
|
9
|
-
multiple,
|
|
10
|
-
visibility
|
|
11
|
-
} = useMediaLibraryContext();
|
|
12
|
-
function getDocumentRoleFilter() {
|
|
13
|
-
switch (type) {
|
|
14
|
-
case "image":
|
|
15
|
-
return "img";
|
|
16
|
-
case "audio":
|
|
17
|
-
return "audio";
|
|
18
|
-
case "video":
|
|
19
|
-
return "video";
|
|
20
|
-
default:
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
function handleSelect(result) {
|
|
25
|
-
setResultCounter(result.length), result.length ? setResult(result) : setResult();
|
|
26
|
-
}
|
|
27
|
-
return /* @__PURE__ */ jsx(Workspace$1, { roles: getDocumentRoleFilter(), onSelect: handleSelect, multiple, className: "border rounded overflow-y-auto", defaultFolder: visibility, showPublicFolder: visibility === "public" });
|
|
28
|
-
};
|
|
29
|
-
export {
|
|
30
|
-
Workspace
|
|
31
|
-
};
|
|
1
|
+
import{useMediaLibraryContext}from"../MediaLibraryContext.js";import Workspace$1 from"../../Workspace/Workspace.js";import{jsx}from"react/jsx-runtime";var Workspace=()=>{let{type,setResultCounter,setResult,multiple,visibility}=useMediaLibraryContext();function getDocumentRoleFilter(){switch(type){case`image`:return`img`;case`audio`:return`audio`;case`video`:return`video`;default:return null}}function handleSelect(result){setResultCounter(result.length),result.length?setResult(result):setResult()}return jsx(Workspace$1,{roles:getDocumentRoleFilter(),onSelect:handleSelect,multiple,className:`border rounded overflow-y-auto`,defaultFolder:visibility,showPublicFolder:visibility===`public`})};export{Workspace};
|
|
@@ -1,21 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ExternalLink } from "./ExternalLink.js";
|
|
3
|
-
import { Iframe } from "./Iframe.js";
|
|
4
|
-
import { InternalLink } from "./InternalLink.js";
|
|
5
|
-
import { Upload } from "./Upload.js";
|
|
6
|
-
import { Video } from "./Video.js";
|
|
7
|
-
import { VideoEmbedder } from "./VideoEmbedder.js";
|
|
8
|
-
import { Workspace } from "./Workspace.js";
|
|
9
|
-
const InnerTabs = {
|
|
10
|
-
Audio,
|
|
11
|
-
Video,
|
|
12
|
-
Upload,
|
|
13
|
-
ExternalLink,
|
|
14
|
-
Workspace,
|
|
15
|
-
InternalLink,
|
|
16
|
-
Iframe,
|
|
17
|
-
VideoEmbedder
|
|
18
|
-
};
|
|
19
|
-
export {
|
|
20
|
-
InnerTabs
|
|
21
|
-
};
|
|
1
|
+
import{Audio}from"./Audio.js";import{ExternalLink}from"./ExternalLink.js";import{Iframe}from"./Iframe.js";import{InternalLink}from"./InternalLink.js";import{Upload}from"./Upload.js";import{Video}from"./Video.js";import{VideoEmbedder}from"./VideoEmbedder.js";import{Workspace}from"./Workspace.js";var InnerTabs={Audio,Video,Upload,ExternalLink,Workspace,InternalLink,Iframe,VideoEmbedder};export{InnerTabs};
|
|
@@ -1,75 +1 @@
|
|
|
1
|
-
import { jsx, jsxs }
|
|
2
|
-
import commonPlaceholder from "@edifice.io/bootstrap/dist/images/common/image-placeholder.png";
|
|
3
|
-
import { useTranslation } from "react-i18next";
|
|
4
|
-
import SvgIconClose from "../../icons/components/IconClose.js";
|
|
5
|
-
import SvgIconReset from "../../icons/components/IconReset.js";
|
|
6
|
-
import SvgIconSuccessOutline from "../../icons/components/IconSuccessOutline.js";
|
|
7
|
-
import SvgIconWand from "../../icons/components/IconWand.js";
|
|
8
|
-
import Tooltip from "../../../components/Tooltip/Tooltip.js";
|
|
9
|
-
import Loading from "../../../components/Loading/Loading.js";
|
|
10
|
-
import Button from "../../../components/Button/Button.js";
|
|
11
|
-
import Card from "../../../components/Card/Card.js";
|
|
12
|
-
import IconButton from "../../../components/Button/IconButton.js";
|
|
13
|
-
import Image from "../../../components/Image/Image.js";
|
|
14
|
-
const UploadCard = ({
|
|
15
|
-
item,
|
|
16
|
-
status = "idle",
|
|
17
|
-
isClickable = !1,
|
|
18
|
-
isSelectable = !1,
|
|
19
|
-
onDelete,
|
|
20
|
-
onEdit,
|
|
21
|
-
onRetry
|
|
22
|
-
}) => {
|
|
23
|
-
const {
|
|
24
|
-
t
|
|
25
|
-
} = useTranslation(), {
|
|
26
|
-
src,
|
|
27
|
-
name,
|
|
28
|
-
info
|
|
29
|
-
} = item, isIdle = status === "idle", isLoading = status === "loading", isSuccess = status === "success", isTypeImage = info == null ? void 0 : info.type.startsWith("image"), defaultMapping = {
|
|
30
|
-
text: "",
|
|
31
|
-
context: null,
|
|
32
|
-
image: /* @__PURE__ */ jsx("img", { src: commonPlaceholder, alt: "", width: "48", height: "48" })
|
|
33
|
-
}, mapping = {
|
|
34
|
-
error: {
|
|
35
|
-
text: /* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx("small", { className: "text-danger caption", children: t("tiptap.upload.error") }) }),
|
|
36
|
-
context: /* @__PURE__ */ jsx(Button, { leftIcon: /* @__PURE__ */ jsx(SvgIconReset, {}), variant: "ghost", color: "tertiary", onClick: onRetry, children: t("tiptap.upload.retry") }),
|
|
37
|
-
image: /* @__PURE__ */ jsx(Image, { alt: "", src: `${commonPlaceholder}/common/image-status-error.svg`, objectFit: "cover" })
|
|
38
|
-
},
|
|
39
|
-
idle: defaultMapping,
|
|
40
|
-
loading: {
|
|
41
|
-
text: "",
|
|
42
|
-
context: /* @__PURE__ */ jsx(Tooltip, { message: t("tiptap.tooltip.upload.loading"), placement: "top", children: /* @__PURE__ */ jsx(Loading, { isLoading: !0, loadingPosition: "left", className: "text-secondary" }) }),
|
|
43
|
-
image: defaultMapping.image
|
|
44
|
-
},
|
|
45
|
-
warning: defaultMapping,
|
|
46
|
-
success: {
|
|
47
|
-
text: /* @__PURE__ */ jsxs("em", { children: [
|
|
48
|
-
info == null ? void 0 : info.type,
|
|
49
|
-
" ",
|
|
50
|
-
(info == null ? void 0 : info.weight) && `- ${info.weight}`
|
|
51
|
-
] }),
|
|
52
|
-
context: /* @__PURE__ */ jsx(Tooltip, { message: t("tiptap.tooltip.upload.loaded"), placement: "top", children: /* @__PURE__ */ jsx(SvgIconSuccessOutline, { className: "text-success" }) }),
|
|
53
|
-
image: /* @__PURE__ */ jsx(Image, { alt: "", src: src ?? "", width: "48", objectFit: "cover", className: "rounded", style: {
|
|
54
|
-
aspectRatio: 1 / 1
|
|
55
|
-
} })
|
|
56
|
-
},
|
|
57
|
-
unknown: defaultMapping
|
|
58
|
-
}, canEditItem = () => isTypeImage && /* @__PURE__ */ jsx(Tooltip, { message: t("tiptap.tooltip.upload.edit"), placement: "top", children: /* @__PURE__ */ jsx(IconButton, { icon: /* @__PURE__ */ jsx(SvgIconWand, {}), variant: "ghost", "aria-label": t("tiptap.tooltip.upload.loading"), disabled: isLoading || !isSuccess, onClick: onEdit, color: "secondary" }) });
|
|
59
|
-
return /* @__PURE__ */ jsx(Card, { isClickable, isSelectable, className: "card-upload", children: /* @__PURE__ */ jsxs(Card.Body, { children: [
|
|
60
|
-
/* @__PURE__ */ jsx("div", { className: "card-image", children: mapping[status].image }),
|
|
61
|
-
/* @__PURE__ */ jsxs("div", { className: "text-truncate", children: [
|
|
62
|
-
/* @__PURE__ */ jsx(Card.Text, { children: name }),
|
|
63
|
-
/* @__PURE__ */ jsx(Card.Text, { className: "caption", children: mapping[status].text })
|
|
64
|
-
] }),
|
|
65
|
-
!isIdle && /* @__PURE__ */ jsx("div", { className: "ms-auto", children: /* @__PURE__ */ jsxs("div", { className: "d-flex align-items-center gap-12", children: [
|
|
66
|
-
mapping[status].context,
|
|
67
|
-
!isIdle && /* @__PURE__ */ jsx("div", { className: "vr" }),
|
|
68
|
-
canEditItem(),
|
|
69
|
-
/* @__PURE__ */ jsx(Tooltip, { message: t("tiptap.tooltip.upload.delete"), placement: "top", children: /* @__PURE__ */ jsx(IconButton, { icon: /* @__PURE__ */ jsx(SvgIconClose, {}), variant: "ghost", "aria-label": t("tiptap.tooltip.upload.delete"), color: "tertiary", onClick: onDelete }) })
|
|
70
|
-
] }) })
|
|
71
|
-
] }) });
|
|
72
|
-
};
|
|
73
|
-
export {
|
|
74
|
-
UploadCard as default
|
|
75
|
-
};
|
|
1
|
+
import SvgIconClose from"../../icons/components/IconClose.js";import SvgIconReset from"../../icons/components/IconReset.js";import SvgIconSuccessOutline from"../../icons/components/IconSuccessOutline.js";import SvgIconWand from"../../icons/components/IconWand.js";import Loading from"../../../components/Loading/Loading.js";import Button from"../../../components/Button/Button.js";import IconButton from"../../../components/Button/IconButton.js";import Tooltip from"../../../components/Tooltip/Tooltip.js";import Image from"../../../components/Image/Image.js";import Card from"../../../components/Card/Card.js";import{jsx,jsxs}from"react/jsx-runtime";import{useTranslation}from"react-i18next";import commonPlaceholder from"@edifice.io/bootstrap/dist/images/common/image-placeholder.png";var UploadCard=({item,status=`idle`,isClickable=!1,isSelectable=!1,onDelete,onEdit,onRetry})=>{let{t}=useTranslation(),{src,name,info}=item,isIdle=status===`idle`,isLoading=status===`loading`,isSuccess=status===`success`,isTypeImage=info?.type.startsWith(`image`),defaultMapping={text:``,context:null,image:jsx(`img`,{src:commonPlaceholder,alt:``,width:`48`,height:`48`})},mapping={error:{text:jsx(`strong`,{children:jsx(`small`,{className:`text-danger caption`,children:t(`tiptap.upload.error`)})}),context:jsx(Button,{leftIcon:jsx(SvgIconReset,{}),variant:`ghost`,color:`tertiary`,onClick:onRetry,children:t(`tiptap.upload.retry`)}),image:jsx(Image,{alt:``,src:`${commonPlaceholder}/common/image-status-error.svg`,objectFit:`cover`})},idle:defaultMapping,loading:{text:``,context:jsx(Tooltip,{message:t(`tiptap.tooltip.upload.loading`),placement:`top`,children:jsx(Loading,{isLoading:!0,loadingPosition:`left`,className:`text-secondary`})}),image:defaultMapping.image},warning:defaultMapping,success:{text:jsxs(`em`,{children:[info?.type,` `,info?.weight&&`- ${info.weight}`]}),context:jsx(Tooltip,{message:t(`tiptap.tooltip.upload.loaded`),placement:`top`,children:jsx(SvgIconSuccessOutline,{className:`text-success`})}),image:jsx(Image,{alt:``,src:src??``,width:`48`,objectFit:`cover`,className:`rounded`,style:{aspectRatio:1/1}})},unknown:defaultMapping};return jsx(Card,{isClickable,isSelectable,className:`card-upload`,children:jsxs(Card.Body,{children:[jsx(`div`,{className:`card-image`,children:mapping[status].image}),jsxs(`div`,{className:`text-truncate`,children:[jsx(Card.Text,{children:name}),jsx(Card.Text,{className:`caption`,children:mapping[status].text})]}),!isIdle&&jsx(`div`,{className:`ms-auto`,children:jsxs(`div`,{className:`d-flex align-items-center gap-12`,children:[mapping[status].context,!isIdle&&jsx(`div`,{className:`vr`}),isTypeImage&&jsx(Tooltip,{message:t(`tiptap.tooltip.upload.edit`),placement:`top`,children:jsx(IconButton,{icon:jsx(SvgIconWand,{}),variant:`ghost`,"aria-label":t(`tiptap.tooltip.upload.loading`),disabled:isLoading||!isSuccess,onClick:onEdit,color:`secondary`})}),jsx(Tooltip,{message:t(`tiptap.tooltip.upload.delete`),placement:`top`,children:jsx(IconButton,{icon:jsx(SvgIconClose,{}),variant:`ghost`,"aria-label":t(`tiptap.tooltip.upload.delete`),color:`tertiary`,onClick:onDelete})})]})})]})})};export{UploadCard as default};
|
|
@@ -1,56 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { customSize } from "@edifice.io/utilities";
|
|
3
|
-
import { useRef, useEffect, Suspense, lazy } from "react";
|
|
4
|
-
import useUploadFiles from "../../../hooks/useUploadFiles/useUploadFiles.js";
|
|
5
|
-
import UploadCard from "../UploadCard/UploadCard.js";
|
|
6
|
-
import LoadingScreen from "../../../components/LoadingScreen/LoadingScreen.js";
|
|
7
|
-
const ImageEditor = /* @__PURE__ */ lazy(async () => await import("../ImageEditor/components/ImageEditor.js")), UploadFiles = ({
|
|
8
|
-
onFilesChange,
|
|
9
|
-
visibility = "protected"
|
|
10
|
-
}) => {
|
|
11
|
-
const {
|
|
12
|
-
files,
|
|
13
|
-
uploadedFiles,
|
|
14
|
-
getUploadStatus,
|
|
15
|
-
uploadFile,
|
|
16
|
-
removeFile,
|
|
17
|
-
updateImage,
|
|
18
|
-
editingImage,
|
|
19
|
-
setEditingImage,
|
|
20
|
-
getUrl
|
|
21
|
-
} = useUploadFiles({
|
|
22
|
-
handleOnChange: onFilesChange,
|
|
23
|
-
application: "media-library",
|
|
24
|
-
visibility
|
|
25
|
-
}), fileBlobs = useRef(/* @__PURE__ */ new Map());
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
const blobs = fileBlobs.current;
|
|
28
|
-
return () => {
|
|
29
|
-
blobs.forEach((url) => URL.revokeObjectURL(url)), blobs.clear();
|
|
30
|
-
};
|
|
31
|
-
}, []);
|
|
32
|
-
const renderItem = (file) => {
|
|
33
|
-
const src = file.type.startsWith("image") ? fileBlobs.current.get(file.name) : "";
|
|
34
|
-
return fileBlobs.current.has(file.name) || fileBlobs.current.set(file.name, URL.createObjectURL(file)), {
|
|
35
|
-
name: file.name,
|
|
36
|
-
info: {
|
|
37
|
-
type: file.type,
|
|
38
|
-
weight: customSize(file.size || 0, 1)
|
|
39
|
-
},
|
|
40
|
-
src
|
|
41
|
-
};
|
|
42
|
-
}, handleRemoveFile = (file) => {
|
|
43
|
-
const blobUrl = fileBlobs.current.get(file.name);
|
|
44
|
-
blobUrl && (URL.revokeObjectURL(blobUrl), fileBlobs.current.delete(file.name)), removeFile(file);
|
|
45
|
-
};
|
|
46
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
47
|
-
files.map((file) => {
|
|
48
|
-
const resource = uploadedFiles.find((uploadedFile) => uploadedFile.name === file.name);
|
|
49
|
-
return /* @__PURE__ */ jsx(UploadCard, { status: getUploadStatus(file), item: renderItem(file), onEdit: () => setEditingImage(resource), onRetry: () => uploadFile(file), onDelete: () => handleRemoveFile(file) }, file.name);
|
|
50
|
-
}),
|
|
51
|
-
editingImage && /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(LoadingScreen, { position: !1 }), children: /* @__PURE__ */ jsx(ImageEditor, { altText: editingImage.alt, legend: editingImage.title, image: getUrl(editingImage, !0), isOpen: !!editingImage, onCancel: () => setEditingImage(void 0), onSave: updateImage, onError: console.error }) })
|
|
52
|
-
] });
|
|
53
|
-
};
|
|
54
|
-
export {
|
|
55
|
-
UploadFiles as default
|
|
56
|
-
};
|
|
1
|
+
import UploadCard from"../UploadCard/UploadCard.js";import useUploadFiles from"../../../hooks/useUploadFiles/useUploadFiles.js";import LoadingScreen from"../../../components/LoadingScreen/LoadingScreen.js";import{customSize}from"@edifice.io/utilities";import{Suspense,lazy,useEffect,useRef}from"react";import{Fragment as Fragment$1,jsx,jsxs}from"react/jsx-runtime";var ImageEditor=lazy(async()=>await import(`../ImageEditor/components/ImageEditor.js`)),UploadFiles=({onFilesChange,visibility=`protected`})=>{let{files,uploadedFiles,getUploadStatus,uploadFile,removeFile,updateImage,editingImage,setEditingImage,getUrl}=useUploadFiles({handleOnChange:onFilesChange,application:`media-library`,visibility}),fileBlobs=useRef(new Map);useEffect(()=>{let blobs=fileBlobs.current;return()=>{blobs.forEach(url=>URL.revokeObjectURL(url)),blobs.clear()}},[]);let renderItem=file=>{let src=file.type.startsWith(`image`)?fileBlobs.current.get(file.name):``;return fileBlobs.current.has(file.name)||fileBlobs.current.set(file.name,URL.createObjectURL(file)),{name:file.name,info:{type:file.type,weight:customSize(file.size||0,1)},src}},handleRemoveFile=file=>{let blobUrl=fileBlobs.current.get(file.name);blobUrl&&(URL.revokeObjectURL(blobUrl),fileBlobs.current.delete(file.name)),removeFile(file)};return jsxs(Fragment$1,{children:[files.map(file=>{let resource=uploadedFiles.find(uploadedFile=>uploadedFile.name===file.name);return jsx(UploadCard,{status:getUploadStatus(file),item:renderItem(file),onEdit:()=>setEditingImage(resource),onRetry:()=>uploadFile(file),onDelete:()=>handleRemoveFile(file)},file.name)}),editingImage&&jsx(Suspense,{fallback:jsx(LoadingScreen,{position:!1}),children:jsx(ImageEditor,{altText:editingImage.alt,legend:editingImage.title,image:getUrl(editingImage,!0),isOpen:!!editingImage,onCancel:()=>setEditingImage(void 0),onSave:updateImage,onError:console.error})})]})};export{UploadFiles as default};
|
|
@@ -1,76 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useState, useId, useEffect } from "react";
|
|
3
|
-
import { odeServices } from "@edifice.io/client";
|
|
4
|
-
import { useDebounce } from "@uidotdev/usehooks";
|
|
5
|
-
import { useTranslation } from "react-i18next";
|
|
6
|
-
import SvgIconArrowRight from "../../icons/components/IconArrowRight.js";
|
|
7
|
-
import SvgIconGlobe from "../../icons/components/IconGlobe.js";
|
|
8
|
-
import illuError from "@edifice.io/bootstrap/dist/images/emptyscreen/illu-error.svg";
|
|
9
|
-
import FormControl from "../../../components/Form/FormControl.js";
|
|
10
|
-
import Input from "../../../components/Input/Input.js";
|
|
11
|
-
import Image from "../../../components/Image/Image.js";
|
|
12
|
-
import EmptyScreen from "../../../components/EmptyScreen/EmptyScreen.js";
|
|
13
|
-
import Button from "../../../components/Button/Button.js";
|
|
14
|
-
const VideoEmbed = ({
|
|
15
|
-
switchType,
|
|
16
|
-
onSuccess
|
|
17
|
-
}) => {
|
|
18
|
-
const {
|
|
19
|
-
t
|
|
20
|
-
} = useTranslation(), [url, setUrl] = useState(), [embedVideo, setEmbedVideo] = useState(), [embedder, setEmbedder] = useState(void 0), [whiteListProvider, setWhiteListProvider] = useState(), debounceChangeUrl = useDebounce(url || "", 300), formControlId = useId();
|
|
21
|
-
useEffect(() => {
|
|
22
|
-
initWhiteListProvider();
|
|
23
|
-
}, []), useEffect(() => {
|
|
24
|
-
if (whiteListProvider && debounceChangeUrl) {
|
|
25
|
-
const embedderFound = odeServices.embedder().getProviderFromUrl(whiteListProvider, debounceChangeUrl);
|
|
26
|
-
if (embedderFound) {
|
|
27
|
-
setEmbedder(embedderFound);
|
|
28
|
-
const embedVideo2 = odeServices.embedder().getEmbedCodeForProvider(embedderFound, debounceChangeUrl);
|
|
29
|
-
setEmbedVideo(embedVideo2), onSuccess(embedVideo2);
|
|
30
|
-
} else
|
|
31
|
-
setEmbedder(void 0), onSuccess();
|
|
32
|
-
}
|
|
33
|
-
}, [debounceChangeUrl, whiteListProvider]);
|
|
34
|
-
const initWhiteListProvider = async () => {
|
|
35
|
-
const whiteListProviderResponse = await Promise.all([odeServices.embedder().getDefault(), odeServices.embedder().getCustom()]).then((results) => results.flat());
|
|
36
|
-
setWhiteListProvider(whiteListProviderResponse);
|
|
37
|
-
};
|
|
38
|
-
function handleUrlChange(event) {
|
|
39
|
-
const url2 = event.currentTarget.value;
|
|
40
|
-
setUrl(url2), onSuccess(url2 != null && url2.length ? url2 : void 0);
|
|
41
|
-
}
|
|
42
|
-
function handleSwitchToEmbedderClick() {
|
|
43
|
-
switchType == null || switchType("embedder");
|
|
44
|
-
}
|
|
45
|
-
const renderContent = () => debounceChangeUrl ? embedder ? /* @__PURE__ */ jsxs("div", { className: "mx-auto mt-16", children: [
|
|
46
|
-
/* @__PURE__ */ jsxs("div", { className: "video-embed-provider d-flex align-items-center", children: [
|
|
47
|
-
/* @__PURE__ */ jsx(Image, { src: embedder.logo, alt: "Logo " + embedder.displayName, className: "video-embed-provider-logo" }),
|
|
48
|
-
embedder.displayName
|
|
49
|
-
] }),
|
|
50
|
-
embedVideo && /* @__PURE__ */ jsx("div", { className: "video-embed-preview mt-12", dangerouslySetInnerHTML: {
|
|
51
|
-
__html: embedVideo
|
|
52
|
-
} })
|
|
53
|
-
] }) : /* @__PURE__ */ jsxs("div", { className: "d-flex flex-column align-items-center m-16", children: [
|
|
54
|
-
/* @__PURE__ */ jsx(EmptyScreen, { imageSrc: illuError, title: t("bbm.video.previewError.title"), text: t("bbm.video.previewError.text") }),
|
|
55
|
-
switchType && /* @__PURE__ */ jsxs(Button, { variant: "ghost", color: "primary", onClick: handleSwitchToEmbedderClick, className: "align-items-start mt-16", children: [
|
|
56
|
-
t("bbm.video.useEmbedCode"),
|
|
57
|
-
" ",
|
|
58
|
-
/* @__PURE__ */ jsx(SvgIconArrowRight, {})
|
|
59
|
-
] })
|
|
60
|
-
] }) : switchType && /* @__PURE__ */ jsx("div", { className: "d-flex my-16 align-items-start", children: /* @__PURE__ */ jsxs(Button, { variant: "ghost", color: "primary", onClick: handleSwitchToEmbedderClick, className: "align-items-start", children: [
|
|
61
|
-
t("bbm.video.useEmbedCode"),
|
|
62
|
-
" ",
|
|
63
|
-
/* @__PURE__ */ jsx(SvgIconArrowRight, {})
|
|
64
|
-
] }) });
|
|
65
|
-
return /* @__PURE__ */ jsxs("div", { className: "d-flex flex-column flex-fill video-embed", children: [
|
|
66
|
-
/* @__PURE__ */ jsxs("div", { className: "mb-8 d-flex", children: [
|
|
67
|
-
/* @__PURE__ */ jsx(SvgIconGlobe, { className: "me-8" }),
|
|
68
|
-
t("bbm.video.url.title")
|
|
69
|
-
] }),
|
|
70
|
-
/* @__PURE__ */ jsx(FormControl, { id: formControlId, children: /* @__PURE__ */ jsx(Input, { size: "md", type: "text", placeholder: t("bbm.video.url.placeholder"), onChange: handleUrlChange }) }),
|
|
71
|
-
/* @__PURE__ */ jsx(Fragment, { children: renderContent() })
|
|
72
|
-
] });
|
|
73
|
-
};
|
|
74
|
-
export {
|
|
75
|
-
VideoEmbed as default
|
|
76
|
-
};
|
|
1
|
+
import SvgIconArrowRight from"../../icons/components/IconArrowRight.js";import SvgIconGlobe from"../../icons/components/IconGlobe.js";import Button from"../../../components/Button/Button.js";import Image from"../../../components/Image/Image.js";import Input from"../../../components/Input/Input.js";import FormControl from"../../../components/Form/FormControl.js";import EmptyScreen from"../../../components/EmptyScreen/EmptyScreen.js";import{useEffect,useId,useState}from"react";import{Fragment as Fragment$1,jsx,jsxs}from"react/jsx-runtime";import{useTranslation}from"react-i18next";import{odeServices}from"@edifice.io/client";import{useDebounce}from"@uidotdev/usehooks";import illuError from"@edifice.io/bootstrap/dist/images/emptyscreen/illu-error.svg";var VideoEmbed=({switchType,onSuccess})=>{let{t}=useTranslation(),[url,setUrl]=useState(),[embedVideo,setEmbedVideo]=useState(),[embedder,setEmbedder]=useState(void 0),[whiteListProvider,setWhiteListProvider]=useState(),debounceChangeUrl=useDebounce(url||``,300),formControlId=useId();useEffect(()=>{initWhiteListProvider()},[]),useEffect(()=>{if(whiteListProvider&&debounceChangeUrl){let embedderFound=odeServices.embedder().getProviderFromUrl(whiteListProvider,debounceChangeUrl);if(embedderFound){setEmbedder(embedderFound);let embedVideo=odeServices.embedder().getEmbedCodeForProvider(embedderFound,debounceChangeUrl);setEmbedVideo(embedVideo),onSuccess(embedVideo)}else setEmbedder(void 0),onSuccess()}},[debounceChangeUrl,whiteListProvider]);let initWhiteListProvider=async()=>{setWhiteListProvider(await Promise.all([odeServices.embedder().getDefault(),odeServices.embedder().getCustom()]).then(results=>results.flat()))};function handleUrlChange(event){let url=event.currentTarget.value;setUrl(url),onSuccess(url?.length?url:void 0)}function handleSwitchToEmbedderClick(){switchType?.(`embedder`)}return jsxs(`div`,{className:`d-flex flex-column flex-fill video-embed`,children:[jsxs(`div`,{className:`mb-8 d-flex`,children:[jsx(SvgIconGlobe,{className:`me-8`}),t(`bbm.video.url.title`)]}),jsx(FormControl,{id:formControlId,children:jsx(Input,{size:`md`,type:`text`,placeholder:t(`bbm.video.url.placeholder`),onChange:handleUrlChange})}),jsx(Fragment$1,{children:debounceChangeUrl?embedder?jsxs(`div`,{className:`mx-auto mt-16`,children:[jsxs(`div`,{className:`video-embed-provider d-flex align-items-center`,children:[jsx(Image,{src:embedder.logo,alt:`Logo `+embedder.displayName,className:`video-embed-provider-logo`}),embedder.displayName]}),embedVideo&&jsx(`div`,{className:`video-embed-preview mt-12`,dangerouslySetInnerHTML:{__html:embedVideo}})]}):jsxs(`div`,{className:`d-flex flex-column align-items-center m-16`,children:[jsx(EmptyScreen,{imageSrc:illuError,title:t(`bbm.video.previewError.title`),text:t(`bbm.video.previewError.text`)}),switchType&&jsxs(Button,{variant:`ghost`,color:`primary`,onClick:handleSwitchToEmbedderClick,className:`align-items-start mt-16`,children:[t(`bbm.video.useEmbedCode`),` `,jsx(SvgIconArrowRight,{})]})]}):switchType&&jsx(`div`,{className:`d-flex my-16 align-items-start`,children:jsxs(Button,{variant:`ghost`,color:`primary`,onClick:handleSwitchToEmbedderClick,className:`align-items-start`,children:[t(`bbm.video.useEmbedCode`),` `,jsx(SvgIconArrowRight,{})]})})})]})};export{VideoEmbed as default};
|
|
@@ -1,156 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { forwardRef, useState, useRef, useImperativeHandle, useEffect, useCallback } from "react";
|
|
3
|
-
import { odeServices } from "@edifice.io/client";
|
|
4
|
-
import { getBestSupportedMimeType, convertMsToMS } from "@edifice.io/utilities";
|
|
5
|
-
import { useTranslation } from "react-i18next";
|
|
6
|
-
import SvgIconRecordVideo from "../../icons/components/IconRecordVideo.js";
|
|
7
|
-
import SvgIconRecord from "../../icons/components/IconRecord.js";
|
|
8
|
-
import { useCameras } from "./useCameras.js";
|
|
9
|
-
import { VideoRecorderToolbar } from "./VideoRecorderToolbar.js";
|
|
10
|
-
import useUpload from "../../../hooks/useUpload/useUpload.js";
|
|
11
|
-
import FormControl from "../../../components/Form/FormControl.js";
|
|
12
|
-
import Label from "../../../components/Label/Label.js";
|
|
13
|
-
import Select from "../../../components/Select/Select.js";
|
|
14
|
-
import LoadingScreen from "../../../components/LoadingScreen/LoadingScreen.js";
|
|
15
|
-
const VideoRecorder = /* @__PURE__ */ forwardRef(({
|
|
16
|
-
appCode,
|
|
17
|
-
caption,
|
|
18
|
-
onSuccess,
|
|
19
|
-
onError,
|
|
20
|
-
onRecordUpdated,
|
|
21
|
-
hideSaveAction = !1
|
|
22
|
-
}, ref) => {
|
|
23
|
-
const {
|
|
24
|
-
inputDevices,
|
|
25
|
-
setPreferedDevice,
|
|
26
|
-
restartStream,
|
|
27
|
-
stream
|
|
28
|
-
} = useCameras(), [maxDuration, setMaxDuration] = useState(18e4), [recording, setRecording] = useState(!1), [recorded, setRecorded] = useState(!1), [playing, setPlaying] = useState(!1), [saving, setSaving] = useState(!1), [saved, setSaved] = useState(!1), [mimeType, setMimeType] = useState(""), [recordedChunks, setRecordedChunks] = useState([]), [recordedVideo, setRecordedVideo] = useState(), [recordedTime, setRecordedTime] = useState(0), [playedTime, setPlayedTime] = useState(0), videoRef = useRef(null), recorderRef = useRef(null), {
|
|
29
|
-
uploadBlob
|
|
30
|
-
} = useUpload(void 0, appCode);
|
|
31
|
-
useImperativeHandle(ref, () => ({
|
|
32
|
-
save: handleSave
|
|
33
|
-
}));
|
|
34
|
-
const {
|
|
35
|
-
t
|
|
36
|
-
} = useTranslation();
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
initMaxDuration();
|
|
39
|
-
}, []);
|
|
40
|
-
async function initMaxDuration() {
|
|
41
|
-
try {
|
|
42
|
-
const videoConfResponse = await odeServices.video().getVideoConf();
|
|
43
|
-
setMaxDuration(videoConfResponse.maxDuration * 60 * 1e3);
|
|
44
|
-
} catch {
|
|
45
|
-
setMaxDuration(3 * 60 * 1e3);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
try {
|
|
50
|
-
videoRef.current && (videoRef.current.src && (window.URL.revokeObjectURL(videoRef.current.src), videoRef.current.src = ""), videoRef.current.srcObject instanceof MediaStream && (videoRef.current.srcObject = null), stream && (videoRef.current.srcObject = stream, videoRef.current.autoplay = !0, videoRef.current.volume = 1, videoRef.current.muted = !0, videoRef.current.load()));
|
|
51
|
-
} catch (err) {
|
|
52
|
-
console.error(err);
|
|
53
|
-
}
|
|
54
|
-
}, [stream]), useEffect(() => {
|
|
55
|
-
if (recordedChunks.length && !recording && videoRef.current) {
|
|
56
|
-
const finalVideo = new Blob(recordedChunks, {
|
|
57
|
-
type: mimeType
|
|
58
|
-
});
|
|
59
|
-
if (setRecordedVideo(finalVideo), onRecordUpdated) {
|
|
60
|
-
const videoUrl = window.URL.createObjectURL(finalVideo);
|
|
61
|
-
onRecordUpdated(videoUrl);
|
|
62
|
-
}
|
|
63
|
-
videoRef.current.autoplay = !1, videoRef.current.srcObject = null, videoRef.current.src = window.URL.createObjectURL(finalVideo);
|
|
64
|
-
}
|
|
65
|
-
}, [recording, recordedChunks]), useEffect(() => {
|
|
66
|
-
if (recording) {
|
|
67
|
-
const startedAt = Date.now(), timer = window.setInterval(
|
|
68
|
-
// Compute exact elapsed time by diffing the start time.
|
|
69
|
-
() => setRecordedTime(Date.now() - startedAt),
|
|
70
|
-
500
|
|
71
|
-
);
|
|
72
|
-
return () => {
|
|
73
|
-
window.clearInterval(timer);
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
}, [recording]), useEffect(() => {
|
|
77
|
-
if (playing) {
|
|
78
|
-
const timer = window.setInterval(() => setPlayedTime((prev) => prev + 500), 500);
|
|
79
|
-
return () => {
|
|
80
|
-
window.clearInterval(timer);
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
}, [playing]);
|
|
84
|
-
const handleRecord = useCallback(() => {
|
|
85
|
-
setRecording(!0), videoRef && videoRef.current && (videoRef.current.muted = !0);
|
|
86
|
-
const mimeType2 = getBestSupportedMimeType();
|
|
87
|
-
setMimeType(mimeType2), stream && (recorderRef.current = new MediaRecorder(stream, {
|
|
88
|
-
mimeType: mimeType2
|
|
89
|
-
}), recorderRef.current.ondataavailable = ({
|
|
90
|
-
data
|
|
91
|
-
}) => {
|
|
92
|
-
data.size > 0 && setRecordedChunks((prev) => [...prev, data]);
|
|
93
|
-
}, recorderRef.current.onerror = (event) => console.error(event), recorderRef.current.start(1e3));
|
|
94
|
-
}, [stream]), handleStop = useCallback(() => {
|
|
95
|
-
var _a;
|
|
96
|
-
setRecording(!1), setRecorded(!0), ((_a = recorderRef.current) == null ? void 0 : _a.state) === "recording" && (recorderRef.current.requestData(), recorderRef.current.stop());
|
|
97
|
-
}, [recorderRef]), handlePlayPause = useCallback(() => {
|
|
98
|
-
var _a, _b;
|
|
99
|
-
videoRef && videoRef.current && (videoRef.current.muted = !1), playing ? ((_b = videoRef == null ? void 0 : videoRef.current) == null || _b.pause(), setPlaying(!1)) : ((_a = videoRef == null ? void 0 : videoRef.current) == null || _a.play(), setPlaying(!0));
|
|
100
|
-
}, [playing]), handleReset = () => {
|
|
101
|
-
setRecorded(!1), setRecording(!1), setPlaying(!1), setSaved(!1), setRecordedTime(0), setRecordedChunks([]), setRecordedVideo(void 0), restartStream(), onRecordUpdated && onRecordUpdated();
|
|
102
|
-
}, handleSave = async () => {
|
|
103
|
-
var _a;
|
|
104
|
-
if ((_a = videoRef == null ? void 0 : videoRef.current) == null || _a.pause(), setSaving(!0), !recordedVideo) {
|
|
105
|
-
console.error("Error while saving video: recorded video is undefined.");
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
const resVideo = await uploadBlob(recordedVideo, {
|
|
109
|
-
duration: recordedTime
|
|
110
|
-
});
|
|
111
|
-
if (resVideo != null)
|
|
112
|
-
return onSuccess == null || onSuccess([resVideo]), setSaving(!1), setSaved(!0), [resVideo];
|
|
113
|
-
onError("Error while uploading video"), setSaving(!1), setSaved(!0);
|
|
114
|
-
}, handleEnded = () => {
|
|
115
|
-
setPlaying(!1), setPlayedTime(0), videoRef.current && (videoRef.current.currentTime = 0);
|
|
116
|
-
}, handleInputDeviceChange = (option) => {
|
|
117
|
-
var _a;
|
|
118
|
-
const selectedDevice = inputDevices.find((inputDevice) => inputDevice.label === option);
|
|
119
|
-
((_a = recorderRef.current) == null ? void 0 : _a.state) === "recording" && (recorderRef.current.requestData(), recorderRef.current.stop()), setPreferedDevice(selectedDevice);
|
|
120
|
-
};
|
|
121
|
-
return useEffect(() => {
|
|
122
|
-
recordedTime >= maxDuration && handleStop();
|
|
123
|
-
}, [recordedTime, handleStop]), /* @__PURE__ */ jsxs("div", { className: "video-recorder d-flex flex-fill flex-column align-items-center pb-8", children: [
|
|
124
|
-
/* @__PURE__ */ jsx("div", { className: "video-recorder-caption d-none d-md-block", children: caption }),
|
|
125
|
-
inputDevices.length > 1 && /* @__PURE__ */ jsx("div", { className: "video-recorder-devices mb-12", children: /* @__PURE__ */ jsxs(FormControl, { id: "selectInputDevice", children: [
|
|
126
|
-
/* @__PURE__ */ jsx(Label, { className: "d-none d-md-block", children: t("bbm.video.record.select.devices.label") }),
|
|
127
|
-
/* @__PURE__ */ jsx(Select, { placeholderOption: t("bbm.video.record.select.devices.placeholder"), options: inputDevices.map((videoInputDevice) => videoInputDevice.label), onValueChange: handleInputDeviceChange })
|
|
128
|
-
] }) }),
|
|
129
|
-
/* @__PURE__ */ jsxs("div", { className: "video-recorder-video-container position-relative align-self-stretch", children: [
|
|
130
|
-
/* @__PURE__ */ jsx("video", { ref: videoRef, playsInline: !0, autoPlay: !0, controls: !1, muted: !0, onEnded: handleEnded, className: "rounded", children: /* @__PURE__ */ jsx("track", { default: !0, kind: "captions", srcLang: "fr", src: "" }) }),
|
|
131
|
-
(recording || recorded) && /* @__PURE__ */ jsxs("div", { className: "video-recorder-time d-flex align-items-center font-monospace fs-6 text-bg-dark rounded", children: [
|
|
132
|
-
recording && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
133
|
-
/* @__PURE__ */ jsx(SvgIconRecord, { width: 12, height: 12, color: "red", className: "me-4" }),
|
|
134
|
-
/* @__PURE__ */ jsxs("span", { children: [
|
|
135
|
-
convertMsToMS(recordedTime),
|
|
136
|
-
"/",
|
|
137
|
-
convertMsToMS(maxDuration)
|
|
138
|
-
] })
|
|
139
|
-
] }),
|
|
140
|
-
recorded && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
141
|
-
/* @__PURE__ */ jsx(SvgIconRecordVideo, { width: 14, height: 14, className: "me-4" }),
|
|
142
|
-
/* @__PURE__ */ jsxs("span", { children: [
|
|
143
|
-
convertMsToMS(playedTime),
|
|
144
|
-
"/",
|
|
145
|
-
convertMsToMS(recordedTime)
|
|
146
|
-
] })
|
|
147
|
-
] })
|
|
148
|
-
] }),
|
|
149
|
-
stream && /* @__PURE__ */ jsx(VideoRecorderToolbar, { playing, recording, recorded, saving, saved, hideSaveAction, handleRecord, handleStop, handlePlayPause, handleReset, handleSave })
|
|
150
|
-
] }),
|
|
151
|
-
saving && /* @__PURE__ */ jsx(LoadingScreen, { position: !1, caption: t("bbm.video.save.loader.caption") })
|
|
152
|
-
] });
|
|
153
|
-
});
|
|
154
|
-
export {
|
|
155
|
-
VideoRecorder as default
|
|
156
|
-
};
|
|
1
|
+
import SvgIconRecordVideo from"../../icons/components/IconRecordVideo.js";import SvgIconRecord from"../../icons/components/IconRecord.js";import{useCameras}from"./useCameras.js";import{VideoRecorderToolbar}from"./VideoRecorderToolbar.js";import useUpload from"../../../hooks/useUpload/useUpload.js";import Label from"../../../components/Label/Label.js";import FormControl from"../../../components/Form/FormControl.js";import LoadingScreen from"../../../components/LoadingScreen/LoadingScreen.js";import Select from"../../../components/Select/Select.js";import{convertMsToMS,getBestSupportedMimeType}from"@edifice.io/utilities";import{forwardRef,useCallback,useEffect,useImperativeHandle,useRef,useState}from"react";import{Fragment as Fragment$1,jsx,jsxs}from"react/jsx-runtime";import{useTranslation}from"react-i18next";import{odeServices}from"@edifice.io/client";var VideoRecorder=forwardRef(({appCode,caption,onSuccess,onError,onRecordUpdated,hideSaveAction=!1},ref)=>{let{inputDevices,setPreferedDevice,restartStream,stream}=useCameras(),[maxDuration,setMaxDuration]=useState(18e4),[recording,setRecording]=useState(!1),[recorded,setRecorded]=useState(!1),[playing,setPlaying]=useState(!1),[saving,setSaving]=useState(!1),[saved,setSaved]=useState(!1),[mimeType,setMimeType]=useState(``),[recordedChunks,setRecordedChunks]=useState([]),[recordedVideo,setRecordedVideo]=useState(),[recordedTime,setRecordedTime]=useState(0),[playedTime,setPlayedTime]=useState(0),videoRef=useRef(null),recorderRef=useRef(null),{uploadBlob}=useUpload(void 0,appCode);useImperativeHandle(ref,()=>({save:handleSave}));let{t}=useTranslation();useEffect(()=>{initMaxDuration()},[]);async function initMaxDuration(){try{setMaxDuration((await odeServices.video().getVideoConf()).maxDuration*60*1e3)}catch{setMaxDuration(180*1e3)}}useEffect(()=>{try{videoRef.current&&(videoRef.current.src&&(window.URL.revokeObjectURL(videoRef.current.src),videoRef.current.src=``),videoRef.current.srcObject instanceof MediaStream&&(videoRef.current.srcObject=null),stream&&(videoRef.current.srcObject=stream,videoRef.current.autoplay=!0,videoRef.current.volume=1,videoRef.current.muted=!0,videoRef.current.load()))}catch(err){console.error(err)}},[stream]),useEffect(()=>{if(recordedChunks.length&&!recording&&videoRef.current){let finalVideo=new Blob(recordedChunks,{type:mimeType});setRecordedVideo(finalVideo),onRecordUpdated&&onRecordUpdated(window.URL.createObjectURL(finalVideo)),videoRef.current.autoplay=!1,videoRef.current.srcObject=null,videoRef.current.src=window.URL.createObjectURL(finalVideo)}},[recording,recordedChunks]),useEffect(()=>{if(recording){let startedAt=Date.now(),timer=window.setInterval(()=>setRecordedTime(Date.now()-startedAt),500);return()=>{window.clearInterval(timer)}}},[recording]),useEffect(()=>{if(playing){let timer=window.setInterval(()=>setPlayedTime(prev=>prev+500),500);return()=>{window.clearInterval(timer)}}},[playing]);let handleRecord=useCallback(()=>{setRecording(!0),videoRef&&videoRef.current&&(videoRef.current.muted=!0);let mimeType=getBestSupportedMimeType();setMimeType(mimeType),stream&&(recorderRef.current=new MediaRecorder(stream,{mimeType}),recorderRef.current.ondataavailable=({data})=>{data.size>0&&setRecordedChunks(prev=>[...prev,data])},recorderRef.current.onerror=event=>console.error(event),recorderRef.current.start(1e3))},[stream]),handleStop=useCallback(()=>{setRecording(!1),setRecorded(!0),recorderRef.current?.state===`recording`&&(recorderRef.current.requestData(),recorderRef.current.stop())},[recorderRef]),handlePlayPause=useCallback(()=>{videoRef&&videoRef.current&&(videoRef.current.muted=!1),playing?(videoRef?.current?.pause(),setPlaying(!1)):(videoRef?.current?.play(),setPlaying(!0))},[playing]),handleReset=()=>{setRecorded(!1),setRecording(!1),setPlaying(!1),setSaved(!1),setRecordedTime(0),setRecordedChunks([]),setRecordedVideo(void 0),restartStream(),onRecordUpdated&&onRecordUpdated()},handleSave=async()=>{if(videoRef?.current?.pause(),setSaving(!0),!recordedVideo){console.error(`Error while saving video: recorded video is undefined.`);return}let resVideo=await uploadBlob(recordedVideo,{duration:recordedTime});if(resVideo!=null)return onSuccess?.([resVideo]),setSaving(!1),setSaved(!0),[resVideo];onError(`Error while uploading video`),setSaving(!1),setSaved(!0)};return useEffect(()=>{recordedTime>=maxDuration&&handleStop()},[recordedTime,handleStop]),jsxs(`div`,{className:`video-recorder d-flex flex-fill flex-column align-items-center pb-8`,children:[jsx(`div`,{className:`video-recorder-caption d-none d-md-block`,children:caption}),inputDevices.length>1&&jsx(`div`,{className:`video-recorder-devices mb-12`,children:jsxs(FormControl,{id:`selectInputDevice`,children:[jsx(Label,{className:`d-none d-md-block`,children:t(`bbm.video.record.select.devices.label`)}),jsx(Select,{placeholderOption:t(`bbm.video.record.select.devices.placeholder`),options:inputDevices.map(videoInputDevice=>videoInputDevice.label),onValueChange:option=>{let selectedDevice=inputDevices.find(inputDevice=>inputDevice.label===option);recorderRef.current?.state===`recording`&&(recorderRef.current.requestData(),recorderRef.current.stop()),setPreferedDevice(selectedDevice)}})]})}),jsxs(`div`,{className:`video-recorder-video-container position-relative align-self-stretch`,children:[jsx(`video`,{ref:videoRef,playsInline:!0,autoPlay:!0,controls:!1,muted:!0,onEnded:()=>{setPlaying(!1),setPlayedTime(0),videoRef.current&&(videoRef.current.currentTime=0)},className:`rounded`,children:jsx(`track`,{default:!0,kind:`captions`,srcLang:`fr`,src:``})}),(recording||recorded)&&jsxs(`div`,{className:`video-recorder-time d-flex align-items-center font-monospace fs-6 text-bg-dark rounded`,children:[recording&&jsxs(Fragment$1,{children:[jsx(SvgIconRecord,{width:12,height:12,color:`red`,className:`me-4`}),jsxs(`span`,{children:[convertMsToMS(recordedTime),`/`,convertMsToMS(maxDuration)]})]}),recorded&&jsxs(Fragment$1,{children:[jsx(SvgIconRecordVideo,{width:14,height:14,className:`me-4`}),jsxs(`span`,{children:[convertMsToMS(playedTime),`/`,convertMsToMS(recordedTime)]})]})]}),stream&&jsx(VideoRecorderToolbar,{playing,recording,recorded,saving,saved,hideSaveAction,handleRecord,handleStop,handlePlayPause,handleReset,handleSave})]}),saving&&jsx(LoadingScreen,{position:!1,caption:t(`bbm.video.save.loader.caption`)})]})});export{VideoRecorder as default};
|