@webiny/app-admin 5.34.8 → 5.35.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/icons/add-18px.svg +1 -1
- package/assets/icons/arrow_drop_down-24px.svg +1 -1
- package/assets/icons/filter-24px.svg +1 -1
- package/assets/icons/highlight-24px.svg +1 -1
- package/assets/icons/info.svg +1 -1
- package/assets/icons/insert_drive_file-24px.svg +1 -1
- package/assets/icons/insert_photo-24px.svg +1 -1
- package/assets/icons/label-24px.svg +1 -1
- package/assets/icons/round-account_circle-24px.svg +1 -1
- package/assets/icons/round-arrow_drop_down-24px.svg +1 -1
- package/assets/icons/round-help-24px.svg +1 -1
- package/assets/icons/round-settings-24px.svg +1 -1
- package/assets/icons/today-24px.svg +1 -1
- package/assets/icons/touch_app.svg +1 -1
- package/base/Admin.js +1 -15
- package/base/Admin.js.map +1 -1
- package/base/Base.js +6 -44
- package/base/Base.js.map +1 -1
- package/base/plugins/AddGraphQLQuerySelection.js +5 -9
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
- package/base/providers/ApolloProvider.js +0 -5
- package/base/providers/ApolloProvider.js.map +1 -1
- package/base/providers/TelemetryProvider.js +1 -7
- package/base/providers/TelemetryProvider.js.map +1 -1
- package/base/providers/UiStateProvider.js +0 -5
- package/base/providers/UiStateProvider.js.map +1 -1
- package/base/providers/ViewCompositionProvider.js +3 -16
- package/base/providers/ViewCompositionProvider.js.map +1 -1
- package/base/ui/Brand.js +0 -4
- package/base/ui/Brand.js.map +1 -1
- package/base/ui/CenteredView.js +2 -7
- package/base/ui/CenteredView.js.map +1 -1
- package/base/ui/Dashboard.js +0 -4
- package/base/ui/Dashboard.js.map +1 -1
- package/base/ui/FileManager.d.ts +67 -0
- package/base/ui/FileManager.js +61 -0
- package/base/ui/FileManager.js.map +1 -0
- package/base/ui/Layout.js +1 -6
- package/base/ui/Layout.js.map +1 -1
- package/base/ui/LocaleSelector.js +0 -4
- package/base/ui/LocaleSelector.js.map +1 -1
- package/base/ui/LoginScreen.js +0 -6
- package/base/ui/LoginScreen.js.map +1 -1
- package/base/ui/Logo.js +0 -6
- package/base/ui/Logo.js.map +1 -1
- package/base/ui/Menu.js +2 -31
- package/base/ui/Menu.js.map +1 -1
- package/base/ui/Navigation.js +11 -44
- package/base/ui/Navigation.js.map +1 -1
- package/base/ui/NotFound.js +0 -4
- package/base/ui/NotFound.js.map +1 -1
- package/base/ui/Search.js +5 -23
- package/base/ui/Search.js.map +1 -1
- package/base/ui/Tags.js +1 -8
- package/base/ui/Tags.js.map +1 -1
- package/base/ui/UserMenu.js +5 -29
- package/base/ui/UserMenu.js.map +1 -1
- package/components/AdminLayout.js +1 -6
- package/components/AdminLayout.js.map +1 -1
- package/components/AppInstaller/AppInstaller.js +18 -84
- package/components/AppInstaller/AppInstaller.js.map +1 -1
- package/components/AppInstaller/Sidebar.js +11 -44
- package/components/AppInstaller/Sidebar.js.map +1 -1
- package/components/AppInstaller/index.js +0 -7
- package/components/AppInstaller/index.js.map +1 -1
- package/components/AppInstaller/styled.d.ts +17 -5
- package/components/AppInstaller/styled.js +0 -4
- package/components/AppInstaller/styled.js.map +1 -1
- package/components/AppInstaller/useInstaller.d.ts +1 -7
- package/components/AppInstaller/useInstaller.js +72 -183
- package/components/AppInstaller/useInstaller.js.map +1 -1
- package/components/EmptyView.js +4 -12
- package/components/EmptyView.js.map +1 -1
- package/components/FloatingActionButton.js +2 -8
- package/components/FloatingActionButton.js.map +1 -1
- package/components/MultiImageUpload.js +1 -10
- package/components/MultiImageUpload.js.map +1 -1
- package/components/OverlayLayout/OverlayLayout.js +9 -38
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/index.js +0 -2
- package/components/OverlayLayout/index.js.map +1 -1
- package/components/Permissions/Permissions.d.ts +2 -0
- package/components/Permissions/Permissions.js +25 -27
- package/components/Permissions/Permissions.js.map +1 -1
- package/components/Permissions/StyledComponents.js +0 -7
- package/components/Permissions/StyledComponents.js.map +1 -1
- package/components/Permissions/index.js +0 -3
- package/components/Permissions/index.js.map +1 -1
- package/components/RichTextEditor/RichTextEditor.js +0 -7
- package/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/components/RichTextEditor/index.js +0 -2
- package/components/RichTextEditor/index.js.map +1 -1
- package/components/RichTextEditor/tools/header/index.js +62 -102
- package/components/RichTextEditor/tools/header/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/index.js +15 -36
- package/components/RichTextEditor/tools/image/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
- package/components/RichTextEditor/tools/image/tunes.js +5 -22
- package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
- package/components/RichTextEditor/tools/image/ui.js +16 -39
- package/components/RichTextEditor/tools/image/ui.js.map +1 -1
- package/components/RichTextEditor/tools/paragraph/index.js +55 -81
- package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
- package/components/RichTextEditor/tools/textColor/index.js +15 -41
- package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
- package/components/RichTextEditor/tools/utils.js +0 -2
- package/components/RichTextEditor/tools/utils.js.map +1 -1
- package/components/Routes.js +6 -13
- package/components/Routes.js.map +1 -1
- package/components/SearchUI.d.ts +1 -0
- package/components/SearchUI.js +14 -14
- package/components/SearchUI.js.map +1 -1
- package/components/SimpleForm/SimpleForm.js +3 -32
- package/components/SimpleForm/SimpleForm.js.map +1 -1
- package/components/SimpleForm/index.js +0 -1
- package/components/SimpleForm/index.js.map +1 -1
- package/components/SimpleUI/InputField.d.ts +2 -0
- package/components/SimpleUI/InputField.js +16 -30
- package/components/SimpleUI/InputField.js.map +1 -1
- package/components/SingleImageUpload.d.ts +1 -1
- package/components/SingleImageUpload.js +14 -30
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.js +1 -20
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/SplitView/index.js +0 -1
- package/components/SplitView/index.js.map +1 -1
- package/components/index.d.ts +1 -1
- package/components/index.js +1 -2
- package/components/index.js.map +1 -1
- package/hooks/useConfirmationDialog.js +6 -18
- package/hooks/useConfirmationDialog.js.map +1 -1
- package/hooks/useDialog.js +0 -5
- package/hooks/useDialog.js.map +1 -1
- package/hooks/useSnackbar.js +0 -5
- package/hooks/useSnackbar.js.map +1 -1
- package/index.d.ts +2 -3
- package/index.js +1 -61
- package/index.js.map +1 -1
- package/package.json +22 -32
- package/plugins/MenuPlugin.js +0 -15
- package/plugins/MenuPlugin.js.map +1 -1
- package/plugins/PermissionRendererPlugin.js +0 -15
- package/plugins/PermissionRendererPlugin.js.map +1 -1
- package/plugins/globalSearch/SearchBar.js +5 -53
- package/plugins/globalSearch/SearchBar.js.map +1 -1
- package/plugins/globalSearch/SearchBarDropdown.js +15 -33
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
- package/plugins/globalSearch/index.js.map +1 -1
- package/plugins/globalSearch/styled.d.ts +13 -4
- package/plugins/globalSearch/styled.js +1 -5
- package/plugins/globalSearch/styled.js.map +1 -1
- package/plugins/uiLayoutRenderer/index.js +2 -16
- package/plugins/uiLayoutRenderer/index.js.map +1 -1
- package/styles/theme.scss +31 -1
- package/types.d.ts +23 -27
- package/types.js.map +1 -1
- package/ui/UIElement.js +0 -1
- package/ui/UIElement.js.map +1 -1
- package/ui/UILayout.js +0 -1
- package/ui/UILayout.js.map +1 -1
- package/ui/UIRenderer.js +0 -1
- package/ui/UIRenderer.js.map +1 -1
- package/ui/UIView.js +0 -1
- package/ui/UIView.js.map +1 -1
- package/ui/elements/AccordionElement.js +2 -28
- package/ui/elements/AccordionElement.js.map +1 -1
- package/ui/elements/ButtonElement.js +0 -19
- package/ui/elements/ButtonElement.js.map +1 -1
- package/ui/elements/ButtonGroupElement.js +0 -19
- package/ui/elements/ButtonGroupElement.js.map +1 -1
- package/ui/elements/GenericElement.js +0 -2
- package/ui/elements/GenericElement.js.map +1 -1
- package/ui/elements/LabelElement.js +0 -14
- package/ui/elements/LabelElement.js.map +1 -1
- package/ui/elements/NavigationMenuElement.js +3 -36
- package/ui/elements/NavigationMenuElement.js.map +1 -1
- package/ui/elements/PanelElement.js +0 -11
- package/ui/elements/PanelElement.js.map +1 -1
- package/ui/elements/PlaceholderElement.js +0 -11
- package/ui/elements/PlaceholderElement.js.map +1 -1
- package/ui/elements/SmallButtonElement.js +0 -19
- package/ui/elements/SmallButtonElement.js.map +1 -1
- package/ui/elements/TypographyElement.js +0 -19
- package/ui/elements/TypographyElement.js.map +1 -1
- package/ui/elements/ViewElement.js +0 -2
- package/ui/elements/ViewElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +0 -16
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement.js +11 -34
- package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js +0 -15
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +5 -27
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +4 -23
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/styled.d.ts +23 -16
- package/ui/elements/form/FileManagerElement/styled.js +0 -5
- package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
- package/ui/elements/form/FileManagerElement.js +0 -20
- package/ui/elements/form/FileManagerElement.js.map +1 -1
- package/ui/elements/form/FormElement.js +0 -21
- package/ui/elements/form/FormElement.js.map +1 -1
- package/ui/elements/form/FormFieldElement.js +0 -33
- package/ui/elements/form/FormFieldElement.js.map +1 -1
- package/ui/elements/form/HiddenElement.js +0 -17
- package/ui/elements/form/HiddenElement.js.map +1 -1
- package/ui/elements/form/InputElement.js +0 -18
- package/ui/elements/form/InputElement.js.map +1 -1
- package/ui/elements/form/PasswordElement.js +0 -15
- package/ui/elements/form/PasswordElement.js.map +1 -1
- package/ui/elements/form/SelectElement.js +1 -19
- package/ui/elements/form/SelectElement.js.map +1 -1
- package/ui/elements/form/TextareaElement.js +0 -17
- package/ui/elements/form/TextareaElement.js.map +1 -1
- package/ui/views/AdminView/ContentElement.js +1 -25
- package/ui/views/AdminView/ContentElement.js.map +1 -1
- package/ui/views/AdminView/HeaderElement.js +0 -40
- package/ui/views/AdminView/HeaderElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionCenterElement.js +0 -20
- package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionLeftElement.js +0 -20
- package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionRightElement.js +0 -20
- package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
- package/ui/views/AdminView/components/Dialog.js +10 -21
- package/ui/views/AdminView/components/Dialog.js.map +1 -1
- package/ui/views/AdminView/components/Hamburger.js +2 -10
- package/ui/views/AdminView/components/Hamburger.js.map +1 -1
- package/ui/views/AdminView/components/Snackbar.js +0 -9
- package/ui/views/AdminView/components/Snackbar.js.map +1 -1
- package/ui/views/FormView/FormContainerElement.js +0 -21
- package/ui/views/FormView/FormContainerElement.js.map +1 -1
- package/ui/views/FormView/FormContentElement.js +0 -11
- package/ui/views/FormView/FormContentElement.js.map +1 -1
- package/ui/views/FormView/FormFooterElement.js +0 -19
- package/ui/views/FormView/FormFooterElement.js.map +1 -1
- package/ui/views/FormView/FormHeaderElement.js +2 -24
- package/ui/views/FormView/FormHeaderElement.js.map +1 -1
- package/ui/views/FormView.js +0 -41
- package/ui/views/FormView.js.map +1 -1
- package/ui/views/OverlayView/ContentElement.js +0 -19
- package/ui/views/OverlayView/ContentElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderElement.js +4 -26
- package/ui/views/OverlayView/HeaderElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderTitleElement.js +0 -22
- package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
- package/ui/views/OverlayView/useOverlayView.js +3 -13
- package/ui/views/OverlayView/useOverlayView.js.map +1 -1
- package/ui/views/OverlayView.js +4 -38
- package/ui/views/OverlayView.js.map +1 -1
- package/ui/views/SplitView/SplitViewPanelElement.js +2 -22
- package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
- package/ui/views/SplitView.js +0 -40
- package/ui/views/SplitView.js.map +1 -1
|
@@ -1,54 +1,31 @@
|
|
|
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.default = void 0;
|
|
11
|
-
|
|
12
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
12
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
-
|
|
20
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
-
|
|
22
14
|
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
23
|
-
|
|
24
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
-
|
|
26
16
|
var React = _interopRequireWildcard(require("react"));
|
|
27
|
-
|
|
28
17
|
var _dotPropImmutable = require("dot-prop-immutable");
|
|
29
|
-
|
|
30
18
|
var _reactRouter = require("@webiny/react-router");
|
|
31
|
-
|
|
32
19
|
var _downshift = _interopRequireDefault(require("downshift"));
|
|
33
|
-
|
|
34
20
|
var _plugins = require("@webiny/plugins");
|
|
35
|
-
|
|
36
21
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
37
|
-
|
|
38
22
|
var _reactHotkeyz = require("react-hotkeyz");
|
|
39
|
-
|
|
40
23
|
var _Icon = require("@webiny/ui/Icon");
|
|
41
|
-
|
|
42
24
|
var _Elevation = require("@webiny/ui/Elevation");
|
|
43
|
-
|
|
44
25
|
var _SearchBarDropdown = _interopRequireDefault(require("./SearchBarDropdown"));
|
|
45
|
-
|
|
46
|
-
var _roundSearch24px = require("./icons/round-search-24px.svg");
|
|
47
|
-
|
|
26
|
+
var _search = require("@material-design-icons/svg/outlined/search.svg");
|
|
48
27
|
var _styled = require("./styled");
|
|
49
|
-
|
|
50
28
|
var _ = require("../..");
|
|
51
|
-
|
|
52
29
|
/**
|
|
53
30
|
* Package react-hotkeyz does not have types.
|
|
54
31
|
*/
|
|
@@ -58,9 +35,7 @@ var _ = require("../..");
|
|
|
58
35
|
// Local components
|
|
59
36
|
var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
60
37
|
(0, _inherits2.default)(SearchBar, _React$Component);
|
|
61
|
-
|
|
62
38
|
var _super = (0, _createSuper2.default)(SearchBar);
|
|
63
|
-
|
|
64
39
|
/**
|
|
65
40
|
* Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.
|
|
66
41
|
*/
|
|
@@ -76,7 +51,6 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
76
51
|
*/
|
|
77
52
|
function SearchBar(props) {
|
|
78
53
|
var _this;
|
|
79
|
-
|
|
80
54
|
(0, _classCallCheck2.default)(this, SearchBar);
|
|
81
55
|
_this = _super.call(this, props);
|
|
82
56
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
|
|
@@ -90,7 +64,6 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
90
64
|
get list() {
|
|
91
65
|
return _plugins.plugins.byType("admin-global-search");
|
|
92
66
|
},
|
|
93
|
-
|
|
94
67
|
hotKeys: _plugins.plugins.byType("admin-global-search-prevent-hotkey"),
|
|
95
68
|
// Current plugin - set by examining current route and its query params (on construct).
|
|
96
69
|
current: undefined
|
|
@@ -101,18 +74,14 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
101
74
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleOpenHotkey", function (e) {
|
|
102
75
|
for (var i = 0; i < _this.state.plugins.hotKeys.length; i++) {
|
|
103
76
|
var hotKey = _this.state.plugins.hotKeys[i];
|
|
104
|
-
|
|
105
77
|
if (hotKey.preventOpen(e)) {
|
|
106
78
|
return;
|
|
107
79
|
}
|
|
108
80
|
}
|
|
109
|
-
|
|
110
81
|
e.preventDefault();
|
|
111
|
-
|
|
112
82
|
if (!_this.input.current) {
|
|
113
83
|
return;
|
|
114
84
|
}
|
|
115
|
-
|
|
116
85
|
_this.input.current.focus();
|
|
117
86
|
});
|
|
118
87
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "submitSearchTerm", function (plugin) {
|
|
@@ -121,7 +90,6 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
121
90
|
return (0, _dotPropImmutable.set)(newState, "plugins.current", plugin);
|
|
122
91
|
}, function () {
|
|
123
92
|
var query = new URLSearchParams();
|
|
124
|
-
|
|
125
93
|
if (_this.state.searchTerm.current) {
|
|
126
94
|
// If "search" key in the plugin was defined, it means SearchInput values were set. Otherwise,
|
|
127
95
|
// we need to send the plain string into the "search" query param. This behavior was needed
|
|
@@ -134,7 +102,6 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
134
102
|
query.set("search", _this.state.searchTerm.current);
|
|
135
103
|
}
|
|
136
104
|
}
|
|
137
|
-
|
|
138
105
|
_this.props.history.push({
|
|
139
106
|
pathname: plugin.route,
|
|
140
107
|
search: query.toString()
|
|
@@ -150,29 +117,23 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
150
117
|
_this.state.plugins.current = _this.state.plugins.list.find(function (p) {
|
|
151
118
|
return p.route === props.location.pathname;
|
|
152
119
|
});
|
|
153
|
-
|
|
154
120
|
if (_this.state.plugins.current) {
|
|
155
121
|
var search;
|
|
156
122
|
var query = new URLSearchParams(props.location.search);
|
|
157
|
-
|
|
158
123
|
try {
|
|
159
124
|
search = JSON.parse(query.get("search") || "").query;
|
|
160
125
|
} catch (e) {
|
|
161
126
|
search = query.get("search");
|
|
162
127
|
}
|
|
163
|
-
|
|
164
128
|
_this.state.searchTerm.current = search || "";
|
|
165
129
|
_this.state.searchTerm.previous = _this.state.searchTerm.current;
|
|
166
130
|
}
|
|
167
|
-
|
|
168
131
|
return _this;
|
|
169
132
|
}
|
|
170
|
-
|
|
171
133
|
(0, _createClass2.default)(SearchBar, [{
|
|
172
134
|
key: "render",
|
|
173
135
|
value: function render() {
|
|
174
136
|
var _this2 = this;
|
|
175
|
-
|
|
176
137
|
return /*#__PURE__*/React.createElement(_downshift.default, {
|
|
177
138
|
ref: this.downshift,
|
|
178
139
|
itemToString: function itemToString(item) {
|
|
@@ -180,9 +141,9 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
180
141
|
}
|
|
181
142
|
}, function (downshiftProps) {
|
|
182
143
|
var isOpen = downshiftProps.isOpen,
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
144
|
+
openMenu = downshiftProps.openMenu,
|
|
145
|
+
closeMenu = downshiftProps.closeMenu,
|
|
146
|
+
getInputProps = downshiftProps.getInputProps;
|
|
186
147
|
return /*#__PURE__*/React.createElement("div", {
|
|
187
148
|
style: {
|
|
188
149
|
width: "100%"
|
|
@@ -202,16 +163,13 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
202
163
|
keys: {
|
|
203
164
|
esc: function esc() {
|
|
204
165
|
_this2.cancelSearchTerm();
|
|
205
|
-
|
|
206
166
|
closeMenu();
|
|
207
167
|
},
|
|
208
168
|
enter: function enter() {
|
|
209
169
|
return setTimeout(function () {
|
|
210
170
|
var selectedItem = _this2.downshift.current.state.selectedItem;
|
|
211
|
-
|
|
212
171
|
if (selectedItem) {
|
|
213
172
|
closeMenu();
|
|
214
|
-
|
|
215
173
|
_this2.submitSearchTerm(selectedItem);
|
|
216
174
|
}
|
|
217
175
|
});
|
|
@@ -224,7 +182,7 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
224
182
|
z: 0
|
|
225
183
|
}, /*#__PURE__*/React.createElement(_styled.SearchBarWrapper, null, /*#__PURE__*/React.createElement(_styled.SearchBarInputWrapper, null, /*#__PURE__*/React.createElement(_Icon.Icon, {
|
|
226
184
|
className: _styled.icon,
|
|
227
|
-
icon: /*#__PURE__*/React.createElement(
|
|
185
|
+
icon: /*#__PURE__*/React.createElement(_search.ReactComponent, null)
|
|
228
186
|
}), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", getInputProps({
|
|
229
187
|
placeholder: "Search...",
|
|
230
188
|
className: (0, _classnames.default)("mdc-text-field__input", _styled.searchBarInput),
|
|
@@ -234,7 +192,6 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
234
192
|
onClick: openMenu,
|
|
235
193
|
onBlur: function onBlur() {
|
|
236
194
|
_this2.cancelSearchTerm();
|
|
237
|
-
|
|
238
195
|
_this2.setState({
|
|
239
196
|
active: false
|
|
240
197
|
});
|
|
@@ -243,12 +200,10 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
243
200
|
_this2.setState({
|
|
244
201
|
active: true
|
|
245
202
|
});
|
|
246
|
-
|
|
247
203
|
openMenu();
|
|
248
204
|
},
|
|
249
205
|
onChange: function onChange(e) {
|
|
250
206
|
var value = e.target.value || "";
|
|
251
|
-
|
|
252
207
|
_this2.setState(function (state) {
|
|
253
208
|
state.searchTerm.current = value;
|
|
254
209
|
return state;
|
|
@@ -262,12 +217,9 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
|
|
|
262
217
|
}]);
|
|
263
218
|
return SearchBar;
|
|
264
219
|
}(React.Component);
|
|
265
|
-
|
|
266
220
|
var SearchBarContainer = function SearchBarContainer() {
|
|
267
221
|
var routerProps = (0, _reactRouter.useRouter)();
|
|
268
222
|
return /*#__PURE__*/React.createElement(SearchBar, routerProps);
|
|
269
223
|
};
|
|
270
|
-
|
|
271
224
|
var _default = (0, _.makeComposable)("SearchBarContainer", SearchBarContainer);
|
|
272
|
-
|
|
273
225
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"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 \"@material-design-icons/svg/outlined/search.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,52 +1,35 @@
|
|
|
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.default = void 0;
|
|
11
|
-
|
|
12
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
19
|
-
|
|
20
13
|
var React = _interopRequireWildcard(require("react"));
|
|
21
|
-
|
|
22
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
23
|
-
|
|
24
15
|
var _List = require("@webiny/ui/List");
|
|
25
|
-
|
|
26
16
|
var _styled = require("./styled");
|
|
27
|
-
|
|
28
17
|
var _Elevation = require("@webiny/ui/Elevation");
|
|
29
|
-
|
|
30
18
|
var _Icon = require("@webiny/ui/Icon");
|
|
31
|
-
|
|
32
|
-
var _roundSearch24px = require("./icons/round-search-24px.svg");
|
|
33
|
-
|
|
19
|
+
var _search = require("@material-design-icons/svg/outlined/search.svg");
|
|
34
20
|
var SearchBarDropdown = /*#__PURE__*/function (_React$Component) {
|
|
35
21
|
(0, _inherits2.default)(SearchBarDropdown, _React$Component);
|
|
36
|
-
|
|
37
22
|
var _super = (0, _createSuper2.default)(SearchBarDropdown);
|
|
38
|
-
|
|
39
23
|
function SearchBarDropdown() {
|
|
40
24
|
(0, _classCallCheck2.default)(this, SearchBarDropdown);
|
|
41
25
|
return _super.apply(this, arguments);
|
|
42
26
|
}
|
|
43
|
-
|
|
44
27
|
(0, _createClass2.default)(SearchBarDropdown, [{
|
|
45
28
|
key: "componentDidMount",
|
|
46
29
|
value: function componentDidMount() {
|
|
47
30
|
var _this$props$context = this.props.context,
|
|
48
|
-
|
|
49
|
-
|
|
31
|
+
downshift = _this$props$context.downshift.current,
|
|
32
|
+
plugins = _this$props$context.state.plugins;
|
|
50
33
|
downshift.selectItem(plugins.current);
|
|
51
34
|
downshift.setHighlightedIndex(plugins.list.indexOf(plugins.current));
|
|
52
35
|
downshift.openMenu();
|
|
@@ -55,16 +38,16 @@ var SearchBarDropdown = /*#__PURE__*/function (_React$Component) {
|
|
|
55
38
|
key: "render",
|
|
56
39
|
value: function render() {
|
|
57
40
|
var _this$props$context2 = this.props.context,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
41
|
+
downshift = _this$props$context2.downshift.current,
|
|
42
|
+
submitSearchTerm = _this$props$context2.submitSearchTerm,
|
|
43
|
+
_this$props$context2$ = _this$props$context2.state,
|
|
44
|
+
plugins = _this$props$context2$.plugins,
|
|
45
|
+
searchTerm = _this$props$context2$.searchTerm;
|
|
63
46
|
var getMenuProps = downshift.getMenuProps,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
47
|
+
getItemProps = downshift.getItemProps,
|
|
48
|
+
_downshift$state = downshift.state,
|
|
49
|
+
selectedItem = _downshift$state.selectedItem,
|
|
50
|
+
highlightedIndex = _downshift$state.highlightedIndex;
|
|
68
51
|
return /*#__PURE__*/React.createElement(_Elevation.Elevation, {
|
|
69
52
|
z: 2,
|
|
70
53
|
className: _styled.searchBarDropdown
|
|
@@ -73,12 +56,12 @@ var SearchBarDropdown = /*#__PURE__*/function (_React$Component) {
|
|
|
73
56
|
var itemClassNames = {
|
|
74
57
|
highlighted: highlightedIndex === index,
|
|
75
58
|
selected: false
|
|
76
|
-
};
|
|
59
|
+
};
|
|
77
60
|
|
|
61
|
+
// Add "selected" class if the item is selected.
|
|
78
62
|
if (selectedItem && selectedItem === item) {
|
|
79
63
|
itemClassNames.selected = true;
|
|
80
64
|
}
|
|
81
|
-
|
|
82
65
|
return /*#__PURE__*/React.createElement(_List.ListItem, Object.assign({
|
|
83
66
|
key: item.route
|
|
84
67
|
}, getItemProps({
|
|
@@ -90,12 +73,11 @@ var SearchBarDropdown = /*#__PURE__*/function (_React$Component) {
|
|
|
90
73
|
}
|
|
91
74
|
})), /*#__PURE__*/React.createElement(_List.ListItemGraphic, null, /*#__PURE__*/React.createElement(_Icon.Icon, {
|
|
92
75
|
className: _styled.iconSearchType,
|
|
93
|
-
icon: /*#__PURE__*/React.createElement(
|
|
76
|
+
icon: /*#__PURE__*/React.createElement(_search.ReactComponent, null)
|
|
94
77
|
})), /*#__PURE__*/React.createElement(_List.ListItemText, null, searchTerm.current || "Search for all..."), /*#__PURE__*/React.createElement(_List.ListItemMeta, null, "in ", item.label));
|
|
95
78
|
})));
|
|
96
79
|
}
|
|
97
80
|
}]);
|
|
98
81
|
return SearchBarDropdown;
|
|
99
82
|
}(React.Component);
|
|
100
|
-
|
|
101
83
|
exports.default = SearchBarDropdown;
|
|
@@ -1 +1 @@
|
|
|
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 \"
|
|
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 \"@material-design-icons/svg/outlined/search.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;AAA8F,IAmBzEA,iBAAiB;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OAClC,6BAAoC;MAChC,0BAKI,IAAI,CAACC,KAAK,CAJVC,OAAO;QACmBC,SAAS,uBAA/BA,SAAS,CAAIC,OAAO;QACXC,OAAO,uBAAhBC,KAAK,CAAID,OAAO;MAIxBF,SAAS,CAACI,UAAU,CAACF,OAAO,CAACD,OAAO,CAAC;MACrCD,SAAS,CAACK,mBAAmB,CACzBH,OAAO,CAACI,IAAI,CAACC,OAAO,CAACL,OAAO,CAACD,OAAO,CAA4B,CACnE;MACDD,SAAS,CAACQ,QAAQ,EAAE;IACxB;EAAC;IAAA;IAAA,OAED,kBAAyB;MACrB,2BAMI,IAAI,CAACV,KAAK,CALVC,OAAO;QACmBC,SAAS,wBAA/BA,SAAS,CAAIC,OAAO;QACpBQ,gBAAgB,wBAAhBA,gBAAgB;QAAA,6CAChBN,KAAK;QAAID,OAAO,yBAAPA,OAAO;QAAEQ,UAAU,yBAAVA,UAAU;MAIpC,IACIC,YAAY,GAGZX,SAAS,CAHTW,YAAY;QACZC,YAAY,GAEZZ,SAAS,CAFTY,YAAY;QAAA,mBAEZZ,SAAS,CADTG,KAAK;QAAIU,YAAY,oBAAZA,YAAY;QAAEC,gBAAgB,oBAAhBA,gBAAgB;MAG3C,oBACI,oBAAC,oBAAS;QAAC,CAAC,EAAE,CAAE;QAAC,SAAS,EAAEC;MAAkB,gBAC1C,oBAAC,UAAI,EAAKJ,YAAY,EAAE,EACnBT,OAAO,CAACI,IAAI,CAACU,GAAG,CAAC,UAACC,IAA6B,EAAEC,KAAK,EAAK;QACxD;QACA,IAAMC,cAAc,GAAG;UACnBC,WAAW,EAAEN,gBAAgB,KAAKI,KAAK;UACvCG,QAAQ,EAAE;QACd,CAAC;;QAED;QACA,IAAIR,YAAY,IAAIA,YAAY,KAAKI,IAAI,EAAE;UACvCE,cAAc,CAACE,QAAQ,GAAG,IAAI;QAClC;QAEA,oBACI,oBAAC,cAAQ;UACL,GAAG,EAAEJ,IAAI,CAACK;QAAM,GACZV,YAAY,CAAC;UACbM,KAAK,EAALA,KAAK;UACLD,IAAI,EAAJA,IAAI;UACJM,SAAS,EAAE,IAAAC,mBAAU,EAACL,cAAc,CAAC;UACrCM,OAAO,EAAE;YAAA,OAAMhB,gBAAgB,CAACQ,IAAI,CAAC;UAAA;QACzC,CAAC,CAAC,gBAEF,oBAAC,qBAAe,qBACZ,oBAAC,UAAI;UAAC,SAAS,EAAES,sBAAe;UAAC,IAAI,eAAE,oBAAC,sBAAU;QAAI,EAAG,CAC3C,eAClB,oBAAC,kBAAY,QACRhB,UAAU,CAACT,OAAO,IAAI,mBAAmB,CAC/B,eACf,oBAAC,kBAAY,QAAC,KAAG,EAACgB,IAAI,CAACU,KAAK,CAAgB,CACrC;MAEnB,CAAC,CAAC,CACC,CACC;IAEpB;EAAC;EAAA;AAAA,EArE0CC,KAAK,CAACC,SAAS;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,oCAAoC;EAC1CC,IAAI,EAAE,0CAA0C;EAChDC,WAAW,uBAACC,CAAsC,EAAW;IACzD;IACA,IAAMC,WAAW,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC;IAEzC,OAAOA,WAAW,CAACC,QAAQ,CAACF,CAAC,CAACG,MAAM,CAACC,QAAQ,CAAC;EAClD;AACJ,CAAC;AAAC"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
/// <reference types="web" />
|
|
3
2
|
/// <reference types="react" />
|
|
4
|
-
|
|
5
|
-
export declare const
|
|
6
|
-
|
|
3
|
+
/// <reference types="web" />
|
|
4
|
+
export declare const SearchShortcut: import("@emotion/styled").StyledComponent<{
|
|
5
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
6
|
+
as?: import("react").ElementType<any> | undefined;
|
|
7
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
8
|
+
export declare const SearchBarWrapper: import("@emotion/styled").StyledComponent<{
|
|
9
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
10
|
+
as?: import("react").ElementType<any> | undefined;
|
|
11
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
12
|
+
export declare const SearchBarInputWrapper: import("@emotion/styled").StyledComponent<{
|
|
13
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
14
|
+
as?: import("react").ElementType<any> | undefined;
|
|
15
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
7
16
|
export declare const searchBarInput: string;
|
|
8
17
|
export declare const searchBarDropdown: string;
|
|
9
18
|
export declare const icon: string;
|
|
@@ -1,20 +1,16 @@
|
|
|
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.searchWrapper = exports.searchBarInput = exports.searchBarDropdown = exports.iconSearchType = exports.icon = exports.SearchShortcut = exports.SearchBarWrapper = exports.SearchBarInputWrapper = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
9
|
var _emotion = require("emotion");
|
|
13
|
-
|
|
14
10
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
15
|
-
|
|
16
11
|
// TODO remove
|
|
17
12
|
// @ts-nocheck
|
|
13
|
+
|
|
18
14
|
var SearchShortcut = /*#__PURE__*/(0, _styled.default)("div", {
|
|
19
15
|
target: "eh6vkyz0",
|
|
20
16
|
label: "SearchShortcut"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SearchShortcut","styled","border","color","borderRadius","width","height","marginTop","textAlign","fontSize","paddingTop","boxSizing","cursor","opacity","SearchBarWrapper","display","SearchBarInputWrapper","position","searchBarInput","css","lineHeight","outline","backgroundColor","paddingLeft","borderBottom","searchBarDropdown","background","left","top","zIndex","padding","fontWeight","icon","paddingRight","iconSearchType","searchWrapper","transition","boxShadow","input"],"sources":["styled.ts"],"sourcesContent":["// TODO remove\n// @ts-nocheck\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\n\nexport const SearchShortcut = styled(\"div\")({\n border: \"1px solid var(--mdc-theme-surface)\",\n color: \"var(--mdc-theme-surface)\",\n borderRadius: 5,\n width: 20,\n height: 24,\n marginTop: 1,\n textAlign: \"center\",\n fontSize: \"12px\",\n paddingTop: \"3px\",\n boxSizing: \"border-box\",\n cursor: \"default\",\n opacity: \"0.8\"\n});\n\nexport const SearchBarWrapper = styled(\"div\")({\n display: \"flex\",\n width: \"100%\"\n});\n\nexport const SearchBarInputWrapper = styled(\"div\")({\n display: \"flex\",\n width: \"100%\",\n position: \"relative\"\n});\n\nexport const searchBarInput = css({\n width: \"100%\",\n lineHeight: 1,\n border: \"none\",\n outline: \"none\",\n backgroundColor: \"transparent\",\n \"&.mdc-text-field__input\": {\n paddingTop: \"5px !important\",\n paddingLeft: \"10px !important\",\n borderBottom: \"none !important\",\n height: \"25px !important\",\n color: \"var(--mdc-theme-surface)\",\n \"&::placeholder\": {\n color: \"var(--mdc-theme-surface) !important\",\n opacity: \"1 !important\"\n },\n \"&:focus::placeholder\": {\n color: \"var(--mdc-theme-text-secondary-on-background) !important\"\n }\n }\n});\n\nexport const searchBarDropdown = css({\n position: \"absolute\",\n background: \"white\",\n left: -1,\n width: \"calc(100% + 2px)\",\n top: 45,\n zIndex: 2,\n color: \"var(--mdc-theme-on-surface)\",\n borderRadius: \"0 0 5px 5px\",\n \".mdc-list\": {\n padding: 0,\n \".mdc-list-item\": {\n \"&.selected\": {\n fontWeight: \"bold\"\n },\n \"&.highlighted\": {\n backgroundColor: \"var(--mdc-theme-on-background)\"\n }\n }\n }\n});\n\nexport const icon = css({\n \"&.mdc-button__icon\": {\n width: \"auto !important\",\n paddingRight: 5,\n opacity: 0.75,\n marginTop: 2\n }\n});\n\nexport const iconSearchType = css({\n cursor: \"pointer\",\n paddingLeft: 5\n});\n\nexport const searchWrapper = css({\n backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n display: \"flex\",\n padding: \"10px 20px\",\n position: \"relative\",\n borderRadius: 4,\n transition: \"background 100ms ease-in,width 100ms ease-out\",\n color: \"var(--mdc-theme-surface)\",\n border: \"1px solid transparent\",\n \"&.active\": {\n color: \"var(--mdc-theme-on-surface)\",\n border: \"1px solid var(--mdc-theme-text-hint-on-dark)\",\n background: \"var(--mdc-theme-surface)\",\n boxShadow: \"0 1px 1px var(--mdc-theme-text-hint-on-dark)\",\n input: {\n color: \"var(--mdc-theme-on-surface)\"\n },\n [SearchShortcut]: {\n display: \"none\"\n }\n },\n input: {\n color: \"var(--mdc-theme-surface)\"\n }\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["SearchShortcut","styled","border","color","borderRadius","width","height","marginTop","textAlign","fontSize","paddingTop","boxSizing","cursor","opacity","SearchBarWrapper","display","SearchBarInputWrapper","position","searchBarInput","css","lineHeight","outline","backgroundColor","paddingLeft","borderBottom","searchBarDropdown","background","left","top","zIndex","padding","fontWeight","icon","paddingRight","iconSearchType","searchWrapper","transition","boxShadow","input"],"sources":["styled.ts"],"sourcesContent":["// TODO remove\n// @ts-nocheck\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\n\nexport const SearchShortcut = styled(\"div\")({\n border: \"1px solid var(--mdc-theme-surface)\",\n color: \"var(--mdc-theme-surface)\",\n borderRadius: 5,\n width: 20,\n height: 24,\n marginTop: 1,\n textAlign: \"center\",\n fontSize: \"12px\",\n paddingTop: \"3px\",\n boxSizing: \"border-box\",\n cursor: \"default\",\n opacity: \"0.8\"\n});\n\nexport const SearchBarWrapper = styled(\"div\")({\n display: \"flex\",\n width: \"100%\"\n});\n\nexport const SearchBarInputWrapper = styled(\"div\")({\n display: \"flex\",\n width: \"100%\",\n position: \"relative\"\n});\n\nexport const searchBarInput = css({\n width: \"100%\",\n lineHeight: 1,\n border: \"none\",\n outline: \"none\",\n backgroundColor: \"transparent\",\n \"&.mdc-text-field__input\": {\n paddingTop: \"5px !important\",\n paddingLeft: \"10px !important\",\n borderBottom: \"none !important\",\n height: \"25px !important\",\n color: \"var(--mdc-theme-surface)\",\n \"&::placeholder\": {\n color: \"var(--mdc-theme-surface) !important\",\n opacity: \"1 !important\"\n },\n \"&:focus::placeholder\": {\n color: \"var(--mdc-theme-text-secondary-on-background) !important\"\n }\n }\n});\n\nexport const searchBarDropdown = css({\n position: \"absolute\",\n background: \"white\",\n left: -1,\n width: \"calc(100% + 2px)\",\n top: 45,\n zIndex: 2,\n color: \"var(--mdc-theme-on-surface)\",\n borderRadius: \"0 0 5px 5px\",\n \".mdc-list\": {\n padding: 0,\n \".mdc-list-item\": {\n \"&.selected\": {\n fontWeight: \"bold\"\n },\n \"&.highlighted\": {\n backgroundColor: \"var(--mdc-theme-on-background)\"\n }\n }\n }\n});\n\nexport const icon = css({\n \"&.mdc-button__icon\": {\n width: \"auto !important\",\n paddingRight: 5,\n opacity: 0.75,\n marginTop: 2\n }\n});\n\nexport const iconSearchType = css({\n cursor: \"pointer\",\n paddingLeft: 5\n});\n\nexport const searchWrapper = css({\n backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n display: \"flex\",\n padding: \"10px 20px\",\n position: \"relative\",\n borderRadius: 4,\n transition: \"background 100ms ease-in,width 100ms ease-out\",\n color: \"var(--mdc-theme-surface)\",\n border: \"1px solid transparent\",\n \"&.active\": {\n color: \"var(--mdc-theme-on-surface)\",\n border: \"1px solid var(--mdc-theme-text-hint-on-dark)\",\n background: \"var(--mdc-theme-surface)\",\n boxShadow: \"0 1px 1px var(--mdc-theme-text-hint-on-dark)\",\n input: {\n color: \"var(--mdc-theme-on-surface)\"\n },\n [SearchShortcut]: {\n display: \"none\"\n }\n },\n input: {\n color: \"var(--mdc-theme-surface)\"\n }\n});\n"],"mappings":"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"}
|
|
@@ -1,67 +1,53 @@
|
|
|
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.uiLayoutPlugin = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
9
|
var _Grid = require("@webiny/ui/Grid");
|
|
13
|
-
|
|
14
10
|
var _UILayout = require("../../ui/UILayout");
|
|
15
|
-
|
|
16
11
|
function getElementKey(element) {
|
|
17
12
|
return "".concat(element.constructor.name, ":").concat(element.id);
|
|
18
13
|
}
|
|
19
|
-
|
|
20
14
|
var ElementID = function ElementID(_ref) {
|
|
21
15
|
var children = _ref.children;
|
|
22
16
|
return children;
|
|
23
17
|
};
|
|
24
|
-
|
|
25
18
|
var uiLayoutPlugin = new _UILayout.UILayoutPlugin(function (layout) {
|
|
26
19
|
layout.setRenderer(function (_ref2) {
|
|
27
20
|
var layout = _ref2.layout,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
props = _ref2.props,
|
|
22
|
+
hasParentGrid = _ref2.hasParentGrid;
|
|
31
23
|
if (!layout.getGrid()) {
|
|
32
24
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, layout.getLayout().map(function (row, index) {
|
|
33
25
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
34
26
|
key: index
|
|
35
27
|
}, row.map(function (item) {
|
|
36
28
|
var element = layout.getElement(item.element);
|
|
37
|
-
|
|
38
29
|
if (!element) {
|
|
39
30
|
console.warn("Element \"".concat(item.element, "\" was not found!"));
|
|
40
31
|
return null;
|
|
41
32
|
}
|
|
42
|
-
|
|
43
33
|
if (!element.shouldRender(props)) {
|
|
44
34
|
return null;
|
|
45
35
|
}
|
|
46
|
-
|
|
47
36
|
return /*#__PURE__*/_react.default.createElement(ElementID, {
|
|
48
37
|
key: getElementKey(element)
|
|
49
38
|
}, element.render(props));
|
|
50
39
|
}));
|
|
51
40
|
}));
|
|
52
41
|
}
|
|
53
|
-
|
|
54
42
|
var GridComponent = hasParentGrid ? _Grid.GridInner : _Grid.Grid;
|
|
55
43
|
return /*#__PURE__*/_react.default.createElement(GridComponent, null, layout.getLayout().map(function (row, index) {
|
|
56
44
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
57
45
|
key: index
|
|
58
46
|
}, row.map(function (item) {
|
|
59
47
|
var element = layout.getElement(item.element);
|
|
60
|
-
|
|
61
48
|
if (!element.shouldRender(props)) {
|
|
62
49
|
return null;
|
|
63
50
|
}
|
|
64
|
-
|
|
65
51
|
return /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
66
52
|
key: item.element,
|
|
67
53
|
span: item.width
|