@webiny/app-file-manager 5.34.8 → 5.35.0-beta.1
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/FileManagerFileTypePlugin.d.ts +20 -0
- package/FileManagerFileTypePlugin.js +48 -0
- package/FileManagerFileTypePlugin.js.map +1 -0
- package/app.d.ts +2 -0
- package/app.js +16 -0
- package/app.js.map +1 -0
- package/components/FileDetails/Aliases.d.ts +3 -0
- package/components/FileDetails/Aliases.js +228 -0
- package/components/FileDetails/Aliases.js.map +1 -0
- package/components/FileDetails/DeleteImageAction.d.ts +2 -0
- package/components/FileDetails/DeleteImageAction.js +82 -0
- package/components/FileDetails/DeleteImageAction.js.map +1 -0
- package/components/FileDetails/FileProvider.d.ts +13 -0
- package/components/FileDetails/FileProvider.js +29 -0
- package/components/FileDetails/FileProvider.js.map +1 -0
- package/components/FileDetails/Name.d.ts +3 -0
- package/components/FileDetails/Name.js +81 -0
- package/components/FileDetails/Name.js.map +1 -0
- package/components/FileDetails/Tags.d.ts +3 -0
- package/components/FileDetails/Tags.js +176 -0
- package/components/FileDetails/Tags.js.map +1 -0
- package/components/FileDetails.d.ts +20 -0
- package/components/FileDetails.js +243 -0
- package/components/FileDetails.js.map +1 -0
- package/getFileTypePlugin.d.ts +4 -0
- package/getFileTypePlugin.js +51 -0
- package/getFileTypePlugin.js.map +1 -0
- package/index.d.ts +4 -2
- package/index.js +37 -31
- package/index.js.map +1 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.d.ts +37 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js +293 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js.map +1 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.d.ts +2 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js +15 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js.map +1 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/index.d.ts +2 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/index.js +19 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/index.js.map +1 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/useFileManagerApi.d.ts +3 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/useFileManagerApi.js +16 -0
- package/modules/FileManagerApiProvider/FileManagerApiContext/useFileManagerApi.js.map +1 -0
- package/modules/FileManagerApiProvider/graphql.d.ts +103 -0
- package/modules/FileManagerApiProvider/graphql.js +24 -0
- package/modules/FileManagerApiProvider/graphql.js.map +1 -0
- package/modules/FileManagerApiProvider/index.d.ts +2 -0
- package/modules/FileManagerApiProvider/index.js +22 -0
- package/modules/FileManagerApiProvider/index.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.d.ts +6 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js +41 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.d.ts +6 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js +51 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.d.ts +5 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js +48 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/DropFilesHere.d.ts +11 -0
- package/modules/FileManagerRenderer/DefaultRenderer/DropFilesHere.js +68 -0
- package/modules/FileManagerRenderer/DefaultRenderer/DropFilesHere.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/EmptyView.d.ts +7 -0
- package/modules/FileManagerRenderer/DefaultRenderer/EmptyView.js +32 -0
- package/modules/FileManagerRenderer/DefaultRenderer/EmptyView.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/File.d.ts +16 -0
- package/modules/FileManagerRenderer/DefaultRenderer/File.js +131 -0
- package/modules/FileManagerRenderer/DefaultRenderer/File.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.d.ts +18 -0
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js +443 -0
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/LeftSidebar.d.ts +6 -0
- package/modules/FileManagerRenderer/DefaultRenderer/LeftSidebar.js +96 -0
- package/modules/FileManagerRenderer/DefaultRenderer/LeftSidebar.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/NoPermissionView.d.ts +3 -0
- package/modules/FileManagerRenderer/DefaultRenderer/NoPermissionView.js +74 -0
- package/modules/FileManagerRenderer/DefaultRenderer/NoPermissionView.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/NoResults.d.ts +3 -0
- package/modules/FileManagerRenderer/DefaultRenderer/NoResults.js +22 -0
- package/modules/FileManagerRenderer/DefaultRenderer/NoResults.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/index.d.ts +2 -0
- package/modules/FileManagerRenderer/DefaultRenderer/index.js +70 -0
- package/modules/FileManagerRenderer/DefaultRenderer/index.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/outputFileSelectionError.d.ts +2 -0
- package/modules/FileManagerRenderer/DefaultRenderer/outputFileSelectionError.js +40 -0
- package/modules/FileManagerRenderer/DefaultRenderer/outputFileSelectionError.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.d.ts +47 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js +448 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/index.d.ts +2 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/index.js +27 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/index.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.d.ts +63 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js +100 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/useFileManagerView.d.ts +3 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/useFileManagerView.js +15 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/useFileManagerView.js.map +1 -0
- package/modules/FileManagerRenderer/index.d.ts +2 -0
- package/modules/FileManagerRenderer/index.js +13 -0
- package/modules/FileManagerRenderer/index.js.map +1 -0
- package/modules/FileTypes/fileDefault.d.ts +2 -0
- package/modules/FileTypes/fileDefault.js +28 -0
- package/modules/FileTypes/fileDefault.js.map +1 -0
- package/modules/FileTypes/fileImage/EditAction.d.ts +7 -0
- package/modules/FileTypes/fileImage/EditAction.js +123 -0
- package/modules/FileTypes/fileImage/EditAction.js.map +1 -0
- package/modules/FileTypes/fileImage/index.d.ts +2 -0
- package/modules/FileTypes/fileImage/index.js +37 -0
- package/modules/FileTypes/fileImage/index.js.map +1 -0
- package/modules/FileTypes/icons/edit.svg +17 -0
- package/modules/FileTypes/icons/round-description-24px.svg +1 -0
- package/modules/FileTypes/index.d.ts +1 -0
- package/modules/FileTypes/index.js +32 -0
- package/modules/FileTypes/index.js.map +1 -0
- package/modules/Settings/assets/icons/folder-open.svg +1 -0
- package/modules/Settings/graphql.d.ts +5 -0
- package/modules/Settings/graphql.js +17 -0
- package/modules/Settings/graphql.js.map +1 -0
- package/modules/Settings/index.d.ts +2 -0
- package/modules/Settings/index.js +35 -0
- package/modules/Settings/index.js.map +1 -0
- package/modules/Settings/plugins/installation.d.ts +3 -0
- package/modules/Settings/plugins/installation.js +103 -0
- package/modules/Settings/plugins/installation.js.map +1 -0
- package/modules/Settings/plugins/permissionRenderer/FileManagerPermissions.d.ts +14 -0
- package/modules/Settings/plugins/permissionRenderer/FileManagerPermissions.js +217 -0
- package/modules/Settings/plugins/permissionRenderer/FileManagerPermissions.js.map +1 -0
- package/modules/Settings/plugins/permissionRenderer/index.d.ts +3 -0
- package/modules/Settings/plugins/permissionRenderer/index.js +28 -0
- package/modules/Settings/plugins/permissionRenderer/index.js.map +1 -0
- package/modules/Settings/views/FileManagerSettings.d.ts +2 -0
- package/modules/Settings/views/FileManagerSettings.js +132 -0
- package/modules/Settings/views/FileManagerSettings.js.map +1 -0
- package/package.json +28 -16
package/index.js
CHANGED
|
@@ -1,37 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _appAdmin = require("@webiny/app-admin");
|
|
13
|
-
|
|
14
|
-
var _appSecurity = require("@webiny/app-security");
|
|
15
|
-
|
|
16
|
-
var _FileManagerSettings = _interopRequireDefault(require("./admin/views/FileManagerSettings"));
|
|
17
|
-
|
|
18
|
-
var FileManager = function FileManager() {
|
|
19
|
-
return /*#__PURE__*/_react.default.createElement(_appAdmin.Plugins, null, /*#__PURE__*/_react.default.createElement(_appSecurity.HasPermission, {
|
|
20
|
-
name: "fm.settings"
|
|
21
|
-
}, /*#__PURE__*/_react.default.createElement(_appAdmin.AddRoute, {
|
|
22
|
-
path: "/settings/file-manager/general"
|
|
23
|
-
}, /*#__PURE__*/_react.default.createElement(_appAdmin.Layout, {
|
|
24
|
-
title: "File Manager - General Settings"
|
|
25
|
-
}, /*#__PURE__*/_react.default.createElement(_FileManagerSettings.default, null))), /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
|
|
26
|
-
name: "settings"
|
|
27
|
-
}, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
|
|
28
|
-
name: "settings.fileManager",
|
|
29
|
-
label: "File Manager"
|
|
30
|
-
}, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
|
|
31
|
-
name: "settings.fileManager.general",
|
|
32
|
-
label: "General",
|
|
33
|
-
path: "/settings/file-manager/general"
|
|
34
|
-
})))));
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
useFile: true,
|
|
8
|
+
useFileManagerApi: true,
|
|
9
|
+
useFileManagerView: true
|
|
35
10
|
};
|
|
36
|
-
|
|
37
|
-
|
|
11
|
+
Object.defineProperty(exports, "useFile", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function get() {
|
|
14
|
+
return _FileDetails.useFile;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "useFileManagerApi", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function get() {
|
|
20
|
+
return _FileManagerApiContext.useFileManagerApi;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "useFileManagerView", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function get() {
|
|
26
|
+
return _FileManagerViewProvider.useFileManagerView;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
var _FileDetails = require("./components/FileDetails");
|
|
30
|
+
var _FileManagerApiContext = require("./modules/FileManagerApiProvider/FileManagerApiContext");
|
|
31
|
+
var _FileManagerViewProvider = require("./modules/FileManagerRenderer/FileManagerViewProvider");
|
|
32
|
+
var _FileManagerFileTypePlugin = require("./FileManagerFileTypePlugin");
|
|
33
|
+
Object.keys(_FileManagerFileTypePlugin).forEach(function (key) {
|
|
34
|
+
if (key === "default" || key === "__esModule") return;
|
|
35
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
36
|
+
if (key in exports && exports[key] === _FileManagerFileTypePlugin[key]) return;
|
|
37
|
+
Object.defineProperty(exports, key, {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function get() {
|
|
40
|
+
return _FileManagerFileTypePlugin[key];
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
});
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["export { useFile } from \"./components/FileDetails\";\nexport { useFileManagerApi } from \"./modules/FileManagerApiProvider/FileManagerApiContext\";\nexport { useFileManagerView } from \"./modules/FileManagerRenderer/FileManagerViewProvider\";\nexport * from \"./FileManagerFileTypePlugin\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/// <reference types="web" />
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ListFilesListFilesResponse, ListFilesQueryVariables, ListFileTagsQueryVariables } from "../graphql";
|
|
4
|
+
import { FileItem } from "@webiny/app-admin/types";
|
|
5
|
+
import { Settings } from "../../../types";
|
|
6
|
+
export interface ListTagsResponseItem {
|
|
7
|
+
tag: string;
|
|
8
|
+
count: number;
|
|
9
|
+
}
|
|
10
|
+
export interface FileManagerApiContextData<TFileItem extends FileItem = FileItem> {
|
|
11
|
+
canRead: boolean;
|
|
12
|
+
canCreate: boolean;
|
|
13
|
+
canEdit: (file: TFileItem) => boolean;
|
|
14
|
+
canDelete: (file: TFileItem) => boolean;
|
|
15
|
+
createFile: (data: TFileItem) => Promise<TFileItem | undefined>;
|
|
16
|
+
updateFile: (id: string, data: Partial<TFileItem>) => Promise<void>;
|
|
17
|
+
deleteFile: (id: string) => Promise<void>;
|
|
18
|
+
uploadFile: (file: File, options?: UploadFileOptions) => Promise<TFileItem | undefined>;
|
|
19
|
+
listFiles: (params?: ListFilesQueryVariables) => Promise<{
|
|
20
|
+
files: TFileItem[];
|
|
21
|
+
meta: ListFilesListFilesResponse["meta"];
|
|
22
|
+
}>;
|
|
23
|
+
listTags: (params?: ListTagsOptions) => Promise<ListTagsResponseItem[]>;
|
|
24
|
+
getSettings(): Promise<Settings>;
|
|
25
|
+
}
|
|
26
|
+
export declare const FileManagerApiContext: React.Context<FileManagerApiContextData<FileItem> | undefined>;
|
|
27
|
+
export interface FileManagerApiProviderProps {
|
|
28
|
+
children: React.ReactNode;
|
|
29
|
+
}
|
|
30
|
+
interface UploadFileOptions {
|
|
31
|
+
tags?: string[];
|
|
32
|
+
}
|
|
33
|
+
interface ListTagsOptions {
|
|
34
|
+
where?: ListFileTagsQueryVariables["where"];
|
|
35
|
+
}
|
|
36
|
+
declare const FileManagerApiProvider: ({ children }: FileManagerApiProviderProps) => JSX.Element;
|
|
37
|
+
export { FileManagerApiProvider };
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.FileManagerApiProvider = exports.FileManagerApiContext = void 0;
|
|
9
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _reactHooks = require("@apollo/react-hooks");
|
|
14
|
+
var _appSecurity = require("@webiny/app-security");
|
|
15
|
+
var _graphql = require("../graphql");
|
|
16
|
+
var _getFileUploader = require("./getFileUploader");
|
|
17
|
+
var FileManagerApiContext = /*#__PURE__*/_react.default.createContext(undefined);
|
|
18
|
+
exports.FileManagerApiContext = FileManagerApiContext;
|
|
19
|
+
var FileManagerApiProvider = function FileManagerApiProvider(_ref) {
|
|
20
|
+
var children = _ref.children;
|
|
21
|
+
var _useSecurity = (0, _appSecurity.useSecurity)(),
|
|
22
|
+
identity = _useSecurity.identity,
|
|
23
|
+
getPermission = _useSecurity.getPermission;
|
|
24
|
+
var client = (0, _reactHooks.useApolloClient)();
|
|
25
|
+
var fmFilePermission = (0, _react.useMemo)(function () {
|
|
26
|
+
return getPermission("fm.file");
|
|
27
|
+
}, [identity]);
|
|
28
|
+
var canDelete = (0, _react.useCallback)(function (item) {
|
|
29
|
+
// Bail out early if no access
|
|
30
|
+
if (!fmFilePermission) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (fmFilePermission.own) {
|
|
34
|
+
var identityId = identity ? identity.id || identity.login : null;
|
|
35
|
+
if (!identityId) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return item.createdBy.id === identityId;
|
|
39
|
+
}
|
|
40
|
+
if (typeof fmFilePermission.rwd === "string") {
|
|
41
|
+
return fmFilePermission.rwd.includes("d");
|
|
42
|
+
}
|
|
43
|
+
return true;
|
|
44
|
+
}, [fmFilePermission]);
|
|
45
|
+
var canRead = (0, _react.useMemo)(function () {
|
|
46
|
+
return Boolean(fmFilePermission);
|
|
47
|
+
}, [fmFilePermission]);
|
|
48
|
+
var canCreate = (0, _react.useMemo)(function () {
|
|
49
|
+
// Bail out early if no access
|
|
50
|
+
if (!fmFilePermission) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
if (fmFilePermission.own) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
if (typeof fmFilePermission.rwd === "string") {
|
|
57
|
+
return fmFilePermission.rwd.includes("w");
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
}, [fmFilePermission]);
|
|
61
|
+
var canEdit = (0, _react.useCallback)(function (item) {
|
|
62
|
+
// Bail out early if no access
|
|
63
|
+
if (!fmFilePermission) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
var creatorId = item.createdBy.id;
|
|
67
|
+
if (fmFilePermission.own && creatorId) {
|
|
68
|
+
var identityId = identity ? identity.id || identity.login : null;
|
|
69
|
+
return creatorId === identityId;
|
|
70
|
+
}
|
|
71
|
+
if (typeof fmFilePermission.rwd === "string") {
|
|
72
|
+
return fmFilePermission.rwd.includes("w");
|
|
73
|
+
}
|
|
74
|
+
return true;
|
|
75
|
+
}, [fmFilePermission]);
|
|
76
|
+
var createFile = /*#__PURE__*/function () {
|
|
77
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(data) {
|
|
78
|
+
var _response$data;
|
|
79
|
+
var response;
|
|
80
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
81
|
+
while (1) switch (_context.prev = _context.next) {
|
|
82
|
+
case 0:
|
|
83
|
+
_context.next = 2;
|
|
84
|
+
return client.mutate({
|
|
85
|
+
mutation: _graphql.CREATE_FILE,
|
|
86
|
+
variables: {
|
|
87
|
+
data: data
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
case 2:
|
|
91
|
+
response = _context.sent;
|
|
92
|
+
return _context.abrupt("return", (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.fileManager.createFile.data);
|
|
93
|
+
case 4:
|
|
94
|
+
case "end":
|
|
95
|
+
return _context.stop();
|
|
96
|
+
}
|
|
97
|
+
}, _callee);
|
|
98
|
+
}));
|
|
99
|
+
return function createFile(_x) {
|
|
100
|
+
return _ref2.apply(this, arguments);
|
|
101
|
+
};
|
|
102
|
+
}();
|
|
103
|
+
var updateFile = /*#__PURE__*/function () {
|
|
104
|
+
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2(id, data) {
|
|
105
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
|
|
106
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
107
|
+
case 0:
|
|
108
|
+
_context2.next = 2;
|
|
109
|
+
return client.mutate({
|
|
110
|
+
mutation: _graphql.UPDATE_FILE,
|
|
111
|
+
variables: {
|
|
112
|
+
id: id,
|
|
113
|
+
data: data
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
case 2:
|
|
117
|
+
case "end":
|
|
118
|
+
return _context2.stop();
|
|
119
|
+
}
|
|
120
|
+
}, _callee2);
|
|
121
|
+
}));
|
|
122
|
+
return function updateFile(_x2, _x3) {
|
|
123
|
+
return _ref3.apply(this, arguments);
|
|
124
|
+
};
|
|
125
|
+
}();
|
|
126
|
+
var deleteFile = /*#__PURE__*/function () {
|
|
127
|
+
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3(id) {
|
|
128
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
|
|
129
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
130
|
+
case 0:
|
|
131
|
+
_context3.next = 2;
|
|
132
|
+
return client.mutate({
|
|
133
|
+
mutation: _graphql.DELETE_FILE,
|
|
134
|
+
variables: {
|
|
135
|
+
id: id
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
case 2:
|
|
139
|
+
case "end":
|
|
140
|
+
return _context3.stop();
|
|
141
|
+
}
|
|
142
|
+
}, _callee3);
|
|
143
|
+
}));
|
|
144
|
+
return function deleteFile(_x4) {
|
|
145
|
+
return _ref4.apply(this, arguments);
|
|
146
|
+
};
|
|
147
|
+
}();
|
|
148
|
+
var listFiles = /*#__PURE__*/function () {
|
|
149
|
+
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4() {
|
|
150
|
+
var params,
|
|
151
|
+
_yield$client$query,
|
|
152
|
+
data,
|
|
153
|
+
_data$fileManager$lis,
|
|
154
|
+
files,
|
|
155
|
+
meta,
|
|
156
|
+
_args4 = arguments;
|
|
157
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
|
|
158
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
159
|
+
case 0:
|
|
160
|
+
params = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {};
|
|
161
|
+
_context4.next = 3;
|
|
162
|
+
return client.query({
|
|
163
|
+
query: _graphql.LIST_FILES,
|
|
164
|
+
variables: params,
|
|
165
|
+
fetchPolicy: "no-cache"
|
|
166
|
+
});
|
|
167
|
+
case 3:
|
|
168
|
+
_yield$client$query = _context4.sent;
|
|
169
|
+
data = _yield$client$query.data;
|
|
170
|
+
_data$fileManager$lis = data.fileManager.listFiles, files = _data$fileManager$lis.data, meta = _data$fileManager$lis.meta;
|
|
171
|
+
return _context4.abrupt("return", {
|
|
172
|
+
files: files,
|
|
173
|
+
meta: meta
|
|
174
|
+
});
|
|
175
|
+
case 7:
|
|
176
|
+
case "end":
|
|
177
|
+
return _context4.stop();
|
|
178
|
+
}
|
|
179
|
+
}, _callee4);
|
|
180
|
+
}));
|
|
181
|
+
return function listFiles() {
|
|
182
|
+
return _ref5.apply(this, arguments);
|
|
183
|
+
};
|
|
184
|
+
}();
|
|
185
|
+
var listTags = /*#__PURE__*/function () {
|
|
186
|
+
var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5() {
|
|
187
|
+
var params,
|
|
188
|
+
_yield$client$query2,
|
|
189
|
+
data,
|
|
190
|
+
_args5 = arguments;
|
|
191
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
|
|
192
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
193
|
+
case 0:
|
|
194
|
+
params = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : {};
|
|
195
|
+
_context5.next = 3;
|
|
196
|
+
return client.query({
|
|
197
|
+
query: _graphql.LIST_TAGS,
|
|
198
|
+
variables: params
|
|
199
|
+
});
|
|
200
|
+
case 3:
|
|
201
|
+
_yield$client$query2 = _context5.sent;
|
|
202
|
+
data = _yield$client$query2.data;
|
|
203
|
+
return _context5.abrupt("return", data.fileManager.listTags.data);
|
|
204
|
+
case 6:
|
|
205
|
+
case "end":
|
|
206
|
+
return _context5.stop();
|
|
207
|
+
}
|
|
208
|
+
}, _callee5);
|
|
209
|
+
}));
|
|
210
|
+
return function listTags() {
|
|
211
|
+
return _ref6.apply(this, arguments);
|
|
212
|
+
};
|
|
213
|
+
}();
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Upload native browser File
|
|
217
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/File
|
|
218
|
+
* @param File file
|
|
219
|
+
*/
|
|
220
|
+
var uploadFile = /*#__PURE__*/function () {
|
|
221
|
+
var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee6(file) {
|
|
222
|
+
var options,
|
|
223
|
+
response,
|
|
224
|
+
tags,
|
|
225
|
+
_args6 = arguments;
|
|
226
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee6$(_context6) {
|
|
227
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
228
|
+
case 0:
|
|
229
|
+
options = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : {};
|
|
230
|
+
_context6.next = 3;
|
|
231
|
+
return (0, _getFileUploader.getFileUploader)()(file, {
|
|
232
|
+
apolloClient: client
|
|
233
|
+
});
|
|
234
|
+
case 3:
|
|
235
|
+
response = _context6.sent;
|
|
236
|
+
tags = (options === null || options === void 0 ? void 0 : options.tags) || [];
|
|
237
|
+
_context6.next = 7;
|
|
238
|
+
return createFile((0, _objectSpread2.default)((0, _objectSpread2.default)({}, response), {}, {
|
|
239
|
+
tags: tags
|
|
240
|
+
}));
|
|
241
|
+
case 7:
|
|
242
|
+
return _context6.abrupt("return", _context6.sent);
|
|
243
|
+
case 8:
|
|
244
|
+
case "end":
|
|
245
|
+
return _context6.stop();
|
|
246
|
+
}
|
|
247
|
+
}, _callee6);
|
|
248
|
+
}));
|
|
249
|
+
return function uploadFile(_x5) {
|
|
250
|
+
return _ref7.apply(this, arguments);
|
|
251
|
+
};
|
|
252
|
+
}();
|
|
253
|
+
var getSettings = /*#__PURE__*/function () {
|
|
254
|
+
var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee7() {
|
|
255
|
+
var settingsQuery;
|
|
256
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee7$(_context7) {
|
|
257
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
258
|
+
case 0:
|
|
259
|
+
_context7.next = 2;
|
|
260
|
+
return client.query({
|
|
261
|
+
query: _graphql.GET_FILE_SETTINGS
|
|
262
|
+
});
|
|
263
|
+
case 2:
|
|
264
|
+
settingsQuery = _context7.sent;
|
|
265
|
+
return _context7.abrupt("return", settingsQuery.data.fileManager.getSettings.data || {});
|
|
266
|
+
case 4:
|
|
267
|
+
case "end":
|
|
268
|
+
return _context7.stop();
|
|
269
|
+
}
|
|
270
|
+
}, _callee7);
|
|
271
|
+
}));
|
|
272
|
+
return function getSettings() {
|
|
273
|
+
return _ref8.apply(this, arguments);
|
|
274
|
+
};
|
|
275
|
+
}();
|
|
276
|
+
var value = {
|
|
277
|
+
canRead: canRead,
|
|
278
|
+
canCreate: canCreate,
|
|
279
|
+
canEdit: canEdit,
|
|
280
|
+
canDelete: canDelete,
|
|
281
|
+
createFile: createFile,
|
|
282
|
+
updateFile: updateFile,
|
|
283
|
+
deleteFile: deleteFile,
|
|
284
|
+
uploadFile: uploadFile,
|
|
285
|
+
listFiles: listFiles,
|
|
286
|
+
listTags: listTags,
|
|
287
|
+
getSettings: getSettings
|
|
288
|
+
};
|
|
289
|
+
return /*#__PURE__*/_react.default.createElement(FileManagerApiContext.Provider, {
|
|
290
|
+
value: value
|
|
291
|
+
}, children);
|
|
292
|
+
};
|
|
293
|
+
exports.FileManagerApiProvider = FileManagerApiProvider;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FileManagerApiContext","React","createContext","undefined","FileManagerApiProvider","children","useSecurity","identity","getPermission","client","useApolloClient","fmFilePermission","useMemo","canDelete","useCallback","item","own","identityId","id","login","createdBy","rwd","includes","canRead","Boolean","canCreate","canEdit","creatorId","createFile","data","mutate","mutation","CREATE_FILE","variables","response","fileManager","updateFile","UPDATE_FILE","deleteFile","DELETE_FILE","listFiles","params","query","LIST_FILES","fetchPolicy","files","meta","listTags","LIST_TAGS","uploadFile","file","options","getFileUploader","apolloClient","tags","getSettings","GET_FILE_SETTINGS","settingsQuery","value"],"sources":["FileManagerApiContext.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport {\n CREATE_FILE,\n CreateFileMutationResponse,\n CreateFileMutationVariables,\n DELETE_FILE,\n DeleteFileMutationResponse,\n DeleteFileMutationVariables,\n GET_FILE_SETTINGS,\n GetFileManagerSettingsQueryResponse,\n LIST_FILES,\n LIST_TAGS,\n ListFilesListFilesResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables,\n ListFileTagsQueryResponse,\n ListFileTagsQueryVariables,\n UPDATE_FILE,\n UpdateFileMutationResponse,\n UpdateFileMutationVariables\n} from \"../graphql\";\nimport { FileItem, FileManagerSecurityPermission } from \"@webiny/app-admin/types\";\nimport { getFileUploader } from \"./getFileUploader\";\nimport { Settings } from \"~/types\";\n\nexport interface ListTagsResponseItem {\n tag: string;\n count: number;\n}\n\nexport interface FileManagerApiContextData<TFileItem extends FileItem = FileItem> {\n canRead: boolean;\n canCreate: boolean;\n canEdit: (file: TFileItem) => boolean;\n canDelete: (file: TFileItem) => boolean;\n createFile: (data: TFileItem) => Promise<TFileItem | undefined>;\n updateFile: (id: string, data: Partial<TFileItem>) => Promise<void>;\n deleteFile: (id: string) => Promise<void>;\n uploadFile: (file: File, options?: UploadFileOptions) => Promise<TFileItem | undefined>;\n listFiles: (\n params?: ListFilesQueryVariables\n ) => Promise<{ files: TFileItem[]; meta: ListFilesListFilesResponse[\"meta\"] }>;\n listTags: (params?: ListTagsOptions) => Promise<ListTagsResponseItem[]>;\n getSettings(): Promise<Settings>;\n}\n\nexport const FileManagerApiContext = React.createContext<FileManagerApiContextData | undefined>(\n undefined\n);\n\nexport interface FileManagerApiProviderProps {\n children: React.ReactNode;\n}\n\ninterface UploadFileOptions {\n tags?: string[];\n}\n\ninterface ListTagsOptions {\n where?: ListFileTagsQueryVariables[\"where\"];\n}\n\nconst FileManagerApiProvider = ({ children }: FileManagerApiProviderProps) => {\n const { identity, getPermission } = useSecurity();\n const client = useApolloClient();\n\n const fmFilePermission = useMemo<FileManagerSecurityPermission | null>(() => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n\n const canDelete = useCallback(\n (item: FileItem) => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n const identityId = identity ? identity.id || identity.login : null;\n if (!identityId) {\n return false;\n }\n return item.createdBy.id === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"d\");\n }\n return true;\n },\n [fmFilePermission]\n );\n\n const canRead = useMemo(() => {\n return Boolean(fmFilePermission);\n }, [fmFilePermission]);\n\n const canCreate = useMemo(() => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n return true;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n }, [fmFilePermission]);\n\n const canEdit = useCallback(\n (item: FileItem) => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = item.createdBy.id;\n\n if (fmFilePermission.own && creatorId) {\n const identityId = identity ? identity.id || identity.login : null;\n return creatorId === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n },\n [fmFilePermission]\n );\n\n const createFile = async (data: FileItem) => {\n const response = await client.mutate<\n CreateFileMutationResponse,\n CreateFileMutationVariables\n >({\n mutation: CREATE_FILE,\n variables: {\n data\n }\n });\n\n return response.data?.fileManager.createFile.data;\n };\n\n const updateFile = async (id: string, data: Partial<FileItem>) => {\n await client.mutate<UpdateFileMutationResponse, UpdateFileMutationVariables>({\n mutation: UPDATE_FILE,\n variables: {\n id,\n data\n }\n });\n };\n\n const deleteFile = async (id: string) => {\n await client.mutate<DeleteFileMutationResponse, DeleteFileMutationVariables>({\n mutation: DELETE_FILE,\n variables: {\n id\n }\n });\n };\n\n const listFiles: FileManagerApiContextData[\"listFiles\"] = async (params = {}) => {\n const { data } = await client.query<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: params,\n fetchPolicy: \"no-cache\"\n });\n const { data: files, meta } = data.fileManager.listFiles;\n return { files, meta };\n };\n\n const listTags = async (params = {}) => {\n const { data } = await client.query<ListFileTagsQueryResponse>({\n query: LIST_TAGS,\n variables: params\n });\n\n return data.fileManager.listTags.data;\n };\n\n /**\n * Upload native browser File\n * @see https://developer.mozilla.org/en-US/docs/Web/API/File\n * @param File file\n */\n const uploadFile = async (file: File, options: UploadFileOptions = {}) => {\n const response = await getFileUploader()(file, { apolloClient: client });\n\n const tags = options?.tags || [];\n\n return await createFile({ ...response, tags });\n };\n\n const getSettings = async () => {\n const settingsQuery = await client.query<GetFileManagerSettingsQueryResponse>({\n query: GET_FILE_SETTINGS\n });\n return settingsQuery.data.fileManager.getSettings.data || {};\n };\n\n const value: FileManagerApiContextData = {\n canRead,\n canCreate,\n canEdit,\n canDelete,\n createFile,\n updateFile,\n deleteFile,\n uploadFile,\n listFiles,\n listTags,\n getSettings\n };\n\n return (\n <FileManagerApiContext.Provider value={value}>{children}</FileManagerApiContext.Provider>\n );\n};\n\nexport { FileManagerApiProvider };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getFileUploader = void 0;
|
|
7
|
+
var _plugins = require("@webiny/plugins");
|
|
8
|
+
var getFileUploader = function getFileUploader() {
|
|
9
|
+
var fileStoragePlugin = _plugins.plugins.byName("app-file-manager-storage");
|
|
10
|
+
if (!fileStoragePlugin) {
|
|
11
|
+
throw Error('Missing plugin: "app-file-manager-storage".');
|
|
12
|
+
}
|
|
13
|
+
return fileStoragePlugin.upload;
|
|
14
|
+
};
|
|
15
|
+
exports.getFileUploader = getFileUploader;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getFileUploader","fileStoragePlugin","plugins","byName","Error","upload"],"sources":["getFileUploader.ts"],"sourcesContent":["import { plugins } from \"@webiny/plugins\";\nimport { AppFileManagerStoragePlugin } from \"@webiny/app/types\";\n\nexport const getFileUploader = (): AppFileManagerStoragePlugin[\"upload\"] => {\n const fileStoragePlugin = plugins.byName<AppFileManagerStoragePlugin>(\n \"app-file-manager-storage\"\n );\n\n if (!fileStoragePlugin) {\n throw Error('Missing plugin: \"app-file-manager-storage\".');\n }\n\n return fileStoragePlugin.upload;\n};\n"],"mappings":";;;;;;AAAA;AAGO,IAAMA,eAAe,GAAG,SAAlBA,eAAe,GAAgD;EACxE,IAAMC,iBAAiB,GAAGC,gBAAO,CAACC,MAAM,CACpC,0BAA0B,CAC7B;EAED,IAAI,CAACF,iBAAiB,EAAE;IACpB,MAAMG,KAAK,CAAC,6CAA6C,CAAC;EAC9D;EAEA,OAAOH,iBAAiB,CAACI,MAAM;AACnC,CAAC;AAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "FileManagerApiProvider", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _FileManagerApiContext.FileManagerApiProvider;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "useFileManagerApi", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _useFileManagerApi.useFileManagerApi;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _FileManagerApiContext = require("./FileManagerApiContext");
|
|
19
|
+
var _useFileManagerApi = require("./useFileManagerApi");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { FileManagerApiProvider } from \"./FileManagerApiContext\";\nexport { useFileManagerApi } from \"./useFileManagerApi\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useFileManagerApi = useFileManagerApi;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _FileManagerApiContext = require("./FileManagerApiContext");
|
|
10
|
+
function useFileManagerApi() {
|
|
11
|
+
var context = _react.default.useContext(_FileManagerApiContext.FileManagerApiContext);
|
|
12
|
+
if (!context) {
|
|
13
|
+
throw new Error("useFileManager must be used within a FileManagerProvider");
|
|
14
|
+
}
|
|
15
|
+
return context;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useFileManagerApi","context","React","useContext","FileManagerApiContext","Error"],"sources":["useFileManagerApi.ts"],"sourcesContent":["import { FileItem } from \"@webiny/app-admin/types\";\nimport React from \"react\";\nimport { FileManagerApiContext, FileManagerApiContextData } from \"./FileManagerApiContext\";\n\nexport function useFileManagerApi<TFileItem extends FileItem = FileItem>() {\n const context = React.useContext<FileManagerApiContextData<TFileItem>>(\n FileManagerApiContext as unknown as React.Context<FileManagerApiContextData<TFileItem>>\n );\n\n if (!context) {\n throw new Error(\"useFileManager must be used within a FileManagerProvider\");\n }\n\n return context;\n}\n"],"mappings":";;;;;;;AACA;AACA;AAEO,SAASA,iBAAiB,GAA0C;EACvE,IAAMC,OAAO,GAAGC,cAAK,CAACC,UAAU,CAC5BC,4CAAqB,CACxB;EAED,IAAI,CAACH,OAAO,EAAE;IACV,MAAM,IAAII,KAAK,CAAC,0DAA0D,CAAC;EAC/E;EAEA,OAAOJ,OAAO;AAClB"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { FileItem } from "@webiny/app-admin/types";
|
|
2
|
+
import { Settings } from "../../types";
|
|
3
|
+
import { ListTagsResponseItem } from "./FileManagerApiContext/FileManagerApiContext";
|
|
4
|
+
export interface GetFileManagerSettingsQueryResponse {
|
|
5
|
+
fileManager: {
|
|
6
|
+
getSettings: {
|
|
7
|
+
data: Settings;
|
|
8
|
+
error?: Error | null;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface ListFilesListFilesResponse {
|
|
13
|
+
data: FileItem[];
|
|
14
|
+
error?: Error | null;
|
|
15
|
+
meta: {
|
|
16
|
+
hasMoreItems: boolean;
|
|
17
|
+
totalItem: number;
|
|
18
|
+
cursor: string | null;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export interface ListFilesQueryResponse {
|
|
22
|
+
fileManager: {
|
|
23
|
+
listFiles: ListFilesListFilesResponse;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface ListFilesQueryVariables {
|
|
27
|
+
limit?: number;
|
|
28
|
+
after?: string | null;
|
|
29
|
+
where?: {
|
|
30
|
+
search?: string;
|
|
31
|
+
type?: string;
|
|
32
|
+
type_in?: string[];
|
|
33
|
+
tag?: string;
|
|
34
|
+
tag_in?: string[];
|
|
35
|
+
tag_and_in?: string[];
|
|
36
|
+
tag_startsWith?: string;
|
|
37
|
+
tag_not_startsWith?: string;
|
|
38
|
+
createdBy?: string;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export declare const LIST_FILES: import("graphql").DocumentNode;
|
|
42
|
+
export interface ListFileTagsQueryResponse {
|
|
43
|
+
fileManager: {
|
|
44
|
+
listTags: {
|
|
45
|
+
data: ListTagsResponseItem[];
|
|
46
|
+
error: Error | null;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export interface ListFileTagsQueryVariables {
|
|
51
|
+
where?: {
|
|
52
|
+
tag_startsWith?: String;
|
|
53
|
+
tag_not_startsWith?: String;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export declare const LIST_TAGS: import("graphql").DocumentNode;
|
|
57
|
+
export interface CreateFileMutationResponse {
|
|
58
|
+
fileManager: {
|
|
59
|
+
createFile: {
|
|
60
|
+
data: FileItem;
|
|
61
|
+
error?: Error | null;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export interface FileInput {
|
|
66
|
+
key: string;
|
|
67
|
+
name: string;
|
|
68
|
+
size: number;
|
|
69
|
+
type: string;
|
|
70
|
+
tags: string[];
|
|
71
|
+
aliases?: string[];
|
|
72
|
+
meta?: Record<string, any>;
|
|
73
|
+
}
|
|
74
|
+
export interface CreateFileMutationVariables {
|
|
75
|
+
data: FileInput;
|
|
76
|
+
}
|
|
77
|
+
export declare const CREATE_FILE: import("graphql").DocumentNode;
|
|
78
|
+
export interface UpdateFileMutationResponse {
|
|
79
|
+
fileManager: {
|
|
80
|
+
updateFile: {
|
|
81
|
+
data: FileItem;
|
|
82
|
+
error?: Error | null;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export interface UpdateFileMutationVariables {
|
|
87
|
+
id: string;
|
|
88
|
+
data: Partial<FileInput>;
|
|
89
|
+
}
|
|
90
|
+
export declare const UPDATE_FILE: import("graphql").DocumentNode;
|
|
91
|
+
export interface DeleteFileMutationResponse {
|
|
92
|
+
fileManager: {
|
|
93
|
+
updateFile: {
|
|
94
|
+
data: boolean;
|
|
95
|
+
error?: Error | null;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export interface DeleteFileMutationVariables {
|
|
100
|
+
id: string;
|
|
101
|
+
}
|
|
102
|
+
export declare const DELETE_FILE: import("graphql").DocumentNode;
|
|
103
|
+
export declare const GET_FILE_SETTINGS: import("graphql").DocumentNode;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.UPDATE_FILE = exports.LIST_TAGS = exports.LIST_FILES = exports.GET_FILE_SETTINGS = exports.DELETE_FILE = exports.CREATE_FILE = void 0;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
10
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
11
|
+
var FILE_FIELDS = /* GraphQL */"\n {\n __typename\n id\n name\n key\n src\n size\n type\n tags\n aliases\n createdOn\n createdBy {\n id\n }\n }\n";
|
|
12
|
+
var ERROR_FIELDS = /* GraphQL */"\n {\n code\n message\n data\n }\n";
|
|
13
|
+
var LIST_FILES = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query ListFiles(\n $limit: Int,\n $after: String,\n $where: FileWhereInput\n ) {\n fileManager {\n listFiles(\n limit: $limit,\n after: $after,\n where: $where\n ) {\n data ", "\n meta {\n cursor\n totalCount\n }\n }\n }\n }\n"])), FILE_FIELDS);
|
|
14
|
+
exports.LIST_FILES = LIST_FILES;
|
|
15
|
+
var LIST_TAGS = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query ListTags($where: TagWhereInput) {\n fileManager {\n listTags(where: $where) {\n data {\n tag\n count\n }\n error ", "\n }\n }\n }\n"])), ERROR_FIELDS);
|
|
16
|
+
exports.LIST_TAGS = LIST_TAGS;
|
|
17
|
+
var CREATE_FILE = (0, _graphqlTag.default)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n mutation CreateFile($data: CreateFileInput!) {\n fileManager {\n createFile(data: $data) {\n error ", "\n data ", "\n }\n }\n }\n"])), ERROR_FIELDS, FILE_FIELDS);
|
|
18
|
+
exports.CREATE_FILE = CREATE_FILE;
|
|
19
|
+
var UPDATE_FILE = (0, _graphqlTag.default)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n mutation UpdateFile($id: ID!, $data: UpdateFileInput!) {\n fileManager {\n updateFile(id: $id, data: $data) {\n data {\n id\n src\n name\n tags\n }\n error ", "\n }\n }\n }\n"])), ERROR_FIELDS);
|
|
20
|
+
exports.UPDATE_FILE = UPDATE_FILE;
|
|
21
|
+
var DELETE_FILE = (0, _graphqlTag.default)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n mutation DeleteFile($id: ID!) {\n fileManager {\n deleteFile(id: $id) {\n data\n error ", "\n }\n }\n }\n"])), ERROR_FIELDS);
|
|
22
|
+
exports.DELETE_FILE = DELETE_FILE;
|
|
23
|
+
var GET_FILE_SETTINGS = (0, _graphqlTag.default)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n query GetSettings {\n fileManager {\n getSettings {\n data {\n srcPrefix\n uploadMinFileSize\n uploadMaxFileSize\n }\n error ", "\n }\n }\n }\n"])), ERROR_FIELDS);
|
|
24
|
+
exports.GET_FILE_SETTINGS = GET_FILE_SETTINGS;
|