@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,198 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { sortableKeyboardCoordinates, arrayMove } from "@dnd-kit/sortable";
|
|
3
|
-
import { CSS } from "@dnd-kit/utilities";
|
|
4
|
-
import { useState, useEffect, useMemo } from "react";
|
|
5
|
-
import { flattenTree, getProjection, getActiveAndOverNodes, determineNewParentId, getIndicesToUpdate, updateParentIds, buildTree, generateUpdateData } from "../utilities/tree-sortable.js";
|
|
6
|
-
const useTreeSortable = ({
|
|
7
|
-
nodes,
|
|
8
|
-
onSortable,
|
|
9
|
-
handleCollapseNode
|
|
10
|
-
}) => {
|
|
11
|
-
const [items, setItems] = useState(() => nodes), [activeId, setActiveId] = useState(null), [overId, setOverId] = useState(null), [offsetLeft, setOffsetLeft] = useState(0), [currentPosition, setCurrentPosition] = useState(null);
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
setItems(nodes);
|
|
14
|
-
}, [nodes]);
|
|
15
|
-
const activationConstraint = {
|
|
16
|
-
delay: 200,
|
|
17
|
-
tolerance: 5
|
|
18
|
-
}, indicator = !1, indentationWidth = 64, flattenedTree = useMemo(() => flattenTree(items, null), [items]), activeItem = activeId ? flattenedTree.find(({
|
|
19
|
-
id
|
|
20
|
-
}) => id === activeId) : null, projected = activeId && overId ? getProjection(flattenedTree, activeId, overId, offsetLeft, indentationWidth) : null;
|
|
21
|
-
function handleDragStart(event) {
|
|
22
|
-
const {
|
|
23
|
-
active
|
|
24
|
-
} = event, {
|
|
25
|
-
activeNode
|
|
26
|
-
} = getActiveAndOverNodes(flattenedTree, active.id);
|
|
27
|
-
activeNode.parentId || handleCollapseNode(activeNode.id), setActiveId(active.id), setOverId(active.id);
|
|
28
|
-
const activeItem2 = flattenedTree.find(({
|
|
29
|
-
id
|
|
30
|
-
}) => id === activeId);
|
|
31
|
-
activeItem2 && setCurrentPosition({
|
|
32
|
-
parentId: activeItem2.parentId,
|
|
33
|
-
overId: activeId
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
function handleDragMove({
|
|
37
|
-
delta
|
|
38
|
-
}) {
|
|
39
|
-
setOffsetLeft(delta.x);
|
|
40
|
-
}
|
|
41
|
-
function handleDragOver(event) {
|
|
42
|
-
const {
|
|
43
|
-
over
|
|
44
|
-
} = event;
|
|
45
|
-
setOverId(over == null ? void 0 : over.id);
|
|
46
|
-
}
|
|
47
|
-
function handleDragEnd(event) {
|
|
48
|
-
const {
|
|
49
|
-
active,
|
|
50
|
-
over
|
|
51
|
-
} = event, {
|
|
52
|
-
activeNode,
|
|
53
|
-
activeNodeIndex,
|
|
54
|
-
overNode,
|
|
55
|
-
overNodeIndex
|
|
56
|
-
} = getActiveAndOverNodes(flattenedTree, active.id, over == null ? void 0 : over.id), newParentId = determineNewParentId(active, over, activeNode, overNode, projected), indicesToUpdate = getIndicesToUpdate(activeNode, activeNodeIndex, flattenedTree, projected);
|
|
57
|
-
updateParentIds(flattenedTree, indicesToUpdate, newParentId);
|
|
58
|
-
const updatedFlattenedTree = arrayMove(flattenedTree, activeNodeIndex, overNodeIndex), updatedTree = buildTree(updatedFlattenedTree), {
|
|
59
|
-
updateArray
|
|
60
|
-
} = generateUpdateData(updatedFlattenedTree, updatedTree);
|
|
61
|
-
setItems(updatedTree), setActiveId(null), setOverId(null), onSortable(updateArray);
|
|
62
|
-
}
|
|
63
|
-
const sortedIds = useMemo(() => flattenedTree.map(({
|
|
64
|
-
id
|
|
65
|
-
}) => id), [flattenedTree]);
|
|
66
|
-
function getMovementAnnouncement(eventName, activeId2, overId2) {
|
|
67
|
-
if (overId2 && projected) {
|
|
68
|
-
if (eventName !== "onDragEnd") {
|
|
69
|
-
if (currentPosition && projected.parentId === currentPosition.parentId && overId2 === currentPosition.overId)
|
|
70
|
-
return;
|
|
71
|
-
setCurrentPosition({
|
|
72
|
-
parentId: projected.parentId,
|
|
73
|
-
overId: overId2
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
const clonedItems = JSON.parse(JSON.stringify(flattenTree(items, null, 0))), overIndex = clonedItems.findIndex(({
|
|
77
|
-
id
|
|
78
|
-
}) => id === overId2), activeIndex = clonedItems.findIndex(({
|
|
79
|
-
id
|
|
80
|
-
}) => id === activeId2), sortedItems = arrayMove(clonedItems, activeIndex, overIndex), previousItem = sortedItems[overIndex - 1];
|
|
81
|
-
let announcement;
|
|
82
|
-
const movedVerb = eventName === "onDragEnd" ? "dropped" : "moved", nestedVerb = eventName === "onDragEnd" ? "dropped" : "nested";
|
|
83
|
-
if (previousItem)
|
|
84
|
-
if (projected.depth > previousItem.depth)
|
|
85
|
-
announcement = `${activeId2} was ${nestedVerb} under ${previousItem.id}.`;
|
|
86
|
-
else {
|
|
87
|
-
let previousSibling = previousItem;
|
|
88
|
-
for (; previousSibling && projected.depth < previousSibling.depth; ) {
|
|
89
|
-
const parentId = previousSibling.parentId;
|
|
90
|
-
previousSibling = sortedItems.find(({
|
|
91
|
-
id
|
|
92
|
-
}) => id === parentId);
|
|
93
|
-
}
|
|
94
|
-
previousSibling && (announcement = `${activeId2} was ${movedVerb} after ${previousSibling.id}.`);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
const nextItem = sortedItems[overIndex + 1];
|
|
98
|
-
nextItem ? announcement = `${activeId2} was ${movedVerb} before ${nextItem.id}.` : announcement = `${activeId2} was ${movedVerb} as the only item in the list.`;
|
|
99
|
-
}
|
|
100
|
-
return announcement;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
const announcements = {
|
|
104
|
-
onDragStart({
|
|
105
|
-
active
|
|
106
|
-
}) {
|
|
107
|
-
return `Picked up ${active.id}.`;
|
|
108
|
-
},
|
|
109
|
-
onDragMove({
|
|
110
|
-
active,
|
|
111
|
-
over
|
|
112
|
-
}) {
|
|
113
|
-
return getMovementAnnouncement("onDragMove", active.id, over == null ? void 0 : over.id);
|
|
114
|
-
},
|
|
115
|
-
onDragOver({
|
|
116
|
-
active,
|
|
117
|
-
over
|
|
118
|
-
}) {
|
|
119
|
-
return getMovementAnnouncement("onDragOver", active.id, over == null ? void 0 : over.id);
|
|
120
|
-
},
|
|
121
|
-
onDragEnd({
|
|
122
|
-
active,
|
|
123
|
-
over
|
|
124
|
-
}) {
|
|
125
|
-
return getMovementAnnouncement("onDragEnd", active.id, over == null ? void 0 : over.id);
|
|
126
|
-
},
|
|
127
|
-
onDragCancel({
|
|
128
|
-
active
|
|
129
|
-
}) {
|
|
130
|
-
return `Moving was cancelled. ${active.id} was dropped in its original position.`;
|
|
131
|
-
}
|
|
132
|
-
}, dropAnimationConfig = {
|
|
133
|
-
keyframes({
|
|
134
|
-
transform
|
|
135
|
-
}) {
|
|
136
|
-
return [{
|
|
137
|
-
opacity: 1,
|
|
138
|
-
transform: CSS.Transform.toString(transform.initial)
|
|
139
|
-
}, {
|
|
140
|
-
opacity: 0,
|
|
141
|
-
transform: CSS.Transform.toString({
|
|
142
|
-
...transform.final,
|
|
143
|
-
x: transform.final.x + 5,
|
|
144
|
-
y: transform.final.y + 5
|
|
145
|
-
})
|
|
146
|
-
}];
|
|
147
|
-
},
|
|
148
|
-
easing: "ease-out",
|
|
149
|
-
sideEffects({
|
|
150
|
-
active
|
|
151
|
-
}) {
|
|
152
|
-
active.node.animate([{
|
|
153
|
-
opacity: 0
|
|
154
|
-
}, {
|
|
155
|
-
opacity: 1
|
|
156
|
-
}], {
|
|
157
|
-
duration: defaultDropAnimation.duration,
|
|
158
|
-
easing: defaultDropAnimation.easing
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
}, adjustTranslate = ({
|
|
162
|
-
transform
|
|
163
|
-
}) => ({
|
|
164
|
-
...transform,
|
|
165
|
-
y: transform.y - 25
|
|
166
|
-
}), measuring = {
|
|
167
|
-
droppable: {
|
|
168
|
-
strategy: MeasuringStrategy.Always
|
|
169
|
-
}
|
|
170
|
-
}, sensors = useSensors(useSensor(PointerSensor, {
|
|
171
|
-
activationConstraint
|
|
172
|
-
}), useSensor(KeyboardSensor, {
|
|
173
|
-
coordinateGetter: sortableKeyboardCoordinates
|
|
174
|
-
}));
|
|
175
|
-
return {
|
|
176
|
-
handleDragStart,
|
|
177
|
-
handleDragMove,
|
|
178
|
-
handleDragOver,
|
|
179
|
-
handleDragEnd,
|
|
180
|
-
adjustTranslate,
|
|
181
|
-
sortedIds,
|
|
182
|
-
indicator,
|
|
183
|
-
activationConstraint,
|
|
184
|
-
projected,
|
|
185
|
-
announcements,
|
|
186
|
-
activeId,
|
|
187
|
-
indentationWidth,
|
|
188
|
-
activeItem,
|
|
189
|
-
dropAnimationConfig,
|
|
190
|
-
measuring,
|
|
191
|
-
sensors,
|
|
192
|
-
items,
|
|
193
|
-
flattenedTree
|
|
194
|
-
};
|
|
195
|
-
};
|
|
196
|
-
export {
|
|
197
|
-
useTreeSortable
|
|
198
|
-
};
|
|
1
|
+
import{buildTree,determineNewParentId,flattenTree,generateUpdateData,getActiveAndOverNodes,getIndicesToUpdate,getProjection,updateParentIds}from"../utilities/tree-sortable.js";import{useEffect,useMemo,useState}from"react";import{KeyboardSensor,MeasuringStrategy,PointerSensor,defaultDropAnimation,useSensor,useSensors}from"@dnd-kit/core";import{arrayMove,sortableKeyboardCoordinates}from"@dnd-kit/sortable";import{CSS}from"@dnd-kit/utilities";var useTreeSortable=({nodes,onSortable,handleCollapseNode})=>{let[items,setItems]=useState(()=>nodes),[activeId,setActiveId]=useState(null),[overId,setOverId]=useState(null),[offsetLeft,setOffsetLeft]=useState(0),[currentPosition,setCurrentPosition]=useState(null);useEffect(()=>{setItems(nodes)},[nodes]);let activationConstraint={delay:200,tolerance:5},flattenedTree=useMemo(()=>flattenTree(items,null),[items]),activeItem=activeId?flattenedTree.find(({id})=>id===activeId):null,projected=activeId&&overId?getProjection(flattenedTree,activeId,overId,offsetLeft,64):null;function handleDragStart(event){let{active}=event,{activeNode}=getActiveAndOverNodes(flattenedTree,active.id);activeNode.parentId||handleCollapseNode(activeNode.id),setActiveId(active.id),setOverId(active.id);let activeItem=flattenedTree.find(({id})=>id===activeId);activeItem&&setCurrentPosition({parentId:activeItem.parentId,overId:activeId})}function handleDragMove({delta}){setOffsetLeft(delta.x)}function handleDragOver(event){let{over}=event;setOverId(over?.id)}function handleDragEnd(event){let{active,over}=event,{activeNode,activeNodeIndex,overNode,overNodeIndex}=getActiveAndOverNodes(flattenedTree,active.id,over?.id),newParentId=determineNewParentId(active,over,activeNode,overNode,projected);updateParentIds(flattenedTree,getIndicesToUpdate(activeNode,activeNodeIndex,flattenedTree,projected),newParentId);let updatedFlattenedTree=arrayMove(flattenedTree,activeNodeIndex,overNodeIndex),updatedTree=buildTree(updatedFlattenedTree),{updateArray}=generateUpdateData(updatedFlattenedTree,updatedTree);setItems(updatedTree),setActiveId(null),setOverId(null),onSortable(updateArray)}let sortedIds=useMemo(()=>flattenedTree.map(({id})=>id),[flattenedTree]);function getMovementAnnouncement(eventName,activeId,overId){if(overId&&projected){if(eventName!==`onDragEnd`){if(currentPosition&&projected.parentId===currentPosition.parentId&&overId===currentPosition.overId)return;setCurrentPosition({parentId:projected.parentId,overId})}let clonedItems=JSON.parse(JSON.stringify(flattenTree(items,null,0))),overIndex=clonedItems.findIndex(({id})=>id===overId),sortedItems=arrayMove(clonedItems,clonedItems.findIndex(({id})=>id===activeId),overIndex),previousItem=sortedItems[overIndex-1],announcement,movedVerb=eventName===`onDragEnd`?`dropped`:`moved`,nestedVerb=eventName===`onDragEnd`?`dropped`:`nested`;if(!previousItem){let nextItem=sortedItems[overIndex+1];announcement=nextItem?`${activeId} was ${movedVerb} before ${nextItem.id}.`:`${activeId} was ${movedVerb} as the only item in the list.`}else if(projected.depth>previousItem.depth)announcement=`${activeId} was ${nestedVerb} under ${previousItem.id}.`;else{let previousSibling=previousItem;for(;previousSibling&&projected.depth<previousSibling.depth;){let parentId=previousSibling.parentId;previousSibling=sortedItems.find(({id})=>id===parentId)}previousSibling&&(announcement=`${activeId} was ${movedVerb} after ${previousSibling.id}.`)}return announcement}}return{handleDragStart,handleDragMove,handleDragOver,handleDragEnd,adjustTranslate:({transform})=>({...transform,y:transform.y-25}),sortedIds,indicator:!1,activationConstraint,projected,announcements:{onDragStart({active}){return`Picked up ${active.id}.`},onDragMove({active,over}){return getMovementAnnouncement(`onDragMove`,active.id,over?.id)},onDragOver({active,over}){return getMovementAnnouncement(`onDragOver`,active.id,over?.id)},onDragEnd({active,over}){return getMovementAnnouncement(`onDragEnd`,active.id,over?.id)},onDragCancel({active}){return`Moving was cancelled. ${active.id} was dropped in its original position.`}},activeId,indentationWidth:64,activeItem,dropAnimationConfig:{keyframes({transform}){return[{opacity:1,transform:CSS.Transform.toString(transform.initial)},{opacity:0,transform:CSS.Transform.toString({...transform.final,x:transform.final.x+5,y:transform.final.y+5})}]},easing:`ease-out`,sideEffects({active}){active.node.animate([{opacity:0},{opacity:1}],{duration:defaultDropAnimation.duration,easing:defaultDropAnimation.easing})}},measuring:{droppable:{strategy:MeasuringStrategy.Always}},sensors:useSensors(useSensor(PointerSensor,{activationConstraint}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates})),items,flattenedTree}};export{useTreeSortable};
|
|
@@ -1,161 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
function getDragDepth(offset, indentationWidth) {
|
|
3
|
-
return Math.round(offset / indentationWidth);
|
|
4
|
-
}
|
|
5
|
-
function getSubtreeIndices(flattenedTree, activeIndex) {
|
|
6
|
-
const indices = [activeIndex], nodeIds = [flattenedTree[activeIndex].id];
|
|
7
|
-
for (let i = activeIndex + 1; i < flattenedTree.length; i++) {
|
|
8
|
-
const item = flattenedTree[i];
|
|
9
|
-
item.parentId && nodeIds.includes(item.parentId) && (indices.push(i), nodeIds.push(item.id));
|
|
10
|
-
}
|
|
11
|
-
return indices;
|
|
12
|
-
}
|
|
13
|
-
function determineNewParentId(active, over, activeNode, overNode, projected) {
|
|
14
|
-
if (projected && (projected.depth === 0 || projected.depth === 1))
|
|
15
|
-
return projected.parentId;
|
|
16
|
-
if (active.id !== (over == null ? void 0 : over.id) && overNode)
|
|
17
|
-
return overNode.parentId === activeNode.parentId ? activeNode.parentId : overNode.parentId;
|
|
18
|
-
}
|
|
19
|
-
function getActiveAndOverNodes(tree, activeId, overId) {
|
|
20
|
-
const activeNodeIndex = tree.findIndex(({
|
|
21
|
-
id
|
|
22
|
-
}) => id === activeId), overNodeIndex = overId ? tree.findIndex(({
|
|
23
|
-
id
|
|
24
|
-
}) => id === overId) : -1, activeNode = tree[activeNodeIndex], overNode = overNodeIndex !== -1 ? tree[overNodeIndex] : null;
|
|
25
|
-
return {
|
|
26
|
-
activeNode,
|
|
27
|
-
activeNodeIndex,
|
|
28
|
-
overNode,
|
|
29
|
-
overNodeIndex
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function getIndicesToUpdate(activeNode, activeNodeIndex, flattenedTree, projected) {
|
|
33
|
-
return activeNode.children && activeNode.children.length > 0 && (projected == null ? void 0 : projected.depth) === 1 ? getSubtreeIndices(flattenedTree, activeNodeIndex) : [activeNodeIndex];
|
|
34
|
-
}
|
|
35
|
-
function flattenTree(tree, parentId, depth = 0) {
|
|
36
|
-
return tree.reduce((acc, node) => (acc.push({
|
|
37
|
-
...node,
|
|
38
|
-
id: node.id,
|
|
39
|
-
name: node.name,
|
|
40
|
-
parentId: parentId ?? null,
|
|
41
|
-
position: node.position ?? void 0,
|
|
42
|
-
depth: depth ?? 0,
|
|
43
|
-
children: node.children
|
|
44
|
-
}), node.children && node.children.length > 0 && (acc = acc.concat(flattenTree(node.children, node.id, depth + 1))), acc), []);
|
|
45
|
-
}
|
|
46
|
-
function flattenNodes(nodes, expandedNodes) {
|
|
47
|
-
const flatten = (nodes2, isChild = !1, parentExpanded = !0) => nodes2.reduce((acc, node) => {
|
|
48
|
-
var _a;
|
|
49
|
-
const isExpanded = expandedNodes.has(node.id) && node.children && node.children.length > 0;
|
|
50
|
-
return acc.push({
|
|
51
|
-
...node,
|
|
52
|
-
id: node.id,
|
|
53
|
-
name: node.name,
|
|
54
|
-
isChild,
|
|
55
|
-
haveChilds: !!((_a = node.children) != null && _a.length),
|
|
56
|
-
expandNode: isExpanded ?? !1,
|
|
57
|
-
parentExpanded
|
|
58
|
-
}), node.children && isExpanded && (acc = acc.concat(flatten(node.children, !0, isExpanded))), acc;
|
|
59
|
-
}, []);
|
|
60
|
-
return flatten(nodes);
|
|
61
|
-
}
|
|
62
|
-
function updateParentIds(flattenedTree, indices, newParentId) {
|
|
63
|
-
indices.forEach((index) => {
|
|
64
|
-
flattenedTree[index] = {
|
|
65
|
-
...flattenedTree[index],
|
|
66
|
-
parentId: newParentId
|
|
67
|
-
};
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
function findItemIndexInTree(tree, itemId) {
|
|
71
|
-
for (let i = 0; i < tree.length; i++) {
|
|
72
|
-
const node = tree[i];
|
|
73
|
-
if (node.id === itemId)
|
|
74
|
-
return i;
|
|
75
|
-
if (node.children && node.children.length > 0) {
|
|
76
|
-
const result = findItemIndexInTree(node.children, itemId);
|
|
77
|
-
if (result)
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return 0;
|
|
82
|
-
}
|
|
83
|
-
function generateUpdateData(updatedFlattenedTree, tree) {
|
|
84
|
-
const updateArray = [];
|
|
85
|
-
let positionCounter = 0;
|
|
86
|
-
const itemMap = /* @__PURE__ */ new Map();
|
|
87
|
-
updatedFlattenedTree.forEach((item) => {
|
|
88
|
-
itemMap.set(item.id, item);
|
|
89
|
-
});
|
|
90
|
-
function traverse(items, parentId) {
|
|
91
|
-
for (const item of items) {
|
|
92
|
-
const updateItem = {
|
|
93
|
-
_id: item.id,
|
|
94
|
-
position: positionCounter,
|
|
95
|
-
parentId: parentId ?? void 0,
|
|
96
|
-
isVisible: item.isVisible
|
|
97
|
-
};
|
|
98
|
-
updateArray.push(updateItem);
|
|
99
|
-
const flattenedItem = itemMap.get(item.id);
|
|
100
|
-
flattenedItem && (flattenedItem.position = positionCounter), positionCounter++, item.children && item.children.length > 0 && traverse(item.children, item.id);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return traverse(tree, null), {
|
|
104
|
-
updateArray,
|
|
105
|
-
updatedTreeData: updatedFlattenedTree
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
const buildTree = (flatNodes) => {
|
|
109
|
-
const nodeMap = /* @__PURE__ */ new Map();
|
|
110
|
-
flatNodes.forEach((node) => {
|
|
111
|
-
nodeMap.set(node.id, {
|
|
112
|
-
id: node.id,
|
|
113
|
-
name: node.name,
|
|
114
|
-
children: [],
|
|
115
|
-
position: node.position,
|
|
116
|
-
isVisible: node.isVisible
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
const tree = [];
|
|
120
|
-
return flatNodes.forEach((node) => {
|
|
121
|
-
var _a;
|
|
122
|
-
const treeNode = nodeMap.get(node.id);
|
|
123
|
-
if (node.parentId === null || node.parentId === void 0)
|
|
124
|
-
tree.push(treeNode);
|
|
125
|
-
else {
|
|
126
|
-
const parentNode = nodeMap.get(node.parentId);
|
|
127
|
-
parentNode && (parentNode.children = parentNode.children ?? void 0, (_a = parentNode.children) == null || _a.push(treeNode));
|
|
128
|
-
}
|
|
129
|
-
}), tree;
|
|
130
|
-
};
|
|
131
|
-
function getProjection(items, activeId, overId, dragOffset, indentationWidth) {
|
|
132
|
-
const overItemIndex = items.findIndex(({
|
|
133
|
-
id
|
|
134
|
-
}) => id === overId), activeItemIndex = items.findIndex(({
|
|
135
|
-
id
|
|
136
|
-
}) => id === activeId), activeItem = items[activeItemIndex], newItems = arrayMove(items, activeItemIndex, overItemIndex), previousItem = newItems[overItemIndex - 1], dragDepth = getDragDepth(dragOffset, indentationWidth), projectedDepth = activeItem.depth + dragDepth;
|
|
137
|
-
let depth = projectedDepth + activeItem.depth;
|
|
138
|
-
return previousItem ? depth = Math.max(0, Math.min(1, projectedDepth)) : depth = 0, {
|
|
139
|
-
depth,
|
|
140
|
-
parentId: getParentId(),
|
|
141
|
-
activeId,
|
|
142
|
-
previousItem
|
|
143
|
-
};
|
|
144
|
-
function getParentId() {
|
|
145
|
-
var _a;
|
|
146
|
-
return depth === 0 || !previousItem ? null : depth === previousItem.depth ? previousItem.parentId : depth > previousItem.depth ? previousItem.id : ((_a = newItems.slice(0, overItemIndex).reverse().find((item) => item.depth === depth)) == null ? void 0 : _a.parentId) ?? null;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
export {
|
|
150
|
-
buildTree,
|
|
151
|
-
determineNewParentId,
|
|
152
|
-
findItemIndexInTree,
|
|
153
|
-
flattenNodes,
|
|
154
|
-
flattenTree,
|
|
155
|
-
generateUpdateData,
|
|
156
|
-
getActiveAndOverNodes,
|
|
157
|
-
getDragDepth,
|
|
158
|
-
getIndicesToUpdate,
|
|
159
|
-
getProjection,
|
|
160
|
-
updateParentIds
|
|
161
|
-
};
|
|
1
|
+
import{arrayMove}from"@dnd-kit/sortable";function getDragDepth(offset,indentationWidth){return Math.round(offset/indentationWidth)}function getSubtreeIndices(flattenedTree,activeIndex){let indices=[activeIndex],nodeIds=[flattenedTree[activeIndex].id];for(let i=activeIndex+1;i<flattenedTree.length;i++){let item=flattenedTree[i];item.parentId&&nodeIds.includes(item.parentId)&&(indices.push(i),nodeIds.push(item.id))}return indices}function determineNewParentId(active,over,activeNode,overNode,projected){if(projected&&(projected.depth===0||projected.depth===1))return projected.parentId;if(active.id!==over?.id&&overNode)return overNode.parentId===activeNode.parentId?activeNode.parentId:overNode.parentId}function getActiveAndOverNodes(tree,activeId,overId){let activeNodeIndex=tree.findIndex(({id})=>id===activeId),overNodeIndex=overId?tree.findIndex(({id})=>id===overId):-1;return{activeNode:tree[activeNodeIndex],activeNodeIndex,overNode:overNodeIndex===-1?null:tree[overNodeIndex],overNodeIndex}}function getIndicesToUpdate(activeNode,activeNodeIndex,flattenedTree,projected){return activeNode.children&&activeNode.children.length>0&&projected?.depth===1?getSubtreeIndices(flattenedTree,activeNodeIndex):[activeNodeIndex]}function flattenTree(tree,parentId,depth=0){return tree.reduce((acc,node)=>(acc.push({...node,id:node.id,name:node.name,parentId:parentId??null,position:node.position??void 0,depth:depth??0,children:node.children}),node.children&&node.children.length>0&&(acc=acc.concat(flattenTree(node.children,node.id,depth+1))),acc),[])}function flattenNodes(nodes,expandedNodes){let flatten=(nodes,isChild=!1,parentExpanded=!0)=>nodes.reduce((acc,node)=>{let isExpanded=expandedNodes.has(node.id)&&node.children&&node.children.length>0;return acc.push({...node,id:node.id,name:node.name,isChild,haveChilds:!!node.children?.length,expandNode:isExpanded??!1,parentExpanded}),node.children&&isExpanded&&(acc=acc.concat(flatten(node.children,!0,isExpanded))),acc},[]);return flatten(nodes)}function updateParentIds(flattenedTree,indices,newParentId){indices.forEach(index=>{flattenedTree[index]={...flattenedTree[index],parentId:newParentId}})}function findItemIndexInTree(tree,itemId){for(let i=0;i<tree.length;i++){let node=tree[i];if(node.id===itemId)return i;if(node.children&&node.children.length>0){let result=findItemIndexInTree(node.children,itemId);if(result!==null)return result}}return null}function generateUpdateData(updatedFlattenedTree,tree){let updateArray=[],positionCounter=0,itemMap=new Map;updatedFlattenedTree.forEach(item=>{itemMap.set(item.id,item)});function traverse(items,parentId){for(let item of items){let updateItem={_id:item.id,position:positionCounter,parentId:parentId??void 0,isVisible:item.isVisible};updateArray.push(updateItem);let flattenedItem=itemMap.get(item.id);flattenedItem&&(flattenedItem.position=positionCounter),positionCounter++,item.children&&item.children.length>0&&traverse(item.children,item.id)}}return traverse(tree,null),{updateArray,updatedTreeData:updatedFlattenedTree}}var buildTree=flatNodes=>{let nodeMap=new Map;flatNodes.forEach(node=>{nodeMap.set(node.id,{id:node.id,name:node.name,children:[],position:node.position,isVisible:node.isVisible})});let tree=[];return flatNodes.forEach(node=>{let treeNode=nodeMap.get(node.id);if(node.parentId===null||node.parentId===void 0)tree.push(treeNode);else{let parentNode=nodeMap.get(node.parentId);parentNode&&(parentNode.children=parentNode.children??void 0,parentNode.children?.push(treeNode))}}),tree};function getProjection(items,activeId,overId,dragOffset,indentationWidth){let overItemIndex=items.findIndex(({id})=>id===overId),activeItemIndex=items.findIndex(({id})=>id===activeId),activeItem=items[activeItemIndex],previousItem=arrayMove(items,activeItemIndex,overItemIndex)[overItemIndex-1],dragDepth=getDragDepth(dragOffset,indentationWidth),projectedDepth=activeItem.depth+dragDepth,depth=projectedDepth+activeItem.depth;return depth=previousItem?Math.max(0,Math.min(1,projectedDepth)):0,{depth,parentId:getParentId(),activeId,previousItem};function getParentId(){return depth===0||!previousItem?null:depth===previousItem.depth?previousItem.parentId:depth>previousItem.depth?previousItem.id:null}}export{buildTree,determineNewParentId,findItemIndexInTree,flattenNodes,flattenTree,generateUpdateData,getActiveAndOverNodes,getDragDepth,getIndicesToUpdate,getProjection,updateParentIds};
|
|
@@ -1,44 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
function findNodeById(data, id) {
|
|
3
|
-
if (Array.isArray(data))
|
|
4
|
-
for (const node of data) {
|
|
5
|
-
const result = findNodeById(node, id);
|
|
6
|
-
if (result)
|
|
7
|
-
return result;
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
if (data.id === id) return data;
|
|
11
|
-
if (data.children)
|
|
12
|
-
for (const child of data.children) {
|
|
13
|
-
const result = findNodeById(child, id);
|
|
14
|
-
if (result)
|
|
15
|
-
return result;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function findPathById(tree, nodeId) {
|
|
20
|
-
let path = [];
|
|
21
|
-
function traverse(node, currentPath) {
|
|
22
|
-
if (node.id === nodeId)
|
|
23
|
-
return path = currentPath.concat(node.id), !0;
|
|
24
|
-
if (node.children) {
|
|
25
|
-
for (const child of node.children)
|
|
26
|
-
if (traverse(child, currentPath.concat(node.id)))
|
|
27
|
-
return !0;
|
|
28
|
-
}
|
|
29
|
-
return !1;
|
|
30
|
-
}
|
|
31
|
-
function startTraverse(nodes) {
|
|
32
|
-
if (Array.isArray(nodes)) {
|
|
33
|
-
for (const node of nodes)
|
|
34
|
-
if (traverse(node, []))
|
|
35
|
-
break;
|
|
36
|
-
} else
|
|
37
|
-
traverse(nodes, []);
|
|
38
|
-
}
|
|
39
|
-
return startTraverse(tree), path;
|
|
40
|
-
}
|
|
41
|
-
export {
|
|
42
|
-
findNodeById,
|
|
43
|
-
findPathById
|
|
44
|
-
};
|
|
1
|
+
import"@edifice.io/client";function findNodeById(data,id){if(Array.isArray(data))for(let node of data){let result=findNodeById(node,id);if(result)return result}else{if(data.id===id)return data;if(data.children)for(let child of data.children){let result=findNodeById(child,id);if(result)return result}}}function findPathById(tree,nodeId){let path=[];function traverse(node,currentPath){if(node.id===nodeId)return path=currentPath.concat(node.id),!0;if(node.children){for(let child of node.children)if(traverse(child,currentPath.concat(node.id)))return!0}return!1}function startTraverse(nodes){if(Array.isArray(nodes)){for(let node of nodes)if(traverse(node,[]))break}else traverse(nodes,[])}return startTraverse(tree),path}export{findNodeById,findPathById};
|
|
@@ -1,69 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useDroppable } from "@dnd-kit/core";
|
|
3
|
-
import clsx from "clsx";
|
|
4
|
-
import { useId } from "react";
|
|
5
|
-
import { useTranslation } from "react-i18next";
|
|
6
|
-
import SvgIconFolder from "../../modules/icons/components/IconFolder.js";
|
|
7
|
-
import SvgIconPlus from "../../modules/icons/components/IconPlus.js";
|
|
8
|
-
import SvgIconRafterDown from "../../modules/icons/components/IconRafterDown.js";
|
|
9
|
-
import SvgIconRafterRight from "../../modules/icons/components/IconRafterRight.js";
|
|
10
|
-
const TreeNode = ({
|
|
11
|
-
node,
|
|
12
|
-
showIcon,
|
|
13
|
-
selectedNodeId,
|
|
14
|
-
expandedNodes,
|
|
15
|
-
siblingsNodes,
|
|
16
|
-
draggedNodeId,
|
|
17
|
-
handleItemClick,
|
|
18
|
-
handleToggleNode,
|
|
19
|
-
handleItemAction
|
|
20
|
-
}) => {
|
|
21
|
-
const expanded = expandedNodes.has(node.id), sibling = siblingsNodes == null ? void 0 : siblingsNodes.current.has(node.id), selected = selectedNodeId === node.id, focused = draggedNodeId === node.id, treeItemClasses = {
|
|
22
|
-
action: clsx("action-container d-flex align-items-center gap-8 px-2", {
|
|
23
|
-
"drag-focus": focused,
|
|
24
|
-
"py-4": !node.section
|
|
25
|
-
}),
|
|
26
|
-
arrow: clsx({
|
|
27
|
-
"py-4": !node.section,
|
|
28
|
-
"py-8": node.section,
|
|
29
|
-
invisible: !Array.isArray(node.children) || node.children.length === 0
|
|
30
|
-
}),
|
|
31
|
-
button: clsx("flex-fill d-flex align-items-center text-truncate gap-8", {
|
|
32
|
-
"py-8": node.section
|
|
33
|
-
})
|
|
34
|
-
}, iconSize = node.section ? 16 : 12, {
|
|
35
|
-
t
|
|
36
|
-
} = useTranslation(), {
|
|
37
|
-
setNodeRef
|
|
38
|
-
} = useDroppable({
|
|
39
|
-
id: useId(),
|
|
40
|
-
data: {
|
|
41
|
-
id: node.id,
|
|
42
|
-
name: node.name,
|
|
43
|
-
isTreeview: !0,
|
|
44
|
-
accepts: ["folder", "resource"]
|
|
45
|
-
}
|
|
46
|
-
}), handleOnItemClick = (nodeId) => handleItemClick == null ? void 0 : handleItemClick(nodeId), handleOnToggleNode = (nodeId) => handleToggleNode == null ? void 0 : handleToggleNode(nodeId), handleOnCreateChildrenPage = (nodeId) => handleItemAction == null ? void 0 : handleItemAction(nodeId), handleItemKeyDown = (event) => {
|
|
47
|
-
(event.code === "Enter" || event.code === "Space") && (event.preventDefault(), event.stopPropagation(), handleItemClick == null || handleItemClick(node.id));
|
|
48
|
-
}, handleItemToggleKeyDown = (event) => {
|
|
49
|
-
(event.code === "Enter" || event.code === "Space") && (event.preventDefault(), event.stopPropagation(), handleToggleNode == null || handleToggleNode(node.id));
|
|
50
|
-
}, renderRafterIcon = (expanded2) => /* @__PURE__ */ jsx(expanded2 ? SvgIconRafterDown : SvgIconRafterRight, { title: t("foldUnfold"), width: iconSize, height: iconSize }), shouldRenderRafterIcon = () => {
|
|
51
|
-
var _a;
|
|
52
|
-
const hasNoSiblings = !((_a = siblingsNodes == null ? void 0 : siblingsNodes.current) != null && _a.has(node.id)), hasChildren = Array.isArray(node.children) && node.children.length > 0;
|
|
53
|
-
return sibling || hasNoSiblings && hasChildren;
|
|
54
|
-
};
|
|
55
|
-
return /* @__PURE__ */ jsx("li", { ref: setNodeRef, id: `treeitem-${node.id}`, role: "treeitem", "aria-selected": selected && selected, "aria-expanded": expanded && expanded, children: /* @__PURE__ */ jsxs("div", { children: [
|
|
56
|
-
/* @__PURE__ */ jsxs("div", { className: treeItemClasses.action, children: [
|
|
57
|
-
/* @__PURE__ */ jsx("div", { className: treeItemClasses.arrow, tabIndex: 0, role: "button", onClick: () => handleOnToggleNode(node.id), onKeyDown: handleItemToggleKeyDown, "aria-label": t("foldUnfold"), children: shouldRenderRafterIcon() && renderRafterIcon(expanded) }),
|
|
58
|
-
/* @__PURE__ */ jsxs("div", { tabIndex: 0, role: "button", className: treeItemClasses.button, onClick: () => handleOnItemClick(node.id), onKeyDown: handleItemKeyDown, children: [
|
|
59
|
-
node.section && showIcon && /* @__PURE__ */ jsx(SvgIconFolder, { title: t("folder"), width: 20, height: 20 }),
|
|
60
|
-
/* @__PURE__ */ jsx("span", { className: "text-truncate", children: node.name })
|
|
61
|
-
] }),
|
|
62
|
-
node.section && handleItemAction && /* @__PURE__ */ jsx("button", { className: "tree-btn mx-8", onClick: () => handleOnCreateChildrenPage(node.id), children: /* @__PURE__ */ jsx(SvgIconPlus, { height: 16, width: 16 }) })
|
|
63
|
-
] }),
|
|
64
|
-
Array.isArray(node.children) && !!node.children.length && expanded && /* @__PURE__ */ jsx("ul", { role: "group", children: node.children.map((child) => /* @__PURE__ */ jsx(TreeNode, { node: child, selectedNodeId, expandedNodes, siblingsNodes, draggedNodeId, handleItemClick, handleToggleNode }, child.id)) })
|
|
65
|
-
] }) }, node.id);
|
|
66
|
-
};
|
|
67
|
-
export {
|
|
68
|
-
TreeNode
|
|
69
|
-
};
|
|
1
|
+
import SvgIconFolder from"../../modules/icons/components/IconFolder.js";import SvgIconPlus from"../../modules/icons/components/IconPlus.js";import SvgIconRafterDown from"../../modules/icons/components/IconRafterDown.js";import SvgIconRafterRight from"../../modules/icons/components/IconRafterRight.js";import clsx$1 from"clsx";import{useId}from"react";import{jsx,jsxs}from"react/jsx-runtime";import{useTranslation}from"react-i18next";import{useDroppable}from"@dnd-kit/core";var TreeNode=({node,showIcon,selectedNodeId,expandedNodes,siblingsNodes,draggedNodeId,handleItemClick,handleToggleNode,handleItemAction})=>{let expanded=expandedNodes.has(node.id),sibling=siblingsNodes?.current.has(node.id),selected=selectedNodeId===node.id,treeItemClasses={action:clsx$1(`action-container d-flex align-items-center gap-8 px-2`,{"drag-focus":draggedNodeId===node.id,"py-4":!node.section}),arrow:clsx$1({"py-4":!node.section,"py-8":node.section,invisible:!Array.isArray(node.children)||node.children.length===0}),button:clsx$1(`flex-fill d-flex align-items-center text-truncate gap-8`,{"py-8":node.section})},iconSize=node.section?16:12,{t}=useTranslation(),{setNodeRef}=useDroppable({id:useId(),data:{id:node.id,name:node.name,isTreeview:!0,accepts:[`folder`,`resource`]}}),handleOnItemClick=nodeId=>handleItemClick?.(nodeId),handleOnToggleNode=nodeId=>handleToggleNode?.(nodeId),handleOnCreateChildrenPage=nodeId=>handleItemAction?.(nodeId);return jsx(`li`,{ref:setNodeRef,id:`treeitem-${node.id}`,role:`treeitem`,"aria-selected":selected&&selected,"aria-expanded":expanded&&expanded,children:jsxs(`div`,{children:[jsxs(`div`,{className:treeItemClasses.action,children:[jsx(`div`,{className:treeItemClasses.arrow,tabIndex:0,role:`button`,onClick:()=>handleOnToggleNode(node.id),onKeyDown:event=>{(event.code===`Enter`||event.code===`Space`)&&(event.preventDefault(),event.stopPropagation(),handleToggleNode?.(node.id))},"aria-label":t(`foldUnfold`),children:(()=>{let hasNoSiblings=!siblingsNodes?.current?.has(node.id),hasChildren=Array.isArray(node.children)&&node.children.length>0;return sibling||hasNoSiblings&&hasChildren})()&&(expanded=>jsx(expanded?SvgIconRafterDown:SvgIconRafterRight,{title:t(`foldUnfold`),width:iconSize,height:iconSize}))(expanded)}),jsxs(`div`,{tabIndex:0,role:`button`,className:treeItemClasses.button,onClick:()=>handleOnItemClick(node.id),onKeyDown:event=>{(event.code===`Enter`||event.code===`Space`)&&(event.preventDefault(),event.stopPropagation(),handleItemClick?.(node.id))},children:[node.section&&showIcon&&jsx(SvgIconFolder,{title:t(`folder`),width:20,height:20}),jsx(`span`,{className:`text-truncate`,children:node.name})]}),node.section&&handleItemAction&&jsx(`button`,{className:`tree-btn mx-8`,onClick:()=>handleOnCreateChildrenPage(node.id),children:jsx(SvgIconPlus,{height:16,width:16})})]}),Array.isArray(node.children)&&!!node.children.length&&expanded&&jsx(`ul`,{role:`group`,children:node.children.map(child=>jsx(TreeNode,{node:child,selectedNodeId,expandedNodes,siblingsNodes,draggedNodeId,handleItemClick,handleToggleNode},child.id))})]})},node.id)};export{TreeNode};
|
|
@@ -1,37 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { forwardRef } from "react";
|
|
3
|
-
import { TreeNode } from "./TreeNode.js";
|
|
4
|
-
import { useTreeView } from "./hooks/useTreeView.js";
|
|
5
|
-
const TreeView = /* @__PURE__ */ forwardRef((props, ref) => {
|
|
6
|
-
const {
|
|
7
|
-
data,
|
|
8
|
-
onTreeItemClick,
|
|
9
|
-
onTreeItemUnfold,
|
|
10
|
-
onTreeItemFold,
|
|
11
|
-
onTreeItemAction,
|
|
12
|
-
draggedNode,
|
|
13
|
-
showIcon = !0,
|
|
14
|
-
allExpandedNodes = !1,
|
|
15
|
-
selectedNodeId: externalSelectedNodeId
|
|
16
|
-
} = props, {
|
|
17
|
-
selectedNodeId,
|
|
18
|
-
expandedNodes,
|
|
19
|
-
siblingsNodes,
|
|
20
|
-
draggedNodeId,
|
|
21
|
-
handleItemClick,
|
|
22
|
-
handleFoldUnfold
|
|
23
|
-
} = useTreeView({
|
|
24
|
-
data,
|
|
25
|
-
ref,
|
|
26
|
-
externalSelectedNodeId,
|
|
27
|
-
draggedNode,
|
|
28
|
-
allExpandedNodes,
|
|
29
|
-
onTreeItemClick,
|
|
30
|
-
onTreeItemFold,
|
|
31
|
-
onTreeItemUnfold
|
|
32
|
-
});
|
|
33
|
-
return /* @__PURE__ */ jsx("div", { className: "treeview", children: /* @__PURE__ */ jsx("ul", { role: "tree", className: "m-0 p-0", children: Array.isArray(data) ? data.map((node) => /* @__PURE__ */ jsx(TreeNode, { node, showIcon, selectedNodeId, expandedNodes, siblingsNodes, draggedNodeId, handleItemClick, handleToggleNode: handleFoldUnfold, handleItemAction: onTreeItemAction }, node.id)) : /* @__PURE__ */ jsx(TreeNode, { node: data, selectedNodeId, expandedNodes, siblingsNodes, showIcon, draggedNodeId, handleItemClick, handleToggleNode: handleFoldUnfold }) }) });
|
|
34
|
-
});
|
|
35
|
-
export {
|
|
36
|
-
TreeView as default
|
|
37
|
-
};
|
|
1
|
+
import{useTreeView}from"./hooks/useTreeView.js";import{TreeNode}from"./TreeNode.js";import{forwardRef}from"react";import{jsx}from"react/jsx-runtime";var TreeView=forwardRef((props,ref)=>{let{data,onTreeItemClick,onTreeItemUnfold,onTreeItemFold,onTreeItemAction,draggedNode,showIcon=!0,allExpandedNodes=!1,selectedNodeId:externalSelectedNodeId}=props,{selectedNodeId,expandedNodes,siblingsNodes,draggedNodeId,handleItemClick,handleFoldUnfold}=useTreeView({data,ref,externalSelectedNodeId,draggedNode,allExpandedNodes,onTreeItemClick,onTreeItemFold,onTreeItemUnfold});return jsx(`div`,{className:`treeview`,children:jsx(`ul`,{role:`tree`,className:`m-0 p-0`,children:Array.isArray(data)?data.map(node=>jsx(TreeNode,{node,showIcon,selectedNodeId,expandedNodes,siblingsNodes,draggedNodeId,handleItemClick,handleToggleNode:handleFoldUnfold,handleItemAction:onTreeItemAction},node.id)):jsx(TreeNode,{node:data,selectedNodeId,expandedNodes,siblingsNodes,showIcon,draggedNodeId,handleItemClick,handleToggleNode:handleFoldUnfold})})})});export{TreeView as default};
|
|
@@ -1,105 +1 @@
|
|
|
1
|
-
import { useState,
|
|
2
|
-
import { findNodeById, findPathById } from "../utilities/treeview.js";
|
|
3
|
-
const useTreeView = ({
|
|
4
|
-
data,
|
|
5
|
-
ref,
|
|
6
|
-
externalSelectedNodeId,
|
|
7
|
-
draggedNode,
|
|
8
|
-
allExpandedNodes,
|
|
9
|
-
onTreeItemUnfold,
|
|
10
|
-
onTreeItemFold,
|
|
11
|
-
onTreeItemClick
|
|
12
|
-
}) => {
|
|
13
|
-
const [internalSelectedNodeId, setInternalSelectedNodeId] = useState(void 0), [expandedNodes, setExpandedNodes] = useState(/* @__PURE__ */ new Set()), siblingsNodes = useRef(/* @__PURE__ */ new Set()), [draggedNodeId, setDraggedNodeId] = useState(void 0), selectedNodeId = internalSelectedNodeId ?? externalSelectedNodeId;
|
|
14
|
-
function addNodesWithSiblingHavingChildren(data2) {
|
|
15
|
-
var _a;
|
|
16
|
-
Array.isArray(data2) ? data2.forEach((node) => {
|
|
17
|
-
const resultSet = new Set(siblingsNodes.current);
|
|
18
|
-
data2.filter(({
|
|
19
|
-
id
|
|
20
|
-
}) => id !== node.id).some((sibling) => sibling.children && sibling.children.length > 0) && resultSet.add(node.id), node.children && node.children.length > 0 && node.children.forEach((child) => {
|
|
21
|
-
var _a2;
|
|
22
|
-
const childSiblings = (_a2 = node.children) == null ? void 0 : _a2.filter(({
|
|
23
|
-
id
|
|
24
|
-
}) => id !== child.id);
|
|
25
|
-
(childSiblings == null ? void 0 : childSiblings.some((sibling) => sibling.children && sibling.children.length > 0)) && resultSet.add(child.id), addNodesWithSiblingHavingChildren(child);
|
|
26
|
-
});
|
|
27
|
-
}) : (_a = data2.children) == null || _a.forEach((child) => {
|
|
28
|
-
var _a2;
|
|
29
|
-
const resultSet = new Set(siblingsNodes.current), siblings = (_a2 = data2.children) == null ? void 0 : _a2.filter((c) => c.id !== child.id);
|
|
30
|
-
(siblings == null ? void 0 : siblings.some((sibling) => sibling.children && sibling.children.length > 0)) && (resultSet.add(child.id), siblingsNodes.current = resultSet), addNodesWithSiblingHavingChildren(child);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
const expandedAllNodes = (allExpandedNodes2) => {
|
|
34
|
-
const initExpandedNodes = new Set("");
|
|
35
|
-
data && Array.isArray(data) && allExpandedNodes2 && (data.forEach((node) => {
|
|
36
|
-
initExpandedNodes.add(node.id);
|
|
37
|
-
}), setExpandedNodes(initExpandedNodes));
|
|
38
|
-
};
|
|
39
|
-
useEffect(() => {
|
|
40
|
-
data && addNodesWithSiblingHavingChildren(data);
|
|
41
|
-
}, [data]), useEffect(() => {
|
|
42
|
-
draggedNode != null && draggedNode.isOver && draggedNode.isTreeview ? (draggedNode.overId && handleItemDrag(draggedNode.overId), setDraggedNodeId(draggedNode.overId)) : setDraggedNodeId(void 0);
|
|
43
|
-
}, [draggedNode]);
|
|
44
|
-
const handlers = useMemo(
|
|
45
|
-
() => ({
|
|
46
|
-
unselectAll() {
|
|
47
|
-
setInternalSelectedNodeId(void 0);
|
|
48
|
-
},
|
|
49
|
-
select(nodeId) {
|
|
50
|
-
handleItemClick(nodeId);
|
|
51
|
-
},
|
|
52
|
-
allExpandedNodes() {
|
|
53
|
-
expandedAllNodes(allExpandedNodes);
|
|
54
|
-
}
|
|
55
|
-
}),
|
|
56
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
57
|
-
[]
|
|
58
|
-
);
|
|
59
|
-
useImperativeHandle(ref, () => handlers, [handlers]), useEffect(() => {
|
|
60
|
-
expandedAllNodes(allExpandedNodes);
|
|
61
|
-
}, []), useEffect(() => {
|
|
62
|
-
externalSelectedNodeId && !allExpandedNodes ? (handleExternalSelectedNodeId(externalSelectedNodeId), setInternalSelectedNodeId(externalSelectedNodeId)) : setInternalSelectedNodeId(void 0);
|
|
63
|
-
}, [externalSelectedNodeId]);
|
|
64
|
-
const handleExternalSelectedNodeId = (nodeId) => {
|
|
65
|
-
if (!findNodeById(data, selectedNodeId)) {
|
|
66
|
-
setInternalSelectedNodeId(void 0);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (externalSelectedNodeId === "default") {
|
|
70
|
-
expandedNodes.forEach((node) => onTreeItemUnfold == null ? void 0 : onTreeItemUnfold(node));
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
handleExpandNode(nodeId);
|
|
74
|
-
}, handleExpandNode = (nodeId) => {
|
|
75
|
-
const updatedExpandedNodes = new Set(expandedNodes), parents = findPathById(data, nodeId), arrayOrder = Array.from(updatedExpandedNodes);
|
|
76
|
-
parents.forEach((parent) => {
|
|
77
|
-
const index = arrayOrder.indexOf(parent);
|
|
78
|
-
index > -1 && arrayOrder.splice(index, 1), arrayOrder.push(parent);
|
|
79
|
-
}), updatedExpandedNodes.clear(), arrayOrder.forEach((node) => updatedExpandedNodes.add(node)), updatedExpandedNodes.forEach((node) => onTreeItemUnfold == null ? void 0 : onTreeItemUnfold(node)), setExpandedNodes(updatedExpandedNodes);
|
|
80
|
-
}, handleCollapseNode = (nodeId) => {
|
|
81
|
-
const updatedExpandedNodes = new Set(expandedNodes);
|
|
82
|
-
updatedExpandedNodes.delete(nodeId), updatedExpandedNodes.forEach((node) => onTreeItemFold == null ? void 0 : onTreeItemFold(node)), setExpandedNodes(updatedExpandedNodes);
|
|
83
|
-
}, handleToggleNode = (nodeId) => {
|
|
84
|
-
expandedNodes.has(nodeId) ? handleCollapseNode(nodeId) : handleExpandNode(nodeId);
|
|
85
|
-
}, handleSelectedItem = (nodeId) => {
|
|
86
|
-
selectedNodeId !== nodeId && setInternalSelectedNodeId(nodeId);
|
|
87
|
-
}, handleItemClick = (nodeId) => {
|
|
88
|
-
handleSelectedItem(nodeId), handleExpandNode(nodeId), onTreeItemClick == null || onTreeItemClick(nodeId);
|
|
89
|
-
}, handleFoldUnfold = (nodeId) => {
|
|
90
|
-
handleToggleNode(nodeId);
|
|
91
|
-
}, handleItemDrag = (nodeId) => {
|
|
92
|
-
findNodeById(data, externalSelectedNodeId) && handleExpandNode(nodeId);
|
|
93
|
-
};
|
|
94
|
-
return {
|
|
95
|
-
selectedNodeId,
|
|
96
|
-
expandedNodes,
|
|
97
|
-
siblingsNodes,
|
|
98
|
-
draggedNodeId,
|
|
99
|
-
handleItemClick,
|
|
100
|
-
handleFoldUnfold
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
export {
|
|
104
|
-
useTreeView
|
|
105
|
-
};
|
|
1
|
+
import{findNodeById,findPathById}from"../utilities/treeview.js";import{useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";var useTreeView=({data,ref,externalSelectedNodeId,draggedNode,allExpandedNodes,onTreeItemUnfold,onTreeItemFold,onTreeItemClick})=>{let[internalSelectedNodeId,setInternalSelectedNodeId]=useState(void 0),[expandedNodes,setExpandedNodes]=useState(new Set),siblingsNodes=useRef(new Set),[draggedNodeId,setDraggedNodeId]=useState(void 0),selectedNodeId=internalSelectedNodeId??externalSelectedNodeId;function addNodesWithSiblingHavingChildren(data){Array.isArray(data)?data.forEach(node=>{let resultSet=new Set(siblingsNodes.current);data.filter(({id})=>id!==node.id).some(sibling=>sibling.children&&sibling.children.length>0)&&resultSet.add(node.id),node.children&&node.children.length>0&&node.children.forEach(child=>{(node.children?.filter(({id})=>id!==child.id))?.some(sibling=>sibling.children&&sibling.children.length>0)&&resultSet.add(child.id),addNodesWithSiblingHavingChildren(child)})}):data.children?.forEach(child=>{let resultSet=new Set(siblingsNodes.current);(data.children?.filter(c=>c.id!==child.id))?.some(sibling=>sibling.children&&sibling.children.length>0)&&(resultSet.add(child.id),siblingsNodes.current=resultSet),addNodesWithSiblingHavingChildren(child)})}let expandedAllNodes=allExpandedNodes=>{let initExpandedNodes=new Set(``);data&&Array.isArray(data)&&allExpandedNodes&&(data.forEach(node=>{initExpandedNodes.add(node.id)}),setExpandedNodes(initExpandedNodes))};useEffect(()=>{data&&addNodesWithSiblingHavingChildren(data)},[data]),useEffect(()=>{draggedNode?.isOver&&draggedNode.isTreeview?(draggedNode.overId&&handleItemDrag(draggedNode.overId),setDraggedNodeId(draggedNode.overId)):setDraggedNodeId(void 0)},[draggedNode]);let handlers=useMemo(()=>({unselectAll(){setInternalSelectedNodeId(void 0)},select(nodeId){handleItemClick(nodeId)},allExpandedNodes(){expandedAllNodes(allExpandedNodes)}}),[]);useImperativeHandle(ref,()=>handlers,[handlers]),useEffect(()=>{expandedAllNodes(allExpandedNodes)},[]),useEffect(()=>{externalSelectedNodeId&&!allExpandedNodes?(handleExternalSelectedNodeId(externalSelectedNodeId),setInternalSelectedNodeId(externalSelectedNodeId)):setInternalSelectedNodeId(void 0)},[externalSelectedNodeId]);let handleExternalSelectedNodeId=nodeId=>{if(!findNodeById(data,selectedNodeId)){setInternalSelectedNodeId(void 0);return}if(externalSelectedNodeId===`default`){expandedNodes.forEach(node=>onTreeItemUnfold?.(node));return}handleExpandNode(nodeId)},handleExpandNode=nodeId=>{let updatedExpandedNodes=new Set(expandedNodes),parents=findPathById(data,nodeId),arrayOrder=Array.from(updatedExpandedNodes);parents.forEach(parent=>{let index=arrayOrder.indexOf(parent);index>-1&&arrayOrder.splice(index,1),arrayOrder.push(parent)}),updatedExpandedNodes.clear(),arrayOrder.forEach(node=>updatedExpandedNodes.add(node)),updatedExpandedNodes.forEach(node=>onTreeItemUnfold?.(node)),setExpandedNodes(updatedExpandedNodes)},handleCollapseNode=nodeId=>{let updatedExpandedNodes=new Set(expandedNodes);updatedExpandedNodes.delete(nodeId),updatedExpandedNodes.forEach(node=>onTreeItemFold?.(node)),setExpandedNodes(updatedExpandedNodes)},handleToggleNode=nodeId=>{expandedNodes.has(nodeId)?handleCollapseNode(nodeId):handleExpandNode(nodeId)},handleSelectedItem=nodeId=>{selectedNodeId!==nodeId&&setInternalSelectedNodeId(nodeId)},handleItemClick=nodeId=>{handleSelectedItem(nodeId),handleExpandNode(nodeId),onTreeItemClick?.(nodeId)},handleFoldUnfold=nodeId=>{handleToggleNode(nodeId)},handleItemDrag=nodeId=>{findNodeById(data,externalSelectedNodeId)&&handleExpandNode(nodeId)};return{selectedNodeId,expandedNodes,siblingsNodes,draggedNodeId,handleItemClick,handleFoldUnfold}};export{useTreeView};
|