@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.
- package/assets/icons/add-18px.svg +1 -1
- package/assets/icons/arrow_drop_down-24px.svg +1 -1
- package/assets/icons/filter-24px.svg +1 -1
- package/assets/icons/highlight-24px.svg +1 -1
- package/assets/icons/info.svg +1 -1
- package/assets/icons/insert_drive_file-24px.svg +1 -1
- package/assets/icons/insert_photo-24px.svg +1 -1
- package/assets/icons/label-24px.svg +1 -1
- package/assets/icons/round-account_circle-24px.svg +1 -1
- package/assets/icons/round-arrow_drop_down-24px.svg +1 -1
- package/assets/icons/round-help-24px.svg +1 -1
- package/assets/icons/round-settings-24px.svg +1 -1
- package/assets/icons/today-24px.svg +1 -1
- package/assets/icons/touch_app.svg +1 -1
- package/base/Admin.js +1 -15
- package/base/Admin.js.map +1 -1
- package/base/Base.js +6 -44
- package/base/Base.js.map +1 -1
- package/base/plugins/AddGraphQLQuerySelection.js +5 -9
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
- package/base/providers/ApolloProvider.js +0 -5
- package/base/providers/ApolloProvider.js.map +1 -1
- package/base/providers/TelemetryProvider.js +1 -7
- package/base/providers/TelemetryProvider.js.map +1 -1
- package/base/providers/UiStateProvider.js +0 -5
- package/base/providers/UiStateProvider.js.map +1 -1
- package/base/providers/ViewCompositionProvider.js +3 -16
- package/base/providers/ViewCompositionProvider.js.map +1 -1
- package/base/ui/Brand.js +0 -4
- package/base/ui/Brand.js.map +1 -1
- package/base/ui/CenteredView.js +2 -7
- package/base/ui/CenteredView.js.map +1 -1
- package/base/ui/Dashboard.js +0 -4
- package/base/ui/Dashboard.js.map +1 -1
- package/base/ui/FileManager.d.ts +67 -0
- package/base/ui/FileManager.js +61 -0
- package/base/ui/FileManager.js.map +1 -0
- package/base/ui/Layout.js +1 -6
- package/base/ui/Layout.js.map +1 -1
- package/base/ui/LocaleSelector.js +0 -4
- package/base/ui/LocaleSelector.js.map +1 -1
- package/base/ui/LoginScreen.js +0 -6
- package/base/ui/LoginScreen.js.map +1 -1
- package/base/ui/Logo.js +0 -6
- package/base/ui/Logo.js.map +1 -1
- package/base/ui/Menu.js +2 -31
- package/base/ui/Menu.js.map +1 -1
- package/base/ui/Navigation.js +11 -44
- package/base/ui/Navigation.js.map +1 -1
- package/base/ui/NotFound.js +0 -4
- package/base/ui/NotFound.js.map +1 -1
- package/base/ui/Search.js +5 -23
- package/base/ui/Search.js.map +1 -1
- package/base/ui/Tags.js +1 -8
- package/base/ui/Tags.js.map +1 -1
- package/base/ui/UserMenu.js +5 -29
- package/base/ui/UserMenu.js.map +1 -1
- package/components/AdminLayout.js +1 -6
- package/components/AdminLayout.js.map +1 -1
- package/components/AppInstaller/AppInstaller.js +18 -84
- package/components/AppInstaller/AppInstaller.js.map +1 -1
- package/components/AppInstaller/Sidebar.js +11 -44
- package/components/AppInstaller/Sidebar.js.map +1 -1
- package/components/AppInstaller/index.js +0 -7
- package/components/AppInstaller/index.js.map +1 -1
- package/components/AppInstaller/styled.d.ts +17 -5
- package/components/AppInstaller/styled.js +0 -4
- package/components/AppInstaller/styled.js.map +1 -1
- package/components/AppInstaller/useInstaller.d.ts +1 -7
- package/components/AppInstaller/useInstaller.js +72 -183
- package/components/AppInstaller/useInstaller.js.map +1 -1
- package/components/EmptyView.js +4 -12
- package/components/EmptyView.js.map +1 -1
- package/components/FloatingActionButton.js +2 -8
- package/components/FloatingActionButton.js.map +1 -1
- package/components/MultiImageUpload.js +1 -10
- package/components/MultiImageUpload.js.map +1 -1
- package/components/OverlayLayout/OverlayLayout.js +9 -38
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/index.js +0 -2
- package/components/OverlayLayout/index.js.map +1 -1
- package/components/Permissions/Permissions.d.ts +2 -0
- package/components/Permissions/Permissions.js +25 -27
- package/components/Permissions/Permissions.js.map +1 -1
- package/components/Permissions/StyledComponents.js +0 -7
- package/components/Permissions/StyledComponents.js.map +1 -1
- package/components/Permissions/index.js +0 -3
- package/components/Permissions/index.js.map +1 -1
- package/components/RichTextEditor/RichTextEditor.js +0 -7
- package/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/components/RichTextEditor/index.js +0 -2
- package/components/RichTextEditor/index.js.map +1 -1
- package/components/RichTextEditor/tools/header/index.js +62 -102
- package/components/RichTextEditor/tools/header/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/index.js +15 -36
- package/components/RichTextEditor/tools/image/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
- package/components/RichTextEditor/tools/image/tunes.js +5 -22
- package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
- package/components/RichTextEditor/tools/image/ui.js +16 -39
- package/components/RichTextEditor/tools/image/ui.js.map +1 -1
- package/components/RichTextEditor/tools/paragraph/index.js +55 -81
- package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
- package/components/RichTextEditor/tools/textColor/index.js +15 -41
- package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
- package/components/RichTextEditor/tools/utils.js +0 -2
- package/components/RichTextEditor/tools/utils.js.map +1 -1
- package/components/Routes.js +6 -13
- package/components/Routes.js.map +1 -1
- package/components/SearchUI.d.ts +1 -0
- package/components/SearchUI.js +14 -14
- package/components/SearchUI.js.map +1 -1
- package/components/SimpleForm/SimpleForm.js +3 -32
- package/components/SimpleForm/SimpleForm.js.map +1 -1
- package/components/SimpleForm/index.js +0 -1
- package/components/SimpleForm/index.js.map +1 -1
- package/components/SimpleUI/InputField.d.ts +2 -0
- package/components/SimpleUI/InputField.js +16 -30
- package/components/SimpleUI/InputField.js.map +1 -1
- package/components/SingleImageUpload.d.ts +1 -1
- package/components/SingleImageUpload.js +14 -30
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.js +1 -20
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/SplitView/index.js +0 -1
- package/components/SplitView/index.js.map +1 -1
- package/components/index.d.ts +1 -1
- package/components/index.js +1 -2
- package/components/index.js.map +1 -1
- package/hooks/useConfirmationDialog.js +6 -18
- package/hooks/useConfirmationDialog.js.map +1 -1
- package/hooks/useDialog.js +0 -5
- package/hooks/useDialog.js.map +1 -1
- package/hooks/useSnackbar.js +0 -5
- package/hooks/useSnackbar.js.map +1 -1
- package/index.d.ts +2 -3
- package/index.js +1 -61
- package/index.js.map +1 -1
- package/package.json +22 -32
- package/plugins/MenuPlugin.js +0 -15
- package/plugins/MenuPlugin.js.map +1 -1
- package/plugins/PermissionRendererPlugin.js +0 -15
- package/plugins/PermissionRendererPlugin.js.map +1 -1
- package/plugins/globalSearch/SearchBar.js +5 -53
- package/plugins/globalSearch/SearchBar.js.map +1 -1
- package/plugins/globalSearch/SearchBarDropdown.js +15 -33
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
- package/plugins/globalSearch/index.js.map +1 -1
- package/plugins/globalSearch/styled.d.ts +13 -4
- package/plugins/globalSearch/styled.js +1 -5
- package/plugins/globalSearch/styled.js.map +1 -1
- package/plugins/uiLayoutRenderer/index.js +2 -16
- package/plugins/uiLayoutRenderer/index.js.map +1 -1
- package/styles/theme.scss +31 -1
- package/types.d.ts +23 -27
- package/types.js.map +1 -1
- package/ui/UIElement.js +0 -1
- package/ui/UIElement.js.map +1 -1
- package/ui/UILayout.js +0 -1
- package/ui/UILayout.js.map +1 -1
- package/ui/UIRenderer.js +0 -1
- package/ui/UIRenderer.js.map +1 -1
- package/ui/UIView.js +0 -1
- package/ui/UIView.js.map +1 -1
- package/ui/elements/AccordionElement.js +2 -28
- package/ui/elements/AccordionElement.js.map +1 -1
- package/ui/elements/ButtonElement.js +0 -19
- package/ui/elements/ButtonElement.js.map +1 -1
- package/ui/elements/ButtonGroupElement.js +0 -19
- package/ui/elements/ButtonGroupElement.js.map +1 -1
- package/ui/elements/GenericElement.js +0 -2
- package/ui/elements/GenericElement.js.map +1 -1
- package/ui/elements/LabelElement.js +0 -14
- package/ui/elements/LabelElement.js.map +1 -1
- package/ui/elements/NavigationMenuElement.js +3 -36
- package/ui/elements/NavigationMenuElement.js.map +1 -1
- package/ui/elements/PanelElement.js +0 -11
- package/ui/elements/PanelElement.js.map +1 -1
- package/ui/elements/PlaceholderElement.js +0 -11
- package/ui/elements/PlaceholderElement.js.map +1 -1
- package/ui/elements/SmallButtonElement.js +0 -19
- package/ui/elements/SmallButtonElement.js.map +1 -1
- package/ui/elements/TypographyElement.js +0 -19
- package/ui/elements/TypographyElement.js.map +1 -1
- package/ui/elements/ViewElement.js +0 -2
- package/ui/elements/ViewElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +0 -16
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement.js +11 -34
- package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js +0 -15
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +5 -27
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +4 -23
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/styled.d.ts +23 -16
- package/ui/elements/form/FileManagerElement/styled.js +0 -5
- package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
- package/ui/elements/form/FileManagerElement.js +0 -20
- package/ui/elements/form/FileManagerElement.js.map +1 -1
- package/ui/elements/form/FormElement.js +0 -21
- package/ui/elements/form/FormElement.js.map +1 -1
- package/ui/elements/form/FormFieldElement.js +0 -33
- package/ui/elements/form/FormFieldElement.js.map +1 -1
- package/ui/elements/form/HiddenElement.js +0 -17
- package/ui/elements/form/HiddenElement.js.map +1 -1
- package/ui/elements/form/InputElement.js +0 -18
- package/ui/elements/form/InputElement.js.map +1 -1
- package/ui/elements/form/PasswordElement.js +0 -15
- package/ui/elements/form/PasswordElement.js.map +1 -1
- package/ui/elements/form/SelectElement.js +1 -19
- package/ui/elements/form/SelectElement.js.map +1 -1
- package/ui/elements/form/TextareaElement.js +0 -17
- package/ui/elements/form/TextareaElement.js.map +1 -1
- package/ui/views/AdminView/ContentElement.js +1 -25
- package/ui/views/AdminView/ContentElement.js.map +1 -1
- package/ui/views/AdminView/HeaderElement.js +0 -40
- package/ui/views/AdminView/HeaderElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionCenterElement.js +0 -20
- package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionLeftElement.js +0 -20
- package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionRightElement.js +0 -20
- package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
- package/ui/views/AdminView/components/Dialog.js +10 -21
- package/ui/views/AdminView/components/Dialog.js.map +1 -1
- package/ui/views/AdminView/components/Hamburger.js +2 -10
- package/ui/views/AdminView/components/Hamburger.js.map +1 -1
- package/ui/views/AdminView/components/Snackbar.js +0 -9
- package/ui/views/AdminView/components/Snackbar.js.map +1 -1
- package/ui/views/FormView/FormContainerElement.js +0 -21
- package/ui/views/FormView/FormContainerElement.js.map +1 -1
- package/ui/views/FormView/FormContentElement.js +0 -11
- package/ui/views/FormView/FormContentElement.js.map +1 -1
- package/ui/views/FormView/FormFooterElement.js +0 -19
- package/ui/views/FormView/FormFooterElement.js.map +1 -1
- package/ui/views/FormView/FormHeaderElement.js +2 -24
- package/ui/views/FormView/FormHeaderElement.js.map +1 -1
- package/ui/views/FormView.js +0 -41
- package/ui/views/FormView.js.map +1 -1
- package/ui/views/OverlayView/ContentElement.js +0 -19
- package/ui/views/OverlayView/ContentElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderElement.js +4 -26
- package/ui/views/OverlayView/HeaderElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderTitleElement.js +0 -22
- package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
- package/ui/views/OverlayView/useOverlayView.js +3 -13
- package/ui/views/OverlayView/useOverlayView.js.map +1 -1
- package/ui/views/OverlayView.js +4 -38
- package/ui/views/OverlayView.js.map +1 -1
- package/ui/views/SplitView/SplitViewPanelElement.js +2 -22
- package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
- package/ui/views/SplitView.js +0 -40
- 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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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 (
|
|
97
|
-
var plugin =
|
|
55
|
+
installers.forEach(function (_ref) {
|
|
56
|
+
var plugin = _ref.plugin;
|
|
98
57
|
graph.setNode(plugin.name, plugin);
|
|
99
58
|
});
|
|
100
|
-
installers.forEach(function (
|
|
101
|
-
var pl =
|
|
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,
|
|
240
|
-
|
|
142
|
+
var allInstallers, graph, _getInstallers, toInstall, installers;
|
|
241
143
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
|
|
242
|
-
while (1) {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
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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"}
|
package/components/EmptyView.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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 \"
|
|
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(
|
|
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 \"
|
|
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
|
-
|
|
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":"
|
|
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"}
|