@strapi/upload 5.36.0 → 5.37.0
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/admin/future/App.js +5 -12
- package/dist/admin/future/App.js.map +1 -1
- package/dist/admin/future/App.mjs +5 -12
- package/dist/admin/future/App.mjs.map +1 -1
- package/dist/admin/future/components/UploadProgressDialog.js +494 -0
- package/dist/admin/future/components/UploadProgressDialog.js.map +1 -0
- package/dist/admin/future/components/UploadProgressDialog.mjs +473 -0
- package/dist/admin/future/components/UploadProgressDialog.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/AssetsPage.js +183 -181
- package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -1
- package/dist/admin/future/pages/Assets/AssetsPage.mjs +190 -188
- package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsGrid.js +95 -13
- package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +97 -15
- package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsTable.js +99 -6
- package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsTable.mjs +100 -7
- package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js +127 -0
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs +105 -0
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/hooks/useFolderInfo.js +50 -0
- package/dist/admin/future/pages/Assets/hooks/useFolderInfo.js.map +1 -0
- package/dist/admin/future/pages/Assets/hooks/useFolderInfo.mjs +48 -0
- package/dist/admin/future/pages/Assets/hooks/useFolderInfo.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js +20 -0
- package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js.map +1 -0
- package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs +18 -0
- package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js +77 -0
- package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js.map +1 -0
- package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs +74 -0
- package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs.map +1 -0
- package/dist/admin/future/services/api.js +419 -9
- package/dist/admin/future/services/api.js.map +1 -1
- package/dist/admin/future/services/api.mjs +417 -9
- package/dist/admin/future/services/api.mjs.map +1 -1
- package/dist/admin/future/services/assets.js +32 -3
- package/dist/admin/future/services/assets.js.map +1 -1
- package/dist/admin/future/services/assets.mjs +32 -3
- package/dist/admin/future/services/assets.mjs.map +1 -1
- package/dist/admin/future/services/folders.js +101 -0
- package/dist/admin/future/services/folders.js.map +1 -0
- package/dist/admin/future/services/folders.mjs +98 -0
- package/dist/admin/future/services/folders.mjs.map +1 -0
- package/dist/admin/future/store/hooks.js +10 -0
- package/dist/admin/future/store/hooks.js.map +1 -0
- package/dist/admin/future/store/hooks.mjs +7 -0
- package/dist/admin/future/store/hooks.mjs.map +1 -0
- package/dist/admin/future/store/uploadProgress.js +156 -0
- package/dist/admin/future/store/uploadProgress.js.map +1 -0
- package/dist/admin/future/store/uploadProgress.mjs +143 -0
- package/dist/admin/future/store/uploadProgress.mjs.map +1 -0
- package/dist/admin/index.js +11 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +11 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/package.json.js +11 -10
- package/dist/admin/package.json.js.map +1 -1
- package/dist/admin/package.json.mjs +11 -10
- package/dist/admin/package.json.mjs.map +1 -1
- package/dist/admin/src/future/components/UploadProgressDialog.d.ts +1 -0
- package/dist/admin/src/future/pages/Assets/components/AssetsGrid.d.ts +3 -1
- package/dist/admin/src/future/pages/Assets/components/AssetsTable.d.ts +3 -1
- package/dist/admin/src/future/pages/Assets/components/DropZone/UploadDropZone.d.ts +10 -0
- package/dist/admin/src/future/pages/Assets/hooks/useFolderInfo.d.ts +5 -0
- package/dist/admin/src/future/pages/Assets/hooks/useFolderNavigation.d.ts +5 -0
- package/dist/admin/src/future/pages/Assets/hooks/useInfiniteAssets.d.ts +17 -0
- package/dist/admin/src/future/services/api.d.ts +21 -3
- package/dist/admin/src/future/services/folders.d.ts +16 -0
- package/dist/admin/src/future/store/hooks.d.ts +6 -0
- package/dist/admin/src/future/store/uploadProgress.d.ts +46 -0
- package/dist/admin/translations/en.json.js +24 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +24 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/server/controllers/admin-upload.js +151 -2
- package/dist/server/controllers/admin-upload.js.map +1 -1
- package/dist/server/controllers/admin-upload.mjs +151 -2
- package/dist/server/controllers/admin-upload.mjs.map +1 -1
- package/dist/server/controllers/content-api.js +14 -6
- package/dist/server/controllers/content-api.js.map +1 -1
- package/dist/server/controllers/content-api.mjs +15 -7
- package/dist/server/controllers/content-api.mjs.map +1 -1
- package/dist/server/routes/admin.js +10 -0
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/admin.mjs +10 -0
- package/dist/server/routes/admin.mjs.map +1 -1
- package/dist/server/src/controllers/admin-upload.d.ts +12 -0
- package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
- package/dist/server/src/controllers/content-api.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +1 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +1 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/admin.d.ts.map +1 -1
- package/dist/server/src/utils/mime-validation.d.ts +5 -0
- package/dist/server/src/utils/mime-validation.d.ts.map +1 -1
- package/dist/server/utils/mime-validation.js +7 -4
- package/dist/server/utils/mime-validation.js.map +1 -1
- package/dist/server/utils/mime-validation.mjs +7 -4
- package/dist/server/utils/mime-validation.mjs.map +1 -1
- package/dist/shared/contracts/files.d.ts +52 -0
- package/dist/shared/contracts/files.d.ts.map +1 -0
- package/dist/shared/contracts/folders.d.ts +2 -0
- package/package.json +11 -10
- package/dist/admin/future/pages/AIGenerationPage.js +0 -24
- package/dist/admin/future/pages/AIGenerationPage.js.map +0 -1
- package/dist/admin/future/pages/AIGenerationPage.mjs +0 -22
- package/dist/admin/future/pages/AIGenerationPage.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.js +0 -33
- package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.mjs +0 -31
- package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.mjs.map +0 -1
- package/dist/admin/src/future/pages/AIGenerationPage.d.ts +0 -1
- package/dist/admin/src/future/pages/Assets/components/DropZone/DropZoneWithOverlay.d.ts +0 -4
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { createSlice } from '@reduxjs/toolkit';
|
|
2
|
+
|
|
3
|
+
const initialState = {
|
|
4
|
+
isVisible: false,
|
|
5
|
+
isMinimized: false,
|
|
6
|
+
progress: 0,
|
|
7
|
+
totalFiles: 0,
|
|
8
|
+
files: [],
|
|
9
|
+
errors: [],
|
|
10
|
+
uploadId: 0
|
|
11
|
+
};
|
|
12
|
+
const computeProgress = (files)=>{
|
|
13
|
+
if (files.length === 0) return 0;
|
|
14
|
+
const totalSize = files.reduce((sum, f)=>sum + f.size, 0);
|
|
15
|
+
if (totalSize === 0) {
|
|
16
|
+
// Fallback to count-based if sizes are unknown
|
|
17
|
+
const completed = files.filter((f)=>f.status === 'complete' || f.status === 'error' || f.status === 'cancelled').length;
|
|
18
|
+
return Math.round(completed / files.length * 100);
|
|
19
|
+
}
|
|
20
|
+
const completedSize = files.filter((f)=>f.status === 'complete' || f.status === 'error' || f.status === 'cancelled').reduce((sum, f)=>sum + f.size, 0);
|
|
21
|
+
return Math.round(completedSize / totalSize * 100);
|
|
22
|
+
};
|
|
23
|
+
const uploadProgressSlice = createSlice({
|
|
24
|
+
name: 'uploadProgress',
|
|
25
|
+
initialState,
|
|
26
|
+
reducers: {
|
|
27
|
+
openUploadProgress (state, action) {
|
|
28
|
+
state.isVisible = true;
|
|
29
|
+
state.isMinimized = false;
|
|
30
|
+
state.progress = 0;
|
|
31
|
+
state.totalFiles = action.payload.totalFiles;
|
|
32
|
+
state.files = action.payload.fileNames.map((name, index)=>({
|
|
33
|
+
name,
|
|
34
|
+
index,
|
|
35
|
+
status: 'pending',
|
|
36
|
+
size: action.payload.fileSizes[index] || 0
|
|
37
|
+
}));
|
|
38
|
+
state.errors = [];
|
|
39
|
+
state.uploadId += 1;
|
|
40
|
+
},
|
|
41
|
+
setFileUploading (state, action) {
|
|
42
|
+
const { index } = action.payload;
|
|
43
|
+
if (state.files[index]) {
|
|
44
|
+
state.files[index].status = 'uploading';
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
setFileComplete (state, action) {
|
|
48
|
+
const { index, file } = action.payload;
|
|
49
|
+
if (state.files[index]) {
|
|
50
|
+
state.files[index].status = 'complete';
|
|
51
|
+
state.files[index].file = file;
|
|
52
|
+
}
|
|
53
|
+
state.progress = computeProgress(state.files);
|
|
54
|
+
},
|
|
55
|
+
setFileError (state, action) {
|
|
56
|
+
const { index, name, message } = action.payload;
|
|
57
|
+
if (state.files[index]) {
|
|
58
|
+
state.files[index].status = 'error';
|
|
59
|
+
state.files[index].error = message;
|
|
60
|
+
}
|
|
61
|
+
state.errors = [
|
|
62
|
+
...state.errors,
|
|
63
|
+
{
|
|
64
|
+
name,
|
|
65
|
+
message
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
state.progress = computeProgress(state.files);
|
|
69
|
+
},
|
|
70
|
+
updateProgress (state, action) {
|
|
71
|
+
state.progress = action.payload;
|
|
72
|
+
},
|
|
73
|
+
addUploadErrors (state, action) {
|
|
74
|
+
state.errors = [
|
|
75
|
+
...state.errors,
|
|
76
|
+
...action.payload
|
|
77
|
+
];
|
|
78
|
+
},
|
|
79
|
+
closeUploadProgress (state) {
|
|
80
|
+
state.isVisible = false;
|
|
81
|
+
state.isMinimized = false;
|
|
82
|
+
state.progress = 0;
|
|
83
|
+
state.totalFiles = 0;
|
|
84
|
+
state.files = [];
|
|
85
|
+
state.errors = [];
|
|
86
|
+
},
|
|
87
|
+
toggleMinimize (state) {
|
|
88
|
+
state.isMinimized = !state.isMinimized;
|
|
89
|
+
},
|
|
90
|
+
cancelUpload (state) {
|
|
91
|
+
// Mark all pending and uploading files as cancelled
|
|
92
|
+
state.files = state.files.map((file)=>{
|
|
93
|
+
if (file.status === 'pending' || file.status === 'uploading') {
|
|
94
|
+
return {
|
|
95
|
+
...file,
|
|
96
|
+
status: 'cancelled'
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return file;
|
|
100
|
+
});
|
|
101
|
+
state.progress = computeProgress(state.files);
|
|
102
|
+
},
|
|
103
|
+
setUploadFailed (state, action) {
|
|
104
|
+
// Mark all pending and uploading files as errored when a catastrophic failure occurs
|
|
105
|
+
state.files = state.files.map((file)=>{
|
|
106
|
+
if (file.status === 'pending' || file.status === 'uploading') {
|
|
107
|
+
return {
|
|
108
|
+
...file,
|
|
109
|
+
status: 'error',
|
|
110
|
+
error: action.payload.message
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return file;
|
|
114
|
+
});
|
|
115
|
+
state.progress = 100;
|
|
116
|
+
state.errors = [
|
|
117
|
+
...state.errors,
|
|
118
|
+
{
|
|
119
|
+
name: 'Upload Error',
|
|
120
|
+
message: action.payload.message
|
|
121
|
+
}
|
|
122
|
+
];
|
|
123
|
+
},
|
|
124
|
+
retryCancelledFiles (state) {
|
|
125
|
+
// Reset all cancelled files back to pending for retry
|
|
126
|
+
state.files = state.files.map((file)=>{
|
|
127
|
+
if (file.status === 'cancelled') {
|
|
128
|
+
return {
|
|
129
|
+
...file,
|
|
130
|
+
status: 'pending'
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
return file;
|
|
134
|
+
});
|
|
135
|
+
state.progress = computeProgress(state.files);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
const { openUploadProgress, setFileUploading, setFileComplete, setFileError, updateProgress, addUploadErrors, closeUploadProgress, toggleMinimize, cancelUpload, setUploadFailed, retryCancelledFiles } = uploadProgressSlice.actions;
|
|
140
|
+
const uploadProgressReducer = uploadProgressSlice.reducer;
|
|
141
|
+
|
|
142
|
+
export { addUploadErrors, cancelUpload, closeUploadProgress, openUploadProgress, retryCancelledFiles, setFileComplete, setFileError, setFileUploading, setUploadFailed, toggleMinimize, updateProgress, uploadProgressReducer };
|
|
143
|
+
//# sourceMappingURL=uploadProgress.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadProgress.mjs","sources":["../../../../admin/src/future/store/uploadProgress.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\n\nimport type { File } from '../../../../shared/contracts/files';\n\nexport interface FileUploadError {\n name: string;\n message: string;\n}\n\nexport type FileProgressStatus = 'pending' | 'uploading' | 'complete' | 'error' | 'cancelled';\n\nexport interface FileProgress {\n name: string;\n index: number;\n status: FileProgressStatus;\n size: number;\n file?: File;\n error?: string;\n}\n\nexport interface UploadProgressState {\n isVisible: boolean;\n isMinimized: boolean;\n progress: number;\n totalFiles: number;\n files: FileProgress[];\n errors: FileUploadError[];\n uploadId: number;\n}\n\nexport interface RootState {\n uploadProgress: UploadProgressState;\n}\n\nconst initialState: UploadProgressState = {\n isVisible: false,\n isMinimized: false,\n progress: 0,\n totalFiles: 0,\n files: [],\n errors: [],\n uploadId: 0,\n};\n\nconst computeProgress = (files: FileProgress[]): number => {\n if (files.length === 0) return 0;\n const totalSize = files.reduce((sum, f) => sum + f.size, 0);\n if (totalSize === 0) {\n // Fallback to count-based if sizes are unknown\n const completed = files.filter(\n (f) => f.status === 'complete' || f.status === 'error' || f.status === 'cancelled'\n ).length;\n return Math.round((completed / files.length) * 100);\n }\n const completedSize = files\n .filter((f) => f.status === 'complete' || f.status === 'error' || f.status === 'cancelled')\n .reduce((sum, f) => sum + f.size, 0);\n return Math.round((completedSize / totalSize) * 100);\n};\n\nconst uploadProgressSlice = createSlice({\n name: 'uploadProgress',\n initialState,\n reducers: {\n openUploadProgress(\n state,\n action: PayloadAction<{ totalFiles: number; fileNames: string[]; fileSizes: number[] }>\n ) {\n state.isVisible = true;\n state.isMinimized = false;\n state.progress = 0;\n state.totalFiles = action.payload.totalFiles;\n state.files = action.payload.fileNames.map((name, index) => ({\n name,\n index,\n status: 'pending' as FileProgressStatus,\n size: action.payload.fileSizes[index] || 0,\n }));\n state.errors = [];\n state.uploadId += 1;\n },\n setFileUploading(\n state,\n action: PayloadAction<{ name: string; index: number; total: number; size: number }>\n ) {\n const { index } = action.payload;\n if (state.files[index]) {\n state.files[index].status = 'uploading';\n }\n },\n setFileComplete(state, action: PayloadAction<{ index: number; file: File }>) {\n const { index, file } = action.payload;\n if (state.files[index]) {\n state.files[index].status = 'complete';\n state.files[index].file = file;\n }\n state.progress = computeProgress(state.files);\n },\n setFileError(state, action: PayloadAction<{ index: number; name: string; message: string }>) {\n const { index, name, message } = action.payload;\n if (state.files[index]) {\n state.files[index].status = 'error';\n state.files[index].error = message;\n }\n state.errors = [...state.errors, { name, message }];\n state.progress = computeProgress(state.files);\n },\n updateProgress(state, action: PayloadAction<number>) {\n state.progress = action.payload;\n },\n addUploadErrors(state, action: PayloadAction<FileUploadError[]>) {\n state.errors = [...state.errors, ...action.payload];\n },\n closeUploadProgress(state) {\n state.isVisible = false;\n state.isMinimized = false;\n state.progress = 0;\n state.totalFiles = 0;\n state.files = [];\n state.errors = [];\n },\n toggleMinimize(state) {\n state.isMinimized = !state.isMinimized;\n },\n cancelUpload(state) {\n // Mark all pending and uploading files as cancelled\n state.files = state.files.map((file) => {\n if (file.status === 'pending' || file.status === 'uploading') {\n return { ...file, status: 'cancelled' as FileProgressStatus };\n }\n return file;\n });\n state.progress = computeProgress(state.files);\n },\n setUploadFailed(state, action: PayloadAction<{ message: string }>) {\n // Mark all pending and uploading files as errored when a catastrophic failure occurs\n state.files = state.files.map((file) => {\n if (file.status === 'pending' || file.status === 'uploading') {\n return {\n ...file,\n status: 'error' as FileProgressStatus,\n error: action.payload.message,\n };\n }\n return file;\n });\n state.progress = 100;\n state.errors = [...state.errors, { name: 'Upload Error', message: action.payload.message }];\n },\n retryCancelledFiles(state) {\n // Reset all cancelled files back to pending for retry\n state.files = state.files.map((file) => {\n if (file.status === 'cancelled') {\n return {\n ...file,\n status: 'pending' as FileProgressStatus,\n };\n }\n return file;\n });\n state.progress = computeProgress(state.files);\n },\n },\n});\n\nexport const {\n openUploadProgress,\n setFileUploading,\n setFileComplete,\n setFileError,\n updateProgress,\n addUploadErrors,\n closeUploadProgress,\n toggleMinimize,\n cancelUpload,\n setUploadFailed,\n retryCancelledFiles,\n} = uploadProgressSlice.actions;\n\nexport const uploadProgressReducer = uploadProgressSlice.reducer;\n"],"names":["initialState","isVisible","isMinimized","progress","totalFiles","files","errors","uploadId","computeProgress","length","totalSize","reduce","sum","f","size","completed","filter","status","Math","round","completedSize","uploadProgressSlice","createSlice","name","reducers","openUploadProgress","state","action","payload","fileNames","map","index","fileSizes","setFileUploading","setFileComplete","file","setFileError","message","error","updateProgress","addUploadErrors","closeUploadProgress","toggleMinimize","cancelUpload","setUploadFailed","retryCancelledFiles","actions","uploadProgressReducer","reducer"],"mappings":"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"}
|
package/dist/admin/index.js
CHANGED
|
@@ -5,6 +5,8 @@ var _package = require('./package.json.js');
|
|
|
5
5
|
var MediaLibraryDialog = require('./components/MediaLibraryDialog/MediaLibraryDialog.js');
|
|
6
6
|
var MediaLibraryInput = require('./components/MediaLibraryInput/MediaLibraryInput.js');
|
|
7
7
|
var constants = require('./constants.js');
|
|
8
|
+
var UploadProgressDialog = require('./future/components/UploadProgressDialog.js');
|
|
9
|
+
var uploadProgress = require('./future/store/uploadProgress.js');
|
|
8
10
|
var pluginId = require('./pluginId.js');
|
|
9
11
|
require('byte-size');
|
|
10
12
|
require('date-fns');
|
|
@@ -65,6 +67,15 @@ const admin = {
|
|
|
65
67
|
position: 4
|
|
66
68
|
});
|
|
67
69
|
if (window.strapi.future.isEnabled('unstableMediaLibrary')) {
|
|
70
|
+
app.addReducers({
|
|
71
|
+
uploadProgress: uploadProgress.uploadProgressReducer
|
|
72
|
+
});
|
|
73
|
+
app.addComponents([
|
|
74
|
+
{
|
|
75
|
+
name: 'future-global::upload-progress',
|
|
76
|
+
Component: UploadProgressDialog.UploadProgressDialog
|
|
77
|
+
}
|
|
78
|
+
]);
|
|
68
79
|
app.addMenuLink({
|
|
69
80
|
to: `plugins/unstable-${pluginId.pluginId}`,
|
|
70
81
|
icon: icons.WarningCircle,
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images, WarningCircle } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { MediaLibraryDialog } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput';\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { getTrad, prefixPluginTranslations } from './utils';\n\nimport type { MediaLibraryDialogProps } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps } from './components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./pages/App/App').then((mod) => ({ default: mod.Upload }));\n },\n position: 4,\n });\n\n if (window.strapi.future.isEnabled('unstableMediaLibrary')) {\n app.addMenuLink({\n to: `plugins/unstable-${pluginId}`,\n icon: WarningCircle,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./future/App').then((mod) => ({\n default: mod.UnstableMediaLibrary,\n }));\n },\n position: 5,\n });\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTrad('plugin.name'),\n defaultMessage: 'Media Library',\n },\n async Component() {\n const { ProtectedSettingsPage } = await import('./pages/SettingsPage/SettingsPage');\n return { default: ProtectedSettingsPage };\n },\n permissions: PERMISSIONS.settings,\n });\n\n app.addFields({\n type: 'media',\n Component: MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>,\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","position","window","future","isEnabled","WarningCircle","UnstableMediaLibrary","addSettingsLink","getTrad","ProtectedSettingsPage","settings","addFields","type","MediaLibraryInput","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images, WarningCircle } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { MediaLibraryDialog } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput';\nimport { PERMISSIONS } from './constants';\nimport { UploadProgressDialog } from './future/components/UploadProgressDialog';\nimport { uploadProgressReducer } from './future/store/uploadProgress';\nimport { pluginId } from './pluginId';\nimport { getTrad, prefixPluginTranslations } from './utils';\n\nimport type { MediaLibraryDialogProps } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps } from './components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./pages/App/App').then((mod) => ({ default: mod.Upload }));\n },\n position: 4,\n });\n\n if (window.strapi.future.isEnabled('unstableMediaLibrary')) {\n app.addReducers({ uploadProgress: uploadProgressReducer });\n\n app.addComponents([\n {\n name: 'future-global::upload-progress',\n Component: UploadProgressDialog,\n },\n ]);\n\n app.addMenuLink({\n to: `plugins/unstable-${pluginId}`,\n icon: WarningCircle,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./future/App').then((mod) => ({\n default: mod.UnstableMediaLibrary,\n }));\n },\n position: 5,\n });\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTrad('plugin.name'),\n defaultMessage: 'Media Library',\n },\n async Component() {\n const { ProtectedSettingsPage } = await import('./pages/SettingsPage/SettingsPage');\n return { default: ProtectedSettingsPage };\n },\n permissions: PERMISSIONS.settings,\n });\n\n app.addFields({\n type: 'media',\n Component: MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>,\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","position","window","future","isEnabled","addReducers","uploadProgress","uploadProgressReducer","addComponents","UploadProgressDialog","WarningCircle","UnstableMediaLibrary","addSettingsLink","getTrad","ProtectedSettingsPage","settings","addFields","type","MediaLibraryInput","MediaLibraryDialog","registerPlugin","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
|
package/dist/admin/index.mjs
CHANGED
|
@@ -3,6 +3,8 @@ import pluginPkg from './package.json.mjs';
|
|
|
3
3
|
import { MediaLibraryDialog } from './components/MediaLibraryDialog/MediaLibraryDialog.mjs';
|
|
4
4
|
import { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput.mjs';
|
|
5
5
|
import { PERMISSIONS } from './constants.mjs';
|
|
6
|
+
import { UploadProgressDialog } from './future/components/UploadProgressDialog.mjs';
|
|
7
|
+
import { uploadProgressReducer } from './future/store/uploadProgress.mjs';
|
|
6
8
|
import { pluginId } from './pluginId.mjs';
|
|
7
9
|
import 'byte-size';
|
|
8
10
|
import 'date-fns';
|
|
@@ -61,6 +63,15 @@ const admin = {
|
|
|
61
63
|
position: 4
|
|
62
64
|
});
|
|
63
65
|
if (window.strapi.future.isEnabled('unstableMediaLibrary')) {
|
|
66
|
+
app.addReducers({
|
|
67
|
+
uploadProgress: uploadProgressReducer
|
|
68
|
+
});
|
|
69
|
+
app.addComponents([
|
|
70
|
+
{
|
|
71
|
+
name: 'future-global::upload-progress',
|
|
72
|
+
Component: UploadProgressDialog
|
|
73
|
+
}
|
|
74
|
+
]);
|
|
64
75
|
app.addMenuLink({
|
|
65
76
|
to: `plugins/unstable-${pluginId}`,
|
|
66
77
|
icon: WarningCircle,
|
package/dist/admin/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images, WarningCircle } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { MediaLibraryDialog } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput';\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { getTrad, prefixPluginTranslations } from './utils';\n\nimport type { MediaLibraryDialogProps } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps } from './components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./pages/App/App').then((mod) => ({ default: mod.Upload }));\n },\n position: 4,\n });\n\n if (window.strapi.future.isEnabled('unstableMediaLibrary')) {\n app.addMenuLink({\n to: `plugins/unstable-${pluginId}`,\n icon: WarningCircle,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./future/App').then((mod) => ({\n default: mod.UnstableMediaLibrary,\n }));\n },\n position: 5,\n });\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTrad('plugin.name'),\n defaultMessage: 'Media Library',\n },\n async Component() {\n const { ProtectedSettingsPage } = await import('./pages/SettingsPage/SettingsPage');\n return { default: ProtectedSettingsPage };\n },\n permissions: PERMISSIONS.settings,\n });\n\n app.addFields({\n type: 'media',\n Component: MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>,\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","position","window","future","isEnabled","WarningCircle","UnstableMediaLibrary","addSettingsLink","getTrad","ProtectedSettingsPage","settings","addFields","type","MediaLibraryInput","
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images, WarningCircle } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { MediaLibraryDialog } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput';\nimport { PERMISSIONS } from './constants';\nimport { UploadProgressDialog } from './future/components/UploadProgressDialog';\nimport { uploadProgressReducer } from './future/store/uploadProgress';\nimport { pluginId } from './pluginId';\nimport { getTrad, prefixPluginTranslations } from './utils';\n\nimport type { MediaLibraryDialogProps } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps } from './components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./pages/App/App').then((mod) => ({ default: mod.Upload }));\n },\n position: 4,\n });\n\n if (window.strapi.future.isEnabled('unstableMediaLibrary')) {\n app.addReducers({ uploadProgress: uploadProgressReducer });\n\n app.addComponents([\n {\n name: 'future-global::upload-progress',\n Component: UploadProgressDialog,\n },\n ]);\n\n app.addMenuLink({\n to: `plugins/unstable-${pluginId}`,\n icon: WarningCircle,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./future/App').then((mod) => ({\n default: mod.UnstableMediaLibrary,\n }));\n },\n position: 5,\n });\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTrad('plugin.name'),\n defaultMessage: 'Media Library',\n },\n async Component() {\n const { ProtectedSettingsPage } = await import('./pages/SettingsPage/SettingsPage');\n return { default: ProtectedSettingsPage };\n },\n permissions: PERMISSIONS.settings,\n });\n\n app.addFields({\n type: 'media',\n Component: MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>,\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","position","window","future","isEnabled","addReducers","uploadProgress","uploadProgressReducer","addComponents","UploadProgressDialog","WarningCircle","UnstableMediaLibrary","addSettingsLink","getTrad","ProtectedSettingsPage","settings","addFields","type","MediaLibraryInput","MediaLibraryDialog","registerPlugin","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var name = "@strapi/upload";
|
|
6
|
-
var version = "5.
|
|
6
|
+
var version = "5.37.0";
|
|
7
7
|
var description = "Makes it easy to upload images and files to your Strapi Application.";
|
|
8
8
|
var license = "SEE LICENSE IN LICENSE";
|
|
9
9
|
var author = {
|
|
@@ -64,13 +64,14 @@ var scripts = {
|
|
|
64
64
|
};
|
|
65
65
|
var dependencies = {
|
|
66
66
|
"@mux/mux-player-react": "3.1.0",
|
|
67
|
+
"@radix-ui/react-dialog": "1.0.5",
|
|
67
68
|
"@radix-ui/react-toggle-group": "1.1.11",
|
|
68
69
|
"@reduxjs/toolkit": "1.9.7",
|
|
69
|
-
"@strapi/database": "5.
|
|
70
|
+
"@strapi/database": "5.37.0",
|
|
70
71
|
"@strapi/design-system": "2.1.2",
|
|
71
72
|
"@strapi/icons": "2.1.2",
|
|
72
|
-
"@strapi/provider-upload-local": "5.
|
|
73
|
-
"@strapi/utils": "5.
|
|
73
|
+
"@strapi/provider-upload-local": "5.37.0",
|
|
74
|
+
"@strapi/utils": "5.37.0",
|
|
74
75
|
"byte-size": "8.1.1",
|
|
75
76
|
cropperjs: "1.6.1",
|
|
76
77
|
"date-fns": "2.30.0",
|
|
@@ -80,10 +81,10 @@ var dependencies = {
|
|
|
80
81
|
immer: "9.0.21",
|
|
81
82
|
"koa-range": "0.3.0",
|
|
82
83
|
"koa-static": "5.0.0",
|
|
83
|
-
lodash: "4.17.
|
|
84
|
+
lodash: "4.17.23",
|
|
84
85
|
"mime-types": "2.1.35",
|
|
85
86
|
"prop-types": "^15.8.1",
|
|
86
|
-
qs: "6.14.
|
|
87
|
+
qs: "6.14.2",
|
|
87
88
|
"react-dnd": "16.0.1",
|
|
88
89
|
"react-intl": "6.6.2",
|
|
89
90
|
"react-query": "3.39.3",
|
|
@@ -94,8 +95,8 @@ var dependencies = {
|
|
|
94
95
|
zod: "3.25.67"
|
|
95
96
|
};
|
|
96
97
|
var devDependencies = {
|
|
97
|
-
"@strapi/admin": "5.
|
|
98
|
-
"@strapi/types": "5.
|
|
98
|
+
"@strapi/admin": "5.37.0",
|
|
99
|
+
"@strapi/types": "5.37.0",
|
|
99
100
|
"@testing-library/dom": "10.4.1",
|
|
100
101
|
"@testing-library/react": "16.3.0",
|
|
101
102
|
"@testing-library/user-event": "14.6.1",
|
|
@@ -110,14 +111,14 @@ var devDependencies = {
|
|
|
110
111
|
msw: "1.3.0",
|
|
111
112
|
react: "18.3.1",
|
|
112
113
|
"react-dom": "18.3.1",
|
|
113
|
-
"react-router-dom": "6.
|
|
114
|
+
"react-router-dom": "6.30.3",
|
|
114
115
|
"styled-components": "6.1.8"
|
|
115
116
|
};
|
|
116
117
|
var peerDependencies = {
|
|
117
118
|
"@strapi/admin": "^5.0.0",
|
|
118
119
|
react: "^17.0.0 || ^18.0.0",
|
|
119
120
|
"react-dom": "^17.0.0 || ^18.0.0",
|
|
120
|
-
"react-router-dom": "^6.
|
|
121
|
+
"react-router-dom": "^6.30.3",
|
|
121
122
|
"styled-components": "^6.0.0"
|
|
122
123
|
};
|
|
123
124
|
var engines = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "@strapi/upload";
|
|
2
|
-
var version = "5.
|
|
2
|
+
var version = "5.37.0";
|
|
3
3
|
var description = "Makes it easy to upload images and files to your Strapi Application.";
|
|
4
4
|
var license = "SEE LICENSE IN LICENSE";
|
|
5
5
|
var author = {
|
|
@@ -60,13 +60,14 @@ var scripts = {
|
|
|
60
60
|
};
|
|
61
61
|
var dependencies = {
|
|
62
62
|
"@mux/mux-player-react": "3.1.0",
|
|
63
|
+
"@radix-ui/react-dialog": "1.0.5",
|
|
63
64
|
"@radix-ui/react-toggle-group": "1.1.11",
|
|
64
65
|
"@reduxjs/toolkit": "1.9.7",
|
|
65
|
-
"@strapi/database": "5.
|
|
66
|
+
"@strapi/database": "5.37.0",
|
|
66
67
|
"@strapi/design-system": "2.1.2",
|
|
67
68
|
"@strapi/icons": "2.1.2",
|
|
68
|
-
"@strapi/provider-upload-local": "5.
|
|
69
|
-
"@strapi/utils": "5.
|
|
69
|
+
"@strapi/provider-upload-local": "5.37.0",
|
|
70
|
+
"@strapi/utils": "5.37.0",
|
|
70
71
|
"byte-size": "8.1.1",
|
|
71
72
|
cropperjs: "1.6.1",
|
|
72
73
|
"date-fns": "2.30.0",
|
|
@@ -76,10 +77,10 @@ var dependencies = {
|
|
|
76
77
|
immer: "9.0.21",
|
|
77
78
|
"koa-range": "0.3.0",
|
|
78
79
|
"koa-static": "5.0.0",
|
|
79
|
-
lodash: "4.17.
|
|
80
|
+
lodash: "4.17.23",
|
|
80
81
|
"mime-types": "2.1.35",
|
|
81
82
|
"prop-types": "^15.8.1",
|
|
82
|
-
qs: "6.14.
|
|
83
|
+
qs: "6.14.2",
|
|
83
84
|
"react-dnd": "16.0.1",
|
|
84
85
|
"react-intl": "6.6.2",
|
|
85
86
|
"react-query": "3.39.3",
|
|
@@ -90,8 +91,8 @@ var dependencies = {
|
|
|
90
91
|
zod: "3.25.67"
|
|
91
92
|
};
|
|
92
93
|
var devDependencies = {
|
|
93
|
-
"@strapi/admin": "5.
|
|
94
|
-
"@strapi/types": "5.
|
|
94
|
+
"@strapi/admin": "5.37.0",
|
|
95
|
+
"@strapi/types": "5.37.0",
|
|
95
96
|
"@testing-library/dom": "10.4.1",
|
|
96
97
|
"@testing-library/react": "16.3.0",
|
|
97
98
|
"@testing-library/user-event": "14.6.1",
|
|
@@ -106,14 +107,14 @@ var devDependencies = {
|
|
|
106
107
|
msw: "1.3.0",
|
|
107
108
|
react: "18.3.1",
|
|
108
109
|
"react-dom": "18.3.1",
|
|
109
|
-
"react-router-dom": "6.
|
|
110
|
+
"react-router-dom": "6.30.3",
|
|
110
111
|
"styled-components": "6.1.8"
|
|
111
112
|
};
|
|
112
113
|
var peerDependencies = {
|
|
113
114
|
"@strapi/admin": "^5.0.0",
|
|
114
115
|
react: "^17.0.0 || ^18.0.0",
|
|
115
116
|
"react-dom": "^17.0.0 || ^18.0.0",
|
|
116
|
-
"react-router-dom": "^6.
|
|
117
|
+
"react-router-dom": "^6.30.3",
|
|
117
118
|
"styled-components": "^6.0.0"
|
|
118
119
|
};
|
|
119
120
|
var engines = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const UploadProgressDialog: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { File } from '../../../../../../shared/contracts/files';
|
|
2
|
+
import type { Folder } from '../../../../../../shared/contracts/folders';
|
|
2
3
|
interface AssetsGridProps {
|
|
3
4
|
assets: File[];
|
|
5
|
+
folders?: Folder[];
|
|
4
6
|
}
|
|
5
|
-
export declare const AssetsGrid: ({ assets }: AssetsGridProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare const AssetsGrid: ({ assets, folders }: AssetsGridProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
export {};
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { File } from '../../../../../../shared/contracts/files';
|
|
2
|
+
import type { Folder } from '../../../../../../shared/contracts/folders';
|
|
2
3
|
interface AssetsTableProps {
|
|
3
4
|
assets: File[];
|
|
5
|
+
folders?: Folder[];
|
|
4
6
|
}
|
|
5
|
-
export declare const AssetsTable: ({ assets }: AssetsTableProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare const AssetsTable: ({ assets, folders }: AssetsTableProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
declare const DropZoneWithOverlay: ({ children }: {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
interface DropFilesMessageProps {
|
|
6
|
+
uploadDropZoneRef?: React.RefObject<HTMLDivElement>;
|
|
7
|
+
folderName: string;
|
|
8
|
+
}
|
|
9
|
+
declare const DropFilesMessage: ({ uploadDropZoneRef, folderName }: DropFilesMessageProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export { DropZoneWithOverlay, DropFilesMessage };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { File } from '../../../../../../shared/contracts/files';
|
|
2
|
+
declare const PAGE_SIZE = 20;
|
|
3
|
+
interface UseInfiniteAssetsOptions {
|
|
4
|
+
folder?: number | null;
|
|
5
|
+
sort?: string;
|
|
6
|
+
}
|
|
7
|
+
declare const useInfiniteAssets: ({ folder, sort }?: UseInfiniteAssetsOptions) => {
|
|
8
|
+
assets: File[];
|
|
9
|
+
pagination: import("../../../../../../shared/contracts/files").Pagination | undefined;
|
|
10
|
+
isLoading: boolean;
|
|
11
|
+
isFetchingMore: boolean;
|
|
12
|
+
hasNextPage: boolean;
|
|
13
|
+
fetchNextPage: () => void;
|
|
14
|
+
error: import("@strapi/admin/strapi-admin").BaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
|
|
15
|
+
};
|
|
16
|
+
export { useInfiniteAssets };
|
|
17
|
+
export { PAGE_SIZE };
|
|
@@ -1,6 +1,24 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CreateFilesStream } from '../../../../shared/contracts/files';
|
|
2
|
+
interface UploadFilesArgs {
|
|
3
|
+
formData: FormData;
|
|
4
|
+
totalFiles: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Aborts an upload by its uploadId.
|
|
8
|
+
* Called from the UploadProgressDialog when the user clicks cancel or close.
|
|
9
|
+
*/
|
|
10
|
+
export declare const abortUpload: (uploadId: number) => void;
|
|
2
11
|
declare const uploadApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, import("@reduxjs/toolkit/dist/query/endpointDefinitions").UpdateDefinitions<{}, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "Asset" | "Folder", never> & {
|
|
3
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Stream upload files to the /upload/unstable/stream endpoint.
|
|
14
|
+
* Reads SSE stream for per-file progress updates.
|
|
15
|
+
*/
|
|
16
|
+
uploadFilesStream: import("@reduxjs/toolkit/query").MutationDefinition<UploadFilesArgs, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "Asset" | "Folder", CreateFilesStream.Response, "adminApi">;
|
|
17
|
+
/**
|
|
18
|
+
* Retry uploading cancelled files.
|
|
19
|
+
* Retrieves original File objects and re-uploads only the cancelled ones.
|
|
20
|
+
*/
|
|
21
|
+
retryCancelledFilesStream: import("@reduxjs/toolkit/query").MutationDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "Asset" | "Folder", CreateFilesStream.Response, "adminApi">;
|
|
4
22
|
}, "adminApi", "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "Asset" | "Folder", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/dist/query/react").reactHooksModuleName>;
|
|
5
|
-
export declare const
|
|
23
|
+
export declare const useUploadFilesStreamMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<UploadFilesArgs, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "Asset" | "Folder", CreateFilesStream.Response, "adminApi">>, useRetryCancelledFilesStreamMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "Asset" | "Folder", CreateFilesStream.Response, "adminApi">>;
|
|
6
24
|
export { uploadApi };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Folder } from '../../../../shared/contracts/folders';
|
|
2
|
+
export type FolderWithCounts = Omit<Folder, 'children' | 'files'> & {
|
|
3
|
+
children?: {
|
|
4
|
+
count: number;
|
|
5
|
+
};
|
|
6
|
+
files?: {
|
|
7
|
+
count: number;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
interface GetFoldersParams {
|
|
11
|
+
parentId?: number | null;
|
|
12
|
+
}
|
|
13
|
+
export declare const useGetFoldersQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void | GetFoldersParams, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "Asset" | "Folder", Folder[], "adminApi">>, useGetFolderQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<{
|
|
14
|
+
id: number;
|
|
15
|
+
}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "Asset" | "Folder", FolderWithCounts, "adminApi">>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Dispatch } from '@reduxjs/toolkit';
|
|
2
|
+
import { TypedUseSelectorHook } from 'react-redux';
|
|
3
|
+
import type { RootState } from './uploadProgress';
|
|
4
|
+
declare const useTypedDispatch: () => Dispatch;
|
|
5
|
+
declare const useTypedSelector: TypedUseSelectorHook<RootState>;
|
|
6
|
+
export { useTypedSelector, useTypedDispatch };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { File } from '../../../../shared/contracts/files';
|
|
2
|
+
export interface FileUploadError {
|
|
3
|
+
name: string;
|
|
4
|
+
message: string;
|
|
5
|
+
}
|
|
6
|
+
export type FileProgressStatus = 'pending' | 'uploading' | 'complete' | 'error' | 'cancelled';
|
|
7
|
+
export interface FileProgress {
|
|
8
|
+
name: string;
|
|
9
|
+
index: number;
|
|
10
|
+
status: FileProgressStatus;
|
|
11
|
+
size: number;
|
|
12
|
+
file?: File;
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface UploadProgressState {
|
|
16
|
+
isVisible: boolean;
|
|
17
|
+
isMinimized: boolean;
|
|
18
|
+
progress: number;
|
|
19
|
+
totalFiles: number;
|
|
20
|
+
files: FileProgress[];
|
|
21
|
+
errors: FileUploadError[];
|
|
22
|
+
uploadId: number;
|
|
23
|
+
}
|
|
24
|
+
export interface RootState {
|
|
25
|
+
uploadProgress: UploadProgressState;
|
|
26
|
+
}
|
|
27
|
+
export declare const openUploadProgress: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
28
|
+
totalFiles: number;
|
|
29
|
+
fileNames: string[];
|
|
30
|
+
fileSizes: number[];
|
|
31
|
+
}, "uploadProgress/openUploadProgress">, setFileUploading: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
32
|
+
name: string;
|
|
33
|
+
index: number;
|
|
34
|
+
total: number;
|
|
35
|
+
size: number;
|
|
36
|
+
}, "uploadProgress/setFileUploading">, setFileComplete: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
37
|
+
index: number;
|
|
38
|
+
file: File;
|
|
39
|
+
}, "uploadProgress/setFileComplete">, setFileError: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
40
|
+
index: number;
|
|
41
|
+
name: string;
|
|
42
|
+
message: string;
|
|
43
|
+
}, "uploadProgress/setFileError">, updateProgress: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "uploadProgress/updateProgress">, addUploadErrors: import("@reduxjs/toolkit").ActionCreatorWithPayload<FileUploadError[], "uploadProgress/addUploadErrors">, closeUploadProgress: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"uploadProgress/closeUploadProgress">, toggleMinimize: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"uploadProgress/toggleMinimize">, cancelUpload: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"uploadProgress/cancelUpload">, setUploadFailed: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
44
|
+
message: string;
|
|
45
|
+
}, "uploadProgress/setUploadFailed">, retryCancelledFiles: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"uploadProgress/retryCancelledFiles">;
|
|
46
|
+
export declare const uploadProgressReducer: import("redux").Reducer<UploadProgressState>;
|