@webiny/app-admin 0.0.0-unstable.d4f203fa97 → 0.0.0-unstable.d65ec29d44
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/base/Admin.js +7 -21
- package/base/Admin.js.map +1 -1
- package/base/Base.js +6 -25
- package/base/Base.js.map +1 -1
- package/base/plugins/AddGraphQLQuerySelection.js +0 -8
- 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.d.ts +2 -2
- package/base/ui/Brand.js +3 -7
- 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.d.ts +2 -2
- package/base/ui/Dashboard.js +3 -7
- package/base/ui/Dashboard.js.map +1 -1
- package/base/ui/Layout.d.ts +2 -2
- package/base/ui/Layout.js +4 -9
- package/base/ui/Layout.js.map +1 -1
- package/base/ui/LocaleSelector.d.ts +2 -2
- package/base/ui/LocaleSelector.js +3 -7
- package/base/ui/LocaleSelector.js.map +1 -1
- package/base/ui/LoginScreen.d.ts +1 -1
- package/base/ui/LoginScreen.js +2 -8
- package/base/ui/LoginScreen.js.map +1 -1
- package/base/ui/Logo.d.ts +2 -2
- package/base/ui/Logo.js +4 -10
- 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.d.ts +3 -3
- package/base/ui/Navigation.js +16 -49
- package/base/ui/Navigation.js.map +1 -1
- package/base/ui/NotFound.d.ts +2 -2
- package/base/ui/NotFound.js +3 -7
- package/base/ui/NotFound.js.map +1 -1
- package/base/ui/Search.d.ts +2 -2
- package/base/ui/Search.js +8 -26
- 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.d.ts +7 -7
- package/base/ui/UserMenu.js +13 -37
- 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 -52
- package/components/AppInstaller/AppInstaller.js.map +1 -1
- package/components/AppInstaller/Sidebar.js +9 -32
- 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.js +0 -4
- package/components/AppInstaller/styled.js.map +1 -1
- package/components/AppInstaller/useInstaller.js +66 -122
- package/components/AppInstaller/useInstaller.js.map +1 -1
- package/components/EmptyView.js +3 -11
- package/components/EmptyView.js.map +1 -1
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +0 -14
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -1
- package/components/FileManager/BottomInfoBar/UploadStatus.js +0 -9
- package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -1
- package/components/FileManager/BottomInfoBar.js +0 -12
- package/components/FileManager/BottomInfoBar.js.map +1 -1
- package/components/FileManager/DropFilesHere.js +3 -12
- package/components/FileManager/DropFilesHere.js.map +1 -1
- package/components/FileManager/File.js +5 -18
- package/components/FileManager/File.js.map +1 -1
- package/components/FileManager/FileDetails/Name.js +45 -75
- package/components/FileManager/FileDetails/Name.js.map +1 -1
- package/components/FileManager/FileDetails/Tags.js +85 -138
- package/components/FileManager/FileDetails/Tags.js.map +1 -1
- package/components/FileManager/FileDetails.js +94 -161
- package/components/FileManager/FileDetails.js.map +1 -1
- package/components/FileManager/FileManagerContext.js +12 -45
- package/components/FileManager/FileManagerContext.js.map +1 -1
- package/components/FileManager/FileManagerView.js +177 -294
- package/components/FileManager/FileManagerView.js.map +1 -1
- package/components/FileManager/LeftSidebar.js +10 -29
- package/components/FileManager/LeftSidebar.js.map +1 -1
- package/components/FileManager/NoPermissionView.js +0 -13
- package/components/FileManager/NoPermissionView.js.map +1 -1
- package/components/FileManager/NoResults.js +0 -6
- package/components/FileManager/NoResults.js.map +1 -1
- package/components/FileManager/getFileTypePlugin.js +9 -15
- package/components/FileManager/getFileTypePlugin.js.map +1 -1
- package/components/FileManager/getFileUploader.js +0 -5
- package/components/FileManager/getFileUploader.js.map +1 -1
- package/components/FileManager/graphql.js +3 -14
- package/components/FileManager/graphql.js.map +1 -1
- package/components/FileManager/outputFileSelectionError.js +0 -14
- package/components/FileManager/outputFileSelectionError.js.map +1 -1
- package/components/FileManager.js +17 -43
- package/components/FileManager.js.map +1 -1
- package/components/FloatingActionButton.js +0 -6
- 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 +7 -36
- 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 +12 -12
- 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.js +12 -28
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.js +0 -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.js +0 -1
- package/components/index.js.map +1 -1
- package/hooks/useConfirmationDialog.d.ts +3 -1
- package/hooks/useConfirmationDialog.js +12 -20
- 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 -2
- package/index.js +4 -52
- package/index.js.map +1 -1
- package/package.json +20 -21
- package/plugins/FileManagerFileTypePlugin.js +0 -15
- package/plugins/FileManagerFileTypePlugin.js.map +1 -1
- 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/fileManager/fileDefault.js +0 -6
- package/plugins/fileManager/fileDefault.js.map +1 -1
- package/plugins/fileManager/fileImage/DeleteAction.js +16 -40
- package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -1
- package/plugins/fileManager/fileImage/EditAction.js +22 -58
- package/plugins/fileManager/fileImage/EditAction.js.map +1 -1
- package/plugins/fileManager/fileImage/index.js +0 -8
- package/plugins/fileManager/fileImage/index.js.map +1 -1
- package/plugins/fileManager/index.js +0 -2
- package/plugins/fileManager/index.js.map +1 -1
- package/plugins/globalSearch/SearchBar.js +3 -51
- package/plugins/globalSearch/SearchBar.js.map +1 -1
- package/plugins/globalSearch/SearchBarDropdown.js +13 -31
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
- package/plugins/globalSearch/index.js.map +1 -1
- 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/material-theme-assignments.scss +4 -0
- package/styles/theme.scss +31 -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 +0 -22
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +3 -22
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- 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 +0 -8
- 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 +3 -25
- 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 +3 -37
- 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
package/base/ui/Search.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface SearchContext {
|
|
|
13
13
|
}
|
|
14
14
|
export declare function useSearch(): SearchContext;
|
|
15
15
|
export declare const SearchProvider: (Component: React.FC) => React.FC;
|
|
16
|
-
export declare const Search: import("@webiny/app
|
|
17
|
-
export declare const SearchRenderer: import("@webiny/app
|
|
16
|
+
export declare const Search: import("@webiny/app").ComposableFC<unknown>;
|
|
17
|
+
export declare const SearchRenderer: import("@webiny/app").ComposableFC<unknown>;
|
|
18
18
|
export declare type SearchOptionProps = SearchOptionData;
|
|
19
19
|
export declare const SearchOption: React.FC<SearchOptionProps>;
|
package/base/ui/Search.js
CHANGED
|
@@ -1,50 +1,36 @@
|
|
|
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.SearchRenderer = exports.SearchProvider = exports.SearchOption = exports.Search = void 0;
|
|
11
9
|
exports.useSearch = useSearch;
|
|
12
|
-
|
|
13
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
14
|
-
|
|
15
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
16
|
-
|
|
17
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
18
|
-
|
|
19
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
20
|
-
|
|
21
|
-
var _appAdminCore = require("@webiny/app-admin-core");
|
|
22
|
-
|
|
14
|
+
var _app = require("@webiny/app");
|
|
23
15
|
var _excluded = ["children"];
|
|
24
|
-
|
|
25
16
|
var SearchContext = /*#__PURE__*/_react.default.createContext({
|
|
26
17
|
options: [],
|
|
27
18
|
addOption: function addOption() {
|
|
28
19
|
return void 0;
|
|
29
20
|
}
|
|
30
21
|
});
|
|
31
|
-
|
|
32
22
|
SearchContext.displayName = "SearchContext";
|
|
33
|
-
|
|
34
23
|
function useSearch() {
|
|
35
24
|
return _react.default.useContext(SearchContext);
|
|
36
25
|
}
|
|
37
|
-
|
|
38
26
|
var SearchProvider = function SearchProvider(Component) {
|
|
39
27
|
return function SearchProvider(_ref) {
|
|
40
28
|
var children = _ref.children,
|
|
41
|
-
|
|
42
|
-
|
|
29
|
+
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
43
30
|
var _useState = (0, _react.useState)([]),
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
31
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
32
|
+
options = _useState2[0],
|
|
33
|
+
setOptions = _useState2[1];
|
|
48
34
|
var addOption = (0, _react.useCallback)(function (option) {
|
|
49
35
|
return setOptions(function (options) {
|
|
50
36
|
return [].concat((0, _toConsumableArray2.default)(options), [option]);
|
|
@@ -59,23 +45,19 @@ var SearchProvider = function SearchProvider(Component) {
|
|
|
59
45
|
}, /*#__PURE__*/_react.default.createElement(Component, props, children));
|
|
60
46
|
};
|
|
61
47
|
};
|
|
62
|
-
|
|
63
48
|
exports.SearchProvider = SearchProvider;
|
|
64
|
-
var Search = (0,
|
|
49
|
+
var Search = (0, _app.makeComposable)("Search", function () {
|
|
65
50
|
return /*#__PURE__*/_react.default.createElement(SearchRenderer, null);
|
|
66
51
|
});
|
|
67
52
|
exports.Search = Search;
|
|
68
|
-
var SearchRenderer = (0,
|
|
53
|
+
var SearchRenderer = (0, _app.makeComposable)("SearchRenderer");
|
|
69
54
|
exports.SearchRenderer = SearchRenderer;
|
|
70
|
-
|
|
71
55
|
var SearchOption = function SearchOption(props) {
|
|
72
56
|
var _useSearch = useSearch(),
|
|
73
|
-
|
|
74
|
-
|
|
57
|
+
addOption = _useSearch.addOption;
|
|
75
58
|
(0, _react.useEffect)(function () {
|
|
76
59
|
addOption(props);
|
|
77
60
|
}, []);
|
|
78
61
|
return null;
|
|
79
62
|
};
|
|
80
|
-
|
|
81
63
|
exports.SearchOption = SearchOption;
|
package/base/ui/Search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SearchContext","React","createContext","options","addOption","displayName","useSearch","useContext","SearchProvider","Component","children","props","useState","setOptions","useCallback","option","context","Search","makeComposable","SearchRenderer","SearchOption","useEffect"],"sources":["Search.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { makeComposable } from \"@webiny/app
|
|
1
|
+
{"version":3,"names":["SearchContext","React","createContext","options","addOption","displayName","useSearch","useContext","SearchProvider","Component","children","props","useState","setOptions","useCallback","option","context","Search","makeComposable","SearchRenderer","SearchOption","useEffect"],"sources":["Search.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { makeComposable } from \"@webiny/app\";\n\nexport interface SearchOptionData {\n route: string;\n label: string;\n search?: {\n operator?: \"and\" | \"or\";\n fields?: Array<string>;\n };\n}\n\nexport interface SearchContext {\n options: SearchOptionData[];\n addOption(option: SearchOptionData): void;\n}\n\nconst SearchContext = React.createContext<SearchContext>({\n options: [],\n addOption: () => {\n return void 0;\n }\n});\nSearchContext.displayName = \"SearchContext\";\n\nexport function useSearch() {\n return React.useContext(SearchContext);\n}\n\nexport const SearchProvider = (Component: React.FC): React.FC => {\n return function SearchProvider({ children, ...props }) {\n const [options, setOptions] = useState<SearchOptionData[]>([]);\n\n const addOption = useCallback<SearchContext[\"addOption\"]>(\n option => setOptions(options => [...options, option]),\n [setOptions]\n );\n\n const context = {\n options,\n addOption\n };\n\n return (\n <SearchContext.Provider value={context}>\n <Component {...props}>{children}</Component>\n </SearchContext.Provider>\n );\n };\n};\n\nexport const Search = makeComposable(\"Search\", () => {\n return <SearchRenderer />;\n});\n\nexport const SearchRenderer = makeComposable(\"SearchRenderer\");\n\nexport type SearchOptionProps = SearchOptionData;\n\nexport const SearchOption: React.FC<SearchOptionProps> = props => {\n const { addOption } = useSearch();\n\n useEffect(() => {\n addOption(props);\n }, []);\n\n return null;\n};\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AAA6C;AAgB7C,IAAMA,aAAa,gBAAGC,cAAK,CAACC,aAAa,CAAgB;EACrDC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE,qBAAM;IACb,OAAO,KAAK,CAAC;EACjB;AACJ,CAAC,CAAC;AACFJ,aAAa,CAACK,WAAW,GAAG,eAAe;AAEpC,SAASC,SAAS,GAAG;EACxB,OAAOL,cAAK,CAACM,UAAU,CAACP,aAAa,CAAC;AAC1C;AAEO,IAAMQ,cAAc,GAAG,SAAjBA,cAAc,CAAIC,SAAmB,EAAe;EAC7D,OAAO,SAASD,cAAc,OAAyB;IAAA,IAAtBE,QAAQ,QAARA,QAAQ;MAAKC,KAAK;IAC/C,gBAA8B,IAAAC,eAAQ,EAAqB,EAAE,CAAC;MAAA;MAAvDT,OAAO;MAAEU,UAAU;IAE1B,IAAMT,SAAS,GAAG,IAAAU,kBAAW,EACzB,UAAAC,MAAM;MAAA,OAAIF,UAAU,CAAC,UAAAV,OAAO;QAAA,kDAAQA,OAAO,IAAEY,MAAM;MAAA,CAAC,CAAC;IAAA,GACrD,CAACF,UAAU,CAAC,CACf;IAED,IAAMG,OAAO,GAAG;MACZb,OAAO,EAAPA,OAAO;MACPC,SAAS,EAATA;IACJ,CAAC;IAED,oBACI,6BAAC,aAAa,CAAC,QAAQ;MAAC,KAAK,EAAEY;IAAQ,gBACnC,6BAAC,SAAS,EAAKL,KAAK,EAAGD,QAAQ,CAAa,CACvB;EAEjC,CAAC;AACL,CAAC;AAAC;AAEK,IAAMO,MAAM,GAAG,IAAAC,mBAAc,EAAC,QAAQ,EAAE,YAAM;EACjD,oBAAO,6BAAC,cAAc,OAAG;AAC7B,CAAC,CAAC;AAAC;AAEI,IAAMC,cAAc,GAAG,IAAAD,mBAAc,EAAC,gBAAgB,CAAC;AAAC;AAIxD,IAAME,YAAyC,GAAG,SAA5CA,YAAyC,CAAGT,KAAK,EAAI;EAC9D,iBAAsBL,SAAS,EAAE;IAAzBF,SAAS,cAATA,SAAS;EAEjB,IAAAiB,gBAAS,EAAC,YAAM;IACZjB,SAAS,CAACO,KAAK,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACf,CAAC;AAAC"}
|
package/base/ui/Tags.js
CHANGED
|
@@ -1,29 +1,22 @@
|
|
|
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.useTags = exports.Tags = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
9
|
var TagsContext = /*#__PURE__*/(0, _react.createContext)({});
|
|
13
10
|
TagsContext.displayName = "TagsContext";
|
|
14
|
-
|
|
15
11
|
var Tags = function Tags(_ref) {
|
|
16
12
|
var tags = _ref.tags,
|
|
17
|
-
|
|
13
|
+
children = _ref.children;
|
|
18
14
|
return /*#__PURE__*/_react.default.createElement(TagsContext.Provider, {
|
|
19
15
|
value: tags
|
|
20
16
|
}, children);
|
|
21
17
|
};
|
|
22
|
-
|
|
23
18
|
exports.Tags = Tags;
|
|
24
|
-
|
|
25
19
|
var useTags = function useTags() {
|
|
26
20
|
return (0, _react.useContext)(TagsContext);
|
|
27
21
|
};
|
|
28
|
-
|
|
29
22
|
exports.useTags = useTags;
|
package/base/ui/Tags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TagsContext","createContext","displayName","Tags","tags","children","useTags","useContext"],"sources":["Tags.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\n\ntype TagsContext = Record<string, string | boolean>;\n\nconst TagsContext = createContext<TagsContext>({});\nTagsContext.displayName = \"TagsContext\";\n\ninterface TagsProps {\n tags: Record<string, string | boolean>;\n children: React.ReactNode;\n}\n\nexport const Tags: React.FC<TagsProps> = ({ tags, children }) => {\n return <TagsContext.Provider value={tags}>{children}</TagsContext.Provider>;\n};\n\nexport const useTags = () => {\n return useContext(TagsContext);\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["TagsContext","createContext","displayName","Tags","tags","children","useTags","useContext"],"sources":["Tags.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\n\ntype TagsContext = Record<string, string | boolean>;\n\nconst TagsContext = createContext<TagsContext>({});\nTagsContext.displayName = \"TagsContext\";\n\ninterface TagsProps {\n tags: Record<string, string | boolean>;\n children: React.ReactNode;\n}\n\nexport const Tags: React.FC<TagsProps> = ({ tags, children }) => {\n return <TagsContext.Provider value={tags}>{children}</TagsContext.Provider>;\n};\n\nexport const useTags = () => {\n return useContext(TagsContext);\n};\n"],"mappings":";;;;;;;AAAA;AAIA,IAAMA,WAAW,gBAAG,IAAAC,oBAAa,EAAc,CAAC,CAAC,CAAC;AAClDD,WAAW,CAACE,WAAW,GAAG,aAAa;AAOhC,IAAMC,IAAyB,GAAG,SAA5BA,IAAyB,OAA2B;EAAA,IAArBC,IAAI,QAAJA,IAAI;IAAEC,QAAQ,QAARA,QAAQ;EACtD,oBAAO,6BAAC,WAAW,CAAC,QAAQ;IAAC,KAAK,EAAED;EAAK,GAAEC,QAAQ,CAAwB;AAC/E,CAAC;AAAC;AAEK,IAAMC,OAAO,GAAG,SAAVA,OAAO,GAAS;EACzB,OAAO,IAAAC,iBAAU,EAACP,WAAW,CAAC;AAClC,CAAC;AAAC"}
|
package/base/ui/UserMenu.d.ts
CHANGED
|
@@ -12,19 +12,19 @@ export interface UserMenuContext {
|
|
|
12
12
|
}
|
|
13
13
|
export declare function useUserMenu(): UserMenuContext;
|
|
14
14
|
export declare const UserMenuProvider: (Component: React.FC) => React.FC;
|
|
15
|
-
export declare const UserMenu: import("@webiny/app
|
|
16
|
-
export declare const UserMenuRenderer: import("@webiny/app
|
|
17
|
-
export declare const UserMenuHandle: import("@webiny/app
|
|
18
|
-
export declare const UserMenuHandleRenderer: import("@webiny/app
|
|
15
|
+
export declare const UserMenu: import("@webiny/app").ComposableFC<unknown>;
|
|
16
|
+
export declare const UserMenuRenderer: import("@webiny/app").ComposableFC<unknown>;
|
|
17
|
+
export declare const UserMenuHandle: import("@webiny/app").ComposableFC<unknown>;
|
|
18
|
+
export declare const UserMenuHandleRenderer: import("@webiny/app").ComposableFC<unknown>;
|
|
19
19
|
export interface UserMenuItemProps {
|
|
20
20
|
menuItem: UserMenuItemData;
|
|
21
21
|
}
|
|
22
|
-
export declare const UserMenuItem: import("@webiny/app
|
|
23
|
-
export declare const UserMenuItemRenderer: import("@webiny/app
|
|
22
|
+
export declare const UserMenuItem: import("@webiny/app").ComposableFC<UserMenuItemProps>;
|
|
23
|
+
export declare const UserMenuItemRenderer: import("@webiny/app").ComposableFC<unknown>;
|
|
24
24
|
export declare const AddUserMenuItem: React.FC<UserMenuItemProps["menuItem"]>;
|
|
25
25
|
export declare type UserMenuItemContext = UserMenuItemData;
|
|
26
26
|
export declare function useUserMenuItem(): UserMenuItemData;
|
|
27
27
|
export interface UserMenuItemsProps {
|
|
28
28
|
menuItems: UserMenuItemData[];
|
|
29
29
|
}
|
|
30
|
-
export declare const UserMenuItems: import("@webiny/app
|
|
30
|
+
export declare const UserMenuItems: import("@webiny/app").ComposableFC<UserMenuItemsProps>;
|
package/base/ui/UserMenu.js
CHANGED
|
@@ -1,51 +1,37 @@
|
|
|
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.UserMenuRenderer = exports.UserMenuProvider = exports.UserMenuItems = exports.UserMenuItemRenderer = exports.UserMenuItem = exports.UserMenuHandleRenderer = exports.UserMenuHandle = exports.UserMenu = exports.AddUserMenuItem = void 0;
|
|
11
9
|
exports.useUserMenu = useUserMenu;
|
|
12
10
|
exports.useUserMenuItem = useUserMenuItem;
|
|
13
|
-
|
|
14
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
-
|
|
16
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
13
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
19
|
-
|
|
20
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
-
|
|
22
|
-
var _appAdminCore = require("@webiny/app-admin-core");
|
|
23
|
-
|
|
15
|
+
var _app = require("@webiny/app");
|
|
24
16
|
var _excluded = ["children"];
|
|
25
|
-
|
|
26
17
|
var UserMenuContext = /*#__PURE__*/_react.default.createContext({
|
|
27
18
|
addMenuItem: function addMenuItem() {
|
|
28
19
|
return void 0;
|
|
29
20
|
},
|
|
30
21
|
menuItems: []
|
|
31
22
|
});
|
|
32
|
-
|
|
33
23
|
UserMenuContext.displayName = "UserMenuContext";
|
|
34
|
-
|
|
35
24
|
function useUserMenu() {
|
|
36
25
|
return _react.default.useContext(UserMenuContext);
|
|
37
26
|
}
|
|
38
|
-
|
|
39
27
|
var UserMenuProvider = function UserMenuProvider(Component) {
|
|
40
28
|
return function UserMenuProvider(_ref) {
|
|
41
29
|
var children = _ref.children,
|
|
42
|
-
|
|
43
|
-
|
|
30
|
+
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
44
31
|
var _useState = (0, _react.useState)([]),
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
32
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
33
|
+
menuItems = _useState2[0],
|
|
34
|
+
setItems = _useState2[1];
|
|
49
35
|
var addMenuItem = (0, _react.useCallback)(function (item) {
|
|
50
36
|
setItems(function (items) {
|
|
51
37
|
return [].concat((0, _toConsumableArray2.default)(items), [item]);
|
|
@@ -55,11 +41,9 @@ var UserMenuProvider = function UserMenuProvider(Component) {
|
|
|
55
41
|
var index = items.findIndex(function (i) {
|
|
56
42
|
return i === item;
|
|
57
43
|
});
|
|
58
|
-
|
|
59
44
|
if (index < 0) {
|
|
60
45
|
return items;
|
|
61
46
|
}
|
|
62
|
-
|
|
63
47
|
return [].concat((0, _toConsumableArray2.default)(items.slice(0, index)), (0, _toConsumableArray2.default)(items.slice(index + 1)));
|
|
64
48
|
});
|
|
65
49
|
};
|
|
@@ -73,42 +57,37 @@ var UserMenuProvider = function UserMenuProvider(Component) {
|
|
|
73
57
|
}, /*#__PURE__*/_react.default.createElement(Component, props, children));
|
|
74
58
|
};
|
|
75
59
|
};
|
|
76
|
-
|
|
77
60
|
exports.UserMenuProvider = UserMenuProvider;
|
|
78
|
-
var UserMenu = (0,
|
|
61
|
+
var UserMenu = (0, _app.makeComposable)("UserMenu", function () {
|
|
79
62
|
return /*#__PURE__*/_react.default.createElement(UserMenuRenderer, null);
|
|
80
63
|
});
|
|
81
64
|
exports.UserMenu = UserMenu;
|
|
82
|
-
var UserMenuRenderer = (0,
|
|
65
|
+
var UserMenuRenderer = (0, _app.makeComposable)("UserMenuRenderer");
|
|
83
66
|
exports.UserMenuRenderer = UserMenuRenderer;
|
|
84
|
-
var UserMenuHandle = (0,
|
|
67
|
+
var UserMenuHandle = (0, _app.makeComposable)("UserMenuHandle", function () {
|
|
85
68
|
return /*#__PURE__*/_react.default.createElement(UserMenuHandleRenderer, null);
|
|
86
69
|
});
|
|
87
70
|
exports.UserMenuHandle = UserMenuHandle;
|
|
88
|
-
var UserMenuHandleRenderer = (0,
|
|
71
|
+
var UserMenuHandleRenderer = (0, _app.makeComposable)("UserMenuHandleRenderer");
|
|
89
72
|
exports.UserMenuHandleRenderer = UserMenuHandleRenderer;
|
|
90
|
-
var UserMenuItem = (0,
|
|
73
|
+
var UserMenuItem = (0, _app.makeComposable)("UserMenuItem", function (_ref2) {
|
|
91
74
|
var menuItem = _ref2.menuItem;
|
|
92
75
|
return /*#__PURE__*/_react.default.createElement(UserMenuItemContext.Provider, {
|
|
93
76
|
value: menuItem
|
|
94
77
|
}, /*#__PURE__*/_react.default.createElement(UserMenuItemRenderer, null));
|
|
95
78
|
});
|
|
96
79
|
exports.UserMenuItem = UserMenuItem;
|
|
97
|
-
var UserMenuItemRenderer = (0,
|
|
80
|
+
var UserMenuItemRenderer = (0, _app.makeComposable)("UserMenuItemRenderer");
|
|
98
81
|
exports.UserMenuItemRenderer = UserMenuItemRenderer;
|
|
99
|
-
|
|
100
82
|
var AddUserMenuItem = function AddUserMenuItem(props) {
|
|
101
83
|
var _useUserMenu = useUserMenu(),
|
|
102
|
-
|
|
103
|
-
|
|
84
|
+
addMenuItem = _useUserMenu.addMenuItem;
|
|
104
85
|
(0, _react.useEffect)(function () {
|
|
105
86
|
return addMenuItem(props);
|
|
106
87
|
}, []);
|
|
107
88
|
return null;
|
|
108
89
|
};
|
|
109
|
-
|
|
110
90
|
exports.AddUserMenuItem = AddUserMenuItem;
|
|
111
|
-
|
|
112
91
|
var UserMenuItemContext = /*#__PURE__*/_react.default.createContext({
|
|
113
92
|
element: undefined,
|
|
114
93
|
icon: undefined,
|
|
@@ -118,14 +97,11 @@ var UserMenuItemContext = /*#__PURE__*/_react.default.createContext({
|
|
|
118
97
|
},
|
|
119
98
|
path: undefined
|
|
120
99
|
});
|
|
121
|
-
|
|
122
100
|
UserMenuItemContext.displayName = "UserMenuItemContext";
|
|
123
|
-
|
|
124
101
|
function useUserMenuItem() {
|
|
125
102
|
return _react.default.useContext(UserMenuItemContext);
|
|
126
103
|
}
|
|
127
|
-
|
|
128
|
-
var UserMenuItems = (0, _appAdminCore.makeComposable)("UserMenuItems", function (_ref3) {
|
|
104
|
+
var UserMenuItems = (0, _app.makeComposable)("UserMenuItems", function (_ref3) {
|
|
129
105
|
var menuItems = _ref3.menuItems;
|
|
130
106
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, menuItems.map(function (item, index) {
|
|
131
107
|
return /*#__PURE__*/_react.default.createElement(UserMenuItem, {
|
package/base/ui/UserMenu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UserMenuContext","React","createContext","addMenuItem","menuItems","displayName","useUserMenu","useContext","UserMenuProvider","Component","children","props","useState","setItems","useCallback","item","items","index","findIndex","i","slice","context","UserMenu","makeComposable","UserMenuRenderer","UserMenuHandle","UserMenuHandleRenderer","UserMenuItem","menuItem","UserMenuItemRenderer","AddUserMenuItem","useEffect","UserMenuItemContext","element","undefined","icon","label","onClick","path","useUserMenuItem","UserMenuItems","map"],"sources":["UserMenu.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { makeComposable } from \"@webiny/app
|
|
1
|
+
{"version":3,"names":["UserMenuContext","React","createContext","addMenuItem","menuItems","displayName","useUserMenu","useContext","UserMenuProvider","Component","children","props","useState","setItems","useCallback","item","items","index","findIndex","i","slice","context","UserMenu","makeComposable","UserMenuRenderer","UserMenuHandle","UserMenuHandleRenderer","UserMenuItem","menuItem","UserMenuItemRenderer","AddUserMenuItem","useEffect","UserMenuItemContext","element","undefined","icon","label","onClick","path","useUserMenuItem","UserMenuItems","map"],"sources":["UserMenu.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { makeComposable } from \"@webiny/app\";\n\nexport interface UserMenuItemData {\n label?: string;\n icon?: JSX.Element;\n path?: string;\n onClick?: () => void;\n element?: JSX.Element;\n}\n\nexport interface UserMenuContext {\n menuItems: UserMenuItemData[];\n addMenuItem(item: UserMenuItemData): void;\n}\n\nconst UserMenuContext = React.createContext<UserMenuContext>({\n addMenuItem: () => {\n return void 0;\n },\n menuItems: []\n});\nUserMenuContext.displayName = \"UserMenuContext\";\n\nexport function useUserMenu() {\n return React.useContext(UserMenuContext);\n}\n\nexport const UserMenuProvider = (Component: React.FC): React.FC => {\n return function UserMenuProvider({ children, ...props }) {\n const [menuItems, setItems] = useState<UserMenuItemData[]>([]);\n\n const addMenuItem = useCallback<UserMenuContext[\"addMenuItem\"]>(\n item => {\n setItems(items => [...items, item]);\n\n return () => {\n setItems(items => {\n const index = items.findIndex(i => i === item);\n if (index < 0) {\n return items;\n }\n\n return [...items.slice(0, index), ...items.slice(index + 1)];\n });\n };\n },\n [setItems]\n );\n\n const context = {\n menuItems,\n addMenuItem\n };\n\n return (\n <UserMenuContext.Provider value={context}>\n <Component {...props}>{children}</Component>\n </UserMenuContext.Provider>\n );\n };\n};\n\nexport const UserMenu = makeComposable(\"UserMenu\", () => {\n return <UserMenuRenderer />;\n});\n\nexport const UserMenuRenderer = makeComposable(\"UserMenuRenderer\");\n\nexport const UserMenuHandle = makeComposable(\"UserMenuHandle\", () => {\n return <UserMenuHandleRenderer />;\n});\n\nexport const UserMenuHandleRenderer = makeComposable(\"UserMenuHandleRenderer\");\n\nexport interface UserMenuItemProps {\n menuItem: UserMenuItemData;\n}\n\nexport const UserMenuItem = makeComposable<UserMenuItemProps>(\"UserMenuItem\", ({ menuItem }) => {\n return (\n <UserMenuItemContext.Provider value={menuItem}>\n <UserMenuItemRenderer />\n </UserMenuItemContext.Provider>\n );\n});\n\nexport const UserMenuItemRenderer = makeComposable(\"UserMenuItemRenderer\");\n\nexport const AddUserMenuItem: React.FC<UserMenuItemProps[\"menuItem\"]> = props => {\n const { addMenuItem } = useUserMenu();\n\n useEffect(() => {\n return addMenuItem(props);\n }, []);\n\n return null;\n};\n\nexport type UserMenuItemContext = UserMenuItemData;\n\nconst UserMenuItemContext = React.createContext<UserMenuItemContext>({\n element: undefined,\n icon: undefined,\n label: undefined,\n onClick: () => {\n return void 0;\n },\n path: undefined\n});\nUserMenuItemContext.displayName = \"UserMenuItemContext\";\n\nexport function useUserMenuItem() {\n return React.useContext(UserMenuItemContext);\n}\n\nexport interface UserMenuItemsProps {\n menuItems: UserMenuItemData[];\n}\n\nexport const UserMenuItems = makeComposable<UserMenuItemsProps>(\n \"UserMenuItems\",\n ({ menuItems }) => {\n return (\n <Fragment>\n {menuItems.map((item, index) => (\n <UserMenuItem key={index} menuItem={item} />\n ))}\n </Fragment>\n );\n }\n);\n"],"mappings":"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"}
|
|
@@ -1,22 +1,17 @@
|
|
|
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.AdminLayout = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
9
|
var _ = require("./..");
|
|
13
|
-
|
|
14
10
|
var AdminLayout = function AdminLayout(_ref) {
|
|
15
11
|
var title = _ref.title,
|
|
16
|
-
|
|
12
|
+
children = _ref.children;
|
|
17
13
|
return /*#__PURE__*/_react.default.createElement(_.Layout, {
|
|
18
14
|
title: title
|
|
19
15
|
}, children);
|
|
20
16
|
};
|
|
21
|
-
|
|
22
17
|
exports.AdminLayout = AdminLayout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AdminLayout","title","children"],"sources":["AdminLayout.tsx"],"sourcesContent":["import React from \"react\";\nimport { Layout } from \"~/index\";\n\ninterface AdminLayoutProps {\n title?: string;\n}\n\nexport const AdminLayout: React.FC<AdminLayoutProps> = ({ title, children }) => {\n return <Layout title={title}>{children}</Layout>;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["AdminLayout","title","children"],"sources":["AdminLayout.tsx"],"sourcesContent":["import React from \"react\";\nimport { Layout } from \"~/index\";\n\ninterface AdminLayoutProps {\n title?: string;\n}\n\nexport const AdminLayout: React.FC<AdminLayoutProps> = ({ title, children }) => {\n return <Layout title={title}>{children}</Layout>;\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAMO,IAAMA,WAAuC,GAAG,SAA1CA,WAAuC,OAA4B;EAAA,IAAtBC,KAAK,QAALA,KAAK;IAAEC,QAAQ,QAARA,QAAQ;EACrE,oBAAO,6BAAC,QAAM;IAAC,KAAK,EAAED;EAAM,GAAEC,QAAQ,CAAU;AACpD,CAAC;AAAC"}
|
|
@@ -1,98 +1,69 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.AppInstaller = void 0;
|
|
11
|
-
|
|
12
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
-
|
|
14
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
-
|
|
16
11
|
var _store = _interopRequireDefault(require("store"));
|
|
17
|
-
|
|
18
12
|
var _ = require("../..");
|
|
19
|
-
|
|
20
13
|
var _appSecurity = require("@webiny/app-security");
|
|
21
|
-
|
|
22
14
|
var _Progress = require("@webiny/ui/Progress");
|
|
23
|
-
|
|
24
15
|
var _Button = require("@webiny/ui/Button");
|
|
25
|
-
|
|
26
16
|
var _SplitView = require("../SplitView");
|
|
27
|
-
|
|
28
17
|
var _Grid = require("@webiny/ui/Grid");
|
|
29
|
-
|
|
30
18
|
var _Typography = require("@webiny/ui/Typography");
|
|
31
|
-
|
|
32
19
|
var _Elevation = require("@webiny/ui/Elevation");
|
|
33
|
-
|
|
34
20
|
var _useInstaller2 = require("./useInstaller");
|
|
35
|
-
|
|
36
21
|
var _Sidebar = _interopRequireDefault(require("./Sidebar"));
|
|
37
|
-
|
|
38
22
|
var _styled = require("./styled");
|
|
39
|
-
|
|
40
23
|
var _config = require("@webiny/app/config");
|
|
41
|
-
|
|
42
24
|
var AppInstaller = function AppInstaller(_ref) {
|
|
43
25
|
var children = _ref.children;
|
|
44
26
|
var tenantId = _store.default.get("webiny_tenant") || "root";
|
|
45
27
|
var lsKey = "webiny_installation_".concat(tenantId);
|
|
46
|
-
|
|
47
28
|
var wbyVersion = _config.config.getKey("WEBINY_VERSION", process.env.REACT_APP_WEBINY_VERSION);
|
|
48
|
-
|
|
49
29
|
var isRootTenant = tenantId === "root";
|
|
50
30
|
/*
|
|
51
31
|
* This flag allows us to avoid rendering the <iframe> when the app is tested with Cypress
|
|
52
32
|
* (Cypress doesn't work with cross domains because of security-related implications).
|
|
53
33
|
* @see https://docs.cypress.io/guides/guides/web-security#Insecure-Content
|
|
54
34
|
*/
|
|
55
|
-
|
|
56
35
|
var isCypressTest = window && window.Cypress;
|
|
57
|
-
|
|
58
36
|
var markInstallerAsCompleted = function markInstallerAsCompleted() {
|
|
59
37
|
_store.default.set(lsKey, wbyVersion);
|
|
60
38
|
};
|
|
61
|
-
|
|
62
39
|
var isInstallerCompleted = function isInstallerCompleted() {
|
|
63
40
|
return _store.default.get(lsKey) === wbyVersion;
|
|
64
41
|
};
|
|
65
|
-
|
|
66
42
|
var _useState = (0, _react.useState)(false),
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
43
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
44
|
+
finished = _useState2[0],
|
|
45
|
+
setFinished = _useState2[1];
|
|
71
46
|
var _useSecurity = (0, _appSecurity.useSecurity)(),
|
|
72
|
-
|
|
73
|
-
|
|
47
|
+
identity = _useSecurity.identity;
|
|
74
48
|
var _useInstaller = (0, _useInstaller2.useInstaller)({
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
49
|
+
isInstalled: isInstallerCompleted()
|
|
50
|
+
}),
|
|
51
|
+
loading = _useInstaller.loading,
|
|
52
|
+
installers = _useInstaller.installers,
|
|
53
|
+
installer = _useInstaller.installer,
|
|
54
|
+
isFirstInstall = _useInstaller.isFirstInstall,
|
|
55
|
+
showNextInstaller = _useInstaller.showNextInstaller,
|
|
56
|
+
showLogin = _useInstaller.showLogin,
|
|
57
|
+
onUser = _useInstaller.onUser,
|
|
58
|
+
skippingVersions = _useInstaller.skippingVersions;
|
|
86
59
|
(0, _react.useEffect)(function () {
|
|
87
60
|
if (identity) {
|
|
88
61
|
onUser();
|
|
89
62
|
}
|
|
90
63
|
}, [identity]);
|
|
91
|
-
|
|
92
64
|
if (isInstallerCompleted()) {
|
|
93
65
|
return /*#__PURE__*/_react.default.createElement(_.LoginScreen, null, children);
|
|
94
66
|
}
|
|
95
|
-
|
|
96
67
|
var renderLayout = function renderLayout(content) {
|
|
97
68
|
var secure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
98
69
|
return /*#__PURE__*/_react.default.createElement(_SplitView.SplitView, {
|
|
@@ -107,30 +78,27 @@ var AppInstaller = function AppInstaller(_ref) {
|
|
|
107
78
|
span: 10
|
|
108
79
|
}, !showLogin && !secure && content, (showLogin || secure) && /*#__PURE__*/_react.default.createElement(_.LoginScreen, null, content)));
|
|
109
80
|
};
|
|
110
|
-
|
|
111
81
|
var renderBody = function renderBody(content) {
|
|
112
82
|
return /*#__PURE__*/_react.default.createElement(_styled.Wrapper, null, /*#__PURE__*/_react.default.createElement(_styled.InstallContent, null, /*#__PURE__*/_react.default.createElement(_styled.InnerContent, null, content)));
|
|
113
|
-
};
|
|
114
|
-
|
|
83
|
+
};
|
|
115
84
|
|
|
85
|
+
// Loading installers data
|
|
116
86
|
if (loading) {
|
|
117
87
|
return /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
|
|
118
88
|
label: "Checking apps..."
|
|
119
89
|
});
|
|
120
|
-
}
|
|
121
|
-
|
|
90
|
+
}
|
|
122
91
|
|
|
92
|
+
// This means there are no installers to run or installation was finished
|
|
123
93
|
if (!loading && (installers.length === 0 || finished)) {
|
|
124
94
|
markInstallerAsCompleted();
|
|
125
95
|
return /*#__PURE__*/_react.default.createElement(_.LoginScreen, null, children);
|
|
126
96
|
}
|
|
127
|
-
|
|
128
97
|
if (installer) {
|
|
129
98
|
return renderLayout(renderBody(installer.render({
|
|
130
99
|
onInstalled: showNextInstaller
|
|
131
100
|
})), installer.secure);
|
|
132
101
|
}
|
|
133
|
-
|
|
134
102
|
if (skippingVersions) {
|
|
135
103
|
return renderBody( /*#__PURE__*/_react.default.createElement(_Elevation.Elevation, {
|
|
136
104
|
z: 1,
|
|
@@ -160,7 +128,6 @@ var AppInstaller = function AppInstaller(_ref) {
|
|
|
160
128
|
rel: "noreferrer noopener"
|
|
161
129
|
}, "Slack community."))))));
|
|
162
130
|
}
|
|
163
|
-
|
|
164
131
|
return renderLayout(renderBody( /*#__PURE__*/_react.default.createElement(_Elevation.Elevation, {
|
|
165
132
|
z: 1
|
|
166
133
|
}, /*#__PURE__*/_react.default.createElement(_styled.SuccessDialog, null, /*#__PURE__*/_react.default.createElement("p", null, "You have successfully installed all new applications!"), !isCypressTest && isRootTenant && isFirstInstall ? /*#__PURE__*/_react.default.createElement("iframe", {
|
|
@@ -179,5 +146,4 @@ var AppInstaller = function AppInstaller(_ref) {
|
|
|
179
146
|
}
|
|
180
147
|
}, isFirstInstall ? "Finish install" : "Finish upgrade")))), true);
|
|
181
148
|
};
|
|
182
|
-
|
|
183
149
|
exports.AppInstaller = AppInstaller;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AppInstaller","children","tenantId","localStorage","get","lsKey","wbyVersion","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","isRootTenant","isCypressTest","window","Cypress","markInstallerAsCompleted","set","isInstallerCompleted","useState","finished","setFinished","useSecurity","identity","useInstaller","isInstalled","loading","installers","installer","isFirstInstall","showNextInstaller","showLogin","onUser","skippingVersions","useEffect","renderLayout","content","secure","installerSplitView","renderBody","length","render","onInstalled","alertClass","latest","current","availableUpgrades","filter","v","map","opacity"],"sources":["AppInstaller.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { default as localStorage } from \"store\";\nimport { LoginScreen } from \"~/index\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { SplitView, LeftPanel, RightPanel } from \"../SplitView\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { useInstaller } from \"./useInstaller\";\nimport Sidebar from \"./Sidebar\";\n\ndeclare global {\n interface Window {\n Cypress: any;\n }\n}\n\nimport {\n Wrapper,\n alertClass,\n InnerContent,\n InstallContent,\n installerSplitView,\n SuccessDialog\n} from \"./styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nexport const AppInstaller: React.FC = ({ children }) => {\n const tenantId = localStorage.get(\"webiny_tenant\") || \"root\";\n const lsKey = `webiny_installation_${tenantId}`;\n const wbyVersion = appConfig.getKey(\"WEBINY_VERSION\", process.env.REACT_APP_WEBINY_VERSION);\n const isRootTenant = tenantId === \"root\";\n /*\n * This flag allows us to avoid rendering the <iframe> when the app is tested with Cypress\n * (Cypress doesn't work with cross domains because of security-related implications).\n * @see https://docs.cypress.io/guides/guides/web-security#Insecure-Content\n */\n const isCypressTest = window && window.Cypress;\n\n const markInstallerAsCompleted = () => {\n localStorage.set(lsKey, wbyVersion);\n };\n\n const isInstallerCompleted = () => {\n return localStorage.get(lsKey) === wbyVersion;\n };\n\n const [finished, setFinished] = useState(false);\n const { identity } = useSecurity();\n const {\n loading,\n installers,\n installer,\n isFirstInstall,\n showNextInstaller,\n showLogin,\n onUser,\n skippingVersions\n } = useInstaller({ isInstalled: isInstallerCompleted() });\n\n useEffect(() => {\n if (identity) {\n onUser();\n }\n }, [identity]);\n\n if (isInstallerCompleted()) {\n return <LoginScreen>{children}</LoginScreen>;\n }\n\n const renderLayout = (content: React.ReactNode, secure = false): React.ReactElement => {\n return (\n <SplitView className={installerSplitView}>\n <LeftPanel span={2}>\n <Sidebar\n allInstallers={installers}\n installer={installer}\n showLogin={showLogin}\n />\n </LeftPanel>\n <RightPanel span={10}>\n {!showLogin && !secure && content}\n {(showLogin || secure) && <LoginScreen>{content}</LoginScreen>}\n </RightPanel>\n </SplitView>\n );\n };\n\n const renderBody = (content: React.ReactNode): React.ReactElement => {\n return (\n <Wrapper>\n <InstallContent>\n <InnerContent>{content}</InnerContent>\n </InstallContent>\n </Wrapper>\n );\n };\n\n // Loading installers data\n if (loading) {\n return <CircularProgress label={\"Checking apps...\"} />;\n }\n\n // This means there are no installers to run or installation was finished\n if (!loading && (installers.length === 0 || finished)) {\n markInstallerAsCompleted();\n return <LoginScreen>{children}</LoginScreen>;\n }\n\n if (installer) {\n return renderLayout(\n renderBody(installer.render({ onInstalled: showNextInstaller })),\n installer.secure\n );\n }\n\n if (skippingVersions) {\n return renderBody(\n <Elevation z={1} className={alertClass}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"headline4\"}>Important!</Typography>\n </Cell>\n <Cell span={12}>\n <Typography use={\"body1\"} tag={\"div\"}>\n We've detected that your current application is running Webiny{\" \"}\n <strong>v{skippingVersions.latest}</strong>. However, your API is\n running <strong>v{skippingVersions.current}</strong>. Unfortunately, we\n can't upgrade your system by skipping versions in between.\n <br />\n <br />\n Here's a list of versions you skipped, that contain upgrades you\n need to install:\n <ul>\n {skippingVersions.availableUpgrades\n .filter(v => v !== skippingVersions.latest)\n .map(v => (\n <li key={v}>v{v}</li>\n ))}\n </ul>\n For instructions on how to upgrade Webiny, please consult our{\" \"}\n <a\n href={\"https://docs.webiny.com/docs/how-to-guides/upgrade-webiny\"}\n target={\"_blank\"}\n rel={\"noreferrer noopener\"}\n >\n Upgrade Webiny\n </a>{\" \"}\n guide. Note that some versions may have a dedicated article with upgrade\n instructions, so look out for those in the upgrade guide.\n <br />\n <br />\n If you run into problems, find us on our{\" \"}\n <a\n href={\"https://www.webiny.com/slack\"}\n target={\"_blank\"}\n rel={\"noreferrer noopener\"}\n >\n Slack community.\n </a>\n </Typography>\n </Cell>\n </Grid>\n </Elevation>\n );\n }\n\n return renderLayout(\n renderBody(\n <Elevation z={1}>\n <SuccessDialog>\n <p>You have successfully installed all new applications!</p>\n {!isCypressTest && isRootTenant && isFirstInstall ? (\n <iframe\n height=\"0\"\n width=\"0\"\n frameBorder=\"0\"\n style={{ opacity: \"0\" }}\n src=\"https://www.webiny.com/thank-you/new-install\"\n ></iframe>\n ) : null}\n <ButtonPrimary\n data-testid={\"open-webiny-cms-admin-button\"}\n onClick={() => {\n markInstallerAsCompleted();\n setFinished(true);\n }}\n >\n {isFirstInstall ? \"Finish install\" : \"Finish upgrade\"}\n </ButtonPrimary>\n </SuccessDialog>\n </Elevation>\n ),\n true\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["AppInstaller","children","tenantId","localStorage","get","lsKey","wbyVersion","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","isRootTenant","isCypressTest","window","Cypress","markInstallerAsCompleted","set","isInstallerCompleted","useState","finished","setFinished","useSecurity","identity","useInstaller","isInstalled","loading","installers","installer","isFirstInstall","showNextInstaller","showLogin","onUser","skippingVersions","useEffect","renderLayout","content","secure","installerSplitView","renderBody","length","render","onInstalled","alertClass","latest","current","availableUpgrades","filter","v","map","opacity"],"sources":["AppInstaller.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { default as localStorage } from \"store\";\nimport { LoginScreen } from \"~/index\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { SplitView, LeftPanel, RightPanel } from \"../SplitView\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { useInstaller } from \"./useInstaller\";\nimport Sidebar from \"./Sidebar\";\n\ndeclare global {\n interface Window {\n Cypress: any;\n }\n}\n\nimport {\n Wrapper,\n alertClass,\n InnerContent,\n InstallContent,\n installerSplitView,\n SuccessDialog\n} from \"./styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nexport const AppInstaller: React.FC = ({ children }) => {\n const tenantId = localStorage.get(\"webiny_tenant\") || \"root\";\n const lsKey = `webiny_installation_${tenantId}`;\n const wbyVersion = appConfig.getKey(\"WEBINY_VERSION\", process.env.REACT_APP_WEBINY_VERSION);\n const isRootTenant = tenantId === \"root\";\n /*\n * This flag allows us to avoid rendering the <iframe> when the app is tested with Cypress\n * (Cypress doesn't work with cross domains because of security-related implications).\n * @see https://docs.cypress.io/guides/guides/web-security#Insecure-Content\n */\n const isCypressTest = window && window.Cypress;\n\n const markInstallerAsCompleted = () => {\n localStorage.set(lsKey, wbyVersion);\n };\n\n const isInstallerCompleted = () => {\n return localStorage.get(lsKey) === wbyVersion;\n };\n\n const [finished, setFinished] = useState(false);\n const { identity } = useSecurity();\n const {\n loading,\n installers,\n installer,\n isFirstInstall,\n showNextInstaller,\n showLogin,\n onUser,\n skippingVersions\n } = useInstaller({ isInstalled: isInstallerCompleted() });\n\n useEffect(() => {\n if (identity) {\n onUser();\n }\n }, [identity]);\n\n if (isInstallerCompleted()) {\n return <LoginScreen>{children}</LoginScreen>;\n }\n\n const renderLayout = (content: React.ReactNode, secure = false): React.ReactElement => {\n return (\n <SplitView className={installerSplitView}>\n <LeftPanel span={2}>\n <Sidebar\n allInstallers={installers}\n installer={installer}\n showLogin={showLogin}\n />\n </LeftPanel>\n <RightPanel span={10}>\n {!showLogin && !secure && content}\n {(showLogin || secure) && <LoginScreen>{content}</LoginScreen>}\n </RightPanel>\n </SplitView>\n );\n };\n\n const renderBody = (content: React.ReactNode): React.ReactElement => {\n return (\n <Wrapper>\n <InstallContent>\n <InnerContent>{content}</InnerContent>\n </InstallContent>\n </Wrapper>\n );\n };\n\n // Loading installers data\n if (loading) {\n return <CircularProgress label={\"Checking apps...\"} />;\n }\n\n // This means there are no installers to run or installation was finished\n if (!loading && (installers.length === 0 || finished)) {\n markInstallerAsCompleted();\n return <LoginScreen>{children}</LoginScreen>;\n }\n\n if (installer) {\n return renderLayout(\n renderBody(installer.render({ onInstalled: showNextInstaller })),\n installer.secure\n );\n }\n\n if (skippingVersions) {\n return renderBody(\n <Elevation z={1} className={alertClass}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"headline4\"}>Important!</Typography>\n </Cell>\n <Cell span={12}>\n <Typography use={\"body1\"} tag={\"div\"}>\n We've detected that your current application is running Webiny{\" \"}\n <strong>v{skippingVersions.latest}</strong>. However, your API is\n running <strong>v{skippingVersions.current}</strong>. Unfortunately, we\n can't upgrade your system by skipping versions in between.\n <br />\n <br />\n Here's a list of versions you skipped, that contain upgrades you\n need to install:\n <ul>\n {skippingVersions.availableUpgrades\n .filter(v => v !== skippingVersions.latest)\n .map(v => (\n <li key={v}>v{v}</li>\n ))}\n </ul>\n For instructions on how to upgrade Webiny, please consult our{\" \"}\n <a\n href={\"https://docs.webiny.com/docs/how-to-guides/upgrade-webiny\"}\n target={\"_blank\"}\n rel={\"noreferrer noopener\"}\n >\n Upgrade Webiny\n </a>{\" \"}\n guide. Note that some versions may have a dedicated article with upgrade\n instructions, so look out for those in the upgrade guide.\n <br />\n <br />\n If you run into problems, find us on our{\" \"}\n <a\n href={\"https://www.webiny.com/slack\"}\n target={\"_blank\"}\n rel={\"noreferrer noopener\"}\n >\n Slack community.\n </a>\n </Typography>\n </Cell>\n </Grid>\n </Elevation>\n );\n }\n\n return renderLayout(\n renderBody(\n <Elevation z={1}>\n <SuccessDialog>\n <p>You have successfully installed all new applications!</p>\n {!isCypressTest && isRootTenant && isFirstInstall ? (\n <iframe\n height=\"0\"\n width=\"0\"\n frameBorder=\"0\"\n style={{ opacity: \"0\" }}\n src=\"https://www.webiny.com/thank-you/new-install\"\n ></iframe>\n ) : null}\n <ButtonPrimary\n data-testid={\"open-webiny-cms-admin-button\"}\n onClick={() => {\n markInstallerAsCompleted();\n setFinished(true);\n }}\n >\n {isFirstInstall ? \"Finish install\" : \"Finish upgrade\"}\n </ButtonPrimary>\n </SuccessDialog>\n </Elevation>\n ),\n true\n );\n};\n"],"mappings":"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"}
|