@webiny/app-admin 5.27.0-beta.0 → 5.28.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/base/Admin.js +44 -24
- package/base/Admin.js.map +1 -1
- package/base/Base.js +52 -29
- package/base/Base.js.map +1 -1
- package/base/plugins/AddGraphQLQuerySelection.js +26 -11
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
- package/base/providers/ApolloProvider.js +19 -6
- package/base/providers/ApolloProvider.js.map +1 -1
- package/base/providers/TelemetryProvider.js +21 -8
- package/base/providers/TelemetryProvider.js.map +1 -1
- package/base/providers/UiStateProvider.js +18 -5
- package/base/providers/UiStateProvider.js.map +1 -1
- package/base/providers/ViewCompositionProvider.js +34 -15
- package/base/providers/ViewCompositionProvider.js.map +1 -1
- package/base/ui/Brand.js +18 -5
- package/base/ui/Brand.js.map +1 -1
- package/base/ui/CenteredView.js +21 -8
- package/base/ui/CenteredView.js.map +1 -1
- package/base/ui/Dashboard.js +18 -5
- package/base/ui/Dashboard.js.map +1 -1
- package/base/ui/Layout.js +21 -8
- package/base/ui/Layout.js.map +1 -1
- package/base/ui/LocaleSelector.js +18 -5
- package/base/ui/LocaleSelector.js.map +1 -1
- package/base/ui/LoginScreen.js +22 -7
- package/base/ui/LoginScreen.js.map +1 -1
- package/base/ui/Logo.js +25 -9
- package/base/ui/Logo.js.map +1 -1
- package/base/ui/Menu.js +46 -26
- package/base/ui/Menu.js.map +1 -1
- package/base/ui/Navigation.js +79 -42
- package/base/ui/Navigation.js.map +1 -1
- package/base/ui/NotFound.js +18 -5
- package/base/ui/NotFound.js.map +1 -1
- package/base/ui/Search.js +50 -22
- package/base/ui/Search.js.map +1 -1
- package/base/ui/Tags.js +23 -7
- package/base/ui/Tags.js.map +1 -1
- package/base/ui/UserMenu.js +74 -36
- package/base/ui/UserMenu.js.map +1 -1
- package/components/AdminLayout.js +18 -5
- package/components/AdminLayout.js.map +1 -1
- package/components/AppInstaller/AppInstaller.js +79 -49
- package/components/AppInstaller/AppInstaller.js.map +1 -1
- package/components/AppInstaller/Sidebar.js +50 -28
- package/components/AppInstaller/Sidebar.js.map +1 -1
- package/components/AppInstaller/index.js +20 -7
- package/components/AppInstaller/index.js.map +1 -1
- package/components/AppInstaller/styled.js +26 -9
- package/components/AppInstaller/styled.js.map +1 -1
- package/components/AppInstaller/useInstaller.js +67 -40
- package/components/AppInstaller/useInstaller.js.map +1 -1
- package/components/EmptyView.js +25 -11
- package/components/EmptyView.js.map +1 -1
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +23 -9
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -1
- package/components/FileManager/BottomInfoBar/UploadStatus.js +21 -8
- package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -1
- package/components/FileManager/BottomInfoBar.js +29 -11
- package/components/FileManager/BottomInfoBar.js.map +1 -1
- package/components/FileManager/DropFilesHere.js +27 -12
- package/components/FileManager/DropFilesHere.js.map +1 -1
- package/components/FileManager/File.js +42 -24
- package/components/FileManager/File.js.map +1 -1
- package/components/FileManager/FileDetails/Name.js +52 -30
- package/components/FileManager/FileDetails/Name.js.map +1 -1
- package/components/FileManager/FileDetails/Tags.js +112 -73
- package/components/FileManager/FileDetails/Tags.js.map +1 -1
- package/components/FileManager/FileDetails.js +157 -120
- package/components/FileManager/FileDetails.js.map +1 -1
- package/components/FileManager/FileManagerContext.js +39 -20
- package/components/FileManager/FileManagerContext.js.map +1 -1
- package/components/FileManager/FileManagerView.js +172 -130
- package/components/FileManager/FileManagerView.js.map +1 -1
- package/components/FileManager/LeftSidebar.js +49 -28
- package/components/FileManager/LeftSidebar.js.map +1 -1
- package/components/FileManager/NoPermissionView.js +35 -18
- package/components/FileManager/NoPermissionView.js.map +1 -1
- package/components/FileManager/NoResults.js +18 -6
- package/components/FileManager/NoResults.js.map +1 -1
- package/components/FileManager/getFileTypePlugin.js +23 -9
- package/components/FileManager/getFileTypePlugin.js.map +1 -1
- package/components/FileManager/getFileUploader.js +14 -4
- package/components/FileManager/getFileUploader.js.map +1 -1
- package/components/FileManager/graphql.js +24 -8
- package/components/FileManager/graphql.js.map +1 -1
- package/components/FileManager/outputFileSelectionError.js +16 -4
- package/components/FileManager/outputFileSelectionError.js.map +1 -1
- package/components/FileManager/types.js +5 -1
- package/components/FileManager/types.js.map +1 -1
- package/components/FileManager.js +60 -36
- package/components/FileManager.js.map +1 -1
- package/components/FloatingActionButton.js +18 -6
- package/components/FloatingActionButton.js.map +1 -1
- package/components/MultiImageUpload.js +24 -12
- package/components/MultiImageUpload.js.map +1 -1
- package/components/OverlayLayout/OverlayLayout.js +68 -43
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/index.js +13 -1
- package/components/OverlayLayout/index.js.map +1 -1
- package/components/Permissions/Permissions.js +28 -11
- package/components/Permissions/Permissions.js.map +1 -1
- package/components/Permissions/StyledComponents.js +26 -9
- package/components/Permissions/StyledComponents.js.map +1 -1
- package/components/Permissions/index.js +30 -2
- package/components/Permissions/index.js.map +1 -1
- package/components/RichTextEditor/RichTextEditor.js +24 -9
- package/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/components/RichTextEditor/index.js +21 -2
- package/components/RichTextEditor/index.js.map +1 -1
- package/components/RichTextEditor/tools/header/index.js +34 -33
- package/components/RichTextEditor/tools/header/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/index.js +34 -28
- package/components/RichTextEditor/tools/image/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/svgs.js +9 -2
- package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
- package/components/RichTextEditor/tools/image/tunes.js +28 -22
- package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
- package/components/RichTextEditor/tools/image/types.js +5 -1
- package/components/RichTextEditor/tools/image/types.js.map +1 -1
- package/components/RichTextEditor/tools/image/ui.js +30 -23
- package/components/RichTextEditor/tools/image/ui.js.map +1 -1
- package/components/RichTextEditor/tools/paragraph/index.js +43 -41
- package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
- package/components/RichTextEditor/tools/textColor/index.js +27 -26
- package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
- package/components/RichTextEditor/tools/utils.js +14 -5
- package/components/RichTextEditor/tools/utils.js.map +1 -1
- package/components/Routes.js +24 -9
- package/components/Routes.js.map +1 -1
- package/components/SearchUI.js +23 -9
- package/components/SearchUI.js.map +1 -1
- package/components/SimpleForm/SimpleForm.js +60 -29
- package/components/SimpleForm/SimpleForm.js.map +1 -1
- package/components/SimpleForm/index.js +31 -1
- package/components/SimpleForm/index.js.map +1 -1
- package/components/SimpleUI/InputField.js +35 -18
- package/components/SimpleUI/InputField.js.map +1 -1
- package/components/SingleImageUpload.js +41 -22
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.js +42 -19
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/SplitView/index.js +25 -1
- package/components/SplitView/index.js.map +1 -1
- package/components/index.js +13 -1
- package/components/index.js.map +1 -1
- package/hooks/useConfirmationDialog.js +29 -16
- package/hooks/useConfirmationDialog.js.map +1 -1
- package/hooks/useDialog.js +16 -6
- package/hooks/useDialog.js.map +1 -1
- package/hooks/useSnackbar.js +20 -7
- package/hooks/useSnackbar.js.map +1 -1
- package/index.js +286 -26
- package/index.js.map +1 -1
- package/package.json +20 -20
- package/plugins/FileManagerFileTypePlugin.js +33 -20
- package/plugins/FileManagerFileTypePlugin.js.map +1 -1
- package/plugins/MenuPlugin.js +33 -20
- package/plugins/MenuPlugin.js.map +1 -1
- package/plugins/PermissionRendererPlugin.js +33 -20
- package/plugins/PermissionRendererPlugin.js.map +1 -1
- package/plugins/fileManager/fileDefault.js +24 -8
- package/plugins/fileManager/fileDefault.js.map +1 -1
- package/plugins/fileManager/fileImage/DeleteAction.js +45 -24
- package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -1
- package/plugins/fileManager/fileImage/EditAction.js +51 -28
- package/plugins/fileManager/fileImage/EditAction.js.map +1 -1
- package/plugins/fileManager/fileImage/index.js +29 -10
- package/plugins/fileManager/fileImage/index.js.map +1 -1
- package/plugins/fileManager/index.js +15 -3
- package/plugins/fileManager/index.js.map +1 -1
- package/plugins/globalSearch/SearchBar.js +82 -60
- package/plugins/globalSearch/SearchBar.js.map +1 -1
- package/plugins/globalSearch/SearchBarDropdown.js +46 -27
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
- package/plugins/globalSearch/index.js +9 -2
- package/plugins/globalSearch/index.js.map +1 -1
- package/plugins/globalSearch/styled.js +33 -13
- package/plugins/globalSearch/styled.js.map +1 -1
- package/plugins/index.js +20 -6
- package/plugins/index.js.map +1 -1
- package/plugins/uiLayoutRenderer/index.js +26 -13
- package/plugins/uiLayoutRenderer/index.js.map +1 -1
- package/types.js +5 -1
- package/types.js.map +1 -1
- package/ui/UIElement.js +19 -1
- package/ui/UIElement.js.map +1 -1
- package/ui/UILayout.js +19 -1
- package/ui/UILayout.js.map +1 -1
- package/ui/UIRenderer.js +13 -1
- package/ui/UIRenderer.js.map +1 -1
- package/ui/UIView.js +25 -1
- package/ui/UIView.js.map +1 -1
- package/ui/elements/AccordionElement.js +52 -32
- package/ui/elements/AccordionElement.js.map +1 -1
- package/ui/elements/ButtonElement.js +36 -19
- package/ui/elements/ButtonElement.js.map +1 -1
- package/ui/elements/ButtonGroupElement.js +38 -19
- package/ui/elements/ButtonGroupElement.js.map +1 -1
- package/ui/elements/GenericElement.js +18 -1
- package/ui/elements/GenericElement.js.map +1 -1
- package/ui/elements/LabelElement.js +26 -13
- package/ui/elements/LabelElement.js.map +1 -1
- package/ui/elements/NavigationMenuElement.js +48 -30
- package/ui/elements/NavigationMenuElement.js.map +1 -1
- package/ui/elements/PanelElement.js +27 -12
- package/ui/elements/PanelElement.js.map +1 -1
- package/ui/elements/PlaceholderElement.js +27 -13
- package/ui/elements/PlaceholderElement.js.map +1 -1
- package/ui/elements/SmallButtonElement.js +36 -19
- package/ui/elements/SmallButtonElement.js.map +1 -1
- package/ui/elements/TypographyElement.js +38 -20
- package/ui/elements/TypographyElement.js.map +1 -1
- package/ui/elements/ViewElement.js +18 -1
- package/ui/elements/ViewElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +33 -17
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement.js +41 -23
- package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js +30 -14
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +51 -28
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +45 -25
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/styled.js +26 -12
- package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
- package/ui/elements/form/FileManagerElement.js +39 -22
- package/ui/elements/form/FileManagerElement.js.map +1 -1
- package/ui/elements/form/FormElement.js +42 -21
- package/ui/elements/form/FormElement.js.map +1 -1
- package/ui/elements/form/FormFieldElement.js +38 -23
- package/ui/elements/form/FormFieldElement.js.map +1 -1
- package/ui/elements/form/HiddenElement.js +30 -15
- package/ui/elements/form/HiddenElement.js.map +1 -1
- package/ui/elements/form/InputElement.js +34 -18
- package/ui/elements/form/InputElement.js.map +1 -1
- package/ui/elements/form/PasswordElement.js +34 -18
- package/ui/elements/form/PasswordElement.js.map +1 -1
- package/ui/elements/form/SelectElement.js +35 -19
- package/ui/elements/form/SelectElement.js.map +1 -1
- package/ui/elements/form/TextareaElement.js +34 -18
- package/ui/elements/form/TextareaElement.js.map +1 -1
- package/ui/views/AdminView/ContentElement.js +40 -24
- package/ui/views/AdminView/ContentElement.js.map +1 -1
- package/ui/views/AdminView/HeaderElement.js +60 -39
- package/ui/views/AdminView/HeaderElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionCenterElement.js +41 -21
- package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionLeftElement.js +41 -21
- package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionRightElement.js +41 -21
- package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
- package/ui/views/AdminView/components/Dialog.js +32 -15
- package/ui/views/AdminView/components/Dialog.js.map +1 -1
- package/ui/views/AdminView/components/Hamburger.js +25 -11
- package/ui/views/AdminView/components/Hamburger.js.map +1 -1
- package/ui/views/AdminView/components/Snackbar.js +26 -13
- package/ui/views/AdminView/components/Snackbar.js.map +1 -1
- package/ui/views/FormView/FormContainerElement.js +45 -25
- package/ui/views/FormView/FormContainerElement.js.map +1 -1
- package/ui/views/FormView/FormContentElement.js +27 -12
- package/ui/views/FormView/FormContentElement.js.map +1 -1
- package/ui/views/FormView/FormFooterElement.js +38 -19
- package/ui/views/FormView/FormFooterElement.js.map +1 -1
- package/ui/views/FormView/FormHeaderElement.js +52 -30
- package/ui/views/FormView/FormHeaderElement.js.map +1 -1
- package/ui/views/FormView.js +60 -34
- package/ui/views/FormView.js.map +1 -1
- package/ui/views/OverlayView/ContentElement.js +38 -19
- package/ui/views/OverlayView/ContentElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderElement.js +56 -37
- package/ui/views/OverlayView/HeaderElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderTitleElement.js +44 -25
- package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
- package/ui/views/OverlayView/useOverlayView.js +32 -16
- package/ui/views/OverlayView/useOverlayView.js.map +1 -1
- package/ui/views/OverlayView.js +65 -42
- package/ui/views/OverlayView.js.map +1 -1
- package/ui/views/SplitView/SplitViewPanelElement.js +47 -28
- package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
- package/ui/views/SplitView.js +57 -37
- package/ui/views/SplitView.js.map +1 -1
|
@@ -1,36 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
18
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
+
|
|
20
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
+
|
|
22
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
23
|
+
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
26
|
+
var React = _interopRequireWildcard(require("react"));
|
|
27
|
+
|
|
28
|
+
var _dotPropImmutable = require("dot-prop-immutable");
|
|
29
|
+
|
|
30
|
+
var _reactRouter = require("@webiny/react-router");
|
|
31
|
+
|
|
32
|
+
var _downshift = _interopRequireDefault(require("downshift"));
|
|
33
|
+
|
|
34
|
+
var _plugins = require("@webiny/plugins");
|
|
18
35
|
|
|
19
|
-
|
|
36
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
20
37
|
|
|
21
|
-
|
|
22
|
-
import { Elevation } from "@webiny/ui/Elevation";
|
|
23
|
-
import SearchBarDropdown from "./SearchBarDropdown"; // Icons
|
|
38
|
+
var _reactHotkeyz = require("react-hotkeyz");
|
|
24
39
|
|
|
25
|
-
|
|
40
|
+
var _Icon = require("@webiny/ui/Icon");
|
|
26
41
|
|
|
27
|
-
|
|
28
|
-
import { makeComposable } from "../..";
|
|
42
|
+
var _Elevation = require("@webiny/ui/Elevation");
|
|
29
43
|
|
|
44
|
+
var _SearchBarDropdown = _interopRequireDefault(require("./SearchBarDropdown"));
|
|
45
|
+
|
|
46
|
+
var _roundSearch24px = require("./icons/round-search-24px.svg");
|
|
47
|
+
|
|
48
|
+
var _styled = require("./styled");
|
|
49
|
+
|
|
50
|
+
var _ = require("../..");
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Package react-hotkeyz does not have types.
|
|
54
|
+
*/
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
// UI components
|
|
57
|
+
// Icons
|
|
58
|
+
// Local components
|
|
30
59
|
var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
31
|
-
|
|
60
|
+
(0, _inherits2.default)(SearchBar, _React$Component);
|
|
32
61
|
|
|
33
|
-
var _super =
|
|
62
|
+
var _super = (0, _createSuper2.default)(SearchBar);
|
|
34
63
|
|
|
35
64
|
/**
|
|
36
65
|
* Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.
|
|
@@ -48,11 +77,9 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
48
77
|
function SearchBar(props) {
|
|
49
78
|
var _this;
|
|
50
79
|
|
|
51
|
-
|
|
52
|
-
|
|
80
|
+
(0, _classCallCheck2.default)(this, SearchBar);
|
|
53
81
|
_this = _super.call(this, props);
|
|
54
|
-
|
|
55
|
-
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
82
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
|
|
56
83
|
active: false,
|
|
57
84
|
searchTerm: {
|
|
58
85
|
previous: "",
|
|
@@ -61,20 +88,17 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
61
88
|
plugins: {
|
|
62
89
|
// List of all registered "admin-global-search" plugins.
|
|
63
90
|
get list() {
|
|
64
|
-
return plugins.byType("admin-global-search");
|
|
91
|
+
return _plugins.plugins.byType("admin-global-search");
|
|
65
92
|
},
|
|
66
93
|
|
|
67
|
-
hotKeys: plugins.byType("admin-global-search-prevent-hotkey"),
|
|
94
|
+
hotKeys: _plugins.plugins.byType("admin-global-search-prevent-hotkey"),
|
|
68
95
|
// Current plugin - set by examining current route and its query params (on construct).
|
|
69
96
|
current: undefined
|
|
70
97
|
}
|
|
71
98
|
});
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
_defineProperty(_assertThisInitialized(_this), "input", /*#__PURE__*/React.createRef());
|
|
76
|
-
|
|
77
|
-
_defineProperty(_assertThisInitialized(_this), "handleOpenHotkey", function (e) {
|
|
99
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "downshift", /*#__PURE__*/React.createRef());
|
|
100
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "input", /*#__PURE__*/React.createRef());
|
|
101
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleOpenHotkey", function (e) {
|
|
78
102
|
for (var i = 0; i < _this.state.plugins.hotKeys.length; i++) {
|
|
79
103
|
var hotKey = _this.state.plugins.hotKeys[i];
|
|
80
104
|
|
|
@@ -91,11 +115,10 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
91
115
|
|
|
92
116
|
_this.input.current.focus();
|
|
93
117
|
});
|
|
94
|
-
|
|
95
|
-
_defineProperty(_assertThisInitialized(_this), "submitSearchTerm", function (plugin) {
|
|
118
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "submitSearchTerm", function (plugin) {
|
|
96
119
|
_this.setState(function (state) {
|
|
97
|
-
var newState = set(state, "searchTerm.previous", state.searchTerm.current);
|
|
98
|
-
return set(newState, "plugins.current", plugin);
|
|
120
|
+
var newState = (0, _dotPropImmutable.set)(state, "searchTerm.previous", state.searchTerm.current);
|
|
121
|
+
return (0, _dotPropImmutable.set)(newState, "plugins.current", plugin);
|
|
99
122
|
}, function () {
|
|
100
123
|
var query = new URLSearchParams();
|
|
101
124
|
|
|
@@ -104,7 +127,7 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
104
127
|
// we need to send the plain string into the "search" query param. This behavior was needed
|
|
105
128
|
// eg. for pages, since Page entity doesn't use regular SearchInput type, but plain string.
|
|
106
129
|
if (plugin.search) {
|
|
107
|
-
query.set("search", JSON.stringify(
|
|
130
|
+
query.set("search", JSON.stringify((0, _objectSpread2.default)({
|
|
108
131
|
query: _this.state.searchTerm.current
|
|
109
132
|
}, plugin.search)));
|
|
110
133
|
} else {
|
|
@@ -118,14 +141,12 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
118
141
|
});
|
|
119
142
|
});
|
|
120
143
|
});
|
|
121
|
-
|
|
122
|
-
_defineProperty(_assertThisInitialized(_this), "cancelSearchTerm", function () {
|
|
144
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "cancelSearchTerm", function () {
|
|
123
145
|
_this.setState(function (state) {
|
|
124
146
|
state.searchTerm.current = state.searchTerm.previous;
|
|
125
147
|
return state;
|
|
126
148
|
});
|
|
127
149
|
});
|
|
128
|
-
|
|
129
150
|
_this.state.plugins.current = _this.state.plugins.list.find(function (p) {
|
|
130
151
|
return p.route === props.location.pathname;
|
|
131
152
|
});
|
|
@@ -147,12 +168,12 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
147
168
|
return _this;
|
|
148
169
|
}
|
|
149
170
|
|
|
150
|
-
|
|
171
|
+
(0, _createClass2.default)(SearchBar, [{
|
|
151
172
|
key: "render",
|
|
152
173
|
value: function render() {
|
|
153
174
|
var _this2 = this;
|
|
154
175
|
|
|
155
|
-
return /*#__PURE__*/React.createElement(
|
|
176
|
+
return /*#__PURE__*/React.createElement(_downshift.default, {
|
|
156
177
|
ref: this.downshift,
|
|
157
178
|
itemToString: function itemToString(item) {
|
|
158
179
|
return item && item.label;
|
|
@@ -166,7 +187,7 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
166
187
|
style: {
|
|
167
188
|
width: "100%"
|
|
168
189
|
}
|
|
169
|
-
}, /*#__PURE__*/React.createElement(Hotkeys, {
|
|
190
|
+
}, /*#__PURE__*/React.createElement(_reactHotkeyz.Hotkeys, {
|
|
170
191
|
zIndex: 10,
|
|
171
192
|
keys: {
|
|
172
193
|
// @ts-ignore
|
|
@@ -175,7 +196,7 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
175
196
|
},
|
|
176
197
|
"/": _this2.handleOpenHotkey
|
|
177
198
|
}
|
|
178
|
-
}), /*#__PURE__*/React.createElement(Hotkeys, {
|
|
199
|
+
}), /*#__PURE__*/React.createElement(_reactHotkeyz.Hotkeys, {
|
|
179
200
|
zIndex: 11,
|
|
180
201
|
disabled: !isOpen,
|
|
181
202
|
keys: {
|
|
@@ -196,17 +217,17 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
196
217
|
});
|
|
197
218
|
}
|
|
198
219
|
}
|
|
199
|
-
}), /*#__PURE__*/React.createElement(Elevation, {
|
|
200
|
-
className:
|
|
220
|
+
}), /*#__PURE__*/React.createElement(_Elevation.Elevation, {
|
|
221
|
+
className: (0, _classnames.default)(_styled.searchWrapper, {
|
|
201
222
|
active: _this2.state.active
|
|
202
223
|
}),
|
|
203
224
|
z: 0
|
|
204
|
-
}, /*#__PURE__*/React.createElement(SearchBarWrapper, null, /*#__PURE__*/React.createElement(SearchBarInputWrapper, null, /*#__PURE__*/React.createElement(Icon, {
|
|
205
|
-
className: icon,
|
|
206
|
-
icon: /*#__PURE__*/React.createElement(
|
|
225
|
+
}, /*#__PURE__*/React.createElement(_styled.SearchBarWrapper, null, /*#__PURE__*/React.createElement(_styled.SearchBarInputWrapper, null, /*#__PURE__*/React.createElement(_Icon.Icon, {
|
|
226
|
+
className: _styled.icon,
|
|
227
|
+
icon: /*#__PURE__*/React.createElement(_roundSearch24px.ReactComponent, null)
|
|
207
228
|
}), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", getInputProps({
|
|
208
229
|
placeholder: "Search...",
|
|
209
|
-
className:
|
|
230
|
+
className: (0, _classnames.default)("mdc-text-field__input", _styled.searchBarInput),
|
|
210
231
|
ref: _this2.input,
|
|
211
232
|
value: _this2.state.searchTerm.current,
|
|
212
233
|
// @ts-ignore
|
|
@@ -233,19 +254,20 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
233
254
|
return state;
|
|
234
255
|
});
|
|
235
256
|
}
|
|
236
|
-
}))), /*#__PURE__*/React.createElement(SearchShortcut, null, "/"))), isOpen && /*#__PURE__*/React.createElement(
|
|
257
|
+
}))), /*#__PURE__*/React.createElement(_styled.SearchShortcut, null, "/"))), isOpen && /*#__PURE__*/React.createElement(_SearchBarDropdown.default, {
|
|
237
258
|
context: _this2
|
|
238
259
|
})));
|
|
239
260
|
});
|
|
240
261
|
}
|
|
241
262
|
}]);
|
|
242
|
-
|
|
243
263
|
return SearchBar;
|
|
244
264
|
}(React.Component);
|
|
245
265
|
|
|
246
266
|
var SearchBarContainer = function SearchBarContainer() {
|
|
247
|
-
var routerProps = useRouter();
|
|
267
|
+
var routerProps = (0, _reactRouter.useRouter)();
|
|
248
268
|
return /*#__PURE__*/React.createElement(SearchBar, routerProps);
|
|
249
269
|
};
|
|
250
270
|
|
|
251
|
-
|
|
271
|
+
var _default = (0, _.makeComposable)("SearchBarContainer", SearchBarContainer);
|
|
272
|
+
|
|
273
|
+
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SearchBar.tsx"],"names":["React","set","useRouter","Downshift","plugins","classnames","Hotkeys","Icon","Elevation","SearchBarDropdown","ReactComponent","SearchIcon","SearchBarWrapper","SearchBarInputWrapper","SearchShortcut","searchBarInput","icon","searchWrapper","makeComposable","SearchBar","props","active","searchTerm","previous","current","list","byType","hotKeys","undefined","createRef","e","i","state","length","hotKey","preventOpen","preventDefault","input","focus","plugin","setState","newState","query","URLSearchParams","search","JSON","stringify","history","push","pathname","route","toString","find","p","location","parse","get","downshift","item","label","downshiftProps","isOpen","openMenu","closeMenu","getInputProps","width","esc","document","activeElement","blur","handleOpenHotkey","cancelSearchTerm","enter","setTimeout","selectedItem","submitSearchTerm","placeholder","className","ref","value","onClick","onBlur","onFocus","onChange","target","Component","SearchBarContainer","routerProps"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { set } from \"dot-prop-immutable\";\nimport { useRouter, UseRouter } from \"@webiny/react-router\";\nimport Downshift from \"downshift\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminGlobalSearchPlugin, AdminGlobalSearchPreventHotkeyPlugin } from \"~/types\";\nimport classnames from \"classnames\";\n/**\n * Package react-hotkeyz does not have types.\n */\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n\n// UI components\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport SearchBarDropdown from \"./SearchBarDropdown\";\n\n// Icons\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\n\n// Local components\nimport {\n SearchBarWrapper,\n SearchBarInputWrapper,\n SearchShortcut,\n searchBarInput,\n icon,\n searchWrapper\n} from \"./styled\";\nimport { makeComposable } from \"~/index\";\n\ntype SearchBarProps = UseRouter;\n\nexport interface SearchBarState {\n active: boolean;\n searchTerm: { previous: string; current: string };\n plugins: {\n list: ReadonlyArray<AdminGlobalSearchPlugin>;\n hotKeys: ReadonlyArray<AdminGlobalSearchPreventHotkeyPlugin>;\n current?: AdminGlobalSearchPlugin;\n };\n}\n\nclass SearchBar extends React.Component<SearchBarProps, SearchBarState> {\n public override state: SearchBarState = {\n active: false,\n searchTerm: {\n previous: \"\",\n current: \"\"\n },\n plugins: {\n // List of all registered \"admin-global-search\" plugins.\n get list() {\n return plugins.byType<AdminGlobalSearchPlugin>(\"admin-global-search\");\n },\n hotKeys: plugins.byType<AdminGlobalSearchPreventHotkeyPlugin>(\n \"admin-global-search-prevent-hotkey\"\n ),\n // Current plugin - set by examining current route and its query params (on construct).\n current: undefined\n }\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n public readonly downshift: any = React.createRef();\n\n /**\n * At some point we must programmatically focus the input.\n */\n private readonly input = React.createRef<HTMLInputElement>();\n\n /**\n * Let's check if current route is defined in one of the registered plugins.\n * If so, then check current route query for search term and set it as default value of search input.\n * @param props\n */\n constructor(props: SearchBarProps) {\n super(props);\n this.state.plugins.current = this.state.plugins.list.find(\n p => p.route === props.location.pathname\n );\n\n if (this.state.plugins.current) {\n let search;\n const query = new URLSearchParams(props.location.search);\n try {\n search = JSON.parse(query.get(\"search\") || \"\").query;\n } catch (e) {\n search = query.get(\"search\");\n }\n\n this.state.searchTerm.current = search || \"\";\n this.state.searchTerm.previous = this.state.searchTerm.current;\n }\n }\n\n private readonly handleOpenHotkey = (e: React.KeyboardEvent): void => {\n for (let i = 0; i < this.state.plugins.hotKeys.length; i++) {\n const hotKey = this.state.plugins.hotKeys[i];\n if (hotKey.preventOpen(e)) {\n return;\n }\n }\n\n e.preventDefault();\n if (!this.input.current) {\n return;\n }\n this.input.current.focus();\n };\n\n /**\n * Re-routes to given route (provided by the plugin) with needed search query params.\n * It also manages previous and current search terms and automatically highlighted item in dropdown.\n * @param plugin\n */\n public readonly submitSearchTerm = (plugin: AdminGlobalSearchPlugin): void => {\n this.setState(\n state => {\n const newState = set(state, \"searchTerm.previous\", state.searchTerm.current);\n return set(newState, \"plugins.current\", plugin) as any;\n },\n () => {\n const query = new URLSearchParams();\n\n if (this.state.searchTerm.current) {\n // If \"search\" key in the plugin was defined, it means SearchInput values were set. Otherwise,\n // we need to send the plain string into the \"search\" query param. This behavior was needed\n // eg. for pages, since Page entity doesn't use regular SearchInput type, but plain string.\n if (plugin.search) {\n query.set(\n \"search\",\n JSON.stringify({\n query: this.state.searchTerm.current,\n ...plugin.search\n })\n );\n } else {\n query.set(\"search\", this.state.searchTerm.current);\n }\n }\n\n this.props.history.push({\n pathname: plugin.route,\n search: query.toString()\n });\n }\n );\n };\n\n private readonly cancelSearchTerm = (): void => {\n this.setState(state => {\n state.searchTerm.current = state.searchTerm.previous;\n return state;\n });\n };\n\n public override render() {\n return (\n <Downshift ref={this.downshift} itemToString={item => item && item.label}>\n {downshiftProps => {\n const { isOpen, openMenu, closeMenu, getInputProps } = downshiftProps;\n\n return (\n <div style={{ width: \"100%\" }}>\n <Hotkeys\n zIndex={10}\n keys={{\n // @ts-ignore\n esc: () => document.activeElement.blur(),\n \"/\": this.handleOpenHotkey\n }}\n />\n\n <Hotkeys\n zIndex={11}\n disabled={!isOpen}\n keys={{\n esc: () => {\n this.cancelSearchTerm();\n closeMenu();\n },\n enter: () =>\n setTimeout(() => {\n const { selectedItem } = this.downshift.current.state;\n if (selectedItem) {\n closeMenu();\n this.submitSearchTerm(selectedItem);\n }\n })\n }}\n />\n\n <Elevation\n className={classnames(searchWrapper, { active: this.state.active })}\n z={0}\n >\n <SearchBarWrapper>\n <SearchBarInputWrapper>\n <Icon className={icon} icon={<SearchIcon />} />\n\n <React.Fragment>\n <input\n {...getInputProps({\n placeholder: \"Search...\",\n className: classnames(\n \"mdc-text-field__input\",\n searchBarInput\n ),\n ref: this.input,\n value: this.state.searchTerm.current,\n // @ts-ignore\n onClick: openMenu,\n onBlur: () => {\n this.cancelSearchTerm();\n this.setState({ active: false });\n },\n onFocus: () => {\n this.setState({ active: true });\n openMenu();\n },\n onChange: (\n e: React.ChangeEvent<HTMLInputElement>\n ) => {\n const value = e.target.value || \"\";\n this.setState(state => {\n state.searchTerm.current = value;\n return state;\n });\n }\n })}\n />\n </React.Fragment>\n\n <SearchShortcut>/</SearchShortcut>\n </SearchBarInputWrapper>\n </SearchBarWrapper>\n {isOpen && <SearchBarDropdown context={this} />}\n </Elevation>\n </div>\n );\n }}\n </Downshift>\n );\n }\n}\n\nconst SearchBarContainer: React.FC = () => {\n const routerProps = useRouter();\n\n return <SearchBar {...routerProps} />;\n};\n\nexport default makeComposable(\"SearchBarContainer\", SearchBarContainer);\n"]}
|
|
1
|
+
{"version":3,"names":["SearchBar","props","active","searchTerm","previous","current","plugins","list","byType","hotKeys","undefined","React","createRef","e","i","state","length","hotKey","preventOpen","preventDefault","input","focus","plugin","setState","newState","set","query","URLSearchParams","search","JSON","stringify","history","push","pathname","route","toString","find","p","location","parse","get","downshift","item","label","downshiftProps","isOpen","openMenu","closeMenu","getInputProps","width","esc","document","activeElement","blur","handleOpenHotkey","cancelSearchTerm","enter","setTimeout","selectedItem","submitSearchTerm","classnames","searchWrapper","icon","placeholder","className","searchBarInput","ref","value","onClick","onBlur","onFocus","onChange","target","Component","SearchBarContainer","routerProps","useRouter","makeComposable"],"sources":["SearchBar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { set } from \"dot-prop-immutable\";\nimport { useRouter, UseRouter } from \"@webiny/react-router\";\nimport Downshift from \"downshift\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminGlobalSearchPlugin, AdminGlobalSearchPreventHotkeyPlugin } from \"~/types\";\nimport classnames from \"classnames\";\n/**\n * Package react-hotkeyz does not have types.\n */\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n\n// UI components\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport SearchBarDropdown from \"./SearchBarDropdown\";\n\n// Icons\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\n\n// Local components\nimport {\n SearchBarWrapper,\n SearchBarInputWrapper,\n SearchShortcut,\n searchBarInput,\n icon,\n searchWrapper\n} from \"./styled\";\nimport { makeComposable } from \"~/index\";\n\ntype SearchBarProps = UseRouter;\n\nexport interface SearchBarState {\n active: boolean;\n searchTerm: { previous: string; current: string };\n plugins: {\n list: ReadonlyArray<AdminGlobalSearchPlugin>;\n hotKeys: ReadonlyArray<AdminGlobalSearchPreventHotkeyPlugin>;\n current?: AdminGlobalSearchPlugin;\n };\n}\n\nclass SearchBar extends React.Component<SearchBarProps, SearchBarState> {\n public override state: SearchBarState = {\n active: false,\n searchTerm: {\n previous: \"\",\n current: \"\"\n },\n plugins: {\n // List of all registered \"admin-global-search\" plugins.\n get list() {\n return plugins.byType<AdminGlobalSearchPlugin>(\"admin-global-search\");\n },\n hotKeys: plugins.byType<AdminGlobalSearchPreventHotkeyPlugin>(\n \"admin-global-search-prevent-hotkey\"\n ),\n // Current plugin - set by examining current route and its query params (on construct).\n current: undefined\n }\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n public readonly downshift: any = React.createRef();\n\n /**\n * At some point we must programmatically focus the input.\n */\n private readonly input = React.createRef<HTMLInputElement>();\n\n /**\n * Let's check if current route is defined in one of the registered plugins.\n * If so, then check current route query for search term and set it as default value of search input.\n * @param props\n */\n constructor(props: SearchBarProps) {\n super(props);\n this.state.plugins.current = this.state.plugins.list.find(\n p => p.route === props.location.pathname\n );\n\n if (this.state.plugins.current) {\n let search;\n const query = new URLSearchParams(props.location.search);\n try {\n search = JSON.parse(query.get(\"search\") || \"\").query;\n } catch (e) {\n search = query.get(\"search\");\n }\n\n this.state.searchTerm.current = search || \"\";\n this.state.searchTerm.previous = this.state.searchTerm.current;\n }\n }\n\n private readonly handleOpenHotkey = (e: React.KeyboardEvent): void => {\n for (let i = 0; i < this.state.plugins.hotKeys.length; i++) {\n const hotKey = this.state.plugins.hotKeys[i];\n if (hotKey.preventOpen(e)) {\n return;\n }\n }\n\n e.preventDefault();\n if (!this.input.current) {\n return;\n }\n this.input.current.focus();\n };\n\n /**\n * Re-routes to given route (provided by the plugin) with needed search query params.\n * It also manages previous and current search terms and automatically highlighted item in dropdown.\n * @param plugin\n */\n public readonly submitSearchTerm = (plugin: AdminGlobalSearchPlugin): void => {\n this.setState(\n state => {\n const newState = set(state, \"searchTerm.previous\", state.searchTerm.current);\n return set(newState, \"plugins.current\", plugin) as any;\n },\n () => {\n const query = new URLSearchParams();\n\n if (this.state.searchTerm.current) {\n // If \"search\" key in the plugin was defined, it means SearchInput values were set. Otherwise,\n // we need to send the plain string into the \"search\" query param. This behavior was needed\n // eg. for pages, since Page entity doesn't use regular SearchInput type, but plain string.\n if (plugin.search) {\n query.set(\n \"search\",\n JSON.stringify({\n query: this.state.searchTerm.current,\n ...plugin.search\n })\n );\n } else {\n query.set(\"search\", this.state.searchTerm.current);\n }\n }\n\n this.props.history.push({\n pathname: plugin.route,\n search: query.toString()\n });\n }\n );\n };\n\n private readonly cancelSearchTerm = (): void => {\n this.setState(state => {\n state.searchTerm.current = state.searchTerm.previous;\n return state;\n });\n };\n\n public override render() {\n return (\n <Downshift ref={this.downshift} itemToString={item => item && item.label}>\n {downshiftProps => {\n const { isOpen, openMenu, closeMenu, getInputProps } = downshiftProps;\n\n return (\n <div style={{ width: \"100%\" }}>\n <Hotkeys\n zIndex={10}\n keys={{\n // @ts-ignore\n esc: () => document.activeElement.blur(),\n \"/\": this.handleOpenHotkey\n }}\n />\n\n <Hotkeys\n zIndex={11}\n disabled={!isOpen}\n keys={{\n esc: () => {\n this.cancelSearchTerm();\n closeMenu();\n },\n enter: () =>\n setTimeout(() => {\n const { selectedItem } = this.downshift.current.state;\n if (selectedItem) {\n closeMenu();\n this.submitSearchTerm(selectedItem);\n }\n })\n }}\n />\n\n <Elevation\n className={classnames(searchWrapper, { active: this.state.active })}\n z={0}\n >\n <SearchBarWrapper>\n <SearchBarInputWrapper>\n <Icon className={icon} icon={<SearchIcon />} />\n\n <React.Fragment>\n <input\n {...getInputProps({\n placeholder: \"Search...\",\n className: classnames(\n \"mdc-text-field__input\",\n searchBarInput\n ),\n ref: this.input,\n value: this.state.searchTerm.current,\n // @ts-ignore\n onClick: openMenu,\n onBlur: () => {\n this.cancelSearchTerm();\n this.setState({ active: false });\n },\n onFocus: () => {\n this.setState({ active: true });\n openMenu();\n },\n onChange: (\n e: React.ChangeEvent<HTMLInputElement>\n ) => {\n const value = e.target.value || \"\";\n this.setState(state => {\n state.searchTerm.current = value;\n return state;\n });\n }\n })}\n />\n </React.Fragment>\n\n <SearchShortcut>/</SearchShortcut>\n </SearchBarInputWrapper>\n </SearchBarWrapper>\n {isOpen && <SearchBarDropdown context={this} />}\n </Elevation>\n </div>\n );\n }}\n </Downshift>\n );\n }\n}\n\nconst SearchBarContainer: React.FC = () => {\n const routerProps = useRouter();\n\n return <SearchBar {...routerProps} />;\n};\n\nexport default makeComposable(\"SearchBarContainer\", SearchBarContainer);\n"],"mappings":"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"}
|
|
@@ -1,27 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
19
|
+
|
|
20
|
+
var React = _interopRequireWildcard(require("react"));
|
|
21
|
+
|
|
22
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
23
|
+
|
|
24
|
+
var _List = require("@webiny/ui/List");
|
|
25
|
+
|
|
26
|
+
var _styled = require("./styled");
|
|
27
|
+
|
|
28
|
+
var _Elevation = require("@webiny/ui/Elevation");
|
|
29
|
+
|
|
30
|
+
var _Icon = require("@webiny/ui/Icon");
|
|
31
|
+
|
|
32
|
+
var _roundSearch24px = require("./icons/round-search-24px.svg");
|
|
12
33
|
|
|
13
34
|
var SearchBarDropdown = /*#__PURE__*/function (_React$Component) {
|
|
14
|
-
|
|
35
|
+
(0, _inherits2.default)(SearchBarDropdown, _React$Component);
|
|
15
36
|
|
|
16
|
-
var _super =
|
|
37
|
+
var _super = (0, _createSuper2.default)(SearchBarDropdown);
|
|
17
38
|
|
|
18
39
|
function SearchBarDropdown() {
|
|
19
|
-
|
|
20
|
-
|
|
40
|
+
(0, _classCallCheck2.default)(this, SearchBarDropdown);
|
|
21
41
|
return _super.apply(this, arguments);
|
|
22
42
|
}
|
|
23
43
|
|
|
24
|
-
|
|
44
|
+
(0, _createClass2.default)(SearchBarDropdown, [{
|
|
25
45
|
key: "componentDidMount",
|
|
26
46
|
value: function componentDidMount() {
|
|
27
47
|
var _this$props$context = this.props.context,
|
|
@@ -45,10 +65,10 @@ var SearchBarDropdown = /*#__PURE__*/function (_React$Component) {
|
|
|
45
65
|
_downshift$state = downshift.state,
|
|
46
66
|
selectedItem = _downshift$state.selectedItem,
|
|
47
67
|
highlightedIndex = _downshift$state.highlightedIndex;
|
|
48
|
-
return /*#__PURE__*/React.createElement(Elevation, {
|
|
68
|
+
return /*#__PURE__*/React.createElement(_Elevation.Elevation, {
|
|
49
69
|
z: 2,
|
|
50
|
-
className: searchBarDropdown
|
|
51
|
-
}, /*#__PURE__*/React.createElement(List, getMenuProps(), plugins.list.map(function (item, index) {
|
|
70
|
+
className: _styled.searchBarDropdown
|
|
71
|
+
}, /*#__PURE__*/React.createElement(_List.List, getMenuProps(), plugins.list.map(function (item, index) {
|
|
52
72
|
// Base classes.
|
|
53
73
|
var itemClassNames = {
|
|
54
74
|
highlighted: highlightedIndex === index,
|
|
@@ -59,24 +79,23 @@ var SearchBarDropdown = /*#__PURE__*/function (_React$Component) {
|
|
|
59
79
|
itemClassNames.selected = true;
|
|
60
80
|
}
|
|
61
81
|
|
|
62
|
-
return /*#__PURE__*/React.createElement(ListItem, Object.assign({
|
|
82
|
+
return /*#__PURE__*/React.createElement(_List.ListItem, Object.assign({
|
|
63
83
|
key: item.route
|
|
64
84
|
}, getItemProps({
|
|
65
85
|
index: index,
|
|
66
86
|
item: item,
|
|
67
|
-
className:
|
|
87
|
+
className: (0, _classnames.default)(itemClassNames),
|
|
68
88
|
onClick: function onClick() {
|
|
69
89
|
return submitSearchTerm(item);
|
|
70
90
|
}
|
|
71
|
-
})), /*#__PURE__*/React.createElement(ListItemGraphic, null, /*#__PURE__*/React.createElement(Icon, {
|
|
72
|
-
className: iconSearchType,
|
|
73
|
-
icon: /*#__PURE__*/React.createElement(
|
|
74
|
-
})), /*#__PURE__*/React.createElement(ListItemText, null, searchTerm.current || "Search for all..."), /*#__PURE__*/React.createElement(ListItemMeta, null, "in ", item.label));
|
|
91
|
+
})), /*#__PURE__*/React.createElement(_List.ListItemGraphic, null, /*#__PURE__*/React.createElement(_Icon.Icon, {
|
|
92
|
+
className: _styled.iconSearchType,
|
|
93
|
+
icon: /*#__PURE__*/React.createElement(_roundSearch24px.ReactComponent, null)
|
|
94
|
+
})), /*#__PURE__*/React.createElement(_List.ListItemText, null, searchTerm.current || "Search for all..."), /*#__PURE__*/React.createElement(_List.ListItemMeta, null, "in ", item.label));
|
|
75
95
|
})));
|
|
76
96
|
}
|
|
77
97
|
}]);
|
|
78
|
-
|
|
79
98
|
return SearchBarDropdown;
|
|
80
99
|
}(React.Component);
|
|
81
100
|
|
|
82
|
-
|
|
101
|
+
exports.default = SearchBarDropdown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["SearchBarDropdown","props","context","downshift","current","plugins","state","selectItem","setHighlightedIndex","list","indexOf","openMenu","submitSearchTerm","searchTerm","getMenuProps","getItemProps","selectedItem","highlightedIndex","searchBarDropdown","map","item","index","itemClassNames","highlighted","selected","route","className","classnames","onClick","iconSearchType","label","React","Component"],"sources":["SearchBarDropdown.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { AdminGlobalSearchPlugin } from \"~/types\";\nimport classnames from \"classnames\";\nimport { List, ListItem, ListItemGraphic, ListItemText, ListItemMeta } from \"@webiny/ui/List\";\nimport { searchBarDropdown, iconSearchType } from \"./styled\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Actions as DownshiftActions, DownshiftState, PropGetters } from \"downshift\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { SearchBarState } from \"~/plugins/globalSearch/SearchBar\";\n\ninterface SearchBarDropdownPropsContextDownshiftCurrent\n extends DownshiftActions<any>,\n PropGetters<any> {\n state: DownshiftState<any>;\n}\ninterface SearchBarDropdownPropsContextDownshift {\n current: SearchBarDropdownPropsContextDownshiftCurrent;\n}\ninterface SearchBarDropdownPropsContext {\n downshift: SearchBarDropdownPropsContextDownshift;\n submitSearchTerm: (item: AdminGlobalSearchPlugin) => void;\n state: SearchBarState;\n}\ninterface SearchBarDropdownProps {\n context: SearchBarDropdownPropsContext;\n}\nexport default class SearchBarDropdown extends React.Component<SearchBarDropdownProps> {\n public override componentDidMount() {\n const {\n context: {\n downshift: { current: downshift },\n state: { plugins }\n }\n } = this.props;\n\n downshift.selectItem(plugins.current);\n downshift.setHighlightedIndex(\n plugins.list.indexOf(plugins.current as AdminGlobalSearchPlugin)\n );\n downshift.openMenu();\n }\n\n public override render() {\n const {\n context: {\n downshift: { current: downshift },\n submitSearchTerm,\n state: { plugins, searchTerm }\n }\n } = this.props;\n\n const {\n getMenuProps,\n getItemProps,\n state: { selectedItem, highlightedIndex }\n } = downshift;\n\n return (\n <Elevation z={2} className={searchBarDropdown}>\n <List {...getMenuProps()}>\n {plugins.list.map((item: AdminGlobalSearchPlugin, index) => {\n // Base classes.\n const itemClassNames = {\n highlighted: highlightedIndex === index,\n selected: false\n };\n\n // Add \"selected\" class if the item is selected.\n if (selectedItem && selectedItem === item) {\n itemClassNames.selected = true;\n }\n\n return (\n <ListItem\n key={item.route}\n {...getItemProps({\n index,\n item,\n className: classnames(itemClassNames),\n onClick: () => submitSearchTerm(item)\n })}\n >\n <ListItemGraphic>\n <Icon className={iconSearchType} icon={<SearchIcon />} />\n </ListItemGraphic>\n <ListItemText>\n {searchTerm.current || \"Search for all...\"}\n </ListItemText>\n <ListItemMeta>in {item.label}</ListItemMeta>\n </ListItem>\n );\n })}\n </List>\n </Elevation>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;IAmBqBA,iB;;;;;;;;;;;;WACjB,6BAAoC;MAChC,0BAKI,KAAKC,KALT,CACIC,OADJ;MAAA,IAE8BC,SAF9B,uBAEQA,SAFR,CAEqBC,OAFrB;MAAA,IAGiBC,OAHjB,uBAGQC,KAHR,CAGiBD,OAHjB;MAOAF,SAAS,CAACI,UAAV,CAAqBF,OAAO,CAACD,OAA7B;MACAD,SAAS,CAACK,mBAAV,CACIH,OAAO,CAACI,IAAR,CAAaC,OAAb,CAAqBL,OAAO,CAACD,OAA7B,CADJ;MAGAD,SAAS,CAACQ,QAAV;IACH;;;WAED,kBAAyB;MACrB,2BAMI,KAAKV,KANT,CACIC,OADJ;MAAA,IAE8BC,SAF9B,wBAEQA,SAFR,CAEqBC,OAFrB;MAAA,IAGQQ,gBAHR,wBAGQA,gBAHR;MAAA,iDAIQN,KAJR;MAAA,IAIiBD,OAJjB,yBAIiBA,OAJjB;MAAA,IAI0BQ,UAJ1B,yBAI0BA,UAJ1B;MAQA,IACIC,YADJ,GAIIX,SAJJ,CACIW,YADJ;MAAA,IAEIC,YAFJ,GAIIZ,SAJJ,CAEIY,YAFJ;MAAA,uBAIIZ,SAJJ,CAGIG,KAHJ;MAAA,IAGaU,YAHb,oBAGaA,YAHb;MAAA,IAG2BC,gBAH3B,oBAG2BA,gBAH3B;MAMA,oBACI,oBAAC,oBAAD;QAAW,CAAC,EAAE,CAAd;QAAiB,SAAS,EAAEC;MAA5B,gBACI,oBAAC,UAAD,EAAUJ,YAAY,EAAtB,EACKT,OAAO,CAACI,IAAR,CAAaU,GAAb,CAAiB,UAACC,IAAD,EAAgCC,KAAhC,EAA0C;QACxD;QACA,IAAMC,cAAc,GAAG;UACnBC,WAAW,EAAEN,gBAAgB,KAAKI,KADf;UAEnBG,QAAQ,EAAE;QAFS,CAAvB,CAFwD,CAOxD;;QACA,IAAIR,YAAY,IAAIA,YAAY,KAAKI,IAArC,EAA2C;UACvCE,cAAc,CAACE,QAAf,GAA0B,IAA1B;QACH;;QAED,oBACI,oBAAC,cAAD;UACI,GAAG,EAAEJ,IAAI,CAACK;QADd,GAEQV,YAAY,CAAC;UACbM,KAAK,EAALA,KADa;UAEbD,IAAI,EAAJA,IAFa;UAGbM,SAAS,EAAE,IAAAC,mBAAA,EAAWL,cAAX,CAHE;UAIbM,OAAO,EAAE;YAAA,OAAMhB,gBAAgB,CAACQ,IAAD,CAAtB;UAAA;QAJI,CAAD,CAFpB,gBASI,oBAAC,qBAAD,qBACI,oBAAC,UAAD;UAAM,SAAS,EAAES,sBAAjB;UAAiC,IAAI,eAAE,oBAAC,+BAAD;QAAvC,EADJ,CATJ,eAYI,oBAAC,kBAAD,QACKhB,UAAU,CAACT,OAAX,IAAsB,mBAD3B,CAZJ,eAeI,oBAAC,kBAAD,eAAkBgB,IAAI,CAACU,KAAvB,CAfJ,CADJ;MAmBH,CA/BA,CADL,CADJ,CADJ;IAsCH;;;EArE0CC,KAAK,CAACC,S"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.globalSearchHotkey = void 0;
|
|
7
|
+
var globalSearchHotkey = {
|
|
2
8
|
type: "admin-global-search-prevent-hotkey",
|
|
3
9
|
name: "admin-global-search-prevent-hotkey-input",
|
|
4
10
|
preventOpen: function preventOpen(e) {
|
|
@@ -6,4 +12,5 @@ export var globalSearchHotkey = {
|
|
|
6
12
|
var ignoreNodes = ["INPUT", "TEXTAREA"];
|
|
7
13
|
return ignoreNodes.includes(e.target.nodeName);
|
|
8
14
|
}
|
|
9
|
-
};
|
|
15
|
+
};
|
|
16
|
+
exports.globalSearchHotkey = globalSearchHotkey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["globalSearchHotkey","type","name","preventOpen","e","ignoreNodes","includes","target","nodeName"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const globalSearchHotkey = {\n type: \"admin-global-search-prevent-hotkey\",\n name: \"admin-global-search-prevent-hotkey-input\",\n preventOpen(e: React.ChangeEvent<HTMLInputElement>): boolean {\n // Define a list of all node types we want to prevent the event from.\n const ignoreNodes = [\"INPUT\", \"TEXTAREA\"];\n\n return ignoreNodes.includes(e.target.nodeName);\n }\n};\n"],"mappings":";;;;;;AAEO,IAAMA,kBAAkB,GAAG;EAC9BC,IAAI,EAAE,oCADwB;EAE9BC,IAAI,EAAE,0CAFwB;EAG9BC,WAH8B,uBAGlBC,CAHkB,EAG+B;IACzD;IACA,IAAMC,WAAW,GAAG,CAAC,OAAD,EAAU,UAAV,CAApB;IAEA,OAAOA,WAAW,CAACC,QAAZ,CAAqBF,CAAC,CAACG,MAAF,CAASC,QAA9B,CAAP;EACH;AAR6B,CAA3B"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.searchWrapper = exports.searchBarInput = exports.searchBarDropdown = exports.iconSearchType = exports.icon = exports.SearchShortcut = exports.SearchBarWrapper = exports.SearchBarInputWrapper = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _emotion = require("emotion");
|
|
13
|
+
|
|
14
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
15
|
+
|
|
2
16
|
// TODO remove
|
|
3
17
|
// @ts-nocheck
|
|
4
|
-
|
|
5
|
-
import styled from "@emotion/styled";
|
|
6
|
-
export var SearchShortcut = /*#__PURE__*/styled("div", {
|
|
18
|
+
var SearchShortcut = /*#__PURE__*/(0, _styled.default)("div", {
|
|
7
19
|
target: "eh6vkyz0",
|
|
8
20
|
label: "SearchShortcut"
|
|
9
21
|
})({
|
|
@@ -20,14 +32,16 @@ export var SearchShortcut = /*#__PURE__*/styled("div", {
|
|
|
20
32
|
cursor: "default",
|
|
21
33
|
opacity: "0.8"
|
|
22
34
|
});
|
|
23
|
-
|
|
35
|
+
exports.SearchShortcut = SearchShortcut;
|
|
36
|
+
var SearchBarWrapper = /*#__PURE__*/(0, _styled.default)("div", {
|
|
24
37
|
target: "eh6vkyz1",
|
|
25
38
|
label: "SearchBarWrapper"
|
|
26
39
|
})({
|
|
27
40
|
display: "flex",
|
|
28
41
|
width: "100%"
|
|
29
42
|
});
|
|
30
|
-
|
|
43
|
+
exports.SearchBarWrapper = SearchBarWrapper;
|
|
44
|
+
var SearchBarInputWrapper = /*#__PURE__*/(0, _styled.default)("div", {
|
|
31
45
|
target: "eh6vkyz2",
|
|
32
46
|
label: "SearchBarInputWrapper"
|
|
33
47
|
})({
|
|
@@ -35,7 +49,8 @@ export var SearchBarInputWrapper = /*#__PURE__*/styled("div", {
|
|
|
35
49
|
width: "100%",
|
|
36
50
|
position: "relative"
|
|
37
51
|
});
|
|
38
|
-
|
|
52
|
+
exports.SearchBarInputWrapper = SearchBarInputWrapper;
|
|
53
|
+
var searchBarInput = /*#__PURE__*/(0, _emotion.css)({
|
|
39
54
|
width: "100%",
|
|
40
55
|
lineHeight: 1,
|
|
41
56
|
border: "none",
|
|
@@ -56,7 +71,8 @@ export var searchBarInput = /*#__PURE__*/css({
|
|
|
56
71
|
}
|
|
57
72
|
}
|
|
58
73
|
}, "label:searchBarInput;");
|
|
59
|
-
|
|
74
|
+
exports.searchBarInput = searchBarInput;
|
|
75
|
+
var searchBarDropdown = /*#__PURE__*/(0, _emotion.css)({
|
|
60
76
|
position: "absolute",
|
|
61
77
|
background: "white",
|
|
62
78
|
left: -1,
|
|
@@ -77,7 +93,8 @@ export var searchBarDropdown = /*#__PURE__*/css({
|
|
|
77
93
|
}
|
|
78
94
|
}
|
|
79
95
|
}, "label:searchBarDropdown;");
|
|
80
|
-
|
|
96
|
+
exports.searchBarDropdown = searchBarDropdown;
|
|
97
|
+
var icon = /*#__PURE__*/(0, _emotion.css)({
|
|
81
98
|
"&.mdc-button__icon": {
|
|
82
99
|
width: "auto !important",
|
|
83
100
|
paddingRight: 5,
|
|
@@ -85,11 +102,13 @@ export var icon = /*#__PURE__*/css({
|
|
|
85
102
|
marginTop: 2
|
|
86
103
|
}
|
|
87
104
|
}, "label:icon;");
|
|
88
|
-
|
|
105
|
+
exports.icon = icon;
|
|
106
|
+
var iconSearchType = /*#__PURE__*/(0, _emotion.css)({
|
|
89
107
|
cursor: "pointer",
|
|
90
108
|
paddingLeft: 5
|
|
91
109
|
}, "label:iconSearchType;");
|
|
92
|
-
|
|
110
|
+
exports.iconSearchType = iconSearchType;
|
|
111
|
+
var searchWrapper = /*#__PURE__*/(0, _emotion.css)({
|
|
93
112
|
backgroundColor: "rgba(0, 0, 0, 0.1)",
|
|
94
113
|
display: "flex",
|
|
95
114
|
padding: "10px 20px",
|
|
@@ -98,7 +117,7 @@ export var searchWrapper = /*#__PURE__*/css({
|
|
|
98
117
|
transition: "background 100ms ease-in,width 100ms ease-out",
|
|
99
118
|
color: "var(--mdc-theme-surface)",
|
|
100
119
|
border: "1px solid transparent",
|
|
101
|
-
"&.active":
|
|
120
|
+
"&.active": (0, _defineProperty2.default)({
|
|
102
121
|
color: "var(--mdc-theme-on-surface)",
|
|
103
122
|
border: "1px solid var(--mdc-theme-text-hint-on-dark)",
|
|
104
123
|
background: "var(--mdc-theme-surface)",
|
|
@@ -112,4 +131,5 @@ export var searchWrapper = /*#__PURE__*/css({
|
|
|
112
131
|
input: {
|
|
113
132
|
color: "var(--mdc-theme-surface)"
|
|
114
133
|
}
|
|
115
|
-
}, "label:searchWrapper;");
|
|
134
|
+
}, "label:searchWrapper;");
|
|
135
|
+
exports.searchWrapper = searchWrapper;
|