@webiny/app-file-manager 0.0.0-unstable.d7f521b032 → 0.0.0-unstable.ecd8734205

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/admin/graphql.js CHANGED
@@ -1,21 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
-
12
9
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
13
-
14
10
  var _templateObject, _templateObject2;
15
-
16
- var fields =
17
- /* GraphQL */
18
- "\n {\n data {\n uploadMinFileSize\n uploadMaxFileSize\n srcPrefix\n }\n }\n";
11
+ var fields = /* GraphQL */"\n {\n data {\n uploadMinFileSize\n uploadMaxFileSize\n srcPrefix\n }\n }\n";
19
12
  var graphql = {
20
13
  GET_SETTINGS: (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query GetFileManagerSettings {\n fileManager {\n getSettings", "\n }\n }\n "])), fields),
21
14
  UPDATE_SETTINGS: (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n mutation UpdateFileManagerSettings($data: FileManagerSettingsInput) {\n fileManager {\n updateSettings(data: $data) ", "\n }\n }\n "])), fields)
@@ -1 +1 @@
1
- {"version":3,"names":["fields","graphql","GET_SETTINGS","gql","UPDATE_SETTINGS"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst fields = /* GraphQL */ `\n {\n data {\n uploadMinFileSize\n uploadMaxFileSize\n srcPrefix\n }\n }\n`;\n\nconst graphql = {\n GET_SETTINGS: gql`\n query GetFileManagerSettings {\n fileManager {\n getSettings${fields}\n }\n }\n `,\n UPDATE_SETTINGS: gql`\n mutation UpdateFileManagerSettings($data: FileManagerSettingsInput) {\n fileManager {\n updateSettings(data: $data) ${fields}\n }\n }\n `\n};\n\nexport default graphql;\n"],"mappings":";;;;;;;;;;;AAAA;;;;AAEA,IAAMA,MAAM;AAAG;AAAH,kIAAZ;AAUA,IAAMC,OAAO,GAAG;EACZC,YAAY,MAAEC,mBAAF,iPAGiBH,MAHjB,CADA;EAQZI,eAAe,MAAED,mBAAF,mRAG2BH,MAH3B;AARH,CAAhB;eAiBeC,O"}
1
+ {"version":3,"names":["fields","graphql","GET_SETTINGS","gql","UPDATE_SETTINGS"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst fields = /* GraphQL */ `\n {\n data {\n uploadMinFileSize\n uploadMaxFileSize\n srcPrefix\n }\n }\n`;\n\nconst graphql = {\n GET_SETTINGS: gql`\n query GetFileManagerSettings {\n fileManager {\n getSettings${fields}\n }\n }\n `,\n UPDATE_SETTINGS: gql`\n mutation UpdateFileManagerSettings($data: FileManagerSettingsInput) {\n fileManager {\n updateSettings(data: $data) ${fields}\n }\n }\n `\n};\n\nexport default graphql;\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAE9B,IAAMA,MAAM,GAAG,+IAQd;AAED,IAAMC,OAAO,GAAG;EACZC,YAAY,MAAEC,mBAAG,iPAGYH,MAAM,CAG9B;EACLI,eAAe,MAAED,mBAAG,mRAGsBH,MAAM;AAIpD,CAAC;AAAC,eAEaC,OAAO;AAAA"}
package/admin/index.js CHANGED
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _plugins = _interopRequireDefault(require("./plugins"));
11
-
12
9
  var _default = function _default() {
13
10
  return [_plugins.default];
14
11
  };
15
-
16
12
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["plugins"],"sources":["index.ts"],"sourcesContent":["import plugins from \"./plugins\";\n\nexport default () => [plugins];\n"],"mappings":";;;;;;;;;AAAA;;eAEe;EAAA,OAAM,CAACA,gBAAD,CAAN;AAAA,C"}
1
+ {"version":3,"names":["plugins"],"sources":["index.ts"],"sourcesContent":["import plugins from \"./plugins\";\n\nexport default () => [plugins];\n"],"mappings":";;;;;;;AAAA;AAAgC,eAEjB;EAAA,OAAM,CAACA,gBAAO,CAAC;AAAA;AAAA"}
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _installation = _interopRequireDefault(require("./installation"));
11
-
12
9
  var _permissionRenderer = _interopRequireDefault(require("./permissionRenderer"));
13
-
14
10
  var _default = function _default() {
15
11
  return [_installation.default, _permissionRenderer.default];
16
12
  };
17
-
18
13
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["installation","permissionRenderer"],"sources":["index.ts"],"sourcesContent":["import installation from \"./installation\";\nimport permissionRenderer from \"./permissionRenderer\";\n\nexport default () => [installation, permissionRenderer];\n"],"mappings":";;;;;;;;;AAAA;;AACA;;eAEe;EAAA,OAAM,CAACA,qBAAD,EAAeC,2BAAf,CAAN;AAAA,C"}
1
+ {"version":3,"names":["installation","permissionRenderer"],"sources":["index.ts"],"sourcesContent":["import installation from \"./installation\";\nimport permissionRenderer from \"./permissionRenderer\";\n\nexport default () => [installation, permissionRenderer];\n"],"mappings":";;;;;;;AAAA;AACA;AAAsD,eAEvC;EAAA,OAAM,CAACA,qBAAY,EAAEC,2BAAkB,CAAC;AAAA;AAAA"}
@@ -1,42 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = void 0;
11
-
12
9
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
-
14
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
19
-
20
13
  var _react = _interopRequireWildcard(require("react"));
21
-
22
14
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
23
-
24
15
  var _reactHooks = require("@apollo/react-hooks");
25
-
26
16
  var _i18n = require("@webiny/app/i18n");
27
-
28
17
  var _Alert = require("@webiny/ui/Alert");
29
-
30
18
  var _Progress = require("@webiny/ui/Progress");
31
-
32
19
  var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
33
-
34
20
  var _styled = _interopRequireDefault(require("@emotion/styled"));
35
-
36
21
  var _config = require("@webiny/app/config");
37
-
38
22
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
39
-
40
23
  var SimpleFormPlaceholder = /*#__PURE__*/(0, _styled.default)("div", {
41
24
  target: "eratgeh0",
42
25
  label: "SimpleFormPlaceholder"
@@ -44,23 +27,17 @@ var SimpleFormPlaceholder = /*#__PURE__*/(0, _styled.default)("div", {
44
27
  minHeight: 300,
45
28
  minWidth: 400
46
29
  });
47
-
48
30
  var t = _i18n.i18n.ns("app-file-manager/admin/installation");
49
-
50
31
  var IS_INSTALLED = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query IsFileManagerInstalled {\n fileManager {\n version\n }\n }\n"])));
51
32
  var INSTALL = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n mutation InstallFileManager($srcPrefix: String) {\n fileManager {\n install(srcPrefix: $srcPrefix) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n"])));
52
-
53
33
  var FMInstaller = function FMInstaller(_ref) {
54
34
  var onInstalled = _ref.onInstalled;
55
35
  var client = (0, _reactHooks.useApolloClient)();
56
-
57
36
  var _useState = (0, _react.useState)(null),
58
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
59
- error = _useState2[0],
60
- setError = _useState2[1];
61
-
37
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
38
+ error = _useState2[0],
39
+ setError = _useState2[1];
62
40
  var apiUrl = _config.config.getKey("API_URL", process.env.REACT_APP_API_URL);
63
-
64
41
  (0, _react.useEffect)(function () {
65
42
  client.mutate({
66
43
  mutation: INSTALL,
@@ -70,13 +47,12 @@ var FMInstaller = function FMInstaller(_ref) {
70
47
  }).then(function (_ref2) {
71
48
  var data = _ref2.data;
72
49
  var error = data.fileManager.install.error;
73
-
74
50
  if (error) {
75
51
  setError(error.message);
76
52
  return;
77
- } // Just so the user sees the actual message.
78
-
53
+ }
79
54
 
55
+ // Just so the user sees the actual message.
80
56
  setTimeout(onInstalled, 3000);
81
57
  });
82
58
  }, []);
@@ -88,7 +64,6 @@ var FMInstaller = function FMInstaller(_ref) {
88
64
  label: label
89
65
  }), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormContent, null, /*#__PURE__*/_react.default.createElement(SimpleFormPlaceholder, null)));
90
66
  };
91
-
92
67
  var plugin = {
93
68
  name: "admin-installation-fm",
94
69
  type: "admin-installation",
@@ -98,26 +73,21 @@ var plugin = {
98
73
  getInstalledVersion: function getInstalledVersion(_ref3) {
99
74
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
100
75
  var client, _yield$client$query, data;
101
-
102
76
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
103
- while (1) {
104
- switch (_context.prev = _context.next) {
105
- case 0:
106
- client = _ref3.client;
107
- _context.next = 3;
108
- return client.query({
109
- query: IS_INSTALLED
110
- });
111
-
112
- case 3:
113
- _yield$client$query = _context.sent;
114
- data = _yield$client$query.data;
115
- return _context.abrupt("return", data.fileManager.version);
116
-
117
- case 6:
118
- case "end":
119
- return _context.stop();
120
- }
77
+ while (1) switch (_context.prev = _context.next) {
78
+ case 0:
79
+ client = _ref3.client;
80
+ _context.next = 3;
81
+ return client.query({
82
+ query: IS_INSTALLED
83
+ });
84
+ case 3:
85
+ _yield$client$query = _context.sent;
86
+ data = _yield$client$query.data;
87
+ return _context.abrupt("return", data.fileManager.version);
88
+ case 6:
89
+ case "end":
90
+ return _context.stop();
121
91
  }
122
92
  }, _callee);
123
93
  }))();
@@ -127,8 +97,7 @@ var plugin = {
127
97
  return /*#__PURE__*/_react.default.createElement(FMInstaller, {
128
98
  onInstalled: onInstalled
129
99
  });
130
- },
131
- upgrades: []
100
+ }
132
101
  };
133
102
  var _default = plugin;
134
103
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["SimpleFormPlaceholder","styled","minHeight","minWidth","t","i18n","ns","IS_INSTALLED","gql","INSTALL","FMInstaller","onInstalled","client","useApolloClient","useState","error","setError","apiUrl","appConfig","getKey","process","env","REACT_APP_API_URL","useEffect","mutate","mutation","variables","srcPrefix","then","data","fileManager","install","message","setTimeout","label","plugin","name","type","title","dependencies","secure","getInstalledVersion","query","version","render","upgrades"],"sources":["installation.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport gql from \"graphql-tag\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { AdminInstallationPlugin } from \"@webiny/app-admin/types\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { SimpleForm, SimpleFormContent } from \"@webiny/app-admin/components/SimpleForm\";\nimport styled from \"@emotion/styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst SimpleFormPlaceholder = styled.div({\n minHeight: 300,\n minWidth: 400\n});\n\nconst t = i18n.ns(\"app-file-manager/admin/installation\");\n\nconst IS_INSTALLED = gql`\n query IsFileManagerInstalled {\n fileManager {\n version\n }\n }\n`;\n\nconst INSTALL = gql`\n mutation InstallFileManager($srcPrefix: String) {\n fileManager {\n install(srcPrefix: $srcPrefix) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\ninterface FileManagerInstallerProps {\n onInstalled: () => Promise<void>;\n}\nconst FMInstaller: React.FC<FileManagerInstallerProps> = ({ onInstalled }) => {\n const client = useApolloClient();\n const [error, setError] = useState(null);\n\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n\n useEffect(() => {\n client\n .mutate({\n mutation: INSTALL,\n variables: { srcPrefix: apiUrl + \"/files\" }\n })\n .then(({ data }) => {\n const { error } = data.fileManager.install;\n if (error) {\n setError(error.message);\n return;\n }\n\n // Just so the user sees the actual message.\n setTimeout(onInstalled, 3000);\n });\n }, []);\n\n const label = error ? (\n <Alert title={t`Something went wrong`} type={\"danger\"}>\n {error}\n </Alert>\n ) : (\n t`Installing File Manager...`\n );\n\n return (\n <SimpleForm>\n <CircularProgress label={label} />\n <SimpleFormContent>\n <SimpleFormPlaceholder />\n </SimpleFormContent>\n </SimpleForm>\n );\n};\n\nconst plugin: AdminInstallationPlugin = {\n name: \"admin-installation-fm\",\n type: \"admin-installation\",\n title: t`File Manager`,\n dependencies: [\"admin-installation-security\", \"admin-installation-i18n\"],\n secure: true,\n async getInstalledVersion({ client }) {\n const { data } = await client.query({ query: IS_INSTALLED });\n return data.fileManager.version;\n },\n render({ onInstalled }) {\n return <FMInstaller onInstalled={onInstalled} />;\n },\n upgrades: []\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,qBAAqB,oBAAGC,eAAH;EAAA;EAAA;AAAA,GAAc;EACrCC,SAAS,EAAE,GAD0B;EAErCC,QAAQ,EAAE;AAF2B,CAAd,CAA3B;;AAKA,IAAMC,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,qCAAR,CAAV;;AAEA,IAAMC,YAAY,OAAGC,mBAAH,wLAAlB;AAQA,IAAMC,OAAO,OAAGD,mBAAH,wYAAb;;AAiBA,IAAME,WAAgD,GAAG,SAAnDA,WAAmD,OAAqB;EAAA,IAAlBC,WAAkB,QAAlBA,WAAkB;EAC1E,IAAMC,MAAM,GAAG,IAAAC,2BAAA,GAAf;;EACA,gBAA0B,IAAAC,eAAA,EAAS,IAAT,CAA1B;EAAA;EAAA,IAAOC,KAAP;EAAA,IAAcC,QAAd;;EAEA,IAAMC,MAAM,GAAGC,cAAA,CAAUC,MAAV,CAAiB,SAAjB,EAA4BC,OAAO,CAACC,GAAR,CAAYC,iBAAxC,CAAf;;EAEA,IAAAC,gBAAA,EAAU,YAAM;IACZX,MAAM,CACDY,MADL,CACY;MACJC,QAAQ,EAAEhB,OADN;MAEJiB,SAAS,EAAE;QAAEC,SAAS,EAAEV,MAAM,GAAG;MAAtB;IAFP,CADZ,EAKKW,IALL,CAKU,iBAAc;MAAA,IAAXC,IAAW,SAAXA,IAAW;MAChB,IAAQd,KAAR,GAAkBc,IAAI,CAACC,WAAL,CAAiBC,OAAnC,CAAQhB,KAAR;;MACA,IAAIA,KAAJ,EAAW;QACPC,QAAQ,CAACD,KAAK,CAACiB,OAAP,CAAR;QACA;MACH,CALe,CAOhB;;;MACAC,UAAU,CAACtB,WAAD,EAAc,IAAd,CAAV;IACH,CAdL;EAeH,CAhBD,EAgBG,EAhBH;EAkBA,IAAMuB,KAAK,GAAGnB,KAAK,gBACf,6BAAC,YAAD;IAAO,KAAK,EAAEX,CAAF,yGAAZ;IAAuC,IAAI,EAAE;EAA7C,GACKW,KADL,CADe,GAKfX,CALe,+GAAnB;EAQA,oBACI,6BAAC,sBAAD,qBACI,6BAAC,0BAAD;IAAkB,KAAK,EAAE8B;EAAzB,EADJ,eAEI,6BAAC,6BAAD,qBACI,6BAAC,qBAAD,OADJ,CAFJ,CADJ;AAQH,CAxCD;;AA0CA,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,uBAD8B;EAEpCC,IAAI,EAAE,oBAF8B;EAGpCC,KAAK,EAAElC,CAAF,iGAH+B;EAIpCmC,YAAY,EAAE,CAAC,6BAAD,EAAgC,yBAAhC,CAJsB;EAKpCC,MAAM,EAAE,IAL4B;EAM9BC,mBAN8B,sCAME;IAAA;MAAA;;MAAA;QAAA;UAAA;YAAA;cAAV7B,MAAU,SAAVA,MAAU;cAAA;cAAA,OACXA,MAAM,CAAC8B,KAAP,CAAa;gBAAEA,KAAK,EAAEnC;cAAT,CAAb,CADW;;YAAA;cAAA;cAC1BsB,IAD0B,uBAC1BA,IAD0B;cAAA,iCAE3BA,IAAI,CAACC,WAAL,CAAiBa,OAFU;;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAGrC,CATmC;EAUpCC,MAVoC,yBAUZ;IAAA,IAAfjC,WAAe,SAAfA,WAAe;IACpB,oBAAO,6BAAC,WAAD;MAAa,WAAW,EAAEA;IAA1B,EAAP;EACH,CAZmC;EAapCkC,QAAQ,EAAE;AAb0B,CAAxC;eAgBeV,M"}
1
+ {"version":3,"names":["SimpleFormPlaceholder","styled","minHeight","minWidth","t","i18n","ns","IS_INSTALLED","gql","INSTALL","FMInstaller","onInstalled","client","useApolloClient","useState","error","setError","apiUrl","appConfig","getKey","process","env","REACT_APP_API_URL","useEffect","mutate","mutation","variables","srcPrefix","then","data","fileManager","install","message","setTimeout","label","plugin","name","type","title","dependencies","secure","getInstalledVersion","query","version","render"],"sources":["installation.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport gql from \"graphql-tag\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { AdminInstallationPlugin } from \"@webiny/app-admin/types\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { SimpleForm, SimpleFormContent } from \"@webiny/app-admin/components/SimpleForm\";\nimport styled from \"@emotion/styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst SimpleFormPlaceholder = styled.div({\n minHeight: 300,\n minWidth: 400\n});\n\nconst t = i18n.ns(\"app-file-manager/admin/installation\");\n\nconst IS_INSTALLED = gql`\n query IsFileManagerInstalled {\n fileManager {\n version\n }\n }\n`;\n\nconst INSTALL = gql`\n mutation InstallFileManager($srcPrefix: String) {\n fileManager {\n install(srcPrefix: $srcPrefix) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\ninterface FileManagerInstallerProps {\n onInstalled: () => Promise<void>;\n}\nconst FMInstaller: React.FC<FileManagerInstallerProps> = ({ onInstalled }) => {\n const client = useApolloClient();\n const [error, setError] = useState(null);\n\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n\n useEffect(() => {\n client\n .mutate({\n mutation: INSTALL,\n variables: { srcPrefix: apiUrl + \"/files\" }\n })\n .then(({ data }) => {\n const { error } = data.fileManager.install;\n if (error) {\n setError(error.message);\n return;\n }\n\n // Just so the user sees the actual message.\n setTimeout(onInstalled, 3000);\n });\n }, []);\n\n const label = error ? (\n <Alert title={t`Something went wrong`} type={\"danger\"}>\n {error}\n </Alert>\n ) : (\n t`Installing File Manager...`\n );\n\n return (\n <SimpleForm>\n <CircularProgress label={label} />\n <SimpleFormContent>\n <SimpleFormPlaceholder />\n </SimpleFormContent>\n </SimpleForm>\n );\n};\n\nconst plugin: AdminInstallationPlugin = {\n name: \"admin-installation-fm\",\n type: \"admin-installation\",\n title: t`File Manager`,\n dependencies: [\"admin-installation-security\", \"admin-installation-i18n\"],\n secure: true,\n async getInstalledVersion({ client }) {\n const { data } = await client.query({ query: IS_INSTALLED });\n return data.fileManager.version;\n },\n render({ onInstalled }) {\n return <FMInstaller onInstalled={onInstalled} />;\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAyD;AAEzD,IAAMA,qBAAqB,oBAAGC,eAAM;EAAA;EAAA;AAAA,GAAK;EACrCC,SAAS,EAAE,GAAG;EACdC,QAAQ,EAAE;AACd,CAAC,CAAC;AAEF,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,qCAAqC,CAAC;AAExD,IAAMC,YAAY,OAAGC,mBAAG,wLAMvB;AAED,IAAMC,OAAO,OAAGD,mBAAG,wYAalB;AAID,IAAME,WAAgD,GAAG,SAAnDA,WAAgD,OAAwB;EAAA,IAAlBC,WAAW,QAAXA,WAAW;EACnE,IAAMC,MAAM,GAAG,IAAAC,2BAAe,GAAE;EAChC,gBAA0B,IAAAC,eAAQ,EAAC,IAAI,CAAC;IAAA;IAAjCC,KAAK;IAAEC,QAAQ;EAEtB,IAAMC,MAAM,GAAGC,cAAS,CAACC,MAAM,CAAC,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB,CAAC;EAEzE,IAAAC,gBAAS,EAAC,YAAM;IACZX,MAAM,CACDY,MAAM,CAAC;MACJC,QAAQ,EAAEhB,OAAO;MACjBiB,SAAS,EAAE;QAAEC,SAAS,EAAEV,MAAM,GAAG;MAAS;IAC9C,CAAC,CAAC,CACDW,IAAI,CAAC,iBAAc;MAAA,IAAXC,IAAI,SAAJA,IAAI;MACT,IAAQd,KAAK,GAAKc,IAAI,CAACC,WAAW,CAACC,OAAO,CAAlChB,KAAK;MACb,IAAIA,KAAK,EAAE;QACPC,QAAQ,CAACD,KAAK,CAACiB,OAAO,CAAC;QACvB;MACJ;;MAEA;MACAC,UAAU,CAACtB,WAAW,EAAE,IAAI,CAAC;IACjC,CAAC,CAAC;EACV,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMuB,KAAK,GAAGnB,KAAK,gBACf,6BAAC,YAAK;IAAC,KAAK,EAAEX,CAAC,yGAAuB;IAAC,IAAI,EAAE;EAAS,GACjDW,KAAK,CACF,GAERX,CAAC,+GACJ;EAED,oBACI,6BAAC,sBAAU,qBACP,6BAAC,0BAAgB;IAAC,KAAK,EAAE8B;EAAM,EAAG,eAClC,6BAAC,6BAAiB,qBACd,6BAAC,qBAAqB,OAAG,CACT,CACX;AAErB,CAAC;AAED,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,oBAAoB;EAC1BC,KAAK,EAAElC,CAAC,iGAAc;EACtBmC,YAAY,EAAE,CAAC,6BAA6B,EAAE,yBAAyB,CAAC;EACxEC,MAAM,EAAE,IAAI;EACNC,mBAAmB,sCAAa;IAAA;MAAA;MAAA;QAAA;UAAA;YAAV7B,MAAM,SAANA,MAAM;YAAA;YAAA,OACPA,MAAM,CAAC8B,KAAK,CAAC;cAAEA,KAAK,EAAEnC;YAAa,CAAC,CAAC;UAAA;YAAA;YAApDsB,IAAI,uBAAJA,IAAI;YAAA,iCACLA,IAAI,CAACC,WAAW,CAACa,OAAO;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EACnC,CAAC;EACDC,MAAM,yBAAkB;IAAA,IAAfjC,WAAW,SAAXA,WAAW;IAChB,oBAAO,6BAAC,WAAW;MAAC,WAAW,EAAEA;IAAY,EAAG;EACpD;AACJ,CAAC;AAAC,eAEawB,MAAM;AAAA"}
@@ -1,36 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.FileManagerPermissions = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _react = _interopRequireWildcard(require("react"));
15
-
16
11
  var _Grid = require("@webiny/ui/Grid");
17
-
18
12
  var _Select = require("@webiny/ui/Select");
19
-
20
13
  var _i18n = require("@webiny/app/i18n");
21
-
22
14
  var _Permissions = require("@webiny/app-admin/components/Permissions");
23
-
24
15
  var _form = require("@webiny/form");
25
-
26
16
  var _Elevation = require("@webiny/ui/Elevation");
27
-
28
17
  var _Typography = require("@webiny/ui/Typography");
29
-
30
18
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18;
31
-
32
19
  var t = _i18n.i18n.ns("app-file-manager/admin/plugins/permissionRenderer");
33
-
34
20
  var FILE_MANAGER = "fm";
35
21
  var FILE_MANAGER_FULL_ACCESS = "".concat(FILE_MANAGER, ".*");
36
22
  var FILE_MANAGER_ACCESS_FILE = "".concat(FILE_MANAGER, ".file");
@@ -38,59 +24,53 @@ var FILE_MANAGER_ACCESS_SETTINGS = "".concat(FILE_MANAGER, ".settings");
38
24
  var FULL_ACCESS = "full";
39
25
  var NO_ACCESS = "no";
40
26
  var CUSTOM_ACCESS = "custom";
41
-
42
27
  var FileManagerPermissions = function FileManagerPermissions(_ref) {
43
28
  var value = _ref.value,
44
- onChange = _ref.onChange;
29
+ onChange = _ref.onChange;
45
30
  var onFormChange = (0, _react.useCallback)(function (data) {
46
31
  var newValue = [];
47
-
48
32
  if (Array.isArray(value)) {
49
33
  // Let's just filter out the `file-manager*` permission objects, it's easier to build new ones from scratch.
50
34
  newValue = value.filter(function (item) {
51
35
  return !item.name.startsWith(FILE_MANAGER);
52
36
  });
53
37
  }
54
-
55
38
  if (data.accessLevel === NO_ACCESS) {
56
39
  onChange(newValue);
57
40
  return;
58
41
  }
59
-
60
42
  if (data.accessLevel === FULL_ACCESS) {
61
43
  newValue.push({
62
44
  name: FILE_MANAGER_FULL_ACCESS
63
45
  });
64
46
  onChange(newValue);
65
47
  return;
66
- } // Handling custom access level.
67
- // Files first.
48
+ }
68
49
 
50
+ // Handling custom access level.
69
51
 
52
+ // Files first.
70
53
  if (data.filesAccessScope && data.filesAccessScope !== NO_ACCESS) {
71
54
  var permission = {
72
55
  name: FILE_MANAGER_ACCESS_FILE,
73
56
  own: false,
74
57
  rwd: undefined
75
58
  };
76
-
77
59
  if (data.filesAccessScope === "own") {
78
60
  permission.own = true;
79
61
  permission.rwd = "rwd";
80
62
  } else {
81
63
  permission.rwd = data.filesRWD || "r";
82
64
  }
83
-
84
65
  newValue.push(permission);
85
- } // Settings second.
86
-
66
+ }
87
67
 
68
+ // Settings second.
88
69
  if (data.settingsAccessScope === FULL_ACCESS) {
89
70
  newValue.push({
90
71
  name: FILE_MANAGER_ACCESS_SETTINGS
91
72
  });
92
73
  }
93
-
94
74
  onChange(newValue);
95
75
  }, [value]);
96
76
  var formData = (0, _react.useMemo)(function () {
@@ -99,27 +79,22 @@ var FileManagerPermissions = function FileManagerPermissions(_ref) {
99
79
  accessLevel: NO_ACCESS
100
80
  };
101
81
  }
102
-
103
82
  var hasFullAccess = value.find(function (item) {
104
83
  return item.name === FILE_MANAGER_FULL_ACCESS || item.name === "*";
105
84
  });
106
-
107
85
  if (hasFullAccess) {
108
86
  return {
109
87
  accessLevel: FULL_ACCESS
110
88
  };
111
89
  }
112
-
113
90
  var permissions = value.filter(function (item) {
114
91
  return item.name.startsWith(FILE_MANAGER);
115
92
  });
116
-
117
93
  if (!permissions.length) {
118
94
  return {
119
95
  accessLevel: NO_ACCESS
120
96
  };
121
97
  }
122
-
123
98
  var data = {
124
99
  accessLevel: CUSTOM_ACCESS,
125
100
  filesAccessScope: NO_ACCESS,
@@ -129,25 +104,20 @@ var FileManagerPermissions = function FileManagerPermissions(_ref) {
129
104
  var filesPermission = permissions.find(function (item) {
130
105
  return item.name === FILE_MANAGER_ACCESS_FILE;
131
106
  });
132
-
133
107
  if (filesPermission) {
134
108
  data.filesAccessScope = filesPermission.own ? "own" : FULL_ACCESS;
135
-
136
109
  if (data.filesAccessScope === FULL_ACCESS) {
137
110
  data.filesRWD = filesPermission.rwd;
138
111
  } else {
139
112
  data.filesRWD = "rwd";
140
113
  }
141
114
  }
142
-
143
115
  var hasSettingsAccess = permissions.find(function (item) {
144
116
  return item.name === FILE_MANAGER_ACCESS_SETTINGS;
145
117
  });
146
-
147
118
  if (hasSettingsAccess) {
148
119
  data.settingsAccessScope = FULL_ACCESS;
149
120
  }
150
-
151
121
  return data;
152
122
  }, []);
153
123
  return /*#__PURE__*/_react.default.createElement(_form.Form, {
@@ -155,8 +125,8 @@ var FileManagerPermissions = function FileManagerPermissions(_ref) {
155
125
  onChange: onFormChange
156
126
  }, function (_ref2) {
157
127
  var data = _ref2.data,
158
- Bind = _ref2.Bind,
159
- setValue = _ref2.setValue;
128
+ Bind = _ref2.Bind,
129
+ setValue = _ref2.setValue;
160
130
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
161
131
  className: _Permissions.gridNoPaddingClass
162
132
  }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
@@ -199,7 +169,6 @@ var FileManagerPermissions = function FileManagerPermissions(_ref) {
199
169
  if (value === "own") {
200
170
  setValue("filesRWD", "rwd");
201
171
  }
202
-
203
172
  cb(value);
204
173
  }
205
174
  }, /*#__PURE__*/_react.default.createElement(_Select.Select, {
@@ -245,5 +214,4 @@ var FileManagerPermissions = function FileManagerPermissions(_ref) {
245
214
  }, t(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2.default)(["Full access"])))))))))));
246
215
  });
247
216
  };
248
-
249
217
  exports.FileManagerPermissions = FileManagerPermissions;
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","FILE_MANAGER","FILE_MANAGER_FULL_ACCESS","FILE_MANAGER_ACCESS_FILE","FILE_MANAGER_ACCESS_SETTINGS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","FileManagerPermissions","value","onChange","onFormChange","useCallback","data","newValue","Array","isArray","filter","item","name","startsWith","accessLevel","push","filesAccessScope","permission","own","rwd","undefined","filesRWD","settingsAccessScope","formData","useMemo","hasFullAccess","find","permissions","length","filesPermission","hasSettingsAccess","Bind","setValue","gridNoPaddingClass","marginTop","padding","paddingBottom","cb"],"sources":["FileManagerPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { PermissionInfo, gridNoPaddingClass } from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst t = i18n.ns(\"app-file-manager/admin/plugins/permissionRenderer\");\n\nconst FILE_MANAGER = \"fm\";\nconst FILE_MANAGER_FULL_ACCESS = `${FILE_MANAGER}.*`;\nconst FILE_MANAGER_ACCESS_FILE = `${FILE_MANAGER}.file`;\nconst FILE_MANAGER_ACCESS_SETTINGS = `${FILE_MANAGER}.settings`;\n\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\n\ninterface FileManagerPermission {\n name: string;\n own?: boolean;\n rwd?: string;\n}\ninterface FileManagerPermissionItem {\n settingsAccessScope?: string;\n filesAccessScope?: string;\n accessLevel?: string;\n name?: string;\n filesRWD?: string;\n}\ninterface FileManagerPermissionsProps {\n value: FileManagerPermissionItem;\n onChange: (value: FileManagerPermissionItem[]) => void;\n}\n\nexport const FileManagerPermissions: React.FC<FileManagerPermissionsProps> = ({\n value,\n onChange\n}) => {\n const onFormChange = useCallback(\n (data: FileManagerPermissionItem) => {\n let newValue: FileManagerPermissionItem[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `file-manager*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(FILE_MANAGER));\n }\n\n if (data.accessLevel === NO_ACCESS) {\n onChange(newValue);\n return;\n }\n\n if (data.accessLevel === FULL_ACCESS) {\n newValue.push({ name: FILE_MANAGER_FULL_ACCESS });\n onChange(newValue);\n return;\n }\n\n // Handling custom access level.\n\n // Files first.\n if (data.filesAccessScope && data.filesAccessScope !== NO_ACCESS) {\n const permission: FileManagerPermission = {\n name: FILE_MANAGER_ACCESS_FILE,\n own: false,\n rwd: undefined\n };\n\n if (data.filesAccessScope === \"own\") {\n permission.own = true;\n permission.rwd = \"rwd\";\n } else {\n permission.rwd = data.filesRWD || \"r\";\n }\n newValue.push(permission);\n }\n\n // Settings second.\n if (data.settingsAccessScope === FULL_ACCESS) {\n newValue.push({ name: FILE_MANAGER_ACCESS_SETTINGS });\n }\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo((): FileManagerPermissionItem => {\n if (!Array.isArray(value)) {\n return { accessLevel: NO_ACCESS };\n }\n\n const hasFullAccess = value.find(\n item => item.name === FILE_MANAGER_FULL_ACCESS || item.name === \"*\"\n );\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n const permissions = value.filter(item => item.name.startsWith(FILE_MANAGER));\n if (!permissions.length) {\n return { accessLevel: NO_ACCESS };\n }\n\n const data: FileManagerPermissionItem = {\n accessLevel: CUSTOM_ACCESS,\n filesAccessScope: NO_ACCESS,\n settingsAccessScope: NO_ACCESS,\n filesRWD: \"r\"\n };\n\n const filesPermission = permissions.find(item => item.name === FILE_MANAGER_ACCESS_FILE);\n if (filesPermission) {\n data.filesAccessScope = filesPermission.own ? \"own\" : FULL_ACCESS;\n if (data.filesAccessScope === FULL_ACCESS) {\n data.filesRWD = filesPermission.rwd;\n } else {\n data.filesRWD = \"rwd\";\n }\n }\n\n const hasSettingsAccess = permissions.find(\n item => item.name === FILE_MANAGER_ACCESS_SETTINGS\n );\n if (hasSettingsAccess) {\n data.settingsAccessScope = FULL_ACCESS;\n }\n\n return data;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ data, Bind, setValue }) => (\n <Fragment>\n <Grid className={gridNoPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select label={t`Access Level`}>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === \"custom\" && (\n <Fragment>\n <Elevation z={1} style={{ marginTop: 10 }}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"overline\"}>{t`Files`}</Typography>\n </Cell>\n <Cell span={12}>\n <Grid style={{ padding: 0, paddingBottom: 24 }}>\n <Cell span={12}>\n <Bind\n name={\"filesAccessScope\"}\n beforeChange={(value, cb) => {\n if (value === \"own\") {\n setValue(`filesRWD`, \"rwd\");\n }\n cb(value);\n }}\n >\n <Select label={t`Access Scope`}>\n <option\n value={NO_ACCESS}\n >{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`All files`}</option>\n <option\n value={\"own\"}\n >{t`Only files created by the user`}</option>\n </Select>\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name={\"filesRWD\"}>\n <Select\n label={t`Primary Actions`}\n disabled={data.filesAccessScope !== \"full\"}\n >\n <option value={\"r\"}>{t`Read`}</option>\n <option\n value={\"rw\"}\n >{t`Read, write`}</option>\n <option\n value={\"rwd\"}\n >{t`Read, write, delete`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n </Grid>\n </Elevation>\n <Elevation z={1} style={{ marginTop: 10 }}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"overline\"}>{t`Settings`}</Typography>\n </Cell>\n <Cell span={12}>\n <Bind name={\"settingsAccessScope\"}>\n <Select label={t`Access Scope`}>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`Full access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </Elevation>\n </Fragment>\n )}\n </Fragment>\n )}\n </Form>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","FILE_MANAGER","FILE_MANAGER_FULL_ACCESS","FILE_MANAGER_ACCESS_FILE","FILE_MANAGER_ACCESS_SETTINGS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","FileManagerPermissions","value","onChange","onFormChange","useCallback","data","newValue","Array","isArray","filter","item","name","startsWith","accessLevel","push","filesAccessScope","permission","own","rwd","undefined","filesRWD","settingsAccessScope","formData","useMemo","hasFullAccess","find","permissions","length","filesPermission","hasSettingsAccess","Bind","setValue","gridNoPaddingClass","marginTop","padding","paddingBottom","cb"],"sources":["FileManagerPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { PermissionInfo, gridNoPaddingClass } from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst t = i18n.ns(\"app-file-manager/admin/plugins/permissionRenderer\");\n\nconst FILE_MANAGER = \"fm\";\nconst FILE_MANAGER_FULL_ACCESS = `${FILE_MANAGER}.*`;\nconst FILE_MANAGER_ACCESS_FILE = `${FILE_MANAGER}.file`;\nconst FILE_MANAGER_ACCESS_SETTINGS = `${FILE_MANAGER}.settings`;\n\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\n\ninterface FileManagerPermission {\n name: string;\n own?: boolean;\n rwd?: string;\n}\ninterface FileManagerPermissionItem {\n settingsAccessScope?: string;\n filesAccessScope?: string;\n accessLevel?: string;\n name?: string;\n filesRWD?: string;\n}\ninterface FileManagerPermissionsProps {\n value: FileManagerPermissionItem;\n onChange: (value: FileManagerPermissionItem[]) => void;\n}\n\nexport const FileManagerPermissions: React.FC<FileManagerPermissionsProps> = ({\n value,\n onChange\n}) => {\n const onFormChange = useCallback(\n (data: FileManagerPermissionItem) => {\n let newValue: FileManagerPermissionItem[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `file-manager*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(FILE_MANAGER));\n }\n\n if (data.accessLevel === NO_ACCESS) {\n onChange(newValue);\n return;\n }\n\n if (data.accessLevel === FULL_ACCESS) {\n newValue.push({ name: FILE_MANAGER_FULL_ACCESS });\n onChange(newValue);\n return;\n }\n\n // Handling custom access level.\n\n // Files first.\n if (data.filesAccessScope && data.filesAccessScope !== NO_ACCESS) {\n const permission: FileManagerPermission = {\n name: FILE_MANAGER_ACCESS_FILE,\n own: false,\n rwd: undefined\n };\n\n if (data.filesAccessScope === \"own\") {\n permission.own = true;\n permission.rwd = \"rwd\";\n } else {\n permission.rwd = data.filesRWD || \"r\";\n }\n newValue.push(permission);\n }\n\n // Settings second.\n if (data.settingsAccessScope === FULL_ACCESS) {\n newValue.push({ name: FILE_MANAGER_ACCESS_SETTINGS });\n }\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo((): FileManagerPermissionItem => {\n if (!Array.isArray(value)) {\n return { accessLevel: NO_ACCESS };\n }\n\n const hasFullAccess = value.find(\n item => item.name === FILE_MANAGER_FULL_ACCESS || item.name === \"*\"\n );\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n const permissions = value.filter(item => item.name.startsWith(FILE_MANAGER));\n if (!permissions.length) {\n return { accessLevel: NO_ACCESS };\n }\n\n const data: FileManagerPermissionItem = {\n accessLevel: CUSTOM_ACCESS,\n filesAccessScope: NO_ACCESS,\n settingsAccessScope: NO_ACCESS,\n filesRWD: \"r\"\n };\n\n const filesPermission = permissions.find(item => item.name === FILE_MANAGER_ACCESS_FILE);\n if (filesPermission) {\n data.filesAccessScope = filesPermission.own ? \"own\" : FULL_ACCESS;\n if (data.filesAccessScope === FULL_ACCESS) {\n data.filesRWD = filesPermission.rwd;\n } else {\n data.filesRWD = \"rwd\";\n }\n }\n\n const hasSettingsAccess = permissions.find(\n item => item.name === FILE_MANAGER_ACCESS_SETTINGS\n );\n if (hasSettingsAccess) {\n data.settingsAccessScope = FULL_ACCESS;\n }\n\n return data;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ data, Bind, setValue }) => (\n <Fragment>\n <Grid className={gridNoPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select label={t`Access Level`}>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === \"custom\" && (\n <Fragment>\n <Elevation z={1} style={{ marginTop: 10 }}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"overline\"}>{t`Files`}</Typography>\n </Cell>\n <Cell span={12}>\n <Grid style={{ padding: 0, paddingBottom: 24 }}>\n <Cell span={12}>\n <Bind\n name={\"filesAccessScope\"}\n beforeChange={(value, cb) => {\n if (value === \"own\") {\n setValue(`filesRWD`, \"rwd\");\n }\n cb(value);\n }}\n >\n <Select label={t`Access Scope`}>\n <option\n value={NO_ACCESS}\n >{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`All files`}</option>\n <option\n value={\"own\"}\n >{t`Only files created by the user`}</option>\n </Select>\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name={\"filesRWD\"}>\n <Select\n label={t`Primary Actions`}\n disabled={data.filesAccessScope !== \"full\"}\n >\n <option value={\"r\"}>{t`Read`}</option>\n <option\n value={\"rw\"}\n >{t`Read, write`}</option>\n <option\n value={\"rwd\"}\n >{t`Read, write, delete`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n </Grid>\n </Elevation>\n <Elevation z={1} style={{ marginTop: 10 }}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"overline\"}>{t`Settings`}</Typography>\n </Cell>\n <Cell span={12}>\n <Bind name={\"settingsAccessScope\"}>\n <Select label={t`Access Scope`}>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`Full access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </Elevation>\n </Fragment>\n )}\n </Fragment>\n )}\n </Form>\n );\n};\n"],"mappings":"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"}
@@ -1,28 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
-
12
9
  var _react = _interopRequireDefault(require("react"));
13
-
14
10
  var _Accordion = require("@webiny/ui/Accordion");
15
-
16
11
  var _folderOpen = require("../../assets/icons/folder-open.svg");
17
-
18
12
  var _FileManagerPermissions = require("./FileManagerPermissions");
19
-
20
13
  var _i18n = require("@webiny/app/i18n");
21
-
22
14
  var _templateObject, _templateObject2;
23
-
24
15
  var t = _i18n.i18n.ns("app-file-manager/admin/plugins/permissionRenderer");
25
-
26
16
  var _default = {
27
17
  type: "admin-app-permissions-renderer",
28
18
  name: "admin-app-permissions-renderer-file-manager",
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","type","name","render","props"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AccordionItem } from \"@webiny/ui/Accordion\";\nimport { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types\";\nimport { ReactComponent as FileManagerIcon } from \"../../assets/icons/folder-open.svg\";\nimport { FileManagerPermissions } from \"./FileManagerPermissions\";\nimport { i18n } from \"@webiny/app/i18n\";\n\nconst t = i18n.ns(\"app-file-manager/admin/plugins/permissionRenderer\");\n\nexport default {\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-file-manager\",\n render(props) {\n return (\n <AccordionItem\n icon={<FileManagerIcon />}\n title={t`File Manager`}\n description={t`Manage File manager app access permissions.`}\n data-testid={\"permission.fm\"}\n >\n <FileManagerPermissions {...props} />\n </AccordionItem>\n );\n }\n} as AdminAppPermissionRendererPlugin;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,mDAAR,CAAV;;eAEe;EACXC,IAAI,EAAE,gCADK;EAEXC,IAAI,EAAE,6CAFK;EAGXC,MAHW,kBAGJC,KAHI,EAGG;IACV,oBACI,6BAAC,wBAAD;MACI,IAAI,eAAE,6BAAC,0BAAD,OADV;MAEI,KAAK,EAAEN,CAAF,+FAFT;MAGI,WAAW,EAAEA,CAAF,gIAHf;MAII,eAAa;IAJjB,gBAMI,6BAAC,8CAAD,EAA4BM,KAA5B,CANJ,CADJ;EAUH;AAdU,C"}
1
+ {"version":3,"names":["t","i18n","ns","type","name","render","props"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AccordionItem } from \"@webiny/ui/Accordion\";\nimport { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types\";\nimport { ReactComponent as FileManagerIcon } from \"../../assets/icons/folder-open.svg\";\nimport { FileManagerPermissions } from \"./FileManagerPermissions\";\nimport { i18n } from \"@webiny/app/i18n\";\n\nconst t = i18n.ns(\"app-file-manager/admin/plugins/permissionRenderer\");\n\nexport default {\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-file-manager\",\n render(props) {\n return (\n <AccordionItem\n icon={<FileManagerIcon />}\n title={t`File Manager`}\n description={t`Manage File manager app access permissions.`}\n data-testid={\"permission.fm\"}\n >\n <FileManagerPermissions {...props} />\n </AccordionItem>\n );\n }\n} as AdminAppPermissionRendererPlugin;\n"],"mappings":";;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AAAwC;AAExC,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,mDAAmD,CAAC;AAAC,eAExD;EACXC,IAAI,EAAE,gCAAgC;EACtCC,IAAI,EAAE,6CAA6C;EACnDC,MAAM,kBAACC,KAAK,EAAE;IACV,oBACI,6BAAC,wBAAa;MACV,IAAI,eAAE,6BAAC,0BAAe,OAAI;MAC1B,KAAK,EAAEN,CAAC,+FAAe;MACvB,WAAW,EAAEA,CAAC,gIAA8C;MAC5D,eAAa;IAAgB,gBAE7B,6BAAC,8CAAsB,EAAKM,KAAK,CAAI,CACzB;EAExB;AACJ,CAAC;AAAA"}
@@ -1,110 +1,82 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = void 0;
11
-
12
9
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
-
14
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
-
16
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
12
  var React = _interopRequireWildcard(require("react"));
19
-
20
13
  var _form = require("@webiny/form");
21
-
22
14
  var _Grid = require("@webiny/ui/Grid");
23
-
24
15
  var _Button = require("@webiny/ui/Button");
25
-
26
16
  var _reactComponents = require("@apollo/react-components");
27
-
28
17
  var _useSnackbar2 = require("@webiny/app-admin/hooks/useSnackbar");
29
-
30
18
  var _Input = require("@webiny/ui/Input");
31
-
32
19
  var _graphql = _interopRequireDefault(require("../graphql"));
33
-
34
20
  var _Progress = require("@webiny/ui/Progress");
35
-
36
21
  var _lodash = _interopRequireDefault(require("lodash.get"));
37
-
38
22
  var _validation = require("@webiny/validation");
39
-
40
23
  var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
41
-
42
24
  var _appAdmin = require("@webiny/app-admin");
43
-
44
25
  function prefixValidator(value) {
45
26
  if (!value.endsWith("/files/")) {
46
27
  throw Error("File URL prefix must end with \"/files/\"");
47
28
  }
48
29
  }
49
-
50
30
  var FileManagerSettings = function FileManagerSettings() {
51
31
  var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
52
- showSnackbar = _useSnackbar.showSnackbar;
53
-
32
+ showSnackbar = _useSnackbar.showSnackbar;
54
33
  return /*#__PURE__*/React.createElement(_reactComponents.Query, {
55
34
  query: _graphql.default.GET_SETTINGS
56
35
  }, function (_ref) {
57
36
  var data = _ref.data,
58
- queryInProgress = _ref.loading;
37
+ queryInProgress = _ref.loading;
59
38
  return /*#__PURE__*/React.createElement(_reactComponents.Mutation, {
60
39
  mutation: _graphql.default.UPDATE_SETTINGS
61
40
  }, function (update, result) {
62
41
  var settings = (0, _lodash.default)(data, "fileManager.getSettings.data") || {};
63
42
  var mutationInProgress = result.loading;
64
-
65
43
  var _onSubmit = /*#__PURE__*/function () {
66
44
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(data) {
67
45
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
68
- while (1) {
69
- switch (_context.prev = _context.next) {
70
- case 0:
71
- _context.next = 2;
72
- return update({
73
- variables: {
74
- data: {
75
- uploadMinFileSize: parseFloat(data.uploadMinFileSize),
76
- uploadMaxFileSize: parseFloat(data.uploadMaxFileSize),
77
- srcPrefix: data.srcPrefix
78
- }
79
- },
80
- update: function update(cache, result) {
81
- var data = structuredClone(cache.readQuery({
82
- query: _graphql.default.GET_SETTINGS
83
- }));
84
- data.fileManager.getSettings.data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data.fileManager.getSettings.data), result.data.fileManager.updateSettings.data);
85
- cache.writeQuery({
86
- query: _graphql.default.GET_SETTINGS,
87
- data: data
88
- });
46
+ while (1) switch (_context.prev = _context.next) {
47
+ case 0:
48
+ _context.next = 2;
49
+ return update({
50
+ variables: {
51
+ data: {
52
+ uploadMinFileSize: parseFloat(data.uploadMinFileSize),
53
+ uploadMaxFileSize: parseFloat(data.uploadMaxFileSize),
54
+ srcPrefix: data.srcPrefix
89
55
  }
90
- });
91
-
92
- case 2:
93
- showSnackbar("Settings updated successfully.");
94
-
95
- case 3:
96
- case "end":
97
- return _context.stop();
98
- }
56
+ },
57
+ update: function update(cache, result) {
58
+ var data = structuredClone(cache.readQuery({
59
+ query: _graphql.default.GET_SETTINGS
60
+ }));
61
+ data.fileManager.getSettings.data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data.fileManager.getSettings.data), result.data.fileManager.updateSettings.data);
62
+ cache.writeQuery({
63
+ query: _graphql.default.GET_SETTINGS,
64
+ data: data
65
+ });
66
+ }
67
+ });
68
+ case 2:
69
+ showSnackbar("Settings updated successfully.");
70
+ case 3:
71
+ case "end":
72
+ return _context.stop();
99
73
  }
100
74
  }, _callee);
101
75
  }));
102
-
103
76
  return function onSubmit(_x) {
104
77
  return _ref2.apply(this, arguments);
105
78
  };
106
79
  }();
107
-
108
80
  return /*#__PURE__*/React.createElement(_appAdmin.CenteredView, null, /*#__PURE__*/React.createElement(_form.Form, {
109
81
  data: settings,
110
82
  onSubmit: function onSubmit(data) {
@@ -115,7 +87,7 @@ var FileManagerSettings = function FileManagerSettings() {
115
87
  }
116
88
  }, function (_ref3) {
117
89
  var Bind = _ref3.Bind,
118
- form = _ref3.form;
90
+ form = _ref3.form;
119
91
  return /*#__PURE__*/React.createElement(_SimpleForm.SimpleForm, null, (queryInProgress || mutationInProgress) && /*#__PURE__*/React.createElement(_Progress.CircularProgress, null), /*#__PURE__*/React.createElement(_SimpleForm.SimpleFormHeader, {
120
92
  title: "General Settings"
121
93
  }), /*#__PURE__*/React.createElement(_SimpleForm.SimpleFormContent, null, /*#__PURE__*/React.createElement(_Grid.Grid, null, /*#__PURE__*/React.createElement(_Grid.Cell, {
@@ -157,6 +129,5 @@ var FileManagerSettings = function FileManagerSettings() {
157
129
  });
158
130
  });
159
131
  };
160
-
161
132
  var _default = FileManagerSettings;
162
133
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["prefixValidator","value","endsWith","Error","FileManagerSettings","useSnackbar","showSnackbar","graphql","GET_SETTINGS","data","queryInProgress","loading","UPDATE_SETTINGS","update","result","settings","get","mutationInProgress","onSubmit","variables","uploadMinFileSize","parseFloat","uploadMaxFileSize","srcPrefix","cache","structuredClone","readQuery","query","fileManager","getSettings","updateSettings","writeQuery","Bind","form","validation","create","ev","submit"],"sources":["FileManagerSettings.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Form } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { Query, Mutation } from \"@apollo/react-components\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { Input } from \"@webiny/ui/Input\";\nimport graphql from \"../graphql\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport get from \"lodash.get\";\nimport { validation } from \"@webiny/validation\";\n\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { CenteredView } from \"@webiny/app-admin\";\nimport { QueryGetSettingsResult, Settings } from \"~/types\";\nimport { MutationFunction, MutationResult } from \"@apollo/react-common\";\n\nfunction prefixValidator(value: string) {\n if (!value.endsWith(\"/files/\")) {\n throw Error(`File URL prefix must end with \"/files/\"`);\n }\n}\n\nconst FileManagerSettings: React.FC = () => {\n const { showSnackbar } = useSnackbar();\n\n return (\n <Query query={graphql.GET_SETTINGS}>\n {({ data, loading: queryInProgress }: MutationResult<QueryGetSettingsResult>) => (\n <Mutation mutation={graphql.UPDATE_SETTINGS}>\n {(update: MutationFunction, result: MutationResult) => {\n const settings = (get(data, \"fileManager.getSettings.data\") ||\n {}) as Settings;\n const { loading: mutationInProgress } = result;\n\n const onSubmit = async (data: Settings): Promise<void> => {\n await update({\n variables: {\n data: {\n uploadMinFileSize: parseFloat(data.uploadMinFileSize),\n uploadMaxFileSize: parseFloat(data.uploadMaxFileSize),\n srcPrefix: data.srcPrefix\n }\n },\n update: (cache, result) => {\n const data = structuredClone(\n cache.readQuery({ query: graphql.GET_SETTINGS })\n );\n\n data.fileManager.getSettings.data = {\n ...data.fileManager.getSettings.data,\n ...result.data.fileManager.updateSettings.data\n };\n\n cache.writeQuery({\n query: graphql.GET_SETTINGS,\n data\n });\n }\n });\n showSnackbar(\"Settings updated successfully.\");\n };\n return (\n <CenteredView>\n <Form\n data={settings}\n onSubmit={data => {\n /**\n * We are positive that data is Settings.\n */\n onSubmit(data as unknown as Settings);\n }}\n >\n {({ Bind, form }) => (\n <SimpleForm>\n {(queryInProgress || mutationInProgress) && (\n <CircularProgress />\n )}\n <SimpleFormHeader title=\"General Settings\" />\n <SimpleFormContent>\n <Grid>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMinFileSize\"}>\n <Input\n type=\"number\"\n label=\"Minimum file upload size\"\n description=\"The smallest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMaxFileSize\"}>\n <Input\n type=\"number\"\n label=\"Maximum file upload size\"\n description=\"The largest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"srcPrefix\"}\n validators={[\n validation.create(\"url\"),\n prefixValidator\n ]}\n >\n <Input\n label=\"File URL prefix\"\n description=\"This prefix will be prepended to the file key to form the full file URL.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n >\n Save Settings\n </ButtonPrimary>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n </CenteredView>\n );\n }}\n </Mutation>\n )}\n </Query>\n );\n};\n\nexport default FileManagerSettings;\n"],"mappings":"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"}
1
+ {"version":3,"names":["prefixValidator","value","endsWith","Error","FileManagerSettings","useSnackbar","showSnackbar","graphql","GET_SETTINGS","data","queryInProgress","loading","UPDATE_SETTINGS","update","result","settings","get","mutationInProgress","onSubmit","variables","uploadMinFileSize","parseFloat","uploadMaxFileSize","srcPrefix","cache","structuredClone","readQuery","query","fileManager","getSettings","updateSettings","writeQuery","Bind","form","validation","create","ev","submit"],"sources":["FileManagerSettings.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Form } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { Query, Mutation } from \"@apollo/react-components\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { Input } from \"@webiny/ui/Input\";\nimport graphql from \"../graphql\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport get from \"lodash.get\";\nimport { validation } from \"@webiny/validation\";\n\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { CenteredView } from \"@webiny/app-admin\";\nimport { QueryGetSettingsResult, Settings } from \"~/types\";\nimport { MutationFunction, MutationResult } from \"@apollo/react-common\";\n\nfunction prefixValidator(value: string) {\n if (!value.endsWith(\"/files/\")) {\n throw Error(`File URL prefix must end with \"/files/\"`);\n }\n}\n\nconst FileManagerSettings: React.FC = () => {\n const { showSnackbar } = useSnackbar();\n\n return (\n <Query query={graphql.GET_SETTINGS}>\n {({ data, loading: queryInProgress }: MutationResult<QueryGetSettingsResult>) => (\n <Mutation mutation={graphql.UPDATE_SETTINGS}>\n {(update: MutationFunction, result: MutationResult) => {\n const settings = (get(data, \"fileManager.getSettings.data\") ||\n {}) as Settings;\n const { loading: mutationInProgress } = result;\n\n const onSubmit = async (data: Settings): Promise<void> => {\n await update({\n variables: {\n data: {\n uploadMinFileSize: parseFloat(data.uploadMinFileSize),\n uploadMaxFileSize: parseFloat(data.uploadMaxFileSize),\n srcPrefix: data.srcPrefix\n }\n },\n update: (cache, result) => {\n const data = structuredClone(\n cache.readQuery({ query: graphql.GET_SETTINGS })\n );\n\n data.fileManager.getSettings.data = {\n ...data.fileManager.getSettings.data,\n ...result.data.fileManager.updateSettings.data\n };\n\n cache.writeQuery({\n query: graphql.GET_SETTINGS,\n data\n });\n }\n });\n showSnackbar(\"Settings updated successfully.\");\n };\n return (\n <CenteredView>\n <Form\n data={settings}\n onSubmit={data => {\n /**\n * We are positive that data is Settings.\n */\n onSubmit(data as unknown as Settings);\n }}\n >\n {({ Bind, form }) => (\n <SimpleForm>\n {(queryInProgress || mutationInProgress) && (\n <CircularProgress />\n )}\n <SimpleFormHeader title=\"General Settings\" />\n <SimpleFormContent>\n <Grid>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMinFileSize\"}>\n <Input\n type=\"number\"\n label=\"Minimum file upload size\"\n description=\"The smallest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMaxFileSize\"}>\n <Input\n type=\"number\"\n label=\"Maximum file upload size\"\n description=\"The largest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"srcPrefix\"}\n validators={[\n validation.create(\"url\"),\n prefixValidator\n ]}\n >\n <Input\n label=\"File URL prefix\"\n description=\"This prefix will be prepended to the file key to form the full file URL.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n >\n Save Settings\n </ButtonPrimary>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n </CenteredView>\n );\n }}\n </Mutation>\n )}\n </Query>\n );\n};\n\nexport default FileManagerSettings;\n"],"mappings":"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"}
package/index.js CHANGED
@@ -1,20 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.FileManager = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _appAdmin = require("@webiny/app-admin");
13
-
14
10
  var _appSecurity = require("@webiny/app-security");
15
-
16
11
  var _FileManagerSettings = _interopRequireDefault(require("./admin/views/FileManagerSettings"));
17
-
18
12
  var FileManager = function FileManager() {
19
13
  return /*#__PURE__*/_react.default.createElement(_appAdmin.Plugins, null, /*#__PURE__*/_react.default.createElement(_appSecurity.HasPermission, {
20
14
  name: "fm.settings"
@@ -33,5 +27,4 @@ var FileManager = function FileManager() {
33
27
  path: "/settings/file-manager/general"
34
28
  })))));
35
29
  };
36
-
37
30
  exports.FileManager = FileManager;
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["FileManager"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Plugins, Layout, AddMenu, AddRoute } from \"@webiny/app-admin\";\nimport { HasPermission } from \"@webiny/app-security\";\nimport FileManagerSettings from \"~/admin/views/FileManagerSettings\";\n\nexport const FileManager: React.FC = () => {\n return (\n <Plugins>\n <HasPermission name={\"fm.settings\"}>\n <AddRoute path=\"/settings/file-manager/general\">\n <Layout title={\"File Manager - General Settings\"}>\n <FileManagerSettings />\n </Layout>\n </AddRoute>\n <AddMenu name={\"settings\"}>\n <AddMenu name={\"settings.fileManager\"} label={\"File Manager\"}>\n <AddMenu\n name={\"settings.fileManager.general\"}\n label={\"General\"}\n path={\"/settings/file-manager/general\"}\n />\n </AddMenu>\n </AddMenu>\n </HasPermission>\n </Plugins>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEO,IAAMA,WAAqB,GAAG,SAAxBA,WAAwB,GAAM;EACvC,oBACI,6BAAC,iBAAD,qBACI,6BAAC,0BAAD;IAAe,IAAI,EAAE;EAArB,gBACI,6BAAC,kBAAD;IAAU,IAAI,EAAC;EAAf,gBACI,6BAAC,gBAAD;IAAQ,KAAK,EAAE;EAAf,gBACI,6BAAC,4BAAD,OADJ,CADJ,CADJ,eAMI,6BAAC,iBAAD;IAAS,IAAI,EAAE;EAAf,gBACI,6BAAC,iBAAD;IAAS,IAAI,EAAE,sBAAf;IAAuC,KAAK,EAAE;EAA9C,gBACI,6BAAC,iBAAD;IACI,IAAI,EAAE,8BADV;IAEI,KAAK,EAAE,SAFX;IAGI,IAAI,EAAE;EAHV,EADJ,CADJ,CANJ,CADJ,CADJ;AAoBH,CArBM"}
1
+ {"version":3,"names":["FileManager"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Plugins, Layout, AddMenu, AddRoute } from \"@webiny/app-admin\";\nimport { HasPermission } from \"@webiny/app-security\";\nimport FileManagerSettings from \"~/admin/views/FileManagerSettings\";\n\nexport const FileManager: React.FC = () => {\n return (\n <Plugins>\n <HasPermission name={\"fm.settings\"}>\n <AddRoute path=\"/settings/file-manager/general\">\n <Layout title={\"File Manager - General Settings\"}>\n <FileManagerSettings />\n </Layout>\n </AddRoute>\n <AddMenu name={\"settings\"}>\n <AddMenu name={\"settings.fileManager\"} label={\"File Manager\"}>\n <AddMenu\n name={\"settings.fileManager.general\"}\n label={\"General\"}\n path={\"/settings/file-manager/general\"}\n />\n </AddMenu>\n </AddMenu>\n </HasPermission>\n </Plugins>\n );\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAEO,IAAMA,WAAqB,GAAG,SAAxBA,WAAqB,GAAS;EACvC,oBACI,6BAAC,iBAAO,qBACJ,6BAAC,0BAAa;IAAC,IAAI,EAAE;EAAc,gBAC/B,6BAAC,kBAAQ;IAAC,IAAI,EAAC;EAAgC,gBAC3C,6BAAC,gBAAM;IAAC,KAAK,EAAE;EAAkC,gBAC7C,6BAAC,4BAAmB,OAAG,CAClB,CACF,eACX,6BAAC,iBAAO;IAAC,IAAI,EAAE;EAAW,gBACtB,6BAAC,iBAAO;IAAC,IAAI,EAAE,sBAAuB;IAAC,KAAK,EAAE;EAAe,gBACzD,6BAAC,iBAAO;IACJ,IAAI,EAAE,8BAA+B;IACrC,KAAK,EAAE,SAAU;IACjB,IAAI,EAAE;EAAiC,EACzC,CACI,CACJ,CACE,CACV;AAElB,CAAC;AAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-file-manager",
3
- "version": "0.0.0-unstable.d7f521b032",
3
+ "version": "0.0.0-unstable.ecd8734205",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,13 +16,13 @@
16
16
  "@emotion/core": "10.3.1",
17
17
  "@emotion/styled": "10.3.0",
18
18
  "@types/react": "17.0.39",
19
- "@webiny/app": "0.0.0-unstable.d7f521b032",
20
- "@webiny/app-admin": "0.0.0-unstable.d7f521b032",
21
- "@webiny/app-security": "0.0.0-unstable.d7f521b032",
22
- "@webiny/form": "0.0.0-unstable.d7f521b032",
23
- "@webiny/plugins": "0.0.0-unstable.d7f521b032",
24
- "@webiny/ui": "0.0.0-unstable.d7f521b032",
25
- "@webiny/validation": "0.0.0-unstable.d7f521b032",
19
+ "@webiny/app": "0.0.0-unstable.ecd8734205",
20
+ "@webiny/app-admin": "0.0.0-unstable.ecd8734205",
21
+ "@webiny/app-security": "0.0.0-unstable.ecd8734205",
22
+ "@webiny/form": "0.0.0-unstable.ecd8734205",
23
+ "@webiny/plugins": "0.0.0-unstable.ecd8734205",
24
+ "@webiny/ui": "0.0.0-unstable.ecd8734205",
25
+ "@webiny/validation": "0.0.0-unstable.ecd8734205",
26
26
  "apollo-cache": "1.3.5",
27
27
  "apollo-client": "2.6.10",
28
28
  "apollo-link": "1.2.14",
@@ -41,8 +41,8 @@
41
41
  "@babel/preset-react": "^7.18.6",
42
42
  "@babel/preset-typescript": "^7.18.6",
43
43
  "@svgr/webpack": "^6.1.1",
44
- "@webiny/cli": "^0.0.0-unstable.d7f521b032",
45
- "@webiny/project-utils": "^0.0.0-unstable.d7f521b032",
44
+ "@webiny/cli": "^0.0.0-unstable.ecd8734205",
45
+ "@webiny/project-utils": "^0.0.0-unstable.ecd8734205",
46
46
  "rimraf": "^3.0.2",
47
47
  "ttypescript": "^1.5.13",
48
48
  "typescript": "4.7.4"
@@ -55,5 +55,5 @@
55
55
  "build": "yarn webiny run build",
56
56
  "watch": "yarn webiny run watch"
57
57
  },
58
- "gitHead": "d7f521b0325964664dbeb6d2d07e2b6518e53841"
58
+ "gitHead": "ecd8734205e0e21ae04076c28ff9806dad07a730"
59
59
  }