@webiny/app-admin 5.34.8 → 5.35.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) 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/Admin.js +1 -15
  16. package/base/Admin.js.map +1 -1
  17. package/base/Base.js +6 -44
  18. package/base/Base.js.map +1 -1
  19. package/base/plugins/AddGraphQLQuerySelection.js +5 -9
  20. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
  21. package/base/providers/ApolloProvider.js +0 -5
  22. package/base/providers/ApolloProvider.js.map +1 -1
  23. package/base/providers/TelemetryProvider.js +1 -7
  24. package/base/providers/TelemetryProvider.js.map +1 -1
  25. package/base/providers/UiStateProvider.js +0 -5
  26. package/base/providers/UiStateProvider.js.map +1 -1
  27. package/base/providers/ViewCompositionProvider.js +3 -16
  28. package/base/providers/ViewCompositionProvider.js.map +1 -1
  29. package/base/ui/Brand.js +0 -4
  30. package/base/ui/Brand.js.map +1 -1
  31. package/base/ui/CenteredView.js +2 -7
  32. package/base/ui/CenteredView.js.map +1 -1
  33. package/base/ui/Dashboard.js +0 -4
  34. package/base/ui/Dashboard.js.map +1 -1
  35. package/base/ui/FileManager.d.ts +67 -0
  36. package/base/ui/FileManager.js +61 -0
  37. package/base/ui/FileManager.js.map +1 -0
  38. package/base/ui/Layout.js +1 -6
  39. package/base/ui/Layout.js.map +1 -1
  40. package/base/ui/LocaleSelector.js +0 -4
  41. package/base/ui/LocaleSelector.js.map +1 -1
  42. package/base/ui/LoginScreen.js +0 -6
  43. package/base/ui/LoginScreen.js.map +1 -1
  44. package/base/ui/Logo.js +0 -6
  45. package/base/ui/Logo.js.map +1 -1
  46. package/base/ui/Menu.js +2 -31
  47. package/base/ui/Menu.js.map +1 -1
  48. package/base/ui/Navigation.js +11 -44
  49. package/base/ui/Navigation.js.map +1 -1
  50. package/base/ui/NotFound.js +0 -4
  51. package/base/ui/NotFound.js.map +1 -1
  52. package/base/ui/Search.js +5 -23
  53. package/base/ui/Search.js.map +1 -1
  54. package/base/ui/Tags.js +1 -8
  55. package/base/ui/Tags.js.map +1 -1
  56. package/base/ui/UserMenu.js +5 -29
  57. package/base/ui/UserMenu.js.map +1 -1
  58. package/components/AdminLayout.js +1 -6
  59. package/components/AdminLayout.js.map +1 -1
  60. package/components/AppInstaller/AppInstaller.js +18 -84
  61. package/components/AppInstaller/AppInstaller.js.map +1 -1
  62. package/components/AppInstaller/Sidebar.js +11 -44
  63. package/components/AppInstaller/Sidebar.js.map +1 -1
  64. package/components/AppInstaller/index.js +0 -7
  65. package/components/AppInstaller/index.js.map +1 -1
  66. package/components/AppInstaller/styled.d.ts +17 -5
  67. package/components/AppInstaller/styled.js +0 -4
  68. package/components/AppInstaller/styled.js.map +1 -1
  69. package/components/AppInstaller/useInstaller.d.ts +1 -7
  70. package/components/AppInstaller/useInstaller.js +72 -183
  71. package/components/AppInstaller/useInstaller.js.map +1 -1
  72. package/components/EmptyView.js +4 -12
  73. package/components/EmptyView.js.map +1 -1
  74. package/components/FloatingActionButton.js +2 -8
  75. package/components/FloatingActionButton.js.map +1 -1
  76. package/components/MultiImageUpload.js +1 -10
  77. package/components/MultiImageUpload.js.map +1 -1
  78. package/components/OverlayLayout/OverlayLayout.js +9 -38
  79. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  80. package/components/OverlayLayout/index.js +0 -2
  81. package/components/OverlayLayout/index.js.map +1 -1
  82. package/components/Permissions/Permissions.d.ts +2 -0
  83. package/components/Permissions/Permissions.js +25 -27
  84. package/components/Permissions/Permissions.js.map +1 -1
  85. package/components/Permissions/StyledComponents.js +0 -7
  86. package/components/Permissions/StyledComponents.js.map +1 -1
  87. package/components/Permissions/index.js +0 -3
  88. package/components/Permissions/index.js.map +1 -1
  89. package/components/RichTextEditor/RichTextEditor.js +0 -7
  90. package/components/RichTextEditor/RichTextEditor.js.map +1 -1
  91. package/components/RichTextEditor/index.js +0 -2
  92. package/components/RichTextEditor/index.js.map +1 -1
  93. package/components/RichTextEditor/tools/header/index.js +62 -102
  94. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  95. package/components/RichTextEditor/tools/image/index.js +15 -36
  96. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  97. package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
  98. package/components/RichTextEditor/tools/image/tunes.js +5 -22
  99. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  100. package/components/RichTextEditor/tools/image/ui.js +16 -39
  101. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  102. package/components/RichTextEditor/tools/paragraph/index.js +55 -81
  103. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  104. package/components/RichTextEditor/tools/textColor/index.js +15 -41
  105. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  106. package/components/RichTextEditor/tools/utils.js +0 -2
  107. package/components/RichTextEditor/tools/utils.js.map +1 -1
  108. package/components/Routes.js +6 -13
  109. package/components/Routes.js.map +1 -1
  110. package/components/SearchUI.d.ts +1 -0
  111. package/components/SearchUI.js +14 -14
  112. package/components/SearchUI.js.map +1 -1
  113. package/components/SimpleForm/SimpleForm.js +3 -32
  114. package/components/SimpleForm/SimpleForm.js.map +1 -1
  115. package/components/SimpleForm/index.js +0 -1
  116. package/components/SimpleForm/index.js.map +1 -1
  117. package/components/SimpleUI/InputField.d.ts +2 -0
  118. package/components/SimpleUI/InputField.js +16 -30
  119. package/components/SimpleUI/InputField.js.map +1 -1
  120. package/components/SingleImageUpload.d.ts +1 -1
  121. package/components/SingleImageUpload.js +14 -30
  122. package/components/SingleImageUpload.js.map +1 -1
  123. package/components/SplitView/SplitView.js +1 -20
  124. package/components/SplitView/SplitView.js.map +1 -1
  125. package/components/SplitView/index.js +0 -1
  126. package/components/SplitView/index.js.map +1 -1
  127. package/components/index.d.ts +1 -1
  128. package/components/index.js +1 -2
  129. package/components/index.js.map +1 -1
  130. package/hooks/useConfirmationDialog.js +6 -18
  131. package/hooks/useConfirmationDialog.js.map +1 -1
  132. package/hooks/useDialog.js +0 -5
  133. package/hooks/useDialog.js.map +1 -1
  134. package/hooks/useSnackbar.js +0 -5
  135. package/hooks/useSnackbar.js.map +1 -1
  136. package/index.d.ts +2 -3
  137. package/index.js +1 -61
  138. package/index.js.map +1 -1
  139. package/package.json +22 -32
  140. package/plugins/MenuPlugin.js +0 -15
  141. package/plugins/MenuPlugin.js.map +1 -1
  142. package/plugins/PermissionRendererPlugin.js +0 -15
  143. package/plugins/PermissionRendererPlugin.js.map +1 -1
  144. package/plugins/globalSearch/SearchBar.js +5 -53
  145. package/plugins/globalSearch/SearchBar.js.map +1 -1
  146. package/plugins/globalSearch/SearchBarDropdown.js +15 -33
  147. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  148. package/plugins/globalSearch/index.js.map +1 -1
  149. package/plugins/globalSearch/styled.d.ts +13 -4
  150. package/plugins/globalSearch/styled.js +1 -5
  151. package/plugins/globalSearch/styled.js.map +1 -1
  152. package/plugins/uiLayoutRenderer/index.js +2 -16
  153. package/plugins/uiLayoutRenderer/index.js.map +1 -1
  154. package/styles/theme.scss +31 -1
  155. package/types.d.ts +23 -27
  156. package/types.js.map +1 -1
  157. package/ui/UIElement.js +0 -1
  158. package/ui/UIElement.js.map +1 -1
  159. package/ui/UILayout.js +0 -1
  160. package/ui/UILayout.js.map +1 -1
  161. package/ui/UIRenderer.js +0 -1
  162. package/ui/UIRenderer.js.map +1 -1
  163. package/ui/UIView.js +0 -1
  164. package/ui/UIView.js.map +1 -1
  165. package/ui/elements/AccordionElement.js +2 -28
  166. package/ui/elements/AccordionElement.js.map +1 -1
  167. package/ui/elements/ButtonElement.js +0 -19
  168. package/ui/elements/ButtonElement.js.map +1 -1
  169. package/ui/elements/ButtonGroupElement.js +0 -19
  170. package/ui/elements/ButtonGroupElement.js.map +1 -1
  171. package/ui/elements/GenericElement.js +0 -2
  172. package/ui/elements/GenericElement.js.map +1 -1
  173. package/ui/elements/LabelElement.js +0 -14
  174. package/ui/elements/LabelElement.js.map +1 -1
  175. package/ui/elements/NavigationMenuElement.js +3 -36
  176. package/ui/elements/NavigationMenuElement.js.map +1 -1
  177. package/ui/elements/PanelElement.js +0 -11
  178. package/ui/elements/PanelElement.js.map +1 -1
  179. package/ui/elements/PlaceholderElement.js +0 -11
  180. package/ui/elements/PlaceholderElement.js.map +1 -1
  181. package/ui/elements/SmallButtonElement.js +0 -19
  182. package/ui/elements/SmallButtonElement.js.map +1 -1
  183. package/ui/elements/TypographyElement.js +0 -19
  184. package/ui/elements/TypographyElement.js.map +1 -1
  185. package/ui/elements/ViewElement.js +0 -2
  186. package/ui/elements/ViewElement.js.map +1 -1
  187. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +0 -16
  188. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  189. package/ui/elements/form/DynamicFieldsetElement.js +11 -34
  190. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  191. package/ui/elements/form/FileManagerElement/EmptyStateElement.js +0 -15
  192. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
  193. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +5 -27
  194. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  195. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +4 -23
  196. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  197. package/ui/elements/form/FileManagerElement/styled.d.ts +23 -16
  198. package/ui/elements/form/FileManagerElement/styled.js +0 -5
  199. package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
  200. package/ui/elements/form/FileManagerElement.js +0 -20
  201. package/ui/elements/form/FileManagerElement.js.map +1 -1
  202. package/ui/elements/form/FormElement.js +0 -21
  203. package/ui/elements/form/FormElement.js.map +1 -1
  204. package/ui/elements/form/FormFieldElement.js +0 -33
  205. package/ui/elements/form/FormFieldElement.js.map +1 -1
  206. package/ui/elements/form/HiddenElement.js +0 -17
  207. package/ui/elements/form/HiddenElement.js.map +1 -1
  208. package/ui/elements/form/InputElement.js +0 -18
  209. package/ui/elements/form/InputElement.js.map +1 -1
  210. package/ui/elements/form/PasswordElement.js +0 -15
  211. package/ui/elements/form/PasswordElement.js.map +1 -1
  212. package/ui/elements/form/SelectElement.js +1 -19
  213. package/ui/elements/form/SelectElement.js.map +1 -1
  214. package/ui/elements/form/TextareaElement.js +0 -17
  215. package/ui/elements/form/TextareaElement.js.map +1 -1
  216. package/ui/views/AdminView/ContentElement.js +1 -25
  217. package/ui/views/AdminView/ContentElement.js.map +1 -1
  218. package/ui/views/AdminView/HeaderElement.js +0 -40
  219. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  220. package/ui/views/AdminView/HeaderSectionCenterElement.js +0 -20
  221. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  222. package/ui/views/AdminView/HeaderSectionLeftElement.js +0 -20
  223. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  224. package/ui/views/AdminView/HeaderSectionRightElement.js +0 -20
  225. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  226. package/ui/views/AdminView/components/Dialog.js +10 -21
  227. package/ui/views/AdminView/components/Dialog.js.map +1 -1
  228. package/ui/views/AdminView/components/Hamburger.js +2 -10
  229. package/ui/views/AdminView/components/Hamburger.js.map +1 -1
  230. package/ui/views/AdminView/components/Snackbar.js +0 -9
  231. package/ui/views/AdminView/components/Snackbar.js.map +1 -1
  232. package/ui/views/FormView/FormContainerElement.js +0 -21
  233. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  234. package/ui/views/FormView/FormContentElement.js +0 -11
  235. package/ui/views/FormView/FormContentElement.js.map +1 -1
  236. package/ui/views/FormView/FormFooterElement.js +0 -19
  237. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  238. package/ui/views/FormView/FormHeaderElement.js +2 -24
  239. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  240. package/ui/views/FormView.js +0 -41
  241. package/ui/views/FormView.js.map +1 -1
  242. package/ui/views/OverlayView/ContentElement.js +0 -19
  243. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  244. package/ui/views/OverlayView/HeaderElement.js +4 -26
  245. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  246. package/ui/views/OverlayView/HeaderTitleElement.js +0 -22
  247. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  248. package/ui/views/OverlayView/useOverlayView.js +3 -13
  249. package/ui/views/OverlayView/useOverlayView.js.map +1 -1
  250. package/ui/views/OverlayView.js +4 -38
  251. package/ui/views/OverlayView.js.map +1 -1
  252. package/ui/views/SplitView/SplitViewPanelElement.js +2 -22
  253. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  254. package/ui/views/SplitView.js +0 -40
  255. package/ui/views/SplitView.js.map +1 -1
@@ -1,84 +1,44 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
4
  Object.defineProperty(exports, "__esModule", {
8
5
  value: true
9
6
  });
10
7
  exports.useInstaller = void 0;
11
-
12
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
9
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
15
-
16
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
19
-
20
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
21
-
22
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
23
-
24
- var _react = _interopRequireWildcard(require("react"));
25
-
13
+ var _react = require("react");
26
14
  var _graphlib = require("graphlib");
27
-
28
- var _semver = require("semver");
29
-
30
15
  var _reactHooks = require("@apollo/react-hooks");
31
-
32
16
  var _plugins = require("@webiny/plugins");
33
-
34
- var _Progress = require("@webiny/ui/Progress");
35
-
36
17
  var _config = require("@webiny/app/config");
37
-
38
- var _excluded = ["children"];
39
-
40
- var Loader = function Loader(_ref) {
41
- var children = _ref.children,
42
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
43
- return /*#__PURE__*/_react.default.createElement(_react.Suspense, {
44
- fallback: /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
45
- label: "Loading..."
46
- })
47
- }, /*#__PURE__*/_react.default.cloneElement(children, props));
48
- };
49
-
50
18
  var useInstaller = function useInstaller(params) {
51
19
  var isInstalled = params.isInstalled;
52
-
53
20
  var _useReducer = (0, _react.useReducer)(function (prev, next) {
54
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prev), next);
55
- }, {
56
- loading: true,
57
- installers: [],
58
- installerIndex: -1,
59
- showLogin: false,
60
- skippingVersions: null
61
- }),
62
- _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
63
- state = _useReducer2[0],
64
- setState = _useReducer2[1];
65
-
21
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prev), next);
22
+ }, {
23
+ loading: true,
24
+ installers: [],
25
+ installerIndex: -1,
26
+ showLogin: false
27
+ }),
28
+ _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
29
+ state = _useReducer2[0],
30
+ setState = _useReducer2[1];
66
31
  var loading = state.loading,
67
- installers = state.installers,
68
- installerIndex = state.installerIndex,
69
- showLogin = state.showLogin,
70
- skippingVersions = state.skippingVersions;
32
+ installers = state.installers,
33
+ installerIndex = state.installerIndex,
34
+ showLogin = state.showLogin;
71
35
  var client = (0, _reactHooks.useApolloClient)();
72
-
73
36
  var validateGraph = function validateGraph(graph) {
74
37
  var isAcyclic = _graphlib.alg.isAcyclic(graph);
75
-
76
38
  if (isAcyclic) {
77
39
  return;
78
40
  }
79
-
80
41
  var cycles = _graphlib.alg.findCycles(graph);
81
-
82
42
  var msg = ["Your installers have circular dependencies:"];
83
43
  cycles.forEach(function (cycle, index) {
84
44
  var fromAToB = cycle.join(" --> ");
@@ -90,16 +50,14 @@ var useInstaller = function useInstaller(params) {
90
50
  }, cycles);
91
51
  throw new Error(msg.join("\n"));
92
52
  };
93
-
94
53
  var createGraph = function createGraph(installers) {
95
54
  var graph = new _graphlib.Graph();
96
- installers.forEach(function (_ref2) {
97
- var plugin = _ref2.plugin;
55
+ installers.forEach(function (_ref) {
56
+ var plugin = _ref.plugin;
98
57
  graph.setNode(plugin.name, plugin);
99
58
  });
100
- installers.forEach(function (_ref3) {
101
- var pl = _ref3.plugin;
102
-
59
+ installers.forEach(function (_ref2) {
60
+ var pl = _ref2.plugin;
103
61
  if (Array.isArray(pl.dependencies)) {
104
62
  pl.dependencies.forEach(function (dep) {
105
63
  graph.setEdge(pl.name, dep);
@@ -109,23 +67,17 @@ var useInstaller = function useInstaller(params) {
109
67
  validateGraph(graph);
110
68
  return graph;
111
69
  };
112
-
113
70
  var getInstallers = (0, _react.useCallback)(function (installers, graph) {
114
71
  var toInstall = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
115
- var toUpgrade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
116
72
  var leaf = graph.sinks()[0];
117
-
118
73
  if (leaf) {
119
74
  var installer = installers.find(function (inst) {
120
75
  return inst.plugin.name === leaf;
121
76
  });
122
-
123
77
  if (!installer) {
124
78
  throw new Error("Missing installer plugin \"".concat(leaf, "\"!"));
125
79
  }
126
-
127
80
  graph.removeNode(leaf);
128
-
129
81
  if (!installer.installed) {
130
82
  toInstall.push({
131
83
  type: "install",
@@ -136,169 +88,108 @@ var useInstaller = function useInstaller(params) {
136
88
  installed: null,
137
89
  plugin: installer.plugin
138
90
  });
139
- } else {
140
- var wbyVersion = _config.config.getKey("WEBINY_VERSION", process.env.REACT_APP_WEBINY_VERSION);
141
-
142
- var upgrades = (installer.plugin.upgrades || []).filter(function (_ref4) {
143
- var version = _ref4.version;
144
- // TODO use coerce
145
- return (0, _semver.lte)(version, wbyVersion) && (0, _semver.gt)(version, installer.installed || "");
146
- });
147
-
148
- if (upgrades.length > 1) {
149
- var availableUpgrades = (0, _semver.sort)(upgrades.map(function (u) {
150
- return u.version;
151
- }));
152
- var latestUpgrade = availableUpgrades[availableUpgrades.length - 1];
153
- setState({
154
- skippingVersions: {
155
- current: installer.installed,
156
- latest: latestUpgrade,
157
- availableUpgrades: availableUpgrades
158
- }
159
- });
160
- } else if (upgrades.length === 1) {
161
- toUpgrade.push({
162
- type: "upgrade",
163
- name: "".concat(installer.plugin.name, "-upgrade"),
164
- title: installer.plugin.title,
165
- secure: true,
166
- installed: null,
167
- plugin: installer.plugin,
168
- render: function render(_ref5) {
169
- var onInstalled = _ref5.onInstalled;
170
- var Component = upgrades[0].getComponent();
171
- return /*#__PURE__*/_react.default.createElement(Loader, null, /*#__PURE__*/_react.default.createElement(Component, {
172
- onInstalled: onInstalled
173
- }));
174
- }
175
- });
176
- }
177
91
  }
178
-
179
- return getInstallers(installers, graph, toInstall, toUpgrade);
92
+ return getInstallers(installers, graph, toInstall);
180
93
  }
181
-
182
94
  toInstall.sort(function (a, b) {
183
95
  if (a.secure && !b.secure) {
184
96
  return 1;
185
97
  } else if (!a.secure && b.secure) {
186
98
  return -1;
187
99
  }
188
-
189
100
  return 0;
190
101
  });
191
102
  return {
192
- toInstall: toInstall,
193
- toUpgrade: toUpgrade
103
+ toInstall: toInstall
194
104
  };
195
105
  }, []);
196
-
197
106
  var onUser = function onUser() {
198
107
  setState({
199
108
  showLogin: false
200
109
  });
201
110
  };
111
+
202
112
  /**
203
113
  * If set to anything else, it breaks in AppInstaller.tsx
204
114
  */
205
-
206
-
207
115
  var showNextInstaller = function showNextInstaller() {
208
116
  var prevInstaller = installers[installerIndex];
209
117
  installers[installerIndex].installed = _config.config.getKey("WEBINY_VERSION", process.env.REACT_APP_WEBINY_VERSION);
210
118
  setState({
211
119
  installers: installers
212
120
  });
213
-
214
121
  if (installers.length < installerIndex + 1) {
215
122
  setState({
216
123
  installerIndex: undefined
217
124
  });
218
125
  return;
219
126
  }
220
-
221
127
  var nextIndex = installerIndex + 1;
222
128
  var showLogin = false;
223
129
  var nextInstaller = installers[nextIndex];
224
130
  var prevSecure = prevInstaller && prevInstaller.secure;
225
131
  var nextSecure = nextInstaller && nextInstaller.secure;
226
-
227
132
  if (!prevSecure && nextSecure) {
228
133
  showLogin = true;
229
134
  }
230
-
231
135
  setState({
232
136
  installerIndex: nextIndex,
233
137
  showLogin: showLogin
234
138
  });
235
139
  };
236
-
237
140
  (0, _react.useEffect)(function () {
238
141
  (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
239
- var allInstallers, graph, _getInstallers, toInstall, toUpgrade, installers;
240
-
142
+ var allInstallers, graph, _getInstallers, toInstall, installers;
241
143
  return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
242
- while (1) {
243
- switch (_context2.prev = _context2.next) {
244
- case 0:
245
- if (!isInstalled) {
246
- _context2.next = 2;
247
- break;
248
- }
249
-
250
- return _context2.abrupt("return");
251
-
252
- case 2:
253
- allInstallers = [];
254
- _context2.next = 5;
255
- return Promise.all(_plugins.plugins.byType("admin-installation").map( /*#__PURE__*/function () {
256
- var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(pl) {
257
- var installed;
258
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
259
- while (1) {
260
- switch (_context.prev = _context.next) {
261
- case 0:
262
- _context.next = 2;
263
- return pl.getInstalledVersion({
264
- client: client
265
- });
266
-
267
- case 2:
268
- installed = _context.sent;
269
- allInstallers.push({
270
- plugin: pl,
271
- installed: installed
272
- });
273
-
274
- case 4:
275
- case "end":
276
- return _context.stop();
277
- }
278
- }
279
- }, _callee);
280
- }));
281
-
282
- return function (_x) {
283
- return _ref7.apply(this, arguments);
284
- };
285
- }()));
286
-
287
- case 5:
288
- graph = createGraph(allInstallers);
289
- _getInstallers = getInstallers(allInstallers, graph), toInstall = _getInstallers.toInstall, toUpgrade = _getInstallers.toUpgrade;
290
- installers = [].concat((0, _toConsumableArray2.default)(toUpgrade), (0, _toConsumableArray2.default)(toInstall));
291
- setState({
292
- installers: installers,
293
- installerIndex: 0,
294
- loading: false,
295
- showLogin: toUpgrade.length > 0 || toInstall.length > 0 && toInstall[0].secure
296
- });
297
-
298
- case 9:
299
- case "end":
300
- return _context2.stop();
301
- }
144
+ while (1) switch (_context2.prev = _context2.next) {
145
+ case 0:
146
+ if (!isInstalled) {
147
+ _context2.next = 2;
148
+ break;
149
+ }
150
+ return _context2.abrupt("return");
151
+ case 2:
152
+ allInstallers = [];
153
+ _context2.next = 5;
154
+ return Promise.all(_plugins.plugins.byType("admin-installation").map( /*#__PURE__*/function () {
155
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(pl) {
156
+ var installed;
157
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
158
+ while (1) switch (_context.prev = _context.next) {
159
+ case 0:
160
+ _context.next = 2;
161
+ return pl.getInstalledVersion({
162
+ client: client
163
+ });
164
+ case 2:
165
+ installed = _context.sent;
166
+ allInstallers.push({
167
+ plugin: pl,
168
+ installed: installed
169
+ });
170
+ case 4:
171
+ case "end":
172
+ return _context.stop();
173
+ }
174
+ }, _callee);
175
+ }));
176
+ return function (_x) {
177
+ return _ref4.apply(this, arguments);
178
+ };
179
+ }()));
180
+ case 5:
181
+ graph = createGraph(allInstallers);
182
+ _getInstallers = getInstallers(allInstallers, graph), toInstall = _getInstallers.toInstall;
183
+ installers = (0, _toConsumableArray2.default)(toInstall);
184
+ setState({
185
+ installers: installers,
186
+ installerIndex: 0,
187
+ loading: false,
188
+ showLogin: toInstall.length > 0 && toInstall[0].secure
189
+ });
190
+ case 9:
191
+ case "end":
192
+ return _context2.stop();
302
193
  }
303
194
  }, _callee2);
304
195
  }))();
@@ -313,9 +204,7 @@ var useInstaller = function useInstaller(params) {
313
204
  installer: installers[installerIndex],
314
205
  showNextInstaller: showNextInstaller,
315
206
  showLogin: showLogin,
316
- onUser: onUser,
317
- skippingVersions: skippingVersions
207
+ onUser: onUser
318
208
  };
319
209
  };
320
-
321
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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"}
@@ -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.default = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
13
-
14
10
  var _Typography = require("@webiny/ui/Typography");
15
-
16
- var _touch_app = require("../assets/icons/touch_app.svg");
17
-
11
+ var _touch_app = require("@material-design-icons/svg/filled/touch_app.svg");
18
12
  var EmptyViewWrapper = /*#__PURE__*/(0, _styled.default)("div", {
19
13
  target: "eu81oh40",
20
14
  label: "EmptyViewWrapper"
@@ -48,12 +42,11 @@ var EmptyViewWrapper = /*#__PURE__*/(0, _styled.default)("div", {
48
42
  }
49
43
  }
50
44
  });
51
-
52
45
  var EmptyView = function EmptyView(_ref) {
53
46
  var _ref$icon = _ref.icon,
54
- icon = _ref$icon === void 0 ? /*#__PURE__*/_react.default.createElement(_touch_app.ReactComponent, null) : _ref$icon,
55
- title = _ref.title,
56
- action = _ref.action;
47
+ icon = _ref$icon === void 0 ? /*#__PURE__*/_react.default.createElement(_touch_app.ReactComponent, null) : _ref$icon,
48
+ title = _ref.title,
49
+ action = _ref.action;
57
50
  return /*#__PURE__*/_react.default.createElement(EmptyViewWrapper, null, /*#__PURE__*/_react.default.createElement("div", {
58
51
  className: "media"
59
52
  }, icon), /*#__PURE__*/_react.default.createElement("div", {
@@ -65,6 +58,5 @@ var EmptyView = function EmptyView(_ref) {
65
58
  className: "action__container"
66
59
  }, action));
67
60
  };
68
-
69
61
  var _default = EmptyView;
70
62
  exports.default = _default;
@@ -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,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EACnCC,KAAK,EAAE,MAD4B;EAEnCC,MAAM,EAAE,KAF2B;EAGnCC,OAAO,EAAE,MAH0B;EAInCC,aAAa,EAAE,QAJoB;EAKnCC,UAAU,EAAE,QALuB;EAMnCC,cAAc,EAAE,QANmB;EAQnC,YAAY;IACR,SAAS;MACLL,KAAK,EAAE,EADF;MAELC,MAAM,EAAE,EAFH;MAGLK,IAAI,EAAE;IAHD,CADD;IAMRC,YAAY,EAAE;EANN,CARuB;EAgBnC,uBAAuB;IACnBC,QAAQ,EAAE,GADS;IAEnBC,SAAS,EAAE,QAFQ;IAGnBF,YAAY,EAAE,EAHK;IAInB,YAAY;MACRG,KAAK,EAAE;IADC;EAJO,CAhBY;EAwBnC,wBAAwB;IACpB,iBAAiB;MACbC,OAAO,EAAE,UADI;MAEbC,eAAe,EAAE;IAFJ;EADG;AAxBW,CAAjB,CAAtB;;AAoCA,IAAMC,SAAmC,GAAG,SAAtCA,SAAsC,OAA6C;EAAA,qBAA1CC,IAA0C;EAAA,IAA1CA,IAA0C,uCAAnC,6BAAC,yBAAD,OAAmC;EAAA,IAApBC,KAAoB,QAApBA,KAAoB;EAAA,IAAbC,MAAa,QAAbA,MAAa;EACrF,oBACI,6BAAC,gBAAD,qBACI;IAAK,SAAS,EAAE;EAAhB,GAA0BF,IAA1B,CADJ,eAEI;IAAK,SAAS,EAAC;EAAf,gBACI,6BAAC,sBAAD;IAAY,GAAG,EAAE,WAAjB;IAA8B,SAAS,EAAE;EAAzC,GACKC,KADL,CADJ,CAFJ,eAOI;IAAK,SAAS,EAAC;EAAf,GAAoCC,MAApC,CAPJ,CADJ;AAWH,CAZD;;eAceH,S"}
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,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.FloatingActionButton = void 0;
9
-
10
8
  var React = _interopRequireWildcard(require("react"));
11
-
12
9
  var _Button = require("@webiny/ui/Button");
13
-
14
- var _roundAdd24px = require("../assets/icons/round-add-24px.svg");
15
-
10
+ var _add = require("@material-design-icons/svg/outlined/add.svg");
16
11
  // Set "styles" inline, since no customizations are possible / needed here.
17
12
  var FloatingActionButton = function FloatingActionButton(props) {
18
13
  return /*#__PURE__*/React.createElement("div", {
@@ -22,8 +17,7 @@ var FloatingActionButton = function FloatingActionButton(props) {
22
17
  right: 20
23
18
  }
24
19
  }, /*#__PURE__*/React.createElement(_Button.ButtonFloating, Object.assign({}, props, {
25
- icon: /*#__PURE__*/React.createElement(_roundAdd24px.ReactComponent, null)
20
+ icon: /*#__PURE__*/React.createElement(_add.ReactComponent, null)
26
21
  })));
27
22
  };
28
-
29
23
  exports.FloatingActionButton = FloatingActionButton;
@@ -1 +1 @@
1
- {"version":3,"names":["FloatingActionButton","props","position","bottom","right"],"sources":["FloatingActionButton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ButtonFloating } from \"@webiny/ui/Button\";\nimport { ReactComponent as AddIcon } from \"../assets/icons/round-add-24px.svg\";\n\n// Set \"styles\" inline, since no customizations are possible / needed here.\nconst FloatingActionButton: React.FC = props => {\n return (\n <div\n style={{\n position: \"absolute\",\n bottom: 20,\n right: 20\n }}\n >\n <ButtonFloating {...props} icon={<AddIcon />} />\n </div>\n );\n};\n\nexport { FloatingActionButton };\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;AACA,IAAMA,oBAA8B,GAAG,SAAjCA,oBAAiC,CAAAC,KAAK,EAAI;EAC5C,oBACI;IACI,KAAK,EAAE;MACHC,QAAQ,EAAE,UADP;MAEHC,MAAM,EAAE,EAFL;MAGHC,KAAK,EAAE;IAHJ;EADX,gBAOI,oBAAC,sBAAD,oBAAoBH,KAApB;IAA2B,IAAI,eAAE,oBAAC,4BAAD;EAAjC,GAPJ,CADJ;AAWH,CAZD"}
1
+ {"version":3,"names":["FloatingActionButton","props","position","bottom","right"],"sources":["FloatingActionButton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ButtonFloating } from \"@webiny/ui/Button\";\nimport { ReactComponent as AddIcon } from \"@material-design-icons/svg/outlined/add.svg\";\n\n// Set \"styles\" inline, since no customizations are possible / needed here.\nconst FloatingActionButton: React.FC = props => {\n return (\n <div\n style={{\n position: \"absolute\",\n bottom: 20,\n right: 20\n }}\n >\n <ButtonFloating {...props} icon={<AddIcon />} />\n </div>\n );\n};\n\nexport { FloatingActionButton };\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA;AACA,IAAMA,oBAA8B,GAAG,SAAjCA,oBAA8B,CAAGC,KAAK,EAAI;EAC5C,oBACI;IACI,KAAK,EAAE;MACHC,QAAQ,EAAE,UAAU;MACpBC,MAAM,EAAE,EAAE;MACVC,KAAK,EAAE;IACX;EAAE,gBAEF,oBAAC,sBAAc,oBAAKH,KAAK;IAAE,IAAI,eAAE,oBAAC,mBAAO;EAAI,GAAG,CAC9C;AAEd,CAAC;AAAC"}
@@ -1,27 +1,19 @@
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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
10
  var React = _interopRequireWildcard(require("react"));
15
-
16
11
  var _Image = require("@webiny/app/components/Image");
17
-
18
12
  var _ImageUpload = require("@webiny/ui/ImageUpload");
19
-
20
13
  var _excluded = ["imagePreviewProps"];
21
-
22
14
  var MultiImageUpload = function MultiImageUpload(_ref) {
23
15
  var imagePreviewProps = _ref.imagePreviewProps,
24
- multiImageUploadProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
16
+ multiImageUploadProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
25
17
  return /*#__PURE__*/React.createElement(_ImageUpload.MultiImageUpload
26
18
  /**
27
19
  * TODO @ts-refactor
@@ -38,6 +30,5 @@ var MultiImageUpload = function MultiImageUpload(_ref) {
38
30
  }
39
31
  }, multiImageUploadProps));
40
32
  };
41
-
42
33
  var _default = MultiImageUpload;
43
34
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["MultiImageUpload","imagePreviewProps","multiImageUploadProps","renderImageProps","width"],"sources":["MultiImageUpload.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Image } from \"@webiny/app/components/Image\";\nimport { MultiImageUpload as UiMultiImageUpload } from \"@webiny/ui/ImageUpload\";\n\n/**\n * TODO @ts-refactor\n */\ninterface MultiImageUploadProps {\n imagePreviewProps: {\n src: string;\n [key: string]: any;\n };\n [key: string]: any;\n}\nconst MultiImageUpload: React.FC<MultiImageUploadProps> = ({\n imagePreviewProps,\n ...multiImageUploadProps\n}) => {\n return (\n <UiMultiImageUpload\n /**\n * TODO @ts-refactor\n * It appers that renderImagePreview does not exist on UiMultiImageUpload. So how did this work?\n */\n // @ts-ignore\n renderImagePreview={(renderImageProps: Record<string, any>) => {\n return (\n <Image\n transform={{ width: 300 }}\n {...imagePreviewProps}\n {...renderImageProps}\n />\n );\n }}\n {...multiImageUploadProps}\n />\n );\n};\nexport default MultiImageUpload;\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;AAYA,IAAMA,gBAAiD,GAAG,SAApDA,gBAAoD,OAGpD;EAAA,IAFFC,iBAEE,QAFFA,iBAEE;EAAA,IADCC,qBACD;EACF,oBACI,oBAAC;EACG;AACZ;AACA;AACA;EACY;EALJ;IAMI,kBAAkB,EAAE,4BAACC,gBAAD,EAA2C;MAC3D,oBACI,oBAAC,YAAD;QACI,SAAS,EAAE;UAAEC,KAAK,EAAE;QAAT;MADf,GAEQH,iBAFR,EAGQE,gBAHR,EADJ;IAOH;EAdL,GAeQD,qBAfR,EADJ;AAmBH,CAvBD;;eAwBeF,gB"}
1
+ {"version":3,"names":["MultiImageUpload","imagePreviewProps","multiImageUploadProps","renderImageProps","width"],"sources":["MultiImageUpload.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Image } from \"@webiny/app/components/Image\";\nimport { MultiImageUpload as UiMultiImageUpload } from \"@webiny/ui/ImageUpload\";\n\n/**\n * TODO @ts-refactor\n */\ninterface MultiImageUploadProps {\n imagePreviewProps: {\n src: string;\n [key: string]: any;\n };\n [key: string]: any;\n}\nconst MultiImageUpload: React.FC<MultiImageUploadProps> = ({\n imagePreviewProps,\n ...multiImageUploadProps\n}) => {\n return (\n <UiMultiImageUpload\n /**\n * TODO @ts-refactor\n * It appers that renderImagePreview does not exist on UiMultiImageUpload. So how did this work?\n */\n // @ts-ignore\n renderImagePreview={(renderImageProps: Record<string, any>) => {\n return (\n <Image\n transform={{ width: 300 }}\n {...imagePreviewProps}\n {...renderImageProps}\n />\n );\n }}\n {...multiImageUploadProps}\n />\n );\n};\nexport default MultiImageUpload;\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AAAgF;AAYhF,IAAMA,gBAAiD,GAAG,SAApDA,gBAAiD,OAGjD;EAAA,IAFFC,iBAAiB,QAAjBA,iBAAiB;IACdC,qBAAqB;EAExB,oBACI,oBAAC;EACG;AACZ;AACA;AACA;EACY;EAAA;IACA,kBAAkB,EAAE,4BAACC,gBAAqC,EAAK;MAC3D,oBACI,oBAAC,YAAK;QACF,SAAS,EAAE;UAAEC,KAAK,EAAE;QAAI;MAAE,GACtBH,iBAAiB,EACjBE,gBAAgB,EACtB;IAEV;EAAE,GACED,qBAAqB,EAC3B;AAEV,CAAC;AAAC,eACaF,gBAAgB;AAAA"}