@webiny/app-admin 0.0.0-unstable.bca7b3e350 → 0.0.0-unstable.c2780f51fe

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.
Files changed (115) hide show
  1. package/assets/icons/add-18px.svg +1 -1
  2. package/assets/icons/arrow_drop_down-24px.svg +1 -1
  3. package/assets/icons/filter-24px.svg +1 -1
  4. package/assets/icons/highlight-24px.svg +1 -1
  5. package/assets/icons/info.svg +1 -1
  6. package/assets/icons/insert_drive_file-24px.svg +1 -1
  7. package/assets/icons/insert_photo-24px.svg +1 -1
  8. package/assets/icons/label-24px.svg +1 -1
  9. package/assets/icons/round-account_circle-24px.svg +1 -1
  10. package/assets/icons/round-arrow_drop_down-24px.svg +1 -1
  11. package/assets/icons/round-help-24px.svg +1 -1
  12. package/assets/icons/round-settings-24px.svg +1 -1
  13. package/assets/icons/today-24px.svg +1 -1
  14. package/assets/icons/touch_app.svg +1 -1
  15. package/base/Base.js +6 -25
  16. package/base/Base.js.map +1 -1
  17. package/base/plugins/AddGraphQLQuerySelection.js +5 -1
  18. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
  19. package/base/ui/FileManager.d.ts +67 -0
  20. package/base/ui/FileManager.js +61 -0
  21. package/base/ui/FileManager.js.map +1 -0
  22. package/components/AppInstaller/AppInstaller.js +2 -34
  23. package/components/AppInstaller/AppInstaller.js.map +1 -1
  24. package/components/AppInstaller/Sidebar.js +2 -12
  25. package/components/AppInstaller/Sidebar.js.map +1 -1
  26. package/components/AppInstaller/styled.d.ts +17 -5
  27. package/components/AppInstaller/useInstaller.d.ts +1 -7
  28. package/components/AppInstaller/useInstaller.js +16 -71
  29. package/components/AppInstaller/useInstaller.js.map +1 -1
  30. package/components/EmptyView.js +1 -1
  31. package/components/EmptyView.js.map +1 -1
  32. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +14 -0
  33. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -1
  34. package/components/FileManager/BottomInfoBar/UploadStatus.js +9 -0
  35. package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -1
  36. package/components/FileManager/BottomInfoBar.js +12 -0
  37. package/components/FileManager/BottomInfoBar.js.map +1 -1
  38. package/components/FileManager/DropFilesHere.js +12 -3
  39. package/components/FileManager/DropFilesHere.js.map +1 -1
  40. package/components/FileManager/File.js +18 -5
  41. package/components/FileManager/File.js.map +1 -1
  42. package/components/FileManager/FileDetails/Name.js +75 -45
  43. package/components/FileManager/FileDetails/Name.js.map +1 -1
  44. package/components/FileManager/FileDetails/Tags.js +138 -85
  45. package/components/FileManager/FileDetails/Tags.js.map +1 -1
  46. package/components/FileManager/FileDetails.js +161 -94
  47. package/components/FileManager/FileDetails.js.map +1 -1
  48. package/components/FileManager/FileManagerContext.js +45 -12
  49. package/components/FileManager/FileManagerContext.js.map +1 -1
  50. package/components/FileManager/FileManagerView.js +295 -185
  51. package/components/FileManager/FileManagerView.js.map +1 -1
  52. package/components/FileManager/LeftSidebar.js +29 -10
  53. package/components/FileManager/LeftSidebar.js.map +1 -1
  54. package/components/FileManager/NoPermissionView.js +13 -0
  55. package/components/FileManager/NoPermissionView.js.map +1 -1
  56. package/components/FileManager/NoResults.js +6 -0
  57. package/components/FileManager/NoResults.js.map +1 -1
  58. package/components/FileManager/getFileTypePlugin.js +15 -9
  59. package/components/FileManager/getFileTypePlugin.js.map +1 -1
  60. package/components/FileManager/getFileUploader.js +5 -0
  61. package/components/FileManager/getFileUploader.js.map +1 -1
  62. package/components/FileManager/graphql.js +14 -3
  63. package/components/FileManager/graphql.js.map +1 -1
  64. package/components/FileManager/outputFileSelectionError.js +14 -0
  65. package/components/FileManager/outputFileSelectionError.js.map +1 -1
  66. package/components/FileManager.js +43 -17
  67. package/components/FileManager.js.map +1 -1
  68. package/components/FloatingActionButton.js +2 -2
  69. package/components/FloatingActionButton.js.map +1 -1
  70. package/components/OverlayLayout/OverlayLayout.js +2 -2
  71. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  72. package/components/SearchUI.js +2 -2
  73. package/components/SearchUI.js.map +1 -1
  74. package/components/SingleImageUpload.d.ts +1 -1
  75. package/components/SingleImageUpload.js +2 -2
  76. package/components/SingleImageUpload.js.map +1 -1
  77. package/components/SplitView/SplitView.js +1 -0
  78. package/components/SplitView/SplitView.js.map +1 -1
  79. package/components/index.d.ts +1 -1
  80. package/components/index.js +1 -1
  81. package/components/index.js.map +1 -1
  82. package/index.d.ts +2 -3
  83. package/index.js +1 -13
  84. package/index.js.map +1 -1
  85. package/package.json +19 -29
  86. package/plugins/FileManagerFileTypePlugin.js +15 -0
  87. package/plugins/FileManagerFileTypePlugin.js.map +1 -1
  88. package/plugins/fileManager/fileDefault.js +6 -0
  89. package/plugins/fileManager/fileDefault.js.map +1 -1
  90. package/plugins/fileManager/fileImage/DeleteAction.js +40 -16
  91. package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -1
  92. package/plugins/fileManager/fileImage/EditAction.js +58 -22
  93. package/plugins/fileManager/fileImage/EditAction.js.map +1 -1
  94. package/plugins/fileManager/fileImage/index.js +8 -0
  95. package/plugins/fileManager/fileImage/index.js.map +1 -1
  96. package/plugins/fileManager/index.js +2 -0
  97. package/plugins/fileManager/index.js.map +1 -1
  98. package/plugins/globalSearch/SearchBar.js +2 -2
  99. package/plugins/globalSearch/SearchBar.js.map +1 -1
  100. package/plugins/globalSearch/SearchBarDropdown.js +2 -2
  101. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  102. package/plugins/globalSearch/styled.d.ts +13 -4
  103. package/types.d.ts +23 -27
  104. package/types.js.map +1 -1
  105. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +5 -5
  106. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  107. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +1 -1
  108. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  109. package/ui/elements/form/FileManagerElement/styled.d.ts +23 -16
  110. package/ui/views/AdminView/components/Hamburger.js +2 -2
  111. package/ui/views/AdminView/components/Hamburger.js.map +1 -1
  112. package/ui/views/OverlayView/HeaderElement.js +1 -1
  113. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  114. package/ui/views/OverlayView.js +1 -1
  115. package/ui/views/OverlayView.js.map +1 -1
@@ -2,17 +2,12 @@ import { AdminInstallationPlugin } from "../../types";
2
2
  interface UseInstallerParams {
3
3
  isInstalled: boolean;
4
4
  }
5
- interface SkippingVersionState {
6
- current: string;
7
- latest: string;
8
- availableUpgrades: string[];
9
- }
10
5
  interface BaseInstaller {
11
6
  installed: string | null;
12
7
  plugin: AdminInstallationPlugin;
13
8
  }
14
9
  export interface Installer extends BaseInstaller {
15
- type: "install" | "upgrade";
10
+ type: "install";
16
11
  name: string;
17
12
  title: string;
18
13
  render: AdminInstallationPlugin["render"];
@@ -26,6 +21,5 @@ export declare const useInstaller: (params: UseInstallerParams) => {
26
21
  showNextInstaller: () => any;
27
22
  showLogin: boolean;
28
23
  onUser: () => void;
29
- skippingVersions: SkippingVersionState | null;
30
24
  };
31
25
  export {};
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -11,24 +10,11 @@ var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helper
11
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
- var _react = _interopRequireWildcard(require("react"));
13
+ var _react = require("react");
16
14
  var _graphlib = require("graphlib");
17
- var _semver = require("semver");
18
15
  var _reactHooks = require("@apollo/react-hooks");
19
16
  var _plugins = require("@webiny/plugins");
20
- var _Progress = require("@webiny/ui/Progress");
21
17
  var _config = require("@webiny/app/config");
22
- var _excluded = ["children"];
23
- var Loader = function Loader(_ref) {
24
- var children = _ref.children,
25
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
26
- return /*#__PURE__*/_react.default.createElement(_react.Suspense, {
27
- fallback: /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
28
- label: "Loading..."
29
- })
30
- }, /*#__PURE__*/_react.default.cloneElement(children, props));
31
- };
32
18
  var useInstaller = function useInstaller(params) {
33
19
  var isInstalled = params.isInstalled;
34
20
  var _useReducer = (0, _react.useReducer)(function (prev, next) {
@@ -37,8 +23,7 @@ var useInstaller = function useInstaller(params) {
37
23
  loading: true,
38
24
  installers: [],
39
25
  installerIndex: -1,
40
- showLogin: false,
41
- skippingVersions: null
26
+ showLogin: false
42
27
  }),
43
28
  _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
44
29
  state = _useReducer2[0],
@@ -46,8 +31,7 @@ var useInstaller = function useInstaller(params) {
46
31
  var loading = state.loading,
47
32
  installers = state.installers,
48
33
  installerIndex = state.installerIndex,
49
- showLogin = state.showLogin,
50
- skippingVersions = state.skippingVersions;
34
+ showLogin = state.showLogin;
51
35
  var client = (0, _reactHooks.useApolloClient)();
52
36
  var validateGraph = function validateGraph(graph) {
53
37
  var isAcyclic = _graphlib.alg.isAcyclic(graph);
@@ -68,12 +52,12 @@ var useInstaller = function useInstaller(params) {
68
52
  };
69
53
  var createGraph = function createGraph(installers) {
70
54
  var graph = new _graphlib.Graph();
71
- installers.forEach(function (_ref2) {
72
- var plugin = _ref2.plugin;
55
+ installers.forEach(function (_ref) {
56
+ var plugin = _ref.plugin;
73
57
  graph.setNode(plugin.name, plugin);
74
58
  });
75
- installers.forEach(function (_ref3) {
76
- var pl = _ref3.plugin;
59
+ installers.forEach(function (_ref2) {
60
+ var pl = _ref2.plugin;
77
61
  if (Array.isArray(pl.dependencies)) {
78
62
  pl.dependencies.forEach(function (dep) {
79
63
  graph.setEdge(pl.name, dep);
@@ -85,7 +69,6 @@ var useInstaller = function useInstaller(params) {
85
69
  };
86
70
  var getInstallers = (0, _react.useCallback)(function (installers, graph) {
87
71
  var toInstall = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
88
- var toUpgrade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
89
72
  var leaf = graph.sinks()[0];
90
73
  if (leaf) {
91
74
  var installer = installers.find(function (inst) {
@@ -105,44 +88,8 @@ var useInstaller = function useInstaller(params) {
105
88
  installed: null,
106
89
  plugin: installer.plugin
107
90
  });
108
- } else {
109
- var wbyVersion = _config.config.getKey("WEBINY_VERSION", process.env.REACT_APP_WEBINY_VERSION);
110
- var upgrades = (installer.plugin.upgrades || []).filter(function (_ref4) {
111
- var version = _ref4.version;
112
- // TODO use coerce
113
- return (0, _semver.lte)(version, wbyVersion) && (0, _semver.gt)(version, installer.installed || "");
114
- });
115
- if (upgrades.length > 1) {
116
- var availableUpgrades = (0, _semver.sort)(upgrades.map(function (u) {
117
- return u.version;
118
- }));
119
- var latestUpgrade = availableUpgrades[availableUpgrades.length - 1];
120
- setState({
121
- skippingVersions: {
122
- current: installer.installed,
123
- latest: latestUpgrade,
124
- availableUpgrades: availableUpgrades
125
- }
126
- });
127
- } else if (upgrades.length === 1) {
128
- toUpgrade.push({
129
- type: "upgrade",
130
- name: "".concat(installer.plugin.name, "-upgrade"),
131
- title: installer.plugin.title,
132
- secure: true,
133
- installed: null,
134
- plugin: installer.plugin,
135
- render: function render(_ref5) {
136
- var onInstalled = _ref5.onInstalled;
137
- var Component = upgrades[0].getComponent();
138
- return /*#__PURE__*/_react.default.createElement(Loader, null, /*#__PURE__*/_react.default.createElement(Component, {
139
- onInstalled: onInstalled
140
- }));
141
- }
142
- });
143
- }
144
91
  }
145
- return getInstallers(installers, graph, toInstall, toUpgrade);
92
+ return getInstallers(installers, graph, toInstall);
146
93
  }
147
94
  toInstall.sort(function (a, b) {
148
95
  if (a.secure && !b.secure) {
@@ -153,8 +100,7 @@ var useInstaller = function useInstaller(params) {
153
100
  return 0;
154
101
  });
155
102
  return {
156
- toInstall: toInstall,
157
- toUpgrade: toUpgrade
103
+ toInstall: toInstall
158
104
  };
159
105
  }, []);
160
106
  var onUser = function onUser() {
@@ -193,7 +139,7 @@ var useInstaller = function useInstaller(params) {
193
139
  };
194
140
  (0, _react.useEffect)(function () {
195
141
  (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
196
- var allInstallers, graph, _getInstallers, toInstall, toUpgrade, installers;
142
+ var allInstallers, graph, _getInstallers, toInstall, installers;
197
143
  return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
198
144
  while (1) switch (_context2.prev = _context2.next) {
199
145
  case 0:
@@ -206,7 +152,7 @@ var useInstaller = function useInstaller(params) {
206
152
  allInstallers = [];
207
153
  _context2.next = 5;
208
154
  return Promise.all(_plugins.plugins.byType("admin-installation").map( /*#__PURE__*/function () {
209
- var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(pl) {
155
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(pl) {
210
156
  var installed;
211
157
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
212
158
  while (1) switch (_context.prev = _context.next) {
@@ -228,18 +174,18 @@ var useInstaller = function useInstaller(params) {
228
174
  }, _callee);
229
175
  }));
230
176
  return function (_x) {
231
- return _ref7.apply(this, arguments);
177
+ return _ref4.apply(this, arguments);
232
178
  };
233
179
  }()));
234
180
  case 5:
235
181
  graph = createGraph(allInstallers);
236
- _getInstallers = getInstallers(allInstallers, graph), toInstall = _getInstallers.toInstall, toUpgrade = _getInstallers.toUpgrade;
237
- installers = [].concat((0, _toConsumableArray2.default)(toUpgrade), (0, _toConsumableArray2.default)(toInstall));
182
+ _getInstallers = getInstallers(allInstallers, graph), toInstall = _getInstallers.toInstall;
183
+ installers = (0, _toConsumableArray2.default)(toInstall);
238
184
  setState({
239
185
  installers: installers,
240
186
  installerIndex: 0,
241
187
  loading: false,
242
- showLogin: toUpgrade.length > 0 || toInstall.length > 0 && toInstall[0].secure
188
+ showLogin: toInstall.length > 0 && toInstall[0].secure
243
189
  });
244
190
  case 9:
245
191
  case "end":
@@ -258,8 +204,7 @@ var useInstaller = function useInstaller(params) {
258
204
  installer: installers[installerIndex],
259
205
  showNextInstaller: showNextInstaller,
260
206
  showLogin: showLogin,
261
- onUser: onUser,
262
- skippingVersions: skippingVersions
207
+ onUser: onUser
263
208
  };
264
209
  };
265
210
  exports.useInstaller = useInstaller;
@@ -1 +1 @@
1
- {"version":3,"names":["Loader","children","props","React","cloneElement","useInstaller","params","isInstalled","useReducer","prev","next","loading","installers","installerIndex","showLogin","skippingVersions","state","setState","client","useApolloClient","validateGraph","graph","isAcyclic","alg","cycles","findCycles","msg","forEach","cycle","index","fromAToB","join","fromBToA","reverse","padLength","length","push","padStart","Error","createGraph","Graph","plugin","setNode","name","pl","Array","isArray","dependencies","dep","setEdge","getInstallers","useCallback","toInstall","toUpgrade","leaf","sinks","installer","find","inst","removeNode","installed","type","title","render","secure","wbyVersion","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","upgrades","filter","version","lte","gt","availableUpgrades","sort","map","u","latestUpgrade","current","latest","onInstalled","Component","getComponent","a","b","onUser","showNextInstaller","prevInstaller","undefined","nextIndex","nextInstaller","prevSecure","nextSecure","useEffect","allInstallers","Promise","all","plugins","byType","getInstalledVersion","isFirstInstall","some"],"sources":["useInstaller.tsx"],"sourcesContent":["import React, { useCallback, useReducer, useEffect, Suspense } from \"react\";\nimport { Graph, alg } from \"graphlib\";\nimport { sort, gt, lte } from \"semver\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminInstallationPlugin } from \"~/types\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst Loader: React.FC<{ children: React.ReactElement }> = ({ children, ...props }) => (\n <Suspense fallback={<CircularProgress label={\"Loading...\"} />}>\n {React.cloneElement(children, props)}\n </Suspense>\n);\n\ninterface GetInstallersResult {\n toInstall: Installer[];\n toUpgrade: Installer[];\n}\n\ninterface UseInstallerParams {\n isInstalled: boolean;\n}\n\ninterface SkippingVersionState {\n current: string;\n latest: string;\n availableUpgrades: string[];\n}\n\ninterface BaseInstaller {\n installed: string | null;\n plugin: AdminInstallationPlugin;\n}\n\nexport interface Installer extends BaseInstaller {\n type: \"install\" | \"upgrade\";\n name: string;\n title: string;\n render: AdminInstallationPlugin[\"render\"];\n secure?: boolean;\n}\ninterface State {\n loading: boolean;\n installers: Installer[];\n installerIndex: number;\n showLogin: boolean;\n skippingVersions: SkippingVersionState | null;\n}\n\ninterface Reducer {\n (prev: State, next: Partial<State>): State;\n}\n\nexport const useInstaller = (params: UseInstallerParams) => {\n const { isInstalled } = params;\n const [state, setState] = useReducer<Reducer>((prev, next) => ({ ...prev, ...next }), {\n loading: true,\n installers: [],\n installerIndex: -1,\n showLogin: false,\n skippingVersions: null\n });\n const { loading, installers, installerIndex, showLogin, skippingVersions } = state;\n\n const client = useApolloClient();\n\n const validateGraph = (graph: Graph): void => {\n const isAcyclic = alg.isAcyclic(graph);\n if (isAcyclic) {\n return;\n }\n const cycles = alg.findCycles(graph);\n const msg = [\"Your installers have circular dependencies:\"];\n cycles.forEach((cycle, index) => {\n let fromAToB = cycle.join(\" --> \");\n fromAToB = `${index + 1}. ${fromAToB}`;\n const fromBToA = cycle.reverse().join(\" <-- \");\n const padLength = fromAToB.length + 4;\n msg.push(fromAToB.padStart(padLength));\n msg.push(fromBToA.padStart(padLength));\n }, cycles);\n throw new Error(msg.join(\"\\n\"));\n };\n\n const createGraph = (installers: BaseInstaller[]): Graph => {\n const graph = new Graph();\n installers.forEach(({ plugin }) => {\n graph.setNode(plugin.name as string, plugin);\n });\n\n installers.forEach(({ plugin: pl }) => {\n if (Array.isArray(pl.dependencies)) {\n pl.dependencies.forEach(dep => {\n graph.setEdge(pl.name as string, dep);\n });\n }\n });\n\n validateGraph(graph);\n\n return graph;\n };\n\n const getInstallers = useCallback(\n (\n installers: BaseInstaller[],\n graph: Graph,\n toInstall: Installer[] = [],\n toUpgrade: Installer[] = []\n ): GetInstallersResult => {\n const leaf = graph.sinks()[0];\n if (leaf) {\n const installer = installers.find(inst => inst.plugin.name === leaf);\n if (!installer) {\n throw new Error(`Missing installer plugin \"${leaf}\"!`);\n }\n\n graph.removeNode(leaf);\n if (!installer.installed) {\n toInstall.push({\n type: \"install\",\n name: `${installer.plugin.name}-install`,\n title: installer.plugin.title,\n render: installer.plugin.render,\n secure: installer.plugin.secure,\n installed: null,\n plugin: installer.plugin\n });\n } else {\n const wbyVersion = appConfig.getKey(\n \"WEBINY_VERSION\",\n process.env.REACT_APP_WEBINY_VERSION as string\n );\n\n const upgrades = (installer.plugin.upgrades || []).filter(({ version }) => {\n // TODO use coerce\n return lte(version, wbyVersion) && gt(version, installer.installed || \"\");\n });\n\n if (upgrades.length > 1) {\n const availableUpgrades = sort(upgrades.map(u => u.version));\n const latestUpgrade = availableUpgrades[availableUpgrades.length - 1];\n setState({\n skippingVersions: {\n current: installer.installed,\n latest: latestUpgrade,\n availableUpgrades\n }\n });\n } else if (upgrades.length === 1) {\n toUpgrade.push({\n type: \"upgrade\",\n name: `${installer.plugin.name}-upgrade`,\n title: installer.plugin.title,\n secure: true,\n installed: null,\n plugin: installer.plugin,\n render({ onInstalled }) {\n const Component = upgrades[0].getComponent();\n return (\n <Loader>\n <Component onInstalled={onInstalled} />\n </Loader>\n );\n }\n });\n }\n }\n return getInstallers(installers, graph, toInstall, toUpgrade);\n }\n toInstall.sort((a, b) => {\n if (a.secure && !b.secure) {\n return 1;\n } else if (!a.secure && b.secure) {\n return -1;\n }\n return 0;\n });\n return { toInstall, toUpgrade };\n },\n []\n );\n\n const onUser = () => {\n setState({ showLogin: false });\n };\n\n /**\n * If set to anything else, it breaks in AppInstaller.tsx\n */\n const showNextInstaller = (): any => {\n const prevInstaller = installers[installerIndex];\n\n installers[installerIndex].installed = appConfig.getKey(\n \"WEBINY_VERSION\",\n process.env.REACT_APP_WEBINY_VERSION as string\n );\n setState({ installers });\n\n if (installers.length < installerIndex + 1) {\n setState({ installerIndex: undefined });\n return;\n }\n\n const nextIndex = installerIndex + 1;\n\n let showLogin = false;\n const nextInstaller = installers[nextIndex];\n\n const prevSecure = prevInstaller && prevInstaller.secure;\n const nextSecure = nextInstaller && nextInstaller.secure;\n if (!prevSecure && nextSecure) {\n showLogin = true;\n }\n setState({ installerIndex: nextIndex, showLogin });\n };\n\n useEffect(() => {\n (async () => {\n if (isInstalled) {\n return;\n }\n\n const allInstallers: BaseInstaller[] = [];\n await Promise.all(\n plugins.byType<AdminInstallationPlugin>(\"admin-installation\").map(async pl => {\n const installed = await pl.getInstalledVersion({ client });\n allInstallers.push({ plugin: pl, installed });\n })\n );\n\n const graph = createGraph(allInstallers);\n const { toInstall, toUpgrade } = getInstallers(allInstallers, graph);\n const installers = [...toUpgrade, ...toInstall];\n setState({\n installers,\n installerIndex: 0,\n loading: false,\n showLogin: toUpgrade.length > 0 || (toInstall.length > 0 && toInstall[0].secure)\n });\n })();\n }, []);\n\n const isFirstInstall = installers.some(installer => installer.installed);\n\n return {\n loading,\n installers,\n isFirstInstall,\n installer: installers[installerIndex],\n showNextInstaller,\n showLogin,\n onUser,\n skippingVersions\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useInstaller","params","isInstalled","useReducer","prev","next","loading","installers","installerIndex","showLogin","state","setState","client","useApolloClient","validateGraph","graph","isAcyclic","alg","cycles","findCycles","msg","forEach","cycle","index","fromAToB","join","fromBToA","reverse","padLength","length","push","padStart","Error","createGraph","Graph","plugin","setNode","name","pl","Array","isArray","dependencies","dep","setEdge","getInstallers","useCallback","toInstall","leaf","sinks","installer","find","inst","removeNode","installed","type","title","render","secure","sort","a","b","onUser","showNextInstaller","prevInstaller","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","undefined","nextIndex","nextInstaller","prevSecure","nextSecure","useEffect","allInstallers","Promise","all","plugins","byType","map","getInstalledVersion","isFirstInstall","some"],"sources":["useInstaller.tsx"],"sourcesContent":["import { useCallback, useReducer, useEffect } from \"react\";\nimport { Graph, alg } from \"graphlib\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminInstallationPlugin } from \"~/types\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\ninterface GetInstallersResult {\n toInstall: Installer[];\n}\n\ninterface UseInstallerParams {\n isInstalled: boolean;\n}\n\ninterface BaseInstaller {\n installed: string | null;\n plugin: AdminInstallationPlugin;\n}\n\nexport interface Installer extends BaseInstaller {\n type: \"install\";\n name: string;\n title: string;\n render: AdminInstallationPlugin[\"render\"];\n secure?: boolean;\n}\ninterface State {\n loading: boolean;\n installers: Installer[];\n installerIndex: number;\n showLogin: boolean;\n}\n\ninterface Reducer {\n (prev: State, next: Partial<State>): State;\n}\n\nexport const useInstaller = (params: UseInstallerParams) => {\n const { isInstalled } = params;\n const [state, setState] = useReducer<Reducer>((prev, next) => ({ ...prev, ...next }), {\n loading: true,\n installers: [],\n installerIndex: -1,\n showLogin: false\n });\n const { loading, installers, installerIndex, showLogin } = state;\n\n const client = useApolloClient();\n\n const validateGraph = (graph: Graph): void => {\n const isAcyclic = alg.isAcyclic(graph);\n if (isAcyclic) {\n return;\n }\n const cycles = alg.findCycles(graph);\n const msg = [\"Your installers have circular dependencies:\"];\n cycles.forEach((cycle, index) => {\n let fromAToB = cycle.join(\" --> \");\n fromAToB = `${index + 1}. ${fromAToB}`;\n const fromBToA = cycle.reverse().join(\" <-- \");\n const padLength = fromAToB.length + 4;\n msg.push(fromAToB.padStart(padLength));\n msg.push(fromBToA.padStart(padLength));\n }, cycles);\n throw new Error(msg.join(\"\\n\"));\n };\n\n const createGraph = (installers: BaseInstaller[]): Graph => {\n const graph = new Graph();\n installers.forEach(({ plugin }) => {\n graph.setNode(plugin.name as string, plugin);\n });\n\n installers.forEach(({ plugin: pl }) => {\n if (Array.isArray(pl.dependencies)) {\n pl.dependencies.forEach(dep => {\n graph.setEdge(pl.name as string, dep);\n });\n }\n });\n\n validateGraph(graph);\n\n return graph;\n };\n\n const getInstallers = useCallback(\n (\n installers: BaseInstaller[],\n graph: Graph,\n toInstall: Installer[] = []\n ): GetInstallersResult => {\n const leaf = graph.sinks()[0];\n if (leaf) {\n const installer = installers.find(inst => inst.plugin.name === leaf);\n if (!installer) {\n throw new Error(`Missing installer plugin \"${leaf}\"!`);\n }\n\n graph.removeNode(leaf);\n if (!installer.installed) {\n toInstall.push({\n type: \"install\",\n name: `${installer.plugin.name}-install`,\n title: installer.plugin.title,\n render: installer.plugin.render,\n secure: installer.plugin.secure,\n installed: null,\n plugin: installer.plugin\n });\n }\n\n return getInstallers(installers, graph, toInstall);\n }\n toInstall.sort((a, b) => {\n if (a.secure && !b.secure) {\n return 1;\n } else if (!a.secure && b.secure) {\n return -1;\n }\n return 0;\n });\n return { toInstall };\n },\n []\n );\n\n const onUser = () => {\n setState({ showLogin: false });\n };\n\n /**\n * If set to anything else, it breaks in AppInstaller.tsx\n */\n const showNextInstaller = (): any => {\n const prevInstaller = installers[installerIndex];\n\n installers[installerIndex].installed = appConfig.getKey(\n \"WEBINY_VERSION\",\n process.env.REACT_APP_WEBINY_VERSION as string\n );\n setState({ installers });\n\n if (installers.length < installerIndex + 1) {\n setState({ installerIndex: undefined });\n return;\n }\n\n const nextIndex = installerIndex + 1;\n\n let showLogin = false;\n const nextInstaller = installers[nextIndex];\n\n const prevSecure = prevInstaller && prevInstaller.secure;\n const nextSecure = nextInstaller && nextInstaller.secure;\n if (!prevSecure && nextSecure) {\n showLogin = true;\n }\n setState({ installerIndex: nextIndex, showLogin });\n };\n\n useEffect(() => {\n (async () => {\n if (isInstalled) {\n return;\n }\n\n const allInstallers: BaseInstaller[] = [];\n await Promise.all(\n plugins.byType<AdminInstallationPlugin>(\"admin-installation\").map(async pl => {\n const installed = await pl.getInstalledVersion({ client });\n allInstallers.push({ plugin: pl, installed });\n })\n );\n\n const graph = createGraph(allInstallers);\n const { toInstall } = getInstallers(allInstallers, graph);\n const installers = [...toInstall];\n setState({\n installers,\n installerIndex: 0,\n loading: false,\n showLogin: toInstall.length > 0 && toInstall[0].secure\n });\n })();\n }, []);\n\n const isFirstInstall = installers.some(installer => installer.installed);\n\n return {\n loading,\n installers,\n isFirstInstall,\n installer: installers[installerIndex],\n showNextInstaller,\n showLogin,\n onUser\n };\n};\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
10
10
  var _Typography = require("@webiny/ui/Typography");
11
- var _touch_app = require("../assets/icons/touch_app.svg");
11
+ var _touch_app = require("@material-design-icons/svg/filled/touch_app.svg");
12
12
  var EmptyViewWrapper = /*#__PURE__*/(0, _styled.default)("div", {
13
13
  target: "eu81oh40",
14
14
  label: "EmptyViewWrapper"
@@ -1 +1 @@
1
- {"version":3,"names":["EmptyViewWrapper","styled","width","height","display","flexDirection","alignItems","justifyContent","fill","marginBottom","maxWidth","textAlign","color","padding","backgroundColor","EmptyView","icon","title","action"],"sources":["EmptyView.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as TouchIcon } from \"../assets/icons/touch_app.svg\";\n\nconst EmptyViewWrapper = styled(\"div\")({\n width: \"100%\",\n height: \"80%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n\n \"& .media\": {\n \"& svg\": {\n width: 75,\n height: 75,\n fill: \"var(--mdc-theme-text-icon-on-background)\"\n },\n marginBottom: 30\n },\n \"& .title__container\": {\n maxWidth: 276,\n textAlign: \"center\",\n marginBottom: 24,\n \"& .title\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n },\n \"& .action__container\": {\n \"& .mdc-button\": {\n padding: \"0px 16px\",\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n }\n});\nexport interface EmptyViewProps {\n icon?: ReactElement;\n title: string;\n action: ReactElement | null;\n}\nconst EmptyView: React.FC<EmptyViewProps> = ({ icon = <TouchIcon />, title, action }) => {\n return (\n <EmptyViewWrapper>\n <div className={\"media\"}>{icon}</div>\n <div className=\"title__container\">\n <Typography use={\"subtitle1\"} className={\"title\"}>\n {title}\n </Typography>\n </div>\n <div className=\"action__container\">{action}</div>\n </EmptyViewWrapper>\n );\n};\n\nexport default EmptyView;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAEA,IAAMA,gBAAgB,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACnCC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,QAAQ;EACvBC,UAAU,EAAE,QAAQ;EACpBC,cAAc,EAAE,QAAQ;EAExB,UAAU,EAAE;IACR,OAAO,EAAE;MACLL,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACVK,IAAI,EAAE;IACV,CAAC;IACDC,YAAY,EAAE;EAClB,CAAC;EACD,qBAAqB,EAAE;IACnBC,QAAQ,EAAE,GAAG;IACbC,SAAS,EAAE,QAAQ;IACnBF,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE;MACRG,KAAK,EAAE;IACX;EACJ,CAAC;EACD,sBAAsB,EAAE;IACpB,eAAe,EAAE;MACbC,OAAO,EAAE,UAAU;MACnBC,eAAe,EAAE;IACrB;EACJ;AACJ,CAAC,CAAC;AAMF,IAAMC,SAAmC,GAAG,SAAtCA,SAAmC,OAAgD;EAAA,qBAA1CC,IAAI;IAAJA,IAAI,uCAAG,6BAAC,yBAAS,OAAG;IAAEC,KAAK,QAALA,KAAK;IAAEC,MAAM,QAANA,MAAM;EAC9E,oBACI,6BAAC,gBAAgB,qBACb;IAAK,SAAS,EAAE;EAAQ,GAAEF,IAAI,CAAO,eACrC;IAAK,SAAS,EAAC;EAAkB,gBAC7B,6BAAC,sBAAU;IAAC,GAAG,EAAE,WAAY;IAAC,SAAS,EAAE;EAAQ,GAC5CC,KAAK,CACG,CACX,eACN;IAAK,SAAS,EAAC;EAAmB,GAAEC,MAAM,CAAO,CAClC;AAE3B,CAAC;AAAC,eAEaH,SAAS;AAAA"}
1
+ {"version":3,"names":["EmptyViewWrapper","styled","width","height","display","flexDirection","alignItems","justifyContent","fill","marginBottom","maxWidth","textAlign","color","padding","backgroundColor","EmptyView","icon","title","action"],"sources":["EmptyView.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as TouchIcon } from \"@material-design-icons/svg/filled/touch_app.svg\";\n\nconst EmptyViewWrapper = styled(\"div\")({\n width: \"100%\",\n height: \"80%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n\n \"& .media\": {\n \"& svg\": {\n width: 75,\n height: 75,\n fill: \"var(--mdc-theme-text-icon-on-background)\"\n },\n marginBottom: 30\n },\n \"& .title__container\": {\n maxWidth: 276,\n textAlign: \"center\",\n marginBottom: 24,\n \"& .title\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n },\n \"& .action__container\": {\n \"& .mdc-button\": {\n padding: \"0px 16px\",\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n }\n});\nexport interface EmptyViewProps {\n icon?: ReactElement;\n title: string;\n action: ReactElement | null;\n}\nconst EmptyView: React.FC<EmptyViewProps> = ({ icon = <TouchIcon />, title, action }) => {\n return (\n <EmptyViewWrapper>\n <div className={\"media\"}>{icon}</div>\n <div className=\"title__container\">\n <Typography use={\"subtitle1\"} className={\"title\"}>\n {title}\n </Typography>\n </div>\n <div className=\"action__container\">{action}</div>\n </EmptyViewWrapper>\n );\n};\n\nexport default EmptyView;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAEA,IAAMA,gBAAgB,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACnCC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,QAAQ;EACvBC,UAAU,EAAE,QAAQ;EACpBC,cAAc,EAAE,QAAQ;EAExB,UAAU,EAAE;IACR,OAAO,EAAE;MACLL,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACVK,IAAI,EAAE;IACV,CAAC;IACDC,YAAY,EAAE;EAClB,CAAC;EACD,qBAAqB,EAAE;IACnBC,QAAQ,EAAE,GAAG;IACbC,SAAS,EAAE,QAAQ;IACnBF,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE;MACRG,KAAK,EAAE;IACX;EACJ,CAAC;EACD,sBAAsB,EAAE;IACpB,eAAe,EAAE;MACbC,OAAO,EAAE,UAAU;MACnBC,eAAe,EAAE;IACrB;EACJ;AACJ,CAAC,CAAC;AAMF,IAAMC,SAAmC,GAAG,SAAtCA,SAAmC,OAAgD;EAAA,qBAA1CC,IAAI;IAAJA,IAAI,uCAAG,6BAAC,yBAAS,OAAG;IAAEC,KAAK,QAALA,KAAK;IAAEC,MAAM,QAANA,MAAM;EAC9E,oBACI,6BAAC,gBAAgB,qBACb;IAAK,SAAS,EAAE;EAAQ,GAAEF,IAAI,CAAO,eACrC;IAAK,SAAS,EAAC;EAAkB,gBAC7B,6BAAC,sBAAU;IAAC,GAAG,EAAE,WAAY;IAAC,SAAS,EAAE;EAAQ,GAC5CC,KAAK,CACG,CACX,eACN;IAAK,SAAS,EAAC;EAAmB,GAAEC,MAAM,CAAO,CAClC;AAE3B,CAAC;AAAC,eAEaH,SAAS;AAAA"}
@@ -1,41 +1,55 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _react = _interopRequireDefault(require("react"));
11
+
9
12
  var _lite = _interopRequireDefault(require("mime/lite"));
13
+
10
14
  _lite.default.define({
11
15
  "image/x-icon": ["ico"]
12
16
  }, true);
17
+
13
18
  _lite.default.define({
14
19
  "image/jpg": ["jpg"]
15
20
  }, true);
21
+
16
22
  _lite.default.define({
17
23
  "image/vnd.microsoft.icon": ["ico"]
18
24
  }, true);
25
+
19
26
  var getUniqueFilePlugins = function getUniqueFilePlugins(accept) {
20
27
  var exts = {};
21
28
  accept.forEach(function (item) {
22
29
  var ext = _lite.default.getExtension(item);
30
+
23
31
  if (!ext) {
24
32
  return;
25
33
  }
34
+
26
35
  exts[ext] = true;
27
36
  });
28
37
  return Object.keys(exts);
29
38
  };
39
+
30
40
  var SupportedFileTypes = function SupportedFileTypes(_ref) {
31
41
  var accept = _ref.accept;
42
+
32
43
  if (!accept) {
33
44
  return null;
34
45
  }
46
+
35
47
  if (accept.length === 0) {
36
48
  return /*#__PURE__*/_react.default.createElement("span", null, "Showing all file extensions.");
37
49
  }
50
+
38
51
  return /*#__PURE__*/_react.default.createElement("span", null, "Showing the following file extensions: ", getUniqueFilePlugins(accept).join(", "), ".");
39
52
  };
53
+
40
54
  var _default = SupportedFileTypes;
41
55
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["mime","define","getUniqueFilePlugins","accept","exts","forEach","item","ext","getExtension","Object","keys","SupportedFileTypes","length","join"],"sources":["SupportedFileTypes.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst getUniqueFilePlugins = (accept: string[]): string[] => {\n const exts: Record<string, boolean> = {};\n accept.forEach(item => {\n const ext = mime.getExtension(item);\n if (!ext) {\n return;\n }\n exts[ext] = true;\n });\n\n return Object.keys(exts);\n};\n\nexport interface SupportedFileTypesProps {\n accept: string[];\n}\n\nconst SupportedFileTypes: React.FC<SupportedFileTypesProps> = ({ accept }) => {\n if (!accept) {\n return null;\n }\n\n if (accept.length === 0) {\n return <span>Showing all file extensions.</span>;\n }\n\n return (\n <span>\n Showing the following file extensions: {getUniqueFilePlugins(accept).join(\", \")}.\n </span>\n );\n};\n\nexport default SupportedFileTypes;\n"],"mappings":";;;;;;;AAAA;AACA;AAEAA,aAAI,CAACC,MAAM,CAAC;EAAE,cAAc,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC9CD,aAAI,CAACC,MAAM,CAAC;EAAE,WAAW,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC3CD,aAAI,CAACC,MAAM,CAAC;EAAE,0BAA0B,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAE1D,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoB,CAAIC,MAAgB,EAAe;EACzD,IAAMC,IAA6B,GAAG,CAAC,CAAC;EACxCD,MAAM,CAACE,OAAO,CAAC,UAAAC,IAAI,EAAI;IACnB,IAAMC,GAAG,GAAGP,aAAI,CAACQ,YAAY,CAACF,IAAI,CAAC;IACnC,IAAI,CAACC,GAAG,EAAE;MACN;IACJ;IACAH,IAAI,CAACG,GAAG,CAAC,GAAG,IAAI;EACpB,CAAC,CAAC;EAEF,OAAOE,MAAM,CAACC,IAAI,CAACN,IAAI,CAAC;AAC5B,CAAC;AAMD,IAAMO,kBAAqD,GAAG,SAAxDA,kBAAqD,OAAmB;EAAA,IAAbR,MAAM,QAANA,MAAM;EACnE,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,IAAIA,MAAM,CAACS,MAAM,KAAK,CAAC,EAAE;IACrB,oBAAO,2CAAM,8BAA4B,CAAO;EACpD;EAEA,oBACI,2CAAM,yCACqC,EAACV,oBAAoB,CAACC,MAAM,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC,EAAC,GACpF,CAAO;AAEf,CAAC;AAAC,eAEaF,kBAAkB;AAAA"}
1
+ {"version":3,"names":["mime","define","getUniqueFilePlugins","accept","exts","forEach","item","ext","getExtension","Object","keys","SupportedFileTypes","length","join"],"sources":["SupportedFileTypes.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst getUniqueFilePlugins = (accept: string[]): string[] => {\n const exts: Record<string, boolean> = {};\n accept.forEach(item => {\n const ext = mime.getExtension(item);\n if (!ext) {\n return;\n }\n exts[ext] = true;\n });\n\n return Object.keys(exts);\n};\n\nexport interface SupportedFileTypesProps {\n accept: string[];\n}\n\nconst SupportedFileTypes: React.FC<SupportedFileTypesProps> = ({ accept }) => {\n if (!accept) {\n return null;\n }\n\n if (accept.length === 0) {\n return <span>Showing all file extensions.</span>;\n }\n\n return (\n <span>\n Showing the following file extensions: {getUniqueFilePlugins(accept).join(\", \")}.\n </span>\n );\n};\n\nexport default SupportedFileTypes;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEAA,aAAA,CAAKC,MAAL,CAAY;EAAE,gBAAgB,CAAC,KAAD;AAAlB,CAAZ,EAAyC,IAAzC;;AACAD,aAAA,CAAKC,MAAL,CAAY;EAAE,aAAa,CAAC,KAAD;AAAf,CAAZ,EAAsC,IAAtC;;AACAD,aAAA,CAAKC,MAAL,CAAY;EAAE,4BAA4B,CAAC,KAAD;AAA9B,CAAZ,EAAqD,IAArD;;AAEA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,MAAD,EAAgC;EACzD,IAAMC,IAA6B,GAAG,EAAtC;EACAD,MAAM,CAACE,OAAP,CAAe,UAAAC,IAAI,EAAI;IACnB,IAAMC,GAAG,GAAGP,aAAA,CAAKQ,YAAL,CAAkBF,IAAlB,CAAZ;;IACA,IAAI,CAACC,GAAL,EAAU;MACN;IACH;;IACDH,IAAI,CAACG,GAAD,CAAJ,GAAY,IAAZ;EACH,CAND;EAQA,OAAOE,MAAM,CAACC,IAAP,CAAYN,IAAZ,CAAP;AACH,CAXD;;AAiBA,IAAMO,kBAAqD,GAAG,SAAxDA,kBAAwD,OAAgB;EAAA,IAAbR,MAAa,QAAbA,MAAa;;EAC1E,IAAI,CAACA,MAAL,EAAa;IACT,OAAO,IAAP;EACH;;EAED,IAAIA,MAAM,CAACS,MAAP,KAAkB,CAAtB,EAAyB;IACrB,oBAAO,2CAAM,8BAAN,CAAP;EACH;;EAED,oBACI,2CAAM,yCAAN,EAC4CV,oBAAoB,CAACC,MAAD,CAApB,CAA6BU,IAA7B,CAAkC,IAAlC,CAD5C,EACoF,GADpF,CADJ;AAKH,CAdD;;eAgBeF,kB"}
@@ -1,13 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _react = _interopRequireDefault(require("react"));
11
+
9
12
  var _styled = _interopRequireDefault(require("@emotion/styled"));
13
+
10
14
  var _Progress = require("@webiny/ui/Progress");
15
+
11
16
  var StatusWrapper = /*#__PURE__*/(0, _styled.default)("div", {
12
17
  target: "e8hlyp40",
13
18
  label: "StatusWrapper"
@@ -37,15 +42,19 @@ var UploadingLabel = /*#__PURE__*/(0, _styled.default)("div", {
37
42
  })({
38
43
  marginRight: 5
39
44
  });
45
+
40
46
  var UploadStatus = function UploadStatus(_ref) {
41
47
  var uploading = _ref.uploading;
48
+
42
49
  if (!uploading) {
43
50
  return null;
44
51
  }
52
+
45
53
  return /*#__PURE__*/_react.default.createElement(StatusWrapper, null, /*#__PURE__*/_react.default.createElement(UploadingLabel, null, "Uploading..."), /*#__PURE__*/_react.default.createElement(CircularProgressHolder, null, /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
46
54
  size: 10,
47
55
  spinnerWidth: 1
48
56
  })));
49
57
  };
58
+
50
59
  var _default = UploadStatus;
51
60
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["StatusWrapper","styled","color","position","right","bottom","marginRight","display","alignItems","CircularProgressHolder","height","width","UploadingLabel","UploadStatus","uploading"],"sources":["UploadStatus.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\n\nconst StatusWrapper = styled(\"div\")({\n color: \"var(--mdc-theme-primary)\",\n position: \"absolute\",\n right: 0,\n bottom: 10,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"> div\": {\n display: \"inline-block\"\n }\n});\n\nconst CircularProgressHolder = styled(\"div\")({\n position: \"relative\",\n height: 12,\n width: 12\n});\n\nconst UploadingLabel = styled(\"div\")({\n marginRight: 5\n});\n\nexport interface UploadStatusProps {\n uploading: boolean;\n}\nconst UploadStatus: React.FC<UploadStatusProps> = ({ uploading }) => {\n if (!uploading) {\n return null;\n }\n\n return (\n <StatusWrapper>\n <UploadingLabel>Uploading...</UploadingLabel>\n <CircularProgressHolder>\n <CircularProgress size={10} spinnerWidth={1} />\n </CircularProgressHolder>\n </StatusWrapper>\n );\n};\n\nexport default UploadStatus;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA,IAAMA,aAAa,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EAChCC,KAAK,EAAE,0BAA0B;EACjCC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,CAAC;EACRC,MAAM,EAAE,EAAE;EACVC,WAAW,EAAE,EAAE;EACfC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,QAAQ;EACpB,OAAO,EAAE;IACLD,OAAO,EAAE;EACb;AACJ,CAAC,CAAC;AAEF,IAAME,sBAAsB,oBAAGR,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACzCE,QAAQ,EAAE,UAAU;EACpBO,MAAM,EAAE,EAAE;EACVC,KAAK,EAAE;AACX,CAAC,CAAC;AAEF,IAAMC,cAAc,oBAAGX,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACjCK,WAAW,EAAE;AACjB,CAAC,CAAC;AAKF,IAAMO,YAAyC,GAAG,SAA5CA,YAAyC,OAAsB;EAAA,IAAhBC,SAAS,QAATA,SAAS;EAC1D,IAAI,CAACA,SAAS,EAAE;IACZ,OAAO,IAAI;EACf;EAEA,oBACI,6BAAC,aAAa,qBACV,6BAAC,cAAc,QAAC,cAAY,CAAiB,eAC7C,6BAAC,sBAAsB,qBACnB,6BAAC,0BAAgB;IAAC,IAAI,EAAE,EAAG;IAAC,YAAY,EAAE;EAAE,EAAG,CAC1B,CACb;AAExB,CAAC;AAAC,eAEaD,YAAY;AAAA"}
1
+ {"version":3,"names":["StatusWrapper","styled","color","position","right","bottom","marginRight","display","alignItems","CircularProgressHolder","height","width","UploadingLabel","UploadStatus","uploading"],"sources":["UploadStatus.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\n\nconst StatusWrapper = styled(\"div\")({\n color: \"var(--mdc-theme-primary)\",\n position: \"absolute\",\n right: 0,\n bottom: 10,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"> div\": {\n display: \"inline-block\"\n }\n});\n\nconst CircularProgressHolder = styled(\"div\")({\n position: \"relative\",\n height: 12,\n width: 12\n});\n\nconst UploadingLabel = styled(\"div\")({\n marginRight: 5\n});\n\nexport interface UploadStatusProps {\n uploading: boolean;\n}\nconst UploadStatus: React.FC<UploadStatusProps> = ({ uploading }) => {\n if (!uploading) {\n return null;\n }\n\n return (\n <StatusWrapper>\n <UploadingLabel>Uploading...</UploadingLabel>\n <CircularProgressHolder>\n <CircularProgress size={10} spinnerWidth={1} />\n </CircularProgressHolder>\n </StatusWrapper>\n );\n};\n\nexport default UploadStatus;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,aAAa,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAChCC,KAAK,EAAE,0BADyB;EAEhCC,QAAQ,EAAE,UAFsB;EAGhCC,KAAK,EAAE,CAHyB;EAIhCC,MAAM,EAAE,EAJwB;EAKhCC,WAAW,EAAE,EALmB;EAMhCC,OAAO,EAAE,MANuB;EAOhCC,UAAU,EAAE,QAPoB;EAQhC,SAAS;IACLD,OAAO,EAAE;EADJ;AARuB,CAAjB,CAAnB;AAaA,IAAME,sBAAsB,oBAAGR,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACzCE,QAAQ,EAAE,UAD+B;EAEzCO,MAAM,EAAE,EAFiC;EAGzCC,KAAK,EAAE;AAHkC,CAAjB,CAA5B;AAMA,IAAMC,cAAc,oBAAGX,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACjCK,WAAW,EAAE;AADoB,CAAjB,CAApB;;AAOA,IAAMO,YAAyC,GAAG,SAA5CA,YAA4C,OAAmB;EAAA,IAAhBC,SAAgB,QAAhBA,SAAgB;;EACjE,IAAI,CAACA,SAAL,EAAgB;IACZ,OAAO,IAAP;EACH;;EAED,oBACI,6BAAC,aAAD,qBACI,6BAAC,cAAD,QAAgB,cAAhB,CADJ,eAEI,6BAAC,sBAAD,qBACI,6BAAC,0BAAD;IAAkB,IAAI,EAAE,EAAxB;IAA4B,YAAY,EAAE;EAA1C,EADJ,CAFJ,CADJ;AAQH,CAbD;;eAeeD,Y"}
@@ -1,24 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _react = _interopRequireDefault(require("react"));
11
+
9
12
  var _lite = _interopRequireDefault(require("mime/lite"));
13
+
10
14
  var _styled = _interopRequireDefault(require("@emotion/styled"));
15
+
11
16
  var _SupportedFileTypes = _interopRequireDefault(require("./BottomInfoBar/SupportedFileTypes"));
17
+
12
18
  var _UploadStatus = _interopRequireDefault(require("./BottomInfoBar/UploadStatus"));
19
+
13
20
  _lite.default.define({
14
21
  "image/x-icon": ["ico"]
15
22
  }, true);
23
+
16
24
  _lite.default.define({
17
25
  "image/jpg": ["jpg"]
18
26
  }, true);
27
+
19
28
  _lite.default.define({
20
29
  "image/vnd.microsoft.icon": ["ico"]
21
30
  }, true);
31
+
22
32
  var BottomInfoBarWrapper = /*#__PURE__*/(0, _styled.default)("div", {
23
33
  target: "el4b0yq0",
24
34
  label: "BottomInfoBarWrapper"
@@ -41,8 +51,10 @@ var BottomInfoBarWrapper = /*#__PURE__*/(0, _styled.default)("div", {
41
51
  width: "100%"
42
52
  }
43
53
  });
54
+
44
55
  var BottomInfoBar = function BottomInfoBar(props) {
45
56
  return /*#__PURE__*/_react.default.createElement(BottomInfoBarWrapper, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_SupportedFileTypes.default, props), /*#__PURE__*/_react.default.createElement(_UploadStatus.default, props)));
46
57
  };
58
+
47
59
  var _default = BottomInfoBar;
48
60
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["mime","define","BottomInfoBarWrapper","styled","fontSize","position","bottom","height","color","borderTop","backgroundColor","width","transform","overflow","display","alignItems","zIndex","padding","BottomInfoBar","props"],"sources":["BottomInfoBar.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\nimport styled from \"@emotion/styled\";\nimport SupportedFileTypes, { SupportedFileTypesProps } from \"./BottomInfoBar/SupportedFileTypes\";\nimport UploadStatus, { UploadStatusProps } from \"./BottomInfoBar/UploadStatus\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst BottomInfoBarWrapper = styled(\"div\")({\n fontSize: \"0.8rem\",\n position: \"sticky\",\n bottom: 0,\n height: 30,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n width: \"100%\",\n transform: \"translateZ(0)\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n zIndex: 1,\n \"> div\": {\n padding: \"0 10px\",\n width: \"100%\"\n }\n});\n\nconst BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps> = props => {\n return (\n <BottomInfoBarWrapper>\n <div>\n <SupportedFileTypes {...props} />\n <UploadStatus {...props} />\n </div>\n </BottomInfoBarWrapper>\n );\n};\n\nexport default BottomInfoBar;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAEAA,aAAI,CAACC,MAAM,CAAC;EAAE,cAAc,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC9CD,aAAI,CAACC,MAAM,CAAC;EAAE,WAAW,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC3CD,aAAI,CAACC,MAAM,CAAC;EAAE,0BAA0B,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAE1D,IAAMC,oBAAoB,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACvCC,QAAQ,EAAE,QAAQ;EAClBC,QAAQ,EAAE,QAAQ;EAClBC,MAAM,EAAE,CAAC;EACTC,MAAM,EAAE,EAAE;EACVC,KAAK,EAAE,+CAA+C;EACtDC,SAAS,EAAE,0CAA0C;EACrDC,eAAe,EAAE,0BAA0B;EAC3CC,KAAK,EAAE,MAAM;EACbC,SAAS,EAAE,eAAe;EAC1BC,QAAQ,EAAE,QAAQ;EAClBC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,QAAQ;EACpBC,MAAM,EAAE,CAAC;EACT,OAAO,EAAE;IACLC,OAAO,EAAE,QAAQ;IACjBN,KAAK,EAAE;EACX;AACJ,CAAC,CAAC;AAEF,IAAMO,aAAoE,GAAG,SAAvEA,aAAoE,CAAGC,KAAK,EAAI;EAClF,oBACI,6BAAC,oBAAoB,qBACjB,uDACI,6BAAC,2BAAkB,EAAKA,KAAK,CAAI,eACjC,6BAAC,qBAAY,EAAKA,KAAK,CAAI,CACzB,CACa;AAE/B,CAAC;AAAC,eAEaD,aAAa;AAAA"}
1
+ {"version":3,"names":["mime","define","BottomInfoBarWrapper","styled","fontSize","position","bottom","height","color","borderTop","backgroundColor","width","transform","overflow","display","alignItems","zIndex","padding","BottomInfoBar","props"],"sources":["BottomInfoBar.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\nimport styled from \"@emotion/styled\";\nimport SupportedFileTypes, { SupportedFileTypesProps } from \"./BottomInfoBar/SupportedFileTypes\";\nimport UploadStatus, { UploadStatusProps } from \"./BottomInfoBar/UploadStatus\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst BottomInfoBarWrapper = styled(\"div\")({\n fontSize: \"0.8rem\",\n position: \"sticky\",\n bottom: 0,\n height: 30,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n width: \"100%\",\n transform: \"translateZ(0)\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n zIndex: 1,\n \"> div\": {\n padding: \"0 10px\",\n width: \"100%\"\n }\n});\n\nconst BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps> = props => {\n return (\n <BottomInfoBarWrapper>\n <div>\n <SupportedFileTypes {...props} />\n <UploadStatus {...props} />\n </div>\n </BottomInfoBarWrapper>\n );\n};\n\nexport default BottomInfoBar;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEAA,aAAA,CAAKC,MAAL,CAAY;EAAE,gBAAgB,CAAC,KAAD;AAAlB,CAAZ,EAAyC,IAAzC;;AACAD,aAAA,CAAKC,MAAL,CAAY;EAAE,aAAa,CAAC,KAAD;AAAf,CAAZ,EAAsC,IAAtC;;AACAD,aAAA,CAAKC,MAAL,CAAY;EAAE,4BAA4B,CAAC,KAAD;AAA9B,CAAZ,EAAqD,IAArD;;AAEA,IAAMC,oBAAoB,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACvCC,QAAQ,EAAE,QAD6B;EAEvCC,QAAQ,EAAE,QAF6B;EAGvCC,MAAM,EAAE,CAH+B;EAIvCC,MAAM,EAAE,EAJ+B;EAKvCC,KAAK,EAAE,+CALgC;EAMvCC,SAAS,EAAE,0CAN4B;EAOvCC,eAAe,EAAE,0BAPsB;EAQvCC,KAAK,EAAE,MARgC;EASvCC,SAAS,EAAE,eAT4B;EAUvCC,QAAQ,EAAE,QAV6B;EAWvCC,OAAO,EAAE,MAX8B;EAYvCC,UAAU,EAAE,QAZ2B;EAavCC,MAAM,EAAE,CAb+B;EAcvC,SAAS;IACLC,OAAO,EAAE,QADJ;IAELN,KAAK,EAAE;EAFF;AAd8B,CAAjB,CAA1B;;AAoBA,IAAMO,aAAoE,GAAG,SAAvEA,aAAuE,CAAAC,KAAK,EAAI;EAClF,oBACI,6BAAC,oBAAD,qBACI,uDACI,6BAAC,2BAAD,EAAwBA,KAAxB,CADJ,eAEI,6BAAC,qBAAD,EAAkBA,KAAlB,CAFJ,CADJ,CADJ;AAQH,CATD;;eAWeD,a"}
@@ -1,15 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _react = _interopRequireDefault(require("react"));
11
+
9
12
  var _emotion = require("emotion");
13
+
10
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
+
11
16
  var _Icon = require("@webiny/ui/Icon");
17
+
12
18
  var _roundCloud_upload24px = require("./icons/round-cloud_upload-24px.svg");
19
+
13
20
  var styles = /*#__PURE__*/(0, _emotion.css)({
14
21
  margin: "0 auto",
15
22
  paddingTop: 0,
@@ -47,11 +54,12 @@ var styles = /*#__PURE__*/(0, _emotion.css)({
47
54
  }
48
55
  }
49
56
  }, "label:styles;");
57
+
50
58
  var DropFilesHere = function DropFilesHere(_ref) {
51
59
  var onDrop = _ref.onDrop,
52
- onDragLeave = _ref.onDragLeave,
53
- empty = _ref.empty,
54
- onClick = _ref.onClick;
60
+ onDragLeave = _ref.onDragLeave,
61
+ empty = _ref.empty,
62
+ onClick = _ref.onClick;
55
63
  return /*#__PURE__*/_react.default.createElement("div", {
56
64
  className: (0, _classnames.default)(styles, {
57
65
  empty: empty
@@ -63,5 +71,6 @@ var DropFilesHere = function DropFilesHere(_ref) {
63
71
  icon: /*#__PURE__*/_react.default.createElement(_roundCloud_upload24px.ReactComponent, null)
64
72
  }), /*#__PURE__*/_react.default.createElement("div", null, "Drop files here"))));
65
73
  };
74
+
66
75
  var _default = DropFilesHere;
67
76
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["styles","css","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","color","display","DropFilesHere","onDrop","onDragLeave","empty","onClick","classNames"],"sources":["DropFilesHere.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nimport { Icon } from \"@webiny/ui/Icon\";\n\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"var(--mdc-theme-text-hint-on-light)\",\n \"&.empty\": {\n backgroundColor: \"transparent\",\n \"> div\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n },\n \"> div\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-background)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"> div\": {\n position: \"absolute\",\n top: 90,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: 100,\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n }\n }\n }\n});\n\nexport interface DropFilesHereProps {\n onDragLeave?: (event?: React.DragEvent<HTMLElement>) => void;\n onDrop?: (event?: React.DragEvent<HTMLElement>) => void;\n empty?: boolean;\n onClick?: (event?: React.MouseEvent<HTMLElement>) => void;\n}\n\nconst DropFilesHere: React.FC<DropFilesHereProps> = ({ onDrop, onDragLeave, empty, onClick }) => {\n return (\n <div\n className={classNames(styles, { empty })}\n onDrop={onDrop}\n onClick={onClick}\n onDragLeave={onDragLeave}\n >\n <div>\n <div>\n <Icon icon={<UploadIcon />} />\n <div>Drop files here</div>\n </div>\n </div>\n </div>\n );\n};\nexport default DropFilesHere;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAEA;AAEA,IAAMA,MAAM,gBAAG,IAAAC,YAAG,EAAC;EACfC,MAAM,EAAE,QAAQ;EAChBC,UAAU,EAAE,CAAC;EACbC,MAAM,EAAE,MAAM;EACdC,MAAM,EAAE,CAAC;EACTC,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,UAAU;EACpBC,eAAe,EAAE,qCAAqC;EACtD,SAAS,EAAE;IACPA,eAAe,EAAE,aAAa;IAC9B,OAAO,EAAE;MACLA,eAAe,EAAE;IACrB;EACJ,CAAC;EACD,OAAO,EAAE;IACLC,SAAS,EAAE,QAAQ;IACnBH,KAAK,EAAE,GAAG;IACVF,MAAM,EAAE,GAAG;IACXI,eAAe,EAAE,6BAA6B;IAC9CE,YAAY,EAAE,KAAK;IACnBH,QAAQ,EAAE,UAAU;IACpBI,IAAI,EAAE,KAAK;IACXC,GAAG,EAAE,KAAK;IACVC,SAAS,EAAE,oCAAoC;IAC/C,OAAO,EAAE;MACLN,QAAQ,EAAE,UAAU;MACpBK,GAAG,EAAE,EAAE;MACPN,KAAK,EAAE,GAAG;MACVQ,KAAK,EAAE,6BAA6B;MACpC,sBAAsB,EAAE;QACpBR,KAAK,EAAE,GAAG;QACVS,OAAO,EAAE,cAAc;QACvBD,KAAK,EAAE;MACX;IACJ;EACJ;AACJ,CAAC,kBAAC;AASF,IAAME,aAA2C,GAAG,SAA9CA,aAA2C,OAAgD;EAAA,IAA1CC,MAAM,QAANA,MAAM;IAAEC,WAAW,QAAXA,WAAW;IAAEC,KAAK,QAALA,KAAK;IAAEC,OAAO,QAAPA,OAAO;EACtF,oBACI;IACI,SAAS,EAAE,IAAAC,mBAAU,EAACrB,MAAM,EAAE;MAAEmB,KAAK,EAALA;IAAM,CAAC,CAAE;IACzC,MAAM,EAAEF,MAAO;IACf,OAAO,EAAEG,OAAQ;IACjB,WAAW,EAAEF;EAAY,gBAEzB,uDACI,uDACI,6BAAC,UAAI;IAAC,IAAI,eAAE,6BAAC,qCAAU;EAAI,EAAG,eAC9B,0CAAK,iBAAe,CAAM,CACxB,CACJ,CACJ;AAEd,CAAC;AAAC,eACaF,aAAa;AAAA"}
1
+ {"version":3,"names":["styles","css","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","color","display","DropFilesHere","onDrop","onDragLeave","empty","onClick","classNames"],"sources":["DropFilesHere.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nimport { Icon } from \"@webiny/ui/Icon\";\n\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"var(--mdc-theme-text-hint-on-light)\",\n \"&.empty\": {\n backgroundColor: \"transparent\",\n \"> div\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n },\n \"> div\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-background)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"> div\": {\n position: \"absolute\",\n top: 90,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: 100,\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n }\n }\n }\n});\n\nexport interface DropFilesHereProps {\n onDragLeave?: (event?: React.DragEvent<HTMLElement>) => void;\n onDrop?: (event?: React.DragEvent<HTMLElement>) => void;\n empty?: boolean;\n onClick?: (event?: React.MouseEvent<HTMLElement>) => void;\n}\n\nconst DropFilesHere: React.FC<DropFilesHereProps> = ({ onDrop, onDragLeave, empty, onClick }) => {\n return (\n <div\n className={classNames(styles, { empty })}\n onDrop={onDrop}\n onClick={onClick}\n onDragLeave={onDragLeave}\n >\n <div>\n <div>\n <Icon icon={<UploadIcon />} />\n <div>Drop files here</div>\n </div>\n </div>\n </div>\n );\n};\nexport default DropFilesHere;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AAEA,IAAMA,MAAM,gBAAG,IAAAC,YAAA,EAAI;EACfC,MAAM,EAAE,QADO;EAEfC,UAAU,EAAE,CAFG;EAGfC,MAAM,EAAE,MAHO;EAIfC,MAAM,EAAE,CAJO;EAKfC,KAAK,EAAE,MALQ;EAMfC,QAAQ,EAAE,UANK;EAOfC,eAAe,EAAE,qCAPF;EAQf,WAAW;IACPA,eAAe,EAAE,aADV;IAEP,SAAS;MACLA,eAAe,EAAE;IADZ;EAFF,CARI;EAcf,SAAS;IACLC,SAAS,EAAE,QADN;IAELH,KAAK,EAAE,GAFF;IAGLF,MAAM,EAAE,GAHH;IAILI,eAAe,EAAE,6BAJZ;IAKLE,YAAY,EAAE,KALT;IAMLH,QAAQ,EAAE,UANL;IAOLI,IAAI,EAAE,KAPD;IAQLC,GAAG,EAAE,KARA;IASLC,SAAS,EAAE,oCATN;IAUL,SAAS;MACLN,QAAQ,EAAE,UADL;MAELK,GAAG,EAAE,EAFA;MAGLN,KAAK,EAAE,GAHF;MAILQ,KAAK,EAAE,6BAJF;MAKL,wBAAwB;QACpBR,KAAK,EAAE,GADa;QAEpBS,OAAO,EAAE,cAFW;QAGpBD,KAAK,EAAE;MAHa;IALnB;EAVJ;AAdM,CAAJ,kBAAf;;AA6CA,IAAME,aAA2C,GAAG,SAA9CA,aAA8C,OAA6C;EAAA,IAA1CC,MAA0C,QAA1CA,MAA0C;EAAA,IAAlCC,WAAkC,QAAlCA,WAAkC;EAAA,IAArBC,KAAqB,QAArBA,KAAqB;EAAA,IAAdC,OAAc,QAAdA,OAAc;EAC7F,oBACI;IACI,SAAS,EAAE,IAAAC,mBAAA,EAAWrB,MAAX,EAAmB;MAAEmB,KAAK,EAALA;IAAF,CAAnB,CADf;IAEI,MAAM,EAAEF,MAFZ;IAGI,OAAO,EAAEG,OAHb;IAII,WAAW,EAAEF;EAJjB,gBAMI,uDACI,uDACI,6BAAC,UAAD;IAAM,IAAI,eAAE,6BAAC,qCAAD;EAAZ,EADJ,eAEI,0CAAK,iBAAL,CAFJ,CADJ,CANJ,CADJ;AAeH,CAhBD;;eAiBeF,a"}