ptechcore_ui 1.0.24 → 1.0.27

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/index.cjs CHANGED
@@ -40,6 +40,7 @@ __export(index_exports, {
40
40
  CHOICES: () => Choices_default,
41
41
  CountrySelector: () => CountrySelector,
42
42
  DateInput: () => DateInput,
43
+ EntityFileManager: () => EntityFileManager,
43
44
  FDrawer: () => FDrawer,
44
45
  FetchApi: () => FetchApi,
45
46
  FileInput: () => FileInput,
@@ -69,11 +70,13 @@ __export(index_exports, {
69
70
  ToastContainer: () => Toast_default,
70
71
  ToastProvider: () => ToastProvider,
71
72
  UserServices: () => UserServices,
73
+ fileManagerApi: () => fileManagerApi,
72
74
  formatDate: () => formatDate,
73
75
  formatFileSize: () => formatFileSize,
74
76
  getFileIcon: () => getFileIcon,
75
77
  useAlert: () => useAlert,
76
78
  useFileManager: () => useFileManager,
79
+ useFileManagerApi: () => useFileManagerApi,
77
80
  useSession: () => useSession,
78
81
  useToast: () => useToast
79
82
  });
@@ -765,7 +768,7 @@ var import_react2 = require("react");
765
768
 
766
769
  // src/services/api.ts
767
770
  var chooseEnv = localStorage.getItem("env") ?? "prod";
768
- var ADDRESS_IP = chooseEnv === "prod" ? "back.rewise.praeduim-tech.com" : "localhost:8000";
771
+ var ADDRESS_IP = chooseEnv === "prod" ? "core.backend-rewise.praedium-tech.com" : "localhost:8000";
769
772
  var ADDRESS_IP_URL = chooseEnv === "prod" ? `https://${ADDRESS_IP}/` : `http://${ADDRESS_IP}/`;
770
773
  var API_URL = `${ADDRESS_IP_URL}api`;
771
774
  var FetchApi = class {
@@ -995,6 +998,7 @@ var SessionProvider = ({ children }) => {
995
998
  activeBusinessEntity,
996
999
  setActiveBusinessEntity,
997
1000
  token,
1001
+ setToken,
998
1002
  login,
999
1003
  logout,
1000
1004
  showAuthModal,
@@ -1027,9 +1031,8 @@ var UserServices = {
1027
1031
  deleteUser: (id, token) => FetchApi.delete(`${USERS_API_URL}${id}/`, token),
1028
1032
  // Obtenir les utilisateurs d'une entité
1029
1033
  getEntityUsers: (entityId, token) => FetchApi.get(`${API_URL}/core/entities/${entityId}/users/`, token),
1030
- // Obtenir les utilisateurs d'une entité
1031
- getuserEntitiesAccess: (id, token) => FetchApi.get(`${API_URL}/core/entities/`, token),
1032
- // !!! ce n'est pas la bonne url
1034
+ // Obtenir les entités auxquelles un utilisateur a accès
1035
+ getuserEntitiesAccess: (id, token) => FetchApi.get(`${API_URL}/core/users/${id}/entities/`, token),
1033
1036
  // Ajouter un utilisateur à une entité
1034
1037
  addUserToEntity: (entityId, userId, token) => FetchApi.post(`${API_URL}/core/entities/${entityId}/users/`, { user_id: userId }, token),
1035
1038
  // === Nouvelles méthodes pour le profil utilisateur ===
@@ -1896,7 +1899,7 @@ var RewiseLayout = ({ children, module_name = "Rewise", module_description = "De
1896
1899
  "organizations": "organizations",
1897
1900
  "entities": "entities"
1898
1901
  };
1899
- setSelectedModule(routeMapping[moduleId] || "dashboard");
1902
+ setSelectedModule(routeMapping[moduleId] || moduleId);
1900
1903
  }
1901
1904
  }, [location]);
1902
1905
  const handleThemeChange = (type) => {
@@ -7762,6 +7765,495 @@ var FileManagerContent = ({ className }) => {
7762
7765
  var FileManager = (props) => {
7763
7766
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(FileManagerProvider, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(FileManagerContent, { className: props.className }) });
7764
7767
  };
7768
+
7769
+ // src/components/common/FileManager/components/EntityFileManager.tsx
7770
+ var import_react22 = __toESM(require("react"), 1);
7771
+ var import_lucide_react17 = require("lucide-react");
7772
+
7773
+ // src/components/common/FileManager/hooks/useFileManagerApi.ts
7774
+ var import_react21 = require("react");
7775
+
7776
+ // src/components/common/FileManager/services/fileManagerApi.ts
7777
+ var API_BASE = "/api/files_manager";
7778
+ var ENTITY_MODEL_MAP = {
7779
+ CLIENT: "accounting.Client",
7780
+ VENDOR: "accounting.Vendor",
7781
+ RFQ: "procurement.RFQ",
7782
+ DEPT: "core.Departments",
7783
+ PROJECT: "core.Project"
7784
+ };
7785
+ async function apiRequest(endpoint, options = {}) {
7786
+ const url = `${API_BASE}${endpoint}`;
7787
+ const headers = {
7788
+ ...options.headers
7789
+ };
7790
+ if (!(options.body instanceof FormData)) {
7791
+ headers["Content-Type"] = "application/json";
7792
+ }
7793
+ const csrfToken = getCsrfToken();
7794
+ if (csrfToken) {
7795
+ headers["X-CSRFToken"] = csrfToken;
7796
+ }
7797
+ const response = await fetch(url, {
7798
+ ...options,
7799
+ headers,
7800
+ credentials: "include"
7801
+ // Inclure les cookies pour l'auth
7802
+ });
7803
+ if (!response.ok) {
7804
+ let errorMessage = `Erreur HTTP ${response.status}`;
7805
+ try {
7806
+ const errorData = await response.json();
7807
+ errorMessage = errorData.detail || errorData.message || errorMessage;
7808
+ } catch {
7809
+ }
7810
+ throw new Error(errorMessage);
7811
+ }
7812
+ if (response.status === 204) {
7813
+ return {};
7814
+ }
7815
+ return response.json();
7816
+ }
7817
+ function getCsrfToken() {
7818
+ const name = "csrftoken";
7819
+ const cookies = document.cookie.split(";");
7820
+ for (const cookie of cookies) {
7821
+ const trimmed = cookie.trim();
7822
+ if (trimmed.startsWith(`${name}=`)) {
7823
+ return trimmed.substring(name.length + 1);
7824
+ }
7825
+ }
7826
+ return null;
7827
+ }
7828
+ function buildQueryString(params) {
7829
+ const searchParams = new URLSearchParams();
7830
+ for (const [key, value] of Object.entries(params)) {
7831
+ if (value !== void 0 && value !== null) {
7832
+ searchParams.append(key, String(value));
7833
+ }
7834
+ }
7835
+ const queryString = searchParams.toString();
7836
+ return queryString ? `?${queryString}` : "";
7837
+ }
7838
+ async function getEntityFolders(entityType, entityId, folderType) {
7839
+ const model = ENTITY_MODEL_MAP[entityType];
7840
+ if (!model) {
7841
+ throw new Error(`Type d'entit\xE9 non support\xE9: ${entityType}`);
7842
+ }
7843
+ const params = buildQueryString({
7844
+ model,
7845
+ id: entityId,
7846
+ type: folderType
7847
+ });
7848
+ return apiRequest(`/folders/for_entity/${params}`);
7849
+ }
7850
+ async function getFolderTree(folderCode) {
7851
+ return apiRequest(`/folders/${folderCode}/tree/`);
7852
+ }
7853
+ async function getFolder(folderCode) {
7854
+ return apiRequest(`/folders/${folderCode}/`);
7855
+ }
7856
+ async function createFolder(name, parentCode, businessEntityId) {
7857
+ return apiRequest("/folders/", {
7858
+ method: "POST",
7859
+ body: JSON.stringify({
7860
+ name,
7861
+ parent: parentCode,
7862
+ business_entity: businessEntityId,
7863
+ folder_type: "MISC",
7864
+ // Type par défaut pour les dossiers créés manuellement
7865
+ is_system_folder: false
7866
+ })
7867
+ });
7868
+ }
7869
+ async function renameFolder(folderCode, newName) {
7870
+ return apiRequest(`/folders/${folderCode}/`, {
7871
+ method: "PATCH",
7872
+ body: JSON.stringify({ name: newName })
7873
+ });
7874
+ }
7875
+ async function deleteFolder(folderCode) {
7876
+ await apiRequest(`/folders/${folderCode}/`, {
7877
+ method: "DELETE"
7878
+ });
7879
+ }
7880
+ async function getFolderFiles(folderId) {
7881
+ const params = buildQueryString({ folder: folderId });
7882
+ return apiRequest(`/files/${params}`);
7883
+ }
7884
+ async function uploadFile(file, folderCode, options = {}) {
7885
+ const formData = new FormData();
7886
+ formData.append("file", file);
7887
+ formData.append("folder_id", folderCode);
7888
+ if (options.name) {
7889
+ formData.append("name", options.name);
7890
+ }
7891
+ if (options.description) {
7892
+ formData.append("description", options.description);
7893
+ }
7894
+ if (options.tags && options.tags.length > 0) {
7895
+ formData.append("tags", JSON.stringify(options.tags));
7896
+ }
7897
+ return apiRequest("/files/", {
7898
+ method: "POST",
7899
+ body: formData
7900
+ });
7901
+ }
7902
+ async function uploadFiles(files, folderCode) {
7903
+ const results = [];
7904
+ for (const file of files) {
7905
+ const uploaded = await uploadFile(file, folderCode);
7906
+ results.push(uploaded);
7907
+ }
7908
+ return results;
7909
+ }
7910
+ async function renameFile(fileCode, newName) {
7911
+ return apiRequest(`/files/${fileCode}/`, {
7912
+ method: "PATCH",
7913
+ body: JSON.stringify({ name: newName })
7914
+ });
7915
+ }
7916
+ async function deleteFile(fileCode) {
7917
+ await apiRequest(`/files/${fileCode}/`, {
7918
+ method: "DELETE"
7919
+ });
7920
+ }
7921
+ function getDownloadUrl(fileCode) {
7922
+ return `${API_BASE}/files/${fileCode}/download/`;
7923
+ }
7924
+ function getFileUrl(fileUrl) {
7925
+ if (fileUrl.startsWith("http://") || fileUrl.startsWith("https://")) {
7926
+ return fileUrl;
7927
+ }
7928
+ return fileUrl.startsWith("/") ? fileUrl : `/${fileUrl}`;
7929
+ }
7930
+ var fileManagerApi = {
7931
+ // Dossiers
7932
+ getEntityFolders,
7933
+ getFolderTree,
7934
+ getFolder,
7935
+ createFolder,
7936
+ renameFolder,
7937
+ deleteFolder,
7938
+ // Fichiers
7939
+ getFolderFiles,
7940
+ uploadFile,
7941
+ uploadFiles,
7942
+ renameFile,
7943
+ deleteFile,
7944
+ // URLs
7945
+ getDownloadUrl,
7946
+ getFileUrl,
7947
+ // Helpers exposés
7948
+ ENTITY_MODEL_MAP
7949
+ };
7950
+
7951
+ // src/components/common/FileManager/hooks/useFileManagerApi.ts
7952
+ function transformFile(backendFile, parentPath, parentId) {
7953
+ return {
7954
+ id: backendFile.code,
7955
+ name: backendFile.name,
7956
+ type: "file",
7957
+ mimeType: backendFile.mime_type,
7958
+ size: backendFile.size,
7959
+ path: `${parentPath}/${backendFile.name}`,
7960
+ parentId,
7961
+ url: fileManagerApi.getFileUrl(backendFile.file_url),
7962
+ createdAt: backendFile.created_at,
7963
+ updatedAt: backendFile.updated_at,
7964
+ metadata: {
7965
+ extension: backendFile.extension,
7966
+ folderId: backendFile.folder
7967
+ }
7968
+ };
7969
+ }
7970
+ function transformFolder(backendFolder, parentPath = "", parentId = null) {
7971
+ const currentPath = parentPath ? `${parentPath}/${backendFolder.name}` : `/${backendFolder.name}`;
7972
+ const childFolders = (backendFolder.children || []).map(
7973
+ (child) => transformFolder(child, currentPath, backendFolder.code)
7974
+ );
7975
+ const childFiles = (backendFolder.files || []).map(
7976
+ (file) => transformFile(file, currentPath, backendFolder.code)
7977
+ );
7978
+ return {
7979
+ id: backendFolder.code,
7980
+ name: backendFolder.name,
7981
+ type: "folder",
7982
+ path: currentPath,
7983
+ parentId,
7984
+ children: [...childFolders, ...childFiles],
7985
+ metadata: {
7986
+ folderType: backendFolder.folder_type,
7987
+ folderTypeDisplay: backendFolder.folder_type_display,
7988
+ categoryType: backendFolder.category_type,
7989
+ isSystemFolder: backendFolder.is_system_folder,
7990
+ fileCount: backendFolder.file_count,
7991
+ totalSize: backendFolder.total_size
7992
+ }
7993
+ };
7994
+ }
7995
+ function extractRootChildren(entityFolder) {
7996
+ return entityFolder.children || [];
7997
+ }
7998
+ function useFileManagerApi(entityType, entityId, businessEntityId) {
7999
+ const [data, setData] = (0, import_react21.useState)([]);
8000
+ const [loading, setLoading] = (0, import_react21.useState)(true);
8001
+ const [error, setError] = (0, import_react21.useState)(null);
8002
+ const [rootFolderCode, setRootFolderCode] = (0, import_react21.useState)(null);
8003
+ const loadEntityFolders = (0, import_react21.useCallback)(async () => {
8004
+ setLoading(true);
8005
+ setError(null);
8006
+ try {
8007
+ const folders = await fileManagerApi.getEntityFolders(entityType, entityId);
8008
+ if (!folders || folders.length === 0) {
8009
+ setData([]);
8010
+ setRootFolderCode(null);
8011
+ setLoading(false);
8012
+ return;
8013
+ }
8014
+ const entityFolder = folders.find((f) => f.folder_type === "ENTITY");
8015
+ if (!entityFolder) {
8016
+ console.warn("Dossier ENTITY non trouv\xE9, utilisation du premier dossier");
8017
+ const firstFolder = folders[0];
8018
+ setRootFolderCode(firstFolder.code);
8019
+ const tree = await fileManagerApi.getFolderTree(firstFolder.code);
8020
+ const transformed = transformFolder(tree);
8021
+ setData(extractRootChildren(transformed));
8022
+ } else {
8023
+ setRootFolderCode(entityFolder.code);
8024
+ const tree = await fileManagerApi.getFolderTree(entityFolder.code);
8025
+ const transformed = transformFolder(tree);
8026
+ setData(extractRootChildren(transformed));
8027
+ }
8028
+ } catch (err) {
8029
+ console.error("Erreur lors du chargement des dossiers:", err);
8030
+ setError(err instanceof Error ? err : new Error(String(err)));
8031
+ setData([]);
8032
+ } finally {
8033
+ setLoading(false);
8034
+ }
8035
+ }, [entityType, entityId]);
8036
+ const refresh = (0, import_react21.useCallback)(async () => {
8037
+ await loadEntityFolders();
8038
+ }, [loadEntityFolders]);
8039
+ (0, import_react21.useEffect)(() => {
8040
+ loadEntityFolders();
8041
+ }, [loadEntityFolders]);
8042
+ const handleCreateFolder = (0, import_react21.useCallback)(
8043
+ async (name, parentId) => {
8044
+ try {
8045
+ const created = await fileManagerApi.createFolder(
8046
+ name,
8047
+ parentId,
8048
+ businessEntityId
8049
+ );
8050
+ await refresh();
8051
+ return transformFolder(created, "", parentId);
8052
+ } catch (err) {
8053
+ console.error("Erreur lors de la cr\xE9ation du dossier:", err);
8054
+ setError(err instanceof Error ? err : new Error(String(err)));
8055
+ throw err;
8056
+ }
8057
+ },
8058
+ [businessEntityId, refresh]
8059
+ );
8060
+ const handleUploadFiles = (0, import_react21.useCallback)(
8061
+ async (files, parentId) => {
8062
+ try {
8063
+ const uploaded = await fileManagerApi.uploadFiles(files, parentId);
8064
+ await refresh();
8065
+ return uploaded.map((file) => transformFile(file, "", parentId));
8066
+ } catch (err) {
8067
+ console.error("Erreur lors de l'upload:", err);
8068
+ setError(err instanceof Error ? err : new Error(String(err)));
8069
+ throw err;
8070
+ }
8071
+ },
8072
+ [refresh]
8073
+ );
8074
+ const handleRename = (0, import_react21.useCallback)(
8075
+ async (item, newName) => {
8076
+ try {
8077
+ if (item.type === "folder") {
8078
+ await fileManagerApi.renameFolder(item.id, newName);
8079
+ } else {
8080
+ await fileManagerApi.renameFile(item.id, newName);
8081
+ }
8082
+ await refresh();
8083
+ } catch (err) {
8084
+ console.error("Erreur lors du renommage:", err);
8085
+ setError(err instanceof Error ? err : new Error(String(err)));
8086
+ throw err;
8087
+ }
8088
+ },
8089
+ [refresh]
8090
+ );
8091
+ const handleDelete = (0, import_react21.useCallback)(
8092
+ async (item) => {
8093
+ try {
8094
+ if (item.metadata?.isSystemFolder) {
8095
+ throw new Error("Les dossiers syst\xE8me ne peuvent pas \xEAtre supprim\xE9s");
8096
+ }
8097
+ if (item.type === "folder") {
8098
+ await fileManagerApi.deleteFolder(item.id);
8099
+ } else {
8100
+ await fileManagerApi.deleteFile(item.id);
8101
+ }
8102
+ await refresh();
8103
+ } catch (err) {
8104
+ console.error("Erreur lors de la suppression:", err);
8105
+ setError(err instanceof Error ? err : new Error(String(err)));
8106
+ throw err;
8107
+ }
8108
+ },
8109
+ [refresh]
8110
+ );
8111
+ const handleDownload = (0, import_react21.useCallback)((item) => {
8112
+ if (item.type === "file") {
8113
+ const url = item.url || fileManagerApi.getDownloadUrl(item.id);
8114
+ window.open(url, "_blank");
8115
+ }
8116
+ }, []);
8117
+ return {
8118
+ data,
8119
+ loading,
8120
+ error,
8121
+ rootFolderCode,
8122
+ refresh,
8123
+ handlers: {
8124
+ onCreateFolder: handleCreateFolder,
8125
+ onUploadFiles: handleUploadFiles,
8126
+ onRename: handleRename,
8127
+ onDelete: handleDelete,
8128
+ onDownload: handleDownload
8129
+ }
8130
+ };
8131
+ }
8132
+
8133
+ // src/components/common/FileManager/components/EntityFileManager.tsx
8134
+ var import_jsx_runtime29 = require("react/jsx-runtime");
8135
+ function getRootName(entityType) {
8136
+ const names = {
8137
+ CLIENT: "Documents Client",
8138
+ VENDOR: "Documents Fournisseur",
8139
+ RFQ: "Documents RFQ",
8140
+ DEPT: "Documents D\xE9partement",
8141
+ PROJECT: "Documents Projet"
8142
+ };
8143
+ return names[entityType] || "Documents";
8144
+ }
8145
+ var LoadingState = ({ height = "400px" }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
8146
+ "div",
8147
+ {
8148
+ className: "flex flex-col items-center justify-center bg-gray-50 dark:bg-gray-900 rounded-xl border border-gray-200 dark:border-gray-800",
8149
+ style: { height },
8150
+ children: [
8151
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react17.Loader2, { className: "w-10 h-10 text-blue-500 animate-spin mb-4" }),
8152
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "text-gray-600 dark:text-gray-400 text-sm", children: "Chargement des documents..." })
8153
+ ]
8154
+ }
8155
+ );
8156
+ var ErrorState = ({ error, onRetry, height = "400px" }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
8157
+ "div",
8158
+ {
8159
+ className: "flex flex-col items-center justify-center bg-red-50 dark:bg-red-900/20 rounded-xl border border-red-200 dark:border-red-800",
8160
+ style: { height },
8161
+ children: [
8162
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react17.AlertCircle, { className: "w-10 h-10 text-red-500 mb-4" }),
8163
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "text-red-600 dark:text-red-400 text-sm font-medium mb-2", children: "Erreur lors du chargement" }),
8164
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "text-red-500 dark:text-red-400 text-xs mb-4 max-w-md text-center px-4", children: error.message }),
8165
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
8166
+ "button",
8167
+ {
8168
+ onClick: onRetry,
8169
+ className: "flex items-center gap-2 px-4 py-2 bg-red-100 dark:bg-red-900/40 text-red-700 dark:text-red-300 rounded-lg hover:bg-red-200 dark:hover:bg-red-900/60 transition-colors text-sm",
8170
+ children: [
8171
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react17.RefreshCw, { className: "w-4 h-4" }),
8172
+ "R\xE9essayer"
8173
+ ]
8174
+ }
8175
+ )
8176
+ ]
8177
+ }
8178
+ );
8179
+ var EmptyState = ({ height = "400px" }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
8180
+ "div",
8181
+ {
8182
+ className: "flex flex-col items-center justify-center bg-gray-50 dark:bg-gray-900 rounded-xl border border-gray-200 dark:border-gray-800",
8183
+ style: { height },
8184
+ children: [
8185
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react17.FolderX, { className: "w-10 h-10 text-gray-400 mb-4" }),
8186
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "text-gray-600 dark:text-gray-400 text-sm font-medium mb-1", children: "Aucun document trouv\xE9" }),
8187
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "text-gray-500 dark:text-gray-500 text-xs", children: "La structure de dossiers n'a pas encore \xE9t\xE9 cr\xE9\xE9e pour cette entit\xE9." })
8188
+ ]
8189
+ }
8190
+ );
8191
+ var EntityFileManager = ({
8192
+ entityType,
8193
+ entityId,
8194
+ businessEntityId,
8195
+ className,
8196
+ height = "600px",
8197
+ // Permissions (défaut: tout autorisé)
8198
+ allowUpload = true,
8199
+ allowCreateFolder = true,
8200
+ allowRename = true,
8201
+ allowDelete = true,
8202
+ allowDownload = true,
8203
+ // Callbacks
8204
+ onFileSelect,
8205
+ onFileOpen,
8206
+ onUploadSuccess,
8207
+ onError
8208
+ }) => {
8209
+ const { data, loading, error, refresh, handlers } = useFileManagerApi(
8210
+ entityType,
8211
+ entityId,
8212
+ businessEntityId
8213
+ );
8214
+ import_react22.default.useEffect(() => {
8215
+ if (error && onError) {
8216
+ onError(error);
8217
+ }
8218
+ }, [error, onError]);
8219
+ if (loading) {
8220
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(LoadingState, { height });
8221
+ }
8222
+ if (error) {
8223
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ErrorState, { error, onRetry: refresh, height });
8224
+ }
8225
+ if (!data || data.length === 0) {
8226
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(EmptyState, { height });
8227
+ }
8228
+ const handleUploadFiles = async (files, parentId) => {
8229
+ const result = await handlers.onUploadFiles(files, parentId);
8230
+ if (result && onUploadSuccess) {
8231
+ onUploadSuccess(result);
8232
+ }
8233
+ return result;
8234
+ };
8235
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: cn("relative", className), style: { height }, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
8236
+ FileManager,
8237
+ {
8238
+ data,
8239
+ rootName: getRootName(entityType),
8240
+ onCreateFolder: handlers.onCreateFolder,
8241
+ onUploadFiles: handleUploadFiles,
8242
+ onRename: handlers.onRename,
8243
+ onDelete: handlers.onDelete,
8244
+ onDownload: handlers.onDownload,
8245
+ onSelect: onFileSelect,
8246
+ onOpen: onFileOpen,
8247
+ allowUpload,
8248
+ allowCreateFolder,
8249
+ allowRename,
8250
+ allowDelete,
8251
+ allowDownload,
8252
+ allowMultiSelect: true,
8253
+ className: "h-full"
8254
+ }
8255
+ ) });
8256
+ };
7765
8257
  // Annotate the CommonJS export names for ESM import in node:
7766
8258
  0 && (module.exports = {
7767
8259
  Alert,
@@ -7775,6 +8267,7 @@ var FileManager = (props) => {
7775
8267
  CHOICES,
7776
8268
  CountrySelector,
7777
8269
  DateInput,
8270
+ EntityFileManager,
7778
8271
  FDrawer,
7779
8272
  FetchApi,
7780
8273
  FileInput,
@@ -7804,11 +8297,13 @@ var FileManager = (props) => {
7804
8297
  ToastContainer,
7805
8298
  ToastProvider,
7806
8299
  UserServices,
8300
+ fileManagerApi,
7807
8301
  formatDate,
7808
8302
  formatFileSize,
7809
8303
  getFileIcon,
7810
8304
  useAlert,
7811
8305
  useFileManager,
8306
+ useFileManagerApi,
7812
8307
  useSession,
7813
8308
  useToast
7814
8309
  });