@webiny/app-file-manager 5.35.2-beta.0 → 5.36.0-beta.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/BatchFileUploader.d.ts +35 -0
- package/BatchFileUploader.js +180 -0
- package/BatchFileUploader.js.map +1 -0
- package/components/BottomInfoBar/BottomInfoBar.d.ts +4 -0
- package/components/BottomInfoBar/BottomInfoBar.js +25 -0
- package/components/BottomInfoBar/BottomInfoBar.js.map +1 -0
- package/components/BottomInfoBar/ListStatus.d.ts +6 -0
- package/components/BottomInfoBar/ListStatus.js +26 -0
- package/components/BottomInfoBar/ListStatus.js.map +1 -0
- package/components/BottomInfoBar/SupportedFileTypes.d.ts +6 -0
- package/components/BottomInfoBar/SupportedFileTypes.js +47 -0
- package/components/BottomInfoBar/SupportedFileTypes.js.map +1 -0
- package/components/BottomInfoBar/index.d.ts +1 -0
- package/components/BottomInfoBar/index.js +16 -0
- package/components/BottomInfoBar/index.js.map +1 -0
- package/components/BottomInfoBar/styled.d.ts +23 -0
- package/components/BottomInfoBar/styled.js +33 -0
- package/components/BottomInfoBar/styled.js.map +1 -0
- package/components/DropFilesHere/DropFilesHere.d.ts +9 -0
- package/components/DropFilesHere/DropFilesHere.js +31 -0
- package/components/DropFilesHere/DropFilesHere.js.map +1 -0
- package/components/DropFilesHere/index.d.ts +1 -0
- package/components/DropFilesHere/index.js +16 -0
- package/components/DropFilesHere/index.js.map +1 -0
- package/components/DropFilesHere/styled.d.ts +26 -0
- package/components/DropFilesHere/styled.js +35 -0
- package/components/DropFilesHere/styled.js.map +1 -0
- package/components/Empty/Empty.d.ts +8 -0
- package/components/Empty/Empty.js +31 -0
- package/components/Empty/Empty.js.map +1 -0
- package/components/Empty/index.d.ts +1 -0
- package/components/Empty/index.js +16 -0
- package/components/Empty/index.js.map +1 -0
- package/components/FileDetails/Aliases.js +8 -4
- package/components/FileDetails/Aliases.js.map +1 -1
- package/components/FileDetails/DeleteImageAction.d.ts +6 -2
- package/components/FileDetails/DeleteImageAction.js +19 -52
- package/components/FileDetails/DeleteImageAction.js.map +1 -1
- package/components/FileDetails/FileDetails.d.ts +24 -0
- package/components/FileDetails/FileDetails.js +267 -0
- package/components/FileDetails/FileDetails.js.map +1 -0
- package/components/FileDetails/Name.js +2 -2
- package/components/FileDetails/Name.js.map +1 -1
- package/components/FileDetails/Tags.d.ts +6 -2
- package/components/FileDetails/Tags.js +31 -16
- package/components/FileDetails/Tags.js.map +1 -1
- package/components/FileDetails/index.d.ts +1 -0
- package/components/FileDetails/index.js +16 -0
- package/components/FileDetails/index.js.map +1 -0
- package/components/Grid/File.d.ts +16 -0
- package/components/Grid/File.js +57 -0
- package/components/Grid/File.js.map +1 -0
- package/components/Grid/Grid.d.ts +17 -0
- package/components/Grid/Grid.js +99 -0
- package/components/Grid/Grid.js.map +1 -0
- package/components/Grid/index.d.ts +1 -0
- package/components/Grid/index.js +16 -0
- package/components/Grid/index.js.map +1 -0
- package/components/Grid/styled.d.ts +40 -0
- package/components/Grid/styled.js +58 -0
- package/components/Grid/styled.js.map +1 -0
- package/components/NoPermission/NoPermission.d.ts +2 -0
- package/components/NoPermission/NoPermission.js +24 -0
- package/components/NoPermission/NoPermission.js.map +1 -0
- package/components/NoPermission/index.d.ts +1 -0
- package/components/NoPermission/index.js +16 -0
- package/components/NoPermission/index.js.map +1 -0
- package/components/NoPermission/styled.d.ts +32 -0
- package/components/NoPermission/styled.js +40 -0
- package/components/NoPermission/styled.js.map +1 -0
- package/components/NoResults/NoResults.d.ts +2 -0
- package/components/NoResults/NoResults.js +17 -0
- package/components/NoResults/NoResults.js.map +1 -0
- package/components/NoResults/index.d.ts +1 -0
- package/components/NoResults/index.js +16 -0
- package/components/NoResults/index.js.map +1 -0
- package/components/NoResults/styled.d.ts +7 -0
- package/components/NoResults/styled.js +13 -0
- package/components/NoResults/styled.js.map +1 -0
- package/components/Table/FolderActionDelete.d.ts +6 -0
- package/components/Table/FolderActionDelete.js +25 -0
- package/components/Table/FolderActionDelete.js.map +1 -0
- package/components/Table/FolderActionEdit.d.ts +6 -0
- package/components/Table/FolderActionEdit.js +25 -0
- package/components/Table/FolderActionEdit.js.map +1 -0
- package/components/Table/Name.d.ts +12 -0
- package/components/Table/Name.js +39 -0
- package/components/Table/Name.js.map +1 -0
- package/components/Table/RecordActionCopy.d.ts +8 -0
- package/components/Table/RecordActionCopy.js +30 -0
- package/components/Table/RecordActionCopy.js.map +1 -0
- package/components/Table/RecordActionDelete.d.ts +8 -0
- package/components/Table/RecordActionDelete.js +36 -0
- package/components/Table/RecordActionDelete.js.map +1 -0
- package/components/Table/RecordActionEdit.d.ts +7 -0
- package/components/Table/RecordActionEdit.js +28 -0
- package/components/Table/RecordActionEdit.js.map +1 -0
- package/components/Table/RecordActionMove.d.ts +6 -0
- package/components/Table/RecordActionMove.js +25 -0
- package/components/Table/RecordActionMove.js.map +1 -0
- package/components/Table/Table.d.ts +31 -0
- package/components/Table/Table.js +256 -0
- package/components/Table/Table.js.map +1 -0
- package/components/Table/index.d.ts +1 -0
- package/components/Table/index.js +16 -0
- package/components/Table/index.js.map +1 -0
- package/components/Table/styled.d.ts +21 -0
- package/components/Table/styled.js +35 -0
- package/components/Table/styled.js.map +1 -0
- package/components/Title/Title.d.ts +5 -0
- package/components/Title/Title.js +20 -0
- package/components/Title/Title.js.map +1 -0
- package/components/Title/index.d.ts +1 -0
- package/components/Title/index.js +16 -0
- package/components/Title/index.js.map +1 -0
- package/components/Title/styled.d.ts +7 -0
- package/components/Title/styled.js +14 -0
- package/components/Title/styled.js.map +1 -0
- package/components/UploadStatus/UploadStatus.d.ts +6 -0
- package/components/UploadStatus/UploadStatus.js +36 -0
- package/components/UploadStatus/UploadStatus.js.map +1 -0
- package/components/UploadStatus/assets/check.svg +3 -0
- package/components/UploadStatus/assets/loading.svg +17 -0
- package/components/UploadStatus/index.d.ts +1 -0
- package/components/UploadStatus/index.js +16 -0
- package/components/UploadStatus/index.js.map +1 -0
- package/components/UploadStatus/styled.d.ts +41 -0
- package/components/UploadStatus/styled.js +57 -0
- package/components/UploadStatus/styled.js.map +1 -0
- package/constants.d.ts +3 -0
- package/constants.js +12 -0
- package/constants.js.map +1 -0
- package/hooks/useCopyFile.d.ts +11 -0
- package/hooks/useCopyFile.js +30 -0
- package/hooks/useCopyFile.js.map +1 -0
- package/hooks/useDeleteFile.d.ts +9 -0
- package/hooks/useDeleteFile.js +64 -0
- package/hooks/useDeleteFile.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +9 -1
- package/index.js.map +1 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.d.ts +9 -3
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js +82 -52
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js.map +1 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.d.ts +2 -2
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js +3 -3
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js.map +1 -1
- package/modules/FileManagerApiProvider/graphql.d.ts +4 -0
- package/modules/FileManagerApiProvider/graphql.js +9 -7
- package/modules/FileManagerApiProvider/graphql.js.map +1 -1
- package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.d.ts +18 -0
- package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js +622 -0
- package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js.map +1 -0
- package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.d.ts +12 -0
- package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js +75 -0
- package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js.map +1 -0
- package/modules/FileManagerRenderer/AcoRenderer/index.d.ts +2 -0
- package/modules/FileManagerRenderer/AcoRenderer/index.js +70 -0
- package/modules/FileManagerRenderer/AcoRenderer/index.js.map +1 -0
- package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.d.ts +2 -0
- package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js +40 -0
- package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js +7 -2
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js.map +1 -1
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.d.ts +2 -1
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js +48 -36
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js.map +1 -1
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/check.svg +3 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/loading.svg +17 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.d.ts +4 -3
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js +6 -25
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js.map +1 -1
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.d.ts +2 -2
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js +80 -109
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.d.ts +54 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js +430 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.d.ts +2 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js +27 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.d.ts +74 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js +119 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.d.ts +3 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js +15 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.d.ts +4 -3
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js +23 -19
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.d.ts +0 -3
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js +0 -5
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js.map +1 -1
- package/modules/FileManagerRenderer/index.js +2 -2
- package/modules/FileManagerRenderer/index.js.map +1 -1
- package/modules/FileTypes/fileImage/EditAction.js +2 -2
- package/modules/FileTypes/fileImage/EditAction.js.map +1 -1
- package/package.json +18 -12
- package/tagsHelpers.d.ts +16 -0
- package/tagsHelpers.js +41 -0
- package/tagsHelpers.js.map +1 -0
- package/types.d.ts +1 -0
- package/types.js +8 -1
- package/types.js.map +1 -1
|
@@ -14,5 +14,5 @@ export interface FileManagerViewProps {
|
|
|
14
14
|
scope?: string;
|
|
15
15
|
own?: boolean;
|
|
16
16
|
}
|
|
17
|
-
declare const
|
|
18
|
-
export default
|
|
17
|
+
declare const _default: React.FunctionComponent<FileManagerViewProps>;
|
|
18
|
+
export default _default;
|
|
@@ -7,13 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
10
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
12
11
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
14
13
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
15
|
var _react = _interopRequireWildcard(require("react"));
|
|
16
16
|
var _reactButterfiles = _interopRequireDefault(require("react-butterfiles"));
|
|
17
|
+
var _mobxReactLite = require("mobx-react-lite");
|
|
17
18
|
var _emotion = require("emotion");
|
|
18
19
|
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
19
20
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
@@ -35,6 +36,9 @@ var _LeftSidebar = _interopRequireDefault(require("./LeftSidebar"));
|
|
|
35
36
|
var _BottomInfoBar = _interopRequireDefault(require("./BottomInfoBar"));
|
|
36
37
|
var _ = require("../../..");
|
|
37
38
|
var _EmptyView = require("./EmptyView");
|
|
39
|
+
var _UploadStatus = _interopRequireDefault(require("./BottomInfoBar/UploadStatus"));
|
|
40
|
+
var _SupportedFileTypes = _interopRequireDefault(require("./BottomInfoBar/SupportedFileTypes"));
|
|
41
|
+
var _BatchFileUploader = require("../../../BatchFileUploader");
|
|
38
42
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
39
43
|
var t = _i18n.i18n.ns("app-admin/file-manager/file-manager-view");
|
|
40
44
|
var InputSearch = /*#__PURE__*/(0, _styled.default)("div", {
|
|
@@ -118,8 +122,6 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
118
122
|
toggleSelected = _useFileManagerView.toggleSelected,
|
|
119
123
|
dragging = _useFileManagerView.dragging,
|
|
120
124
|
setDragging = _useFileManagerView.setDragging,
|
|
121
|
-
uploading = _useFileManagerView.uploading,
|
|
122
|
-
setUploading = _useFileManagerView.setUploading,
|
|
123
125
|
_showFileDetails = _useFileManagerView.showFileDetails,
|
|
124
126
|
hideFileDetails = _useFileManagerView.hideFileDetails,
|
|
125
127
|
showingFileDetails = _useFileManagerView.showingFileDetails,
|
|
@@ -129,6 +131,11 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
129
131
|
setHasPreviouslyUploadedFiles = _useFileManagerView.setHasPreviouslyUploadedFiles,
|
|
130
132
|
uploadFile = _useFileManagerView.uploadFile,
|
|
131
133
|
settings = _useFileManagerView.settings;
|
|
134
|
+
var _useState = (0, _react.useState)(function () {
|
|
135
|
+
return new _BatchFileUploader.BatchFileUploader(uploadFile);
|
|
136
|
+
}),
|
|
137
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 1),
|
|
138
|
+
uploader = _useState2[0];
|
|
132
139
|
var fileManager = (0, _.useFileManagerApi)();
|
|
133
140
|
var _useSnackbar = (0, _appAdmin.useSnackbar)(),
|
|
134
141
|
showSnackbar = _useSnackbar.showSnackbar;
|
|
@@ -192,89 +199,49 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
192
199
|
}
|
|
193
200
|
}, 500), [loadMore]);
|
|
194
201
|
var uploadFiles = /*#__PURE__*/function () {
|
|
195
|
-
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
202
|
+
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2(files) {
|
|
203
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
|
|
204
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
199
205
|
case 0:
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
return _ref5.apply(this, arguments);
|
|
236
|
-
};
|
|
237
|
-
}()));
|
|
238
|
-
case 6:
|
|
239
|
-
if (!hasPreviouslyUploadedFiles) {
|
|
240
|
-
setHasPreviouslyUploadedFiles(true);
|
|
241
|
-
}
|
|
242
|
-
setUploading(false);
|
|
243
|
-
if (!(errors.length > 0)) {
|
|
244
|
-
_context3.next = 10;
|
|
245
|
-
break;
|
|
246
|
-
}
|
|
247
|
-
return _context3.abrupt("return", setTimeout(function () {
|
|
248
|
-
showSnackbar( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["One or more files were not uploaded successfully:"]))), /*#__PURE__*/_react.default.createElement("ol", null, errors.map(function (_ref6) {
|
|
249
|
-
var file = _ref6.file,
|
|
250
|
-
e = _ref6.e;
|
|
251
|
-
return /*#__PURE__*/_react.default.createElement("li", {
|
|
252
|
-
key: file.name
|
|
253
|
-
}, /*#__PURE__*/_react.default.createElement("strong", null, file.name), ": ", getFileUploadErrorMessage(e));
|
|
254
|
-
}))));
|
|
255
|
-
// TODO @ts-refactor
|
|
256
|
-
}, 750));
|
|
257
|
-
case 10:
|
|
258
|
-
// We wait 750ms, just for everything to settle down a bit.
|
|
259
|
-
setTimeout(function () {
|
|
260
|
-
return showSnackbar(t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["File upload complete."]))));
|
|
261
|
-
}, 750);
|
|
262
|
-
if (!(typeof onUploadCompletion === "function")) {
|
|
263
|
-
_context3.next = 13;
|
|
264
|
-
break;
|
|
265
|
-
}
|
|
266
|
-
return _context3.abrupt("return", setTimeout(function () {
|
|
267
|
-
onUploadCompletion(uploadedFiles);
|
|
268
|
-
onClose && onClose();
|
|
269
|
-
// TODO @ts-refactor
|
|
270
|
-
}, 750));
|
|
271
|
-
case 13:
|
|
272
|
-
return _context3.abrupt("return", null);
|
|
273
|
-
case 14:
|
|
206
|
+
uploader.addFiles(files);
|
|
207
|
+
uploader.onUploadFinished(function (_ref5) {
|
|
208
|
+
var uploaded = _ref5.uploaded,
|
|
209
|
+
errors = _ref5.errors;
|
|
210
|
+
uploader.reset();
|
|
211
|
+
if (!hasPreviouslyUploadedFiles) {
|
|
212
|
+
setHasPreviouslyUploadedFiles(true);
|
|
213
|
+
}
|
|
214
|
+
if (errors.length > 0) {
|
|
215
|
+
// We wait 750ms, just for everything to settle down a bit.
|
|
216
|
+
setTimeout(function () {
|
|
217
|
+
showSnackbar( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["One or more files were not uploaded successfully:"]))), /*#__PURE__*/_react.default.createElement("ol", null, errors.map(function (_ref6) {
|
|
218
|
+
var file = _ref6.file,
|
|
219
|
+
e = _ref6.e;
|
|
220
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
221
|
+
key: file.name
|
|
222
|
+
}, /*#__PURE__*/_react.default.createElement("strong", null, file.name), ": ", getFileUploadErrorMessage(e));
|
|
223
|
+
}))));
|
|
224
|
+
}, 750);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// We wait 750ms, just for everything to settle down a bit.
|
|
229
|
+
setTimeout(function () {
|
|
230
|
+
return showSnackbar(t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["File upload complete."]))));
|
|
231
|
+
}, 750);
|
|
232
|
+
if (typeof onUploadCompletion === "function") {
|
|
233
|
+
// We wait 750ms, just for everything to settle down a bit.
|
|
234
|
+
setTimeout(function () {
|
|
235
|
+
onUploadCompletion(uploaded);
|
|
236
|
+
onClose && onClose();
|
|
237
|
+
}, 750);
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
case 2:
|
|
274
241
|
case "end":
|
|
275
|
-
return
|
|
242
|
+
return _context2.stop();
|
|
276
243
|
}
|
|
277
|
-
},
|
|
244
|
+
}, _callee2);
|
|
278
245
|
}));
|
|
279
246
|
return function uploadFiles(_x2) {
|
|
280
247
|
return _ref4.apply(this, arguments);
|
|
@@ -286,12 +253,13 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
286
253
|
return null;
|
|
287
254
|
}
|
|
288
255
|
return /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
|
|
289
|
-
onClick: browseFiles
|
|
290
|
-
disabled: uploading
|
|
256
|
+
onClick: browseFiles
|
|
291
257
|
}, /*#__PURE__*/_react.default.createElement(_Button.ButtonIcon, {
|
|
292
258
|
icon: /*#__PURE__*/_react.default.createElement(_cloud_upload.ReactComponent, null)
|
|
293
259
|
}), t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Upload..."]))));
|
|
294
|
-
}, [
|
|
260
|
+
}, [fileManager.canCreate]);
|
|
261
|
+
var filesBeingUploaded = uploader.getJobs().length;
|
|
262
|
+
var progress = uploader.progress;
|
|
295
263
|
return /*#__PURE__*/_react.default.createElement(_reactButterfiles.default, {
|
|
296
264
|
multiple: true,
|
|
297
265
|
maxSize: settings ? settings.uploadMaxFileSize + "b" : "1TB",
|
|
@@ -330,25 +298,24 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
330
298
|
"data-testid": "file-manager.search-input"
|
|
331
299
|
})),
|
|
332
300
|
barRight: selected.length > 0 ? /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
|
|
333
|
-
disabled: uploading,
|
|
334
301
|
onClick: function onClick() {
|
|
335
|
-
(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function
|
|
336
|
-
return (0, _regeneratorRuntime2.default)().wrap(function
|
|
337
|
-
while (1) switch (
|
|
302
|
+
(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
|
|
303
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
|
|
304
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
338
305
|
case 0:
|
|
339
306
|
if (!(typeof onChange === "function")) {
|
|
340
|
-
|
|
307
|
+
_context3.next = 4;
|
|
341
308
|
break;
|
|
342
309
|
}
|
|
343
|
-
|
|
310
|
+
_context3.next = 3;
|
|
344
311
|
return onChange(multiple ? selected : selected[0]);
|
|
345
312
|
case 3:
|
|
346
313
|
onClose && onClose();
|
|
347
314
|
case 4:
|
|
348
315
|
case "end":
|
|
349
|
-
return
|
|
316
|
+
return _context3.stop();
|
|
350
317
|
}
|
|
351
|
-
},
|
|
318
|
+
}, _callee3);
|
|
352
319
|
}))();
|
|
353
320
|
}
|
|
354
321
|
}, t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Select"]))), " ", multiple && "(".concat(selected.length, ")")) : renderUploadFileAction({
|
|
@@ -365,7 +332,9 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
365
332
|
file: files.find(function (item) {
|
|
366
333
|
return item.id === showingFileDetails;
|
|
367
334
|
}),
|
|
368
|
-
onClose: hideFileDetails
|
|
335
|
+
onClose: hideFileDetails,
|
|
336
|
+
open: Boolean(showingFileDetails),
|
|
337
|
+
loading: false // We don't need to show the loader here
|
|
369
338
|
}) : null, /*#__PURE__*/_react.default.createElement(_LeftSidebar.default, {
|
|
370
339
|
toggleTag: function toggleTag(tag) {
|
|
371
340
|
return _toggleTag({
|
|
@@ -397,30 +366,30 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
397
366
|
return current.src === file.src;
|
|
398
367
|
}),
|
|
399
368
|
onSelect: function () {
|
|
400
|
-
var _onSelect = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function
|
|
401
|
-
return (0, _regeneratorRuntime2.default)().wrap(function
|
|
402
|
-
while (1) switch (
|
|
369
|
+
var _onSelect = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4() {
|
|
370
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
|
|
371
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
403
372
|
case 0:
|
|
404
373
|
if (!(typeof onChange === "function")) {
|
|
405
|
-
|
|
374
|
+
_context4.next = 7;
|
|
406
375
|
break;
|
|
407
376
|
}
|
|
408
377
|
if (!multiple) {
|
|
409
|
-
|
|
378
|
+
_context4.next = 4;
|
|
410
379
|
break;
|
|
411
380
|
}
|
|
412
381
|
toggleSelected(file);
|
|
413
|
-
return
|
|
382
|
+
return _context4.abrupt("return");
|
|
414
383
|
case 4:
|
|
415
|
-
|
|
384
|
+
_context4.next = 6;
|
|
416
385
|
return onChange(file);
|
|
417
386
|
case 6:
|
|
418
387
|
onClose && onClose();
|
|
419
388
|
case 7:
|
|
420
389
|
case "end":
|
|
421
|
-
return
|
|
390
|
+
return _context4.stop();
|
|
422
391
|
}
|
|
423
|
-
},
|
|
392
|
+
}, _callee4);
|
|
424
393
|
}));
|
|
425
394
|
function onSelect() {
|
|
426
395
|
return _onSelect.apply(this, arguments);
|
|
@@ -430,14 +399,16 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
430
399
|
});
|
|
431
400
|
}) : /*#__PURE__*/_react.default.createElement(_EmptyView.EmptyView, {
|
|
432
401
|
browseFiles: browseFiles
|
|
433
|
-
}))), /*#__PURE__*/_react.default.createElement(_BottomInfoBar.default, {
|
|
434
|
-
accept: accept
|
|
435
|
-
|
|
436
|
-
|
|
402
|
+
}))), /*#__PURE__*/_react.default.createElement(_BottomInfoBar.default, null, /*#__PURE__*/_react.default.createElement(_SupportedFileTypes.default, {
|
|
403
|
+
accept: accept
|
|
404
|
+
}), filesBeingUploaded > 0 && /*#__PURE__*/_react.default.createElement(_UploadStatus.default, {
|
|
405
|
+
numberOfFiles: filesBeingUploaded,
|
|
406
|
+
progress: progress
|
|
407
|
+
})))));
|
|
437
408
|
});
|
|
438
409
|
};
|
|
439
410
|
FileManagerView.defaultProps = {
|
|
440
411
|
multiple: false
|
|
441
412
|
};
|
|
442
|
-
var _default = FileManagerView;
|
|
413
|
+
var _default = (0, _mobxReactLite.observer)(FileManagerView);
|
|
443
414
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","InputSearch","styled","backgroundColor","position","height","padding","width","borderRadius","border","fontSize","marginLeft","outline","color","searchIcon","css","left","top","FileListWrapper","float","display","FileList","gridTemplateColumns","marginBottom","renderFile","props","file","plugin","getFileTypePlugin","id","render","FileManagerView","onClose","onChange","accept","multiple","onUploadCompletion","useFileManagerView","files","loadingFiles","loadMore","selected","toggleSelected","dragging","setDragging","uploading","setUploading","showFileDetails","hideFileDetails","showingFileDetails","queryParams","setQueryParams","hasPreviouslyUploadedFiles","setHasPreviouslyUploadedFiles","uploadFile","settings","fileManager","useFileManagerApi","useSnackbar","showSnackbar","searchOnChange","useCallback","debounce","search","toggleTag","tag","finalTags","Array","isArray","tags","includes","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","useHotkeys","zIndex","keys","esc","searchInput","useRef","refreshOnScroll","scrollFrame","uploadFiles","list","errors","uploadedFiles","Promise","all","map","newFile","length","setTimeout","name","renderUploadFileAction","browseFiles","canCreate","uploadMaxFileSize","filesToUpload","src","filter","Boolean","console","log","outputFileSelectionError","getDropZoneProps","onDragEnter","onExited","target","value","canRead","find","item","opacity","some","current","onSelect","defaultProps"],"sources":["FileManagerView.tsx"],"sourcesContent":["import React, { useRef, useCallback } from \"react\";\nimport Files from \"react-butterfiles\";\nimport { css } from \"emotion\";\nimport debounce from \"lodash/debounce\";\nimport styled from \"@emotion/styled\";\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { FilesRules } from \"react-butterfiles\";\nimport { ReactComponent as SearchIcon } from \"@material-design-icons/svg/outlined/search.svg\";\nimport { ReactComponent as UploadIcon } from \"@material-design-icons/svg/filled/cloud_upload.svg\";\nimport { ButtonPrimary, ButtonIcon } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { OverlayLayout, useSnackbar } from \"@webiny/app-admin\";\nimport FileThumbnail, { FileProps } from \"./File\";\nimport getFileTypePlugin from \"~/getFileTypePlugin\";\nimport { outputFileSelectionError } from \"./outputFileSelectionError\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport { FileDetails } from \"~/components/FileDetails\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport BottomInfoBar from \"./BottomInfoBar\";\nimport { useFileManagerApi, useFileManagerView } from \"~/index\";\nimport { EmptyView } from \"./EmptyView\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst InputSearch = styled(\"div\")({\n backgroundColor: \"var(--mdc-theme-on-background)\",\n position: \"relative\",\n height: 32,\n padding: 3,\n width: \"100%\",\n borderRadius: 2,\n \"> input\": {\n border: \"none\",\n fontSize: 14,\n width: \"calc(100% - 10px)\",\n height: \"100%\",\n marginLeft: 50,\n backgroundColor: \"transparent\",\n outline: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst searchIcon = css({\n \"&.mdc-button__icon\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n position: \"absolute\",\n width: 24,\n height: 24,\n left: 15,\n top: 7\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"100%\"\n});\n\nconst FileList = styled(\"div\")({\n width: \"100%\",\n display: \"grid\",\n /* define the number of grid columns */\n gridTemplateColumns: \"repeat( auto-fill, minmax(220px, 1fr) )\",\n marginBottom: 95\n});\n\nexport interface FileManagerViewProps {\n onChange?: Function;\n onClose?: Function;\n files?: FilesRules;\n multiple?: boolean; // Does not affect <Files> component, it always allows multiple selection.\n accept: Array<string>;\n maxSize?: number | string;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n}\n\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n return (\n <FileThumbnail {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </FileThumbnail>\n );\n};\n\ninterface RefreshOnScrollParams {\n loadMore: () => void;\n scrollFrame: {\n top: number;\n };\n}\n\ninterface FileError {\n file: File;\n e: Error;\n}\n\nconst FileManagerView: React.FC<FileManagerViewProps> = props => {\n const { onClose, onChange, accept, multiple = false, onUploadCompletion } = props;\n\n const {\n files,\n loadingFiles,\n loadMore,\n selected,\n toggleSelected,\n dragging,\n setDragging,\n uploading,\n setUploading,\n showFileDetails,\n hideFileDetails,\n showingFileDetails,\n queryParams,\n setQueryParams,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles,\n uploadFile,\n settings\n } = useFileManagerView();\n\n const fileManager = useFileManagerApi();\n const { showSnackbar } = useSnackbar();\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => setQueryParams({ search }), 500),\n []\n );\n\n const toggleTag = useCallback(async ({ tag, queryParams }) => {\n const finalTags = Array.isArray(queryParams.tags) ? [...queryParams.tags] : [];\n\n if (finalTags.includes(tag)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n setQueryParams({ ...queryParams, tags: finalTags });\n }, []);\n\n const getFileUploadErrorMessage = useCallback(e => {\n if (typeof e === \"string\") {\n const match = e.match(/Message>(.*?)<\\/Message/);\n if (match) {\n const [, message] = match;\n return message;\n }\n\n return e;\n }\n return e.message;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n const refreshOnScroll = useCallback(\n debounce(({ scrollFrame, loadMore }: RefreshOnScrollParams) => {\n if (scrollFrame.top > 0.9) {\n loadMore();\n }\n }, 500),\n [loadMore]\n );\n\n const uploadFiles = async (files: File | File[]): Promise<number | null> => {\n setUploading(true);\n const list: File[] = Array.isArray(files) ? files : [files];\n\n const errors: FileError[] = [];\n const uploadedFiles: FileItem[] = [];\n await Promise.all(\n list.map(async file => {\n try {\n const newFile = await uploadFile(file);\n\n if (newFile) {\n uploadedFiles.push(newFile);\n }\n } catch (e) {\n errors.push({ file, e });\n }\n })\n );\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n setUploading(false);\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n showSnackbar(\n <>\n {t`One or more files were not uploaded successfully:`}\n <ol>\n {errors.map(({ file, e }) => (\n <li key={file.name}>\n <strong>{file.name}</strong>: {getFileUploadErrorMessage(e)}\n </li>\n ))}\n </ol>\n </>\n );\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n onUploadCompletion(uploadedFiles);\n onClose && onClose();\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n return null;\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!fileManager.canCreate) {\n return null;\n }\n return (\n <ButtonPrimary onClick={browseFiles} disabled={uploading}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [uploading, fileManager.canCreate]\n );\n\n return (\n <Files\n multiple\n maxSize={settings ? settings.uploadMaxFileSize + \"b\" : \"1TB\"}\n multipleMaxSize={\"1TB\"}\n accept={accept}\n onSuccess={files => {\n const filesToUpload = files.map(file => file.src.file).filter(Boolean) as File[];\n uploadFiles(filesToUpload);\n }}\n onError={errors => {\n console.log(\"onError\", errors);\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles }) => (\n <OverlayLayout\n {...getDropZoneProps({\n onDragEnter: () => hasPreviouslyUploadedFiles && setDragging(true),\n onExited: onClose\n })}\n barLeft={\n <InputSearch>\n <Icon className={searchIcon} icon={<SearchIcon />} />\n <input\n ref={searchInput}\n onChange={e => searchOnChange(e.target.value)}\n placeholder={t`Search by filename or tags`}\n disabled={!fileManager.canRead}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n selected.length > 0 ? (\n <ButtonPrimary\n disabled={uploading}\n onClick={() => {\n (async () => {\n if (typeof onChange === \"function\") {\n await onChange(multiple ? selected : selected[0]);\n\n onClose && onClose();\n }\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )\n }\n >\n <>\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n\n {showingFileDetails ? (\n <FileDetails\n file={files.find(item => item.id === showingFileDetails)!}\n onClose={hideFileDetails}\n />\n ) : null}\n\n <LeftSidebar toggleTag={tag => toggleTag({ tag, queryParams })} />\n\n <FileListWrapper data-testid={\"fm-list-wrapper\"}>\n {loadingFiles && (\n <CircularProgress\n label={t`Loading Files...`}\n style={{ opacity: 1 }}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame =>\n refreshOnScroll({ scrollFrame, loadMore })\n }\n >\n <FileList>\n {files.length ? (\n files.map(file =>\n renderFile({\n file,\n showFileDetails: () => showFileDetails(file.id),\n selected: selected.some(\n current => current.src === file.src\n ),\n onSelect: async () => {\n if (typeof onChange === \"function\") {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose && onClose();\n }\n }\n })\n )\n ) : (\n <EmptyView browseFiles={browseFiles} />\n )}\n </FileList>\n </Scrollbar>\n <BottomInfoBar accept={accept} uploading={uploading} />\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n );\n};\n\nFileManagerView.defaultProps = {\n multiple: false\n};\n\nexport default FileManagerView;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","InputSearch","styled","backgroundColor","position","height","padding","width","borderRadius","border","fontSize","marginLeft","outline","color","searchIcon","css","left","top","FileListWrapper","float","display","FileList","gridTemplateColumns","marginBottom","renderFile","props","file","plugin","getFileTypePlugin","id","render","FileManagerView","onClose","onChange","accept","multiple","onUploadCompletion","useFileManagerView","files","loadingFiles","loadMore","selected","toggleSelected","dragging","setDragging","showFileDetails","hideFileDetails","showingFileDetails","queryParams","setQueryParams","hasPreviouslyUploadedFiles","setHasPreviouslyUploadedFiles","uploadFile","settings","useState","BatchFileUploader","uploader","fileManager","useFileManagerApi","useSnackbar","showSnackbar","searchOnChange","useCallback","debounce","search","toggleTag","tag","finalTags","Array","isArray","tags","includes","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","useHotkeys","zIndex","keys","esc","searchInput","useRef","refreshOnScroll","scrollFrame","uploadFiles","addFiles","onUploadFinished","uploaded","errors","reset","length","setTimeout","map","name","renderUploadFileAction","browseFiles","canCreate","filesBeingUploaded","getJobs","progress","uploadMaxFileSize","filesToUpload","src","filter","Boolean","console","log","outputFileSelectionError","getDropZoneProps","onDragEnter","onExited","target","value","canRead","find","item","opacity","some","current","onSelect","defaultProps","observer"],"sources":["FileManagerView.tsx"],"sourcesContent":["import React, { useRef, useCallback, useState } from \"react\";\nimport Files from \"react-butterfiles\";\nimport { observer } from \"mobx-react-lite\";\nimport { css } from \"emotion\";\nimport debounce from \"lodash/debounce\";\nimport styled from \"@emotion/styled\";\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { FilesRules } from \"react-butterfiles\";\nimport { ReactComponent as SearchIcon } from \"@material-design-icons/svg/outlined/search.svg\";\nimport { ReactComponent as UploadIcon } from \"@material-design-icons/svg/filled/cloud_upload.svg\";\nimport { ButtonPrimary, ButtonIcon } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { OverlayLayout, useSnackbar } from \"@webiny/app-admin\";\nimport FileThumbnail, { FileProps } from \"./File\";\nimport getFileTypePlugin from \"~/getFileTypePlugin\";\nimport { outputFileSelectionError } from \"./outputFileSelectionError\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport { FileDetails } from \"~/components/FileDetails\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport BottomInfoBar from \"./BottomInfoBar\";\nimport { useFileManagerApi, useFileManagerView } from \"~/index\";\nimport { EmptyView } from \"./EmptyView\";\nimport UploadStatus from \"~/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus\";\nimport SupportedFileTypes from \"~/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes\";\nimport { BatchFileUploader } from \"~/BatchFileUploader\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst InputSearch = styled(\"div\")({\n backgroundColor: \"var(--mdc-theme-on-background)\",\n position: \"relative\",\n height: 32,\n padding: 3,\n width: \"100%\",\n borderRadius: 2,\n \"> input\": {\n border: \"none\",\n fontSize: 14,\n width: \"calc(100% - 10px)\",\n height: \"100%\",\n marginLeft: 50,\n backgroundColor: \"transparent\",\n outline: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst searchIcon = css({\n \"&.mdc-button__icon\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n position: \"absolute\",\n width: 24,\n height: 24,\n left: 15,\n top: 7\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"100%\"\n});\n\nconst FileList = styled(\"div\")({\n width: \"100%\",\n display: \"grid\",\n /* define the number of grid columns */\n gridTemplateColumns: \"repeat( auto-fill, minmax(220px, 1fr) )\",\n marginBottom: 95\n});\n\nexport interface FileManagerViewProps {\n onChange?: Function;\n onClose?: Function;\n files?: FilesRules;\n multiple?: boolean; // Does not affect <Files> component, it always allows multiple selection.\n accept: Array<string>;\n maxSize?: number | string;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n}\n\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\n\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n return (\n <FileThumbnail {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </FileThumbnail>\n );\n};\n\ninterface RefreshOnScrollParams {\n loadMore: () => void;\n scrollFrame: {\n top: number;\n };\n}\n\nconst FileManagerView: React.FC<FileManagerViewProps> = props => {\n const { onClose, onChange, accept, multiple = false, onUploadCompletion } = props;\n\n const {\n files,\n loadingFiles,\n loadMore,\n selected,\n toggleSelected,\n dragging,\n setDragging,\n showFileDetails,\n hideFileDetails,\n showingFileDetails,\n queryParams,\n setQueryParams,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles,\n uploadFile,\n settings\n } = useFileManagerView();\n\n const [uploader] = useState<BatchFileUploader>(() => new BatchFileUploader(uploadFile));\n const fileManager = useFileManagerApi();\n const { showSnackbar } = useSnackbar();\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => setQueryParams({ search }), 500),\n []\n );\n\n const toggleTag = useCallback(async ({ tag, queryParams }) => {\n const finalTags = Array.isArray(queryParams.tags) ? [...queryParams.tags] : [];\n\n if (finalTags.includes(tag)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n setQueryParams({ ...queryParams, tags: finalTags });\n }, []);\n\n const getFileUploadErrorMessage = useCallback(e => {\n if (typeof e === \"string\") {\n const match = e.match(/Message>(.*?)<\\/Message/);\n if (match) {\n const [, message] = match;\n return message;\n }\n\n return e;\n }\n return e.message;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n const refreshOnScroll = useCallback(\n debounce(({ scrollFrame, loadMore }: RefreshOnScrollParams) => {\n if (scrollFrame.top > 0.9) {\n loadMore();\n }\n }, 500),\n [loadMore]\n );\n\n const uploadFiles = async (files: File[]) => {\n uploader.addFiles(files);\n\n uploader.onUploadFinished(({ uploaded, errors }) => {\n uploader.reset();\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => {\n showSnackbar(\n <>\n {t`One or more files were not uploaded successfully:`}\n <ol>\n {errors.map(({ file, e }) => (\n <li key={file.name}>\n <strong>{file.name}</strong>: {getFileUploadErrorMessage(e)}\n </li>\n ))}\n </ol>\n </>\n );\n }, 750);\n\n return;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => {\n onUploadCompletion(uploaded);\n onClose && onClose();\n }, 750);\n }\n });\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!fileManager.canCreate) {\n return null;\n }\n return (\n <ButtonPrimary onClick={browseFiles}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [fileManager.canCreate]\n );\n\n const filesBeingUploaded = uploader.getJobs().length;\n const progress = uploader.progress;\n\n return (\n <Files\n multiple\n maxSize={settings ? settings.uploadMaxFileSize + \"b\" : \"1TB\"}\n multipleMaxSize={\"1TB\"}\n accept={accept}\n onSuccess={files => {\n const filesToUpload = files.map(file => file.src.file).filter(Boolean) as File[];\n uploadFiles(filesToUpload);\n }}\n onError={errors => {\n console.log(\"onError\", errors);\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles }) => (\n <OverlayLayout\n {...getDropZoneProps({\n onDragEnter: () => hasPreviouslyUploadedFiles && setDragging(true),\n onExited: onClose\n })}\n barLeft={\n <InputSearch>\n <Icon className={searchIcon} icon={<SearchIcon />} />\n <input\n ref={searchInput}\n onChange={e => searchOnChange(e.target.value)}\n placeholder={t`Search by filename or tags`}\n disabled={!fileManager.canRead}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n selected.length > 0 ? (\n <ButtonPrimary\n onClick={() => {\n (async () => {\n if (typeof onChange === \"function\") {\n await onChange(multiple ? selected : selected[0]);\n\n onClose && onClose();\n }\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )\n }\n >\n <>\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n\n {showingFileDetails ? (\n <FileDetails\n file={files.find(item => item.id === showingFileDetails)!}\n onClose={hideFileDetails}\n open={Boolean(showingFileDetails)}\n loading={false} // We don't need to show the loader here\n />\n ) : null}\n\n <LeftSidebar toggleTag={tag => toggleTag({ tag, queryParams })} />\n\n <FileListWrapper data-testid={\"fm-list-wrapper\"}>\n {loadingFiles && (\n <CircularProgress\n label={t`Loading Files...`}\n style={{ opacity: 1 }}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame =>\n refreshOnScroll({ scrollFrame, loadMore })\n }\n >\n <FileList>\n {files.length ? (\n files.map(file =>\n renderFile({\n file,\n showFileDetails: () => showFileDetails(file.id),\n selected: selected.some(\n current => current.src === file.src\n ),\n onSelect: async () => {\n if (typeof onChange === \"function\") {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose && onClose();\n }\n }\n })\n )\n ) : (\n <EmptyView browseFiles={browseFiles} />\n )}\n </FileList>\n </Scrollbar>\n <BottomInfoBar>\n <SupportedFileTypes accept={accept} />\n {filesBeingUploaded > 0 && (\n <UploadStatus\n numberOfFiles={filesBeingUploaded}\n progress={progress}\n />\n )}\n </BottomInfoBar>\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n );\n};\n\nFileManagerView.defaultProps = {\n multiple: false\n};\n\nexport default observer(FileManagerView);\n"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAwD;AAExD,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,0CAA0C,CAAC;AAE7D,IAAMC,WAAW,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EAC9BC,eAAe,EAAE,gCAAgC;EACjDC,QAAQ,EAAE,UAAU;EACpBC,MAAM,EAAE,EAAE;EACVC,OAAO,EAAE,CAAC;EACVC,KAAK,EAAE,MAAM;EACbC,YAAY,EAAE,CAAC;EACf,SAAS,EAAE;IACPC,MAAM,EAAE,MAAM;IACdC,QAAQ,EAAE,EAAE;IACZH,KAAK,EAAE,mBAAmB;IAC1BF,MAAM,EAAE,MAAM;IACdM,UAAU,EAAE,EAAE;IACdR,eAAe,EAAE,aAAa;IAC9BS,OAAO,EAAE,MAAM;IACfC,KAAK,EAAE;EACX;AACJ,CAAC,CAAC;AAEF,IAAMC,UAAU,gBAAG,IAAAC,YAAG,EAAC;EACnB,oBAAoB,EAAE;IAClBF,KAAK,EAAE,+CAA+C;IACtDT,QAAQ,EAAE,UAAU;IACpBG,KAAK,EAAE,EAAE;IACTF,MAAM,EAAE,EAAE;IACVW,IAAI,EAAE,EAAE;IACRC,GAAG,EAAE;EACT;AACJ,CAAC,sBAAC;AAEF,IAAMC,eAAe,oBAAGhB,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EAClCiB,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,cAAc;EACvBb,KAAK,EAAE,qBAAqB;EAC5BF,MAAM,EAAE;AACZ,CAAC,CAAC;AAEF,IAAMgB,QAAQ,oBAAGnB,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EAC3BK,KAAK,EAAE,MAAM;EACba,OAAO,EAAE,MAAM;EACf;EACAE,mBAAmB,EAAE,yCAAyC;EAC9DC,YAAY,EAAE;AAClB,CAAC,CAAC;AAsBF,IAAMC,UAAqC,GAAG,SAAxCA,UAAqC,CAAGC,KAAK,EAAI;EACnD,IAAQC,IAAI,GAAKD,KAAK,CAAdC,IAAI;EACZ,IAAMC,MAAM,GAAG,IAAAC,0BAAiB,EAACF,IAAI,CAAC;EACtC,IAAI,CAACC,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EACA,oBACI,6BAAC,aAAa,oBAAKF,KAAK;IAAE,GAAG,EAAEC,IAAI,CAACG;EAAG,IAClCF,MAAM,CAACG,MAAM,CAAC;IACX;AAChB;AACA;IACgB;IACAJ,IAAI,EAAJA;EACJ,CAAC,CAAC,CACU;AAExB,CAAC;AASD,IAAMK,eAA+C,GAAG,SAAlDA,eAA+C,CAAGN,KAAK,EAAI;EAC7D,IAAQO,OAAO,GAA6DP,KAAK,CAAzEO,OAAO;IAAEC,QAAQ,GAAmDR,KAAK,CAAhEQ,QAAQ;IAAEC,MAAM,GAA2CT,KAAK,CAAtDS,MAAM;IAAA,kBAA2CT,KAAK,CAA9CU,QAAQ;IAARA,QAAQ,gCAAG,KAAK;IAAEC,kBAAkB,GAAKX,KAAK,CAA5BW,kBAAkB;EAEvE,0BAiBI,IAAAC,oBAAkB,GAAE;IAhBpBC,KAAK,uBAALA,KAAK;IACLC,YAAY,uBAAZA,YAAY;IACZC,QAAQ,uBAARA,QAAQ;IACRC,QAAQ,uBAARA,QAAQ;IACRC,cAAc,uBAAdA,cAAc;IACdC,QAAQ,uBAARA,QAAQ;IACRC,WAAW,uBAAXA,WAAW;IACXC,gBAAe,uBAAfA,eAAe;IACfC,eAAe,uBAAfA,eAAe;IACfC,kBAAkB,uBAAlBA,kBAAkB;IAClBC,WAAW,uBAAXA,WAAW;IACXC,cAAc,uBAAdA,cAAc;IACdC,0BAA0B,uBAA1BA,0BAA0B;IAC1BC,6BAA6B,uBAA7BA,6BAA6B;IAC7BC,UAAU,uBAAVA,UAAU;IACVC,QAAQ,uBAARA,QAAQ;EAGZ,gBAAmB,IAAAC,eAAQ,EAAoB;MAAA,OAAM,IAAIC,oCAAiB,CAACH,UAAU,CAAC;IAAA,EAAC;IAAA;IAAhFI,QAAQ;EACf,IAAMC,WAAW,GAAG,IAAAC,mBAAiB,GAAE;EACvC,mBAAyB,IAAAC,qBAAW,GAAE;IAA9BC,YAAY,gBAAZA,YAAY;EAEpB,IAAMC,cAAc,GAAG,IAAAC,kBAAW;EAC9B;EACA,IAAAC,iBAAQ,EAAC,UAAAC,MAAM;IAAA,OAAIf,cAAc,CAAC;MAAEe,MAAM,EAANA;IAAO,CAAC,CAAC;EAAA,GAAE,GAAG,CAAC,EACnD,EAAE,CACL;EAED,IAAMC,UAAS,GAAG,IAAAH,kBAAW;IAAA,mGAAC;MAAA;MAAA;QAAA;UAAA;YAASI,GAAG,QAAHA,GAAG,EAAElB,WAAW,QAAXA,WAAW;YAC7CmB,SAAS,GAAGC,KAAK,CAACC,OAAO,CAACrB,WAAW,CAACsB,IAAI,CAAC,oCAAOtB,WAAW,CAACsB,IAAI,IAAI,EAAE;YAE9E,IAAIH,SAAS,CAACI,QAAQ,CAACL,GAAG,CAAC,EAAE;cACzBC,SAAS,CAACK,MAAM,CAACL,SAAS,CAACM,OAAO,CAACP,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC,MAAM;cACHC,SAAS,CAACO,IAAI,CAACR,GAAG,CAAC;YACvB;YAEAjB,cAAc,6DAAMD,WAAW;cAAEsB,IAAI,EAAEH;YAAS,GAAG;UAAC;UAAA;YAAA;QAAA;MAAA;IAAA,CACvD;IAAA;MAAA;IAAA;EAAA,KAAE,EAAE,CAAC;EAEN,IAAMQ,yBAAyB,GAAG,IAAAb,kBAAW,EAAC,UAAAc,CAAC,EAAI;IAC/C,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE;MACvB,IAAMC,KAAK,GAAGD,CAAC,CAACC,KAAK,CAAC,yBAAyB,CAAC;MAChD,IAAIA,KAAK,EAAE;QACP,0CAAoBA,KAAK;UAAhBC,OAAO;QAChB,OAAOA,OAAO;MAClB;MAEA,OAAOF,CAAC;IACZ;IACA,OAAOA,CAAC,CAACE,OAAO;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAC,wBAAU,EAAC;IACPC,MAAM,EAAE,EAAE;IACVC,IAAI,EAAE;MACFC,GAAG,EAAElD;IACT;EACJ,CAAC,CAAC;EAEF,IAAMmD,WAAW,GAAG,IAAAC,aAAM,EAAmB,IAAI,CAAC;EAElD,IAAMC,eAAe,GAAG,IAAAvB,kBAAW,EAC/B,IAAAC,iBAAQ,EAAC,iBAAsD;IAAA,IAAnDuB,WAAW,SAAXA,WAAW;MAAE9C,QAAQ,SAARA,QAAQ;IAC7B,IAAI8C,WAAW,CAACrE,GAAG,GAAG,GAAG,EAAE;MACvBuB,QAAQ,EAAE;IACd;EACJ,CAAC,EAAE,GAAG,CAAC,EACP,CAACA,QAAQ,CAAC,CACb;EAED,IAAM+C,WAAW;IAAA,mGAAG,kBAAOjD,KAAa;MAAA;QAAA;UAAA;YACpCkB,QAAQ,CAACgC,QAAQ,CAAClD,KAAK,CAAC;YAExBkB,QAAQ,CAACiC,gBAAgB,CAAC,iBAA0B;cAAA,IAAvBC,QAAQ,SAARA,QAAQ;gBAAEC,MAAM,SAANA,MAAM;cACzCnC,QAAQ,CAACoC,KAAK,EAAE;cAEhB,IAAI,CAAC1C,0BAA0B,EAAE;gBAC7BC,6BAA6B,CAAC,IAAI,CAAC;cACvC;cAEA,IAAIwC,MAAM,CAACE,MAAM,GAAG,CAAC,EAAE;gBACnB;gBACAC,UAAU,CAAC,YAAM;kBACblC,YAAY,eACR,4DACK9D,CAAC,mJACF,yCACK6F,MAAM,CAACI,GAAG,CAAC;oBAAA,IAAGrE,IAAI,SAAJA,IAAI;sBAAEkD,CAAC,SAADA,CAAC;oBAAA,oBAClB;sBAAI,GAAG,EAAElD,IAAI,CAACsE;oBAAK,gBACf,6CAAStE,IAAI,CAACsE,IAAI,CAAU,MAAE,EAACrB,yBAAyB,CAACC,CAAC,CAAC,CAC1D;kBAAA,CACR,CAAC,CACD,CACN,CACN;gBACL,CAAC,EAAE,GAAG,CAAC;gBAEP;cACJ;;cAEA;cACAkB,UAAU,CAAC;gBAAA,OAAMlC,YAAY,CAAC9D,CAAC,2GAAwB;cAAA,GAAE,GAAG,CAAC;cAE7D,IAAI,OAAOsC,kBAAkB,KAAK,UAAU,EAAE;gBAC1C;gBACA0D,UAAU,CAAC,YAAM;kBACb1D,kBAAkB,CAACsD,QAAQ,CAAC;kBAC5B1D,OAAO,IAAIA,OAAO,EAAE;gBACxB,CAAC,EAAE,GAAG,CAAC;cACX;YACJ,CAAC,CAAC;UAAC;UAAA;YAAA;QAAA;MAAA;IAAA,CACN;IAAA,gBAzCKuD,WAAW;MAAA;IAAA;EAAA,GAyChB;EAED,IAAMU,sBAAsB,GAAG,IAAAnC,kBAAW,EACtC,iBAAqB;IAAA,IAAlBoC,WAAW,SAAXA,WAAW;IACV,IAAI,CAACzC,WAAW,CAAC0C,SAAS,EAAE;MACxB,OAAO,IAAI;IACf;IACA,oBACI,6BAAC,qBAAa;MAAC,OAAO,EAAED;IAAY,gBAChC,6BAAC,kBAAU;MAAC,IAAI,eAAE,6BAAC,4BAAU;IAAI,EAAG,EACnCpG,CAAC,+FACU;EAExB,CAAC,EACD,CAAC2D,WAAW,CAAC0C,SAAS,CAAC,CAC1B;EAED,IAAMC,kBAAkB,GAAG5C,QAAQ,CAAC6C,OAAO,EAAE,CAACR,MAAM;EACpD,IAAMS,QAAQ,GAAG9C,QAAQ,CAAC8C,QAAQ;EAElC,oBACI,6BAAC,yBAAK;IACF,QAAQ;IACR,OAAO,EAAEjD,QAAQ,GAAGA,QAAQ,CAACkD,iBAAiB,GAAG,GAAG,GAAG,KAAM;IAC7D,eAAe,EAAE,KAAM;IACvB,MAAM,EAAErE,MAAO;IACf,SAAS,EAAE,mBAAAI,KAAK,EAAI;MAChB,IAAMkE,aAAa,GAAGlE,KAAK,CAACyD,GAAG,CAAC,UAAArE,IAAI;QAAA,OAAIA,IAAI,CAAC+E,GAAG,CAAC/E,IAAI;MAAA,EAAC,CAACgF,MAAM,CAACC,OAAO,CAAW;MAChFpB,WAAW,CAACiB,aAAa,CAAC;IAC9B,CAAE;IACF,OAAO,EAAE,iBAAAb,MAAM,EAAI;MACfiB,OAAO,CAACC,GAAG,CAAC,SAAS,EAAElB,MAAM,CAAC;MAC9B,IAAMb,OAAO,GAAG,IAAAgC,kDAAwB,EAACnB,MAAM,CAAC;MAChD/B,YAAY,CAACkB,OAAO,CAAC;IACzB;EAAE,GAED;IAAA,IAAGiC,gBAAgB,SAAhBA,gBAAgB;MAAEb,WAAW,SAAXA,WAAW;IAAA,oBAC7B,6BAAC,uBAAa,oBACNa,gBAAgB,CAAC;MACjBC,WAAW,EAAE;QAAA,OAAM9D,0BAA0B,IAAIN,WAAW,CAAC,IAAI,CAAC;MAAA;MAClEqE,QAAQ,EAAEjF;IACd,CAAC,CAAC;MACF,OAAO,eACH,6BAAC,WAAW,qBACR,6BAAC,UAAI;QAAC,SAAS,EAAElB,UAAW;QAAC,IAAI,eAAE,6BAAC,sBAAU;MAAI,EAAG,eACrD;QACI,GAAG,EAAEqE,WAAY;QACjB,QAAQ,EAAE,kBAAAP,CAAC;UAAA,OAAIf,cAAc,CAACe,CAAC,CAACsC,MAAM,CAACC,KAAK,CAAC;QAAA,CAAC;QAC9C,WAAW,EAAErH,CAAC,+GAA6B;QAC3C,QAAQ,EAAE,CAAC2D,WAAW,CAAC2D,OAAQ;QAC/B,eAAa;MAA4B,EAC3C,CAET;MACD,QAAQ,EACJ3E,QAAQ,CAACoD,MAAM,GAAG,CAAC,gBACf,6BAAC,qBAAa;QACV,OAAO,EAAE,mBAAM;UACX,uFAAC;YAAA;cAAA;gBAAA;kBAAA,MACO,OAAO5D,QAAQ,KAAK,UAAU;oBAAA;oBAAA;kBAAA;kBAAA;kBAAA,OACxBA,QAAQ,CAACE,QAAQ,GAAGM,QAAQ,GAAGA,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAAA;kBAEjDT,OAAO,IAAIA,OAAO,EAAE;gBAAC;gBAAA;kBAAA;cAAA;YAAA;UAAA,CAE5B,IAAG;QACR;MAAE,GAEDlC,CAAC,6FAAS,GAAC,EAACqC,QAAQ,eAAQM,QAAQ,CAACoD,MAAM,MAAG,CACnC,GAEhBI,sBAAsB,CAAC;QAAEC,WAAW,EAAXA;MAAY,CAAC;IAE7C,iBAED,4DACKvD,QAAQ,IAAIO,0BAA0B,iBACnC,6BAAC,sBAAa;MACV,WAAW,EAAE;QAAA,OAAMN,WAAW,CAAC,KAAK,CAAC;MAAA,CAAC;MACtC,MAAM,EAAE;QAAA,OAAMA,WAAW,CAAC,KAAK,CAAC;MAAA;IAAC,EAExC,EAEAG,kBAAkB,gBACf,6BAAC,wBAAW;MACR,IAAI,EAAET,KAAK,CAAC+E,IAAI,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACzF,EAAE,KAAKkB,kBAAkB;MAAA,EAAG;MAC1D,OAAO,EAAED,eAAgB;MACzB,IAAI,EAAE6D,OAAO,CAAC5D,kBAAkB,CAAE;MAClC,OAAO,EAAE,KAAM,CAAC;IAAA,EAClB,GACF,IAAI,eAER,6BAAC,oBAAW;MAAC,SAAS,EAAE,mBAAAmB,GAAG;QAAA,OAAID,UAAS,CAAC;UAAEC,GAAG,EAAHA,GAAG;UAAElB,WAAW,EAAXA;QAAY,CAAC,CAAC;MAAA;IAAC,EAAG,eAElE,6BAAC,eAAe;MAAC,eAAa;IAAkB,GAC3CT,YAAY,iBACT,6BAAC,0BAAgB;MACb,KAAK,EAAEzC,CAAC,qGAAmB;MAC3B,KAAK,EAAE;QAAEyH,OAAO,EAAE;MAAE;IAAE,EAE7B,eACD,6BAAC,oBAAS;MACN,aAAa,EAAE,uBAAAjC,WAAW;QAAA,OACtBD,eAAe,CAAC;UAAEC,WAAW,EAAXA,WAAW;UAAE9C,QAAQ,EAARA;QAAS,CAAC,CAAC;MAAA;IAC7C,gBAED,6BAAC,QAAQ,QACJF,KAAK,CAACuD,MAAM,GACTvD,KAAK,CAACyD,GAAG,CAAC,UAAArE,IAAI;MAAA,OACVF,UAAU,CAAC;QACPE,IAAI,EAAJA,IAAI;QACJmB,eAAe,EAAE;UAAA,OAAMA,gBAAe,CAACnB,IAAI,CAACG,EAAE,CAAC;QAAA;QAC/CY,QAAQ,EAAEA,QAAQ,CAAC+E,IAAI,CACnB,UAAAC,OAAO;UAAA,OAAIA,OAAO,CAAChB,GAAG,KAAK/E,IAAI,CAAC+E,GAAG;QAAA,EACtC;QACDiB,QAAQ;UAAA,uGAAE;YAAA;cAAA;gBAAA;kBAAA,MACF,OAAOzF,QAAQ,KAAK,UAAU;oBAAA;oBAAA;kBAAA;kBAAA,KAC1BE,QAAQ;oBAAA;oBAAA;kBAAA;kBACRO,cAAc,CAAChB,IAAI,CAAC;kBAAC;gBAAA;kBAAA;kBAAA,OAInBO,QAAQ,CAACP,IAAI,CAAC;gBAAA;kBACpBM,OAAO,IAAIA,OAAO,EAAE;gBAAC;gBAAA;kBAAA;cAAA;YAAA;UAAA,CAE5B;UAAA;YAAA;UAAA;UAAA;QAAA;MACL,CAAC,CAAC;IAAA,EACL,gBAED,6BAAC,oBAAS;MAAC,WAAW,EAAEkE;IAAY,EACvC,CACM,CACH,eACZ,6BAAC,sBAAa,qBACV,6BAAC,2BAAkB;MAAC,MAAM,EAAEhE;IAAO,EAAG,EACrCkE,kBAAkB,GAAG,CAAC,iBACnB,6BAAC,qBAAY;MACT,aAAa,EAAEA,kBAAmB;MAClC,QAAQ,EAAEE;IAAS,EAE1B,CACW,CACF,CACnB,CACS;EAAA,CACnB,CACG;AAEhB,CAAC;AAEDvE,eAAe,CAAC4F,YAAY,GAAG;EAC3BxF,QAAQ,EAAE;AACd,CAAC;AAAC,eAEa,IAAAyF,uBAAQ,EAAC7F,eAAe,CAAC;AAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/// <reference types="web" />
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { FileItem } from "@webiny/app-admin/types";
|
|
4
|
+
import { Settings } from "../../../types";
|
|
5
|
+
import { Action, State, StateListWhere } from "./stateReducer";
|
|
6
|
+
import { ListDbSort } from "@webiny/app-aco/types";
|
|
7
|
+
import { UploadOptions } from "@webiny/app/types";
|
|
8
|
+
export declare const getWhere: (scope: string | undefined) => {
|
|
9
|
+
tag_not_startsWith: string;
|
|
10
|
+
tag_startsWith?: undefined;
|
|
11
|
+
} | {
|
|
12
|
+
tag_startsWith: string;
|
|
13
|
+
tag_not_startsWith?: undefined;
|
|
14
|
+
};
|
|
15
|
+
export interface FileManagerAcoViewContextData<TFileItem extends FileItem = FileItem> {
|
|
16
|
+
state: State;
|
|
17
|
+
dispatch: React.Dispatch<Action>;
|
|
18
|
+
getFile: (id: string) => Promise<TFileItem | undefined>;
|
|
19
|
+
createFile: (data: TFileItem) => Promise<TFileItem | undefined>;
|
|
20
|
+
updateFile: (id: string, data: Partial<TFileItem>) => Promise<void>;
|
|
21
|
+
deleteFile: (id: string) => Promise<void>;
|
|
22
|
+
uploadFile: (file: File, options?: UploadFileOptions) => Promise<TFileItem | undefined>;
|
|
23
|
+
settings: Settings | undefined;
|
|
24
|
+
selected: TFileItem[];
|
|
25
|
+
setSelected: (files: TFileItem[]) => void;
|
|
26
|
+
toggleSelected: (file: TFileItem) => void;
|
|
27
|
+
hasPreviouslyUploadedFiles: boolean | null;
|
|
28
|
+
setHasPreviouslyUploadedFiles: (flag: boolean) => void;
|
|
29
|
+
listWhere: StateListWhere;
|
|
30
|
+
setListWhere: (state: StateListWhere) => void;
|
|
31
|
+
listSort: ListDbSort | undefined;
|
|
32
|
+
setListSort: (state: ListDbSort) => void;
|
|
33
|
+
dragging: boolean;
|
|
34
|
+
setDragging: (state: boolean) => void;
|
|
35
|
+
showFileDetails: (id: string) => void;
|
|
36
|
+
showingFileDetails: string | null;
|
|
37
|
+
loadingFileDetails: boolean;
|
|
38
|
+
hideFileDetails: () => void;
|
|
39
|
+
folderId?: string;
|
|
40
|
+
setFolderId: (folderId: string | undefined) => void;
|
|
41
|
+
listTable: boolean;
|
|
42
|
+
setListTable: (mode: boolean) => void;
|
|
43
|
+
}
|
|
44
|
+
export declare const FileManagerAcoViewContext: React.Context<FileManagerAcoViewContextData<FileItem> | undefined>;
|
|
45
|
+
export interface FileManagerViewProviderProps {
|
|
46
|
+
accept: string[];
|
|
47
|
+
tags: string[];
|
|
48
|
+
scope?: string;
|
|
49
|
+
own?: boolean;
|
|
50
|
+
children: React.ReactNode;
|
|
51
|
+
}
|
|
52
|
+
declare type UploadFileOptions = Pick<UploadOptions, "onProgress">;
|
|
53
|
+
export declare const FileManagerAcoViewProvider: ({ children, ...props }: FileManagerViewProviderProps) => JSX.Element;
|
|
54
|
+
export {};
|