@edifice.io/react 2.2.3-develop-integration.20250417103951 → 2.2.3-develop-b2school.20250418102516
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/components/Combobox/Combobox.d.ts +56 -5
- package/dist/components/Combobox/Combobox.js +16 -7
- package/dist/components/Combobox/ComboboxTrigger.d.ts +31 -2
- package/dist/components/Combobox/ComboboxTrigger.js +31 -8
- package/dist/components/Dropdown/Dropdown.d.ts +10 -2
- package/dist/components/Dropdown/Dropdown.js +5 -3
- package/dist/components/Dropdown/DropdownItem.d.ts +5 -1
- package/dist/components/Dropdown/DropdownItem.js +4 -1
- package/dist/components/Dropdown/DropdownTrigger.js +5 -1
- package/dist/components/List/List.d.ts +9 -1
- package/dist/components/List/List.js +9 -9
- package/dist/components/SearchBar/SearchBar.d.ts +1 -1
- package/dist/components/SearchBar/SearchBar.js +3 -1
- package/dist/editor.js +28 -28
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useCheckable/useCheckable.js +10 -3
- package/dist/hooks/useConversation/useConversation.d.ts +1 -1
- package/dist/hooks/useConversation/useConversation.js +13 -17
- package/dist/hooks/useDropdown/useDropdown.d.ts +2 -1
- package/dist/hooks/useDropdown/useDropdown.js +5 -3
- package/dist/hooks/useWorkspaceFolders/index.d.ts +2 -0
- package/dist/hooks/useWorkspaceFolders/useWorkspaceFolders.d.ts +28 -0
- package/dist/hooks/useWorkspaceFolders/useWorkspaceFolders.js +74 -0
- package/dist/icons.js +280 -266
- package/dist/index.d.ts +1 -0
- package/dist/index.js +48 -20
- package/dist/modals.js +16 -14
- package/dist/modules/editor/components/Editor/Editor.d.ts +3 -1
- package/dist/modules/editor/components/Editor/Editor.js +9 -18
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.d.ts +1 -4
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +4 -19
- package/dist/modules/editor/components/NodeView/ConversationHistoryNodeView.d.ts +2 -0
- package/dist/modules/editor/components/NodeView/ConversationHistoryNodeView.js +10 -0
- package/dist/modules/editor/components/NodeView/index.d.ts +2 -1
- package/dist/modules/editor/components/Renderer/ConversationHistoryRenderer.d.ts +8 -0
- package/dist/modules/editor/components/Renderer/ConversationHistoryRenderer.js +28 -0
- package/dist/modules/editor/components/Renderer/index.d.ts +2 -1
- package/dist/modules/editor/hooks/index.d.ts +0 -2
- package/dist/modules/editor/hooks/useTipTapEditor.d.ts +6 -2
- package/dist/modules/editor/hooks/useTipTapEditor.js +2 -2
- package/dist/modules/icons/components/IconFolderAdd.d.ts +7 -0
- package/dist/modules/icons/components/IconFolderAdd.js +13 -0
- package/dist/modules/icons/components/IconFolderDelete.d.ts +7 -0
- package/dist/modules/icons/components/IconFolderDelete.js +12 -0
- package/dist/modules/icons/components/{IconCantoo.d.ts → IconGlobe2.d.ts} +2 -2
- package/dist/modules/icons/components/IconGlobe2.js +16 -0
- package/dist/modules/icons/components/IconGroupAvatar.d.ts +7 -0
- package/dist/modules/icons/components/IconGroupAvatar.js +12 -0
- package/dist/modules/icons/components/IconMailRecall.d.ts +7 -0
- package/dist/modules/icons/components/IconMailRecall.js +13 -0
- package/dist/modules/icons/components/IconQuestionMark.d.ts +7 -0
- package/dist/modules/icons/components/IconQuestionMark.js +13 -0
- package/dist/modules/icons/components/IconReadMail.d.ts +7 -0
- package/dist/modules/icons/components/IconReadMail.js +16 -0
- package/dist/modules/icons/components/IconSignature.d.ts +7 -0
- package/dist/modules/icons/components/IconSignature.js +13 -0
- package/dist/modules/icons/components/IconUndoAll.d.ts +7 -0
- package/dist/modules/icons/components/IconUndoAll.js +14 -0
- package/dist/modules/icons/components/IconUnreadMail.d.ts +7 -0
- package/dist/modules/icons/components/IconUnreadMail.js +16 -0
- package/dist/modules/icons/components/index.d.ts +10 -3
- package/dist/modules/modals/ConfirmModal/ConfirmModal.d.ts +47 -0
- package/dist/modules/modals/ConfirmModal/ConfirmModal.js +37 -0
- package/dist/modules/modals/ConfirmModal/index.d.ts +1 -0
- package/dist/modules/modals/ShareModal/hooks/useShare.js +1 -1
- package/dist/modules/modals/index.d.ts +1 -0
- package/dist/modules/multimedia/WorkspaceFolders/WorkspaceFolders.d.ts +8 -0
- package/dist/modules/multimedia/WorkspaceFolders/WorkspaceFolders.js +31 -0
- package/dist/modules/multimedia/WorkspaceFolders/index.d.ts +1 -0
- package/dist/modules/multimedia/index.d.ts +1 -0
- package/dist/multimedia.js +3 -1
- package/package.json +6 -6
- package/dist/modules/editor/components/Editor/CantooAdaptTextBoxView.d.ts +0 -7
- package/dist/modules/editor/components/Editor/CantooAdaptTextBoxView.js +0 -32
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Cantoo.d.ts +0 -12
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Cantoo.js +0 -97
- package/dist/modules/editor/hooks/useCantooAdaptTextBox.d.ts +0 -15
- package/dist/modules/editor/hooks/useCantooAdaptTextBox.js +0 -29
- package/dist/modules/editor/hooks/useCantooEditor.d.ts +0 -9
- package/dist/modules/editor/hooks/useCantooEditor.js +0 -55
- package/dist/modules/icons/components/IconCantoo.js +0 -23
- package/dist/modules/icons/components/IconMicOff.d.ts +0 -7
- package/dist/modules/icons/components/IconMicOff.js +0 -12
- package/dist/modules/icons/components/IconTextToSpeechOff.d.ts +0 -7
- package/dist/modules/icons/components/IconTextToSpeechOff.js +0 -12
|
@@ -27,6 +27,7 @@ export interface UseDropdownProps {
|
|
|
27
27
|
menuProps: Record<string, any>;
|
|
28
28
|
itemProps: Record<string, any>;
|
|
29
29
|
setVisible: Dispatch<SetStateAction<boolean>>;
|
|
30
|
+
openOnSpace?: boolean;
|
|
30
31
|
}
|
|
31
|
-
declare const useDropdown: (placement: Placement | undefined, extraTriggerKeyDownHandler?: (event: React.KeyboardEvent<HTMLButtonElement>) => void, isTriggerHovered?: boolean) => UseDropdownProps;
|
|
32
|
+
declare const useDropdown: (placement: Placement | undefined, extraTriggerKeyDownHandler?: (event: React.KeyboardEvent<HTMLButtonElement>) => void, isTriggerHovered?: boolean, focusOnVisible?: boolean, openOnSpace?: boolean) => UseDropdownProps;
|
|
32
33
|
export default useDropdown;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useId, useState, useRef, useEffect, useCallback } from "react";
|
|
2
2
|
import { useFloating, offset, size, flip, autoUpdate, useHover, safePolygon } from "@floating-ui/react";
|
|
3
3
|
import { mergeRefs } from "../../utilities/refs/ref.js";
|
|
4
|
-
const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !1) => {
|
|
4
|
+
const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !1, focusOnVisible = !0, openOnSpace = !0) => {
|
|
5
5
|
const id = useId(), [visible, setVisible] = useState(!1), [activeIndex, setActiveIndex] = useState(-1), [isFocused, setIsFocused] = useState(null), {
|
|
6
6
|
refs,
|
|
7
7
|
floatingStyles,
|
|
@@ -11,7 +11,7 @@ const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !
|
|
|
11
11
|
open: visible,
|
|
12
12
|
onOpenChange: setVisible,
|
|
13
13
|
whileElementsMounted: autoUpdate,
|
|
14
|
-
middleware: [offset(
|
|
14
|
+
middleware: [offset(0), size({
|
|
15
15
|
apply({
|
|
16
16
|
rects,
|
|
17
17
|
elements
|
|
@@ -32,7 +32,7 @@ const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !
|
|
|
32
32
|
});
|
|
33
33
|
const menuRef = useRef(null), triggerRef = useRef(null), itemRefs = useRef({});
|
|
34
34
|
useEffect(() => {
|
|
35
|
-
visible
|
|
35
|
+
visible && menuRef.current && focusOnVisible ? (menuRef.current.focus(), setActiveIndex(0)) : (setActiveIndex(-1), itemRefs.current = {});
|
|
36
36
|
}, [visible]), useEffect(() => {
|
|
37
37
|
if (activeIndex !== -1) {
|
|
38
38
|
const currentItem = Object.values(itemRefs.current)[activeIndex];
|
|
@@ -66,6 +66,8 @@ const useDropdown = (placement, extraTriggerKeyDownHandler, isTriggerHovered = !
|
|
|
66
66
|
switch (event.code) {
|
|
67
67
|
case " ":
|
|
68
68
|
case "Space":
|
|
69
|
+
if (!openOnSpace)
|
|
70
|
+
break;
|
|
69
71
|
case "Enter":
|
|
70
72
|
case "ArrowDown":
|
|
71
73
|
case "Down":
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IUserInfo } from '@edifice.io/client';
|
|
2
|
+
interface FolderTreeNode {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
children?: FolderTreeNode[];
|
|
6
|
+
canCopyFileInto: boolean;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const WORKSPACE_OWNER_FOLDER_ID = "workspace-owner-folder-id";
|
|
10
|
+
export declare const WORKSPACE_SHARED_FOLDER_ID = "workspace-shared-folder-id";
|
|
11
|
+
declare function useWorkspaceFolders(): {
|
|
12
|
+
folderTree: ({
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
children: FolderTreeNode[];
|
|
16
|
+
canCopyFileInto: boolean;
|
|
17
|
+
disabled?: undefined;
|
|
18
|
+
} | {
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
children: FolderTreeNode[];
|
|
22
|
+
canCopyFileInto: boolean;
|
|
23
|
+
disabled: boolean;
|
|
24
|
+
})[];
|
|
25
|
+
setSearchQuery: import('react').Dispatch<import('react').SetStateAction<string>>;
|
|
26
|
+
user: IUserInfo | undefined;
|
|
27
|
+
};
|
|
28
|
+
export default useWorkspaceFolders;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { odeServices } from "@edifice.io/client";
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
import { useState, useMemo } from "react";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
import { useEdificeClient } from "../../providers/EdificeClientProvider/EdificeClientProvider.hook.js";
|
|
6
|
+
const WORKSPACE_OWNER_FOLDER_ID = "workspace-owner-folder-id", WORKSPACE_SHARED_FOLDER_ID = "workspace-shared-folder-id";
|
|
7
|
+
function useWorkspaceFolders() {
|
|
8
|
+
const {
|
|
9
|
+
t
|
|
10
|
+
} = useTranslation(), {
|
|
11
|
+
user
|
|
12
|
+
} = useEdificeClient(), {
|
|
13
|
+
data: ownerWorkspaceData = []
|
|
14
|
+
} = useQuery({
|
|
15
|
+
queryKey: ["workspace-owner-folders"],
|
|
16
|
+
queryFn: () => odeServices.workspace().listOwnerFolders(!0)
|
|
17
|
+
}), {
|
|
18
|
+
data: sharedWorkspaceData = []
|
|
19
|
+
} = useQuery({
|
|
20
|
+
queryKey: ["workspace-shared-folders"],
|
|
21
|
+
queryFn: () => odeServices.workspace().listSharedFolders(!0)
|
|
22
|
+
}), [searchQuery, setSearchQuery] = useState("");
|
|
23
|
+
return {
|
|
24
|
+
folderTree: useMemo(() => {
|
|
25
|
+
const buildWorkspaceTree = (ownerTree, sharedTree) => [{
|
|
26
|
+
id: WORKSPACE_OWNER_FOLDER_ID,
|
|
27
|
+
name: t("workspace.myDocuments"),
|
|
28
|
+
children: ownerTree,
|
|
29
|
+
canCopyFileInto: !0
|
|
30
|
+
}, {
|
|
31
|
+
id: WORKSPACE_SHARED_FOLDER_ID,
|
|
32
|
+
name: t("workspace.sharedDocuments"),
|
|
33
|
+
children: sharedTree,
|
|
34
|
+
canCopyFileInto: !1,
|
|
35
|
+
disabled: !0
|
|
36
|
+
}], ownerFolders = buildTree(ownerWorkspaceData, user), sharedFolders = buildTree(sharedWorkspaceData, user);
|
|
37
|
+
return buildWorkspaceTree(searchQuery ? filterTree(ownerFolders, searchQuery) : ownerFolders, searchQuery ? filterTree(sharedFolders, searchQuery) : sharedFolders);
|
|
38
|
+
}, [ownerWorkspaceData, sharedWorkspaceData, searchQuery, user]),
|
|
39
|
+
setSearchQuery,
|
|
40
|
+
user
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const buildTree = (workspaceData, user) => {
|
|
44
|
+
const nodes = /* @__PURE__ */ new Map(), fullTree = [];
|
|
45
|
+
return workspaceData.forEach((item) => {
|
|
46
|
+
const canCopyFileInto = user && canWriteOnFolder(item, user.userId, user.groupsIds);
|
|
47
|
+
nodes.set(item._id, {
|
|
48
|
+
id: item._id,
|
|
49
|
+
name: item.name,
|
|
50
|
+
children: [],
|
|
51
|
+
canCopyFileInto
|
|
52
|
+
});
|
|
53
|
+
}), workspaceData.forEach((item) => {
|
|
54
|
+
var _a;
|
|
55
|
+
const nodeItem = nodes.get(item._id);
|
|
56
|
+
nodeItem.canCopyFileInto && (item.eParent && nodes.has(item.eParent) ? (_a = nodes.get(item.eParent)) == null || _a.children.push(nodeItem) : fullTree.push(nodeItem));
|
|
57
|
+
}), fullTree;
|
|
58
|
+
}, filterTree = (nodes, search) => nodes.map((node) => {
|
|
59
|
+
const filteredChildren = node.children ? filterTree(node.children, search) : [];
|
|
60
|
+
return node.name.toLowerCase().includes(search.toLowerCase()) || filteredChildren.length > 0 ? {
|
|
61
|
+
...node,
|
|
62
|
+
children: filteredChildren
|
|
63
|
+
} : null;
|
|
64
|
+
}).filter((node) => node !== null), canWriteOnFolder = (folderData, userId, userGroupsIds) => {
|
|
65
|
+
var _a;
|
|
66
|
+
if (folderData.owner === userId) return !0;
|
|
67
|
+
const userRights = (_a = folderData.inheritedShares) == null ? void 0 : _a.filter((right) => right.userId === userId || userGroupsIds.includes(right.groupId)), contrib = "org-entcore-workspace-controllers-WorkspaceController|updateDocument";
|
|
68
|
+
return !!(userRights != null && userRights.find((right) => right[contrib]));
|
|
69
|
+
};
|
|
70
|
+
export {
|
|
71
|
+
WORKSPACE_OWNER_FOLDER_ID,
|
|
72
|
+
WORKSPACE_SHARED_FOLDER_ID,
|
|
73
|
+
useWorkspaceFolders as default
|
|
74
|
+
};
|