@webiny/app-admin-rmwc 5.27.0 → 5.29.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/index.js +32 -12
- package/index.js.map +1 -1
- package/modules/Brand/index.js +33 -18
- package/modules/Brand/index.js.map +1 -1
- package/modules/Dashboard/Welcome.js +109 -82
- package/modules/Dashboard/Welcome.js.map +1 -1
- package/modules/Dashboard/index.js +24 -9
- package/modules/Dashboard/index.js.map +1 -1
- package/modules/Layout.js +32 -16
- package/modules/Layout.js.map +1 -1
- package/modules/Navigation/Hamburger.js +24 -10
- package/modules/Navigation/Hamburger.js.map +1 -1
- package/modules/Navigation/Styled.js +26 -9
- package/modules/Navigation/Styled.js.map +1 -1
- package/modules/Navigation/index.js +87 -53
- package/modules/Navigation/index.js.map +1 -1
- package/modules/Navigation/renderers/MenuElementRenderer.js +19 -6
- package/modules/Navigation/renderers/MenuElementRenderer.js.map +1 -1
- package/modules/Navigation/renderers/MenuGroupRenderer.js +68 -39
- package/modules/Navigation/renderers/MenuGroupRenderer.js.map +1 -1
- package/modules/Navigation/renderers/MenuLinkRenderer.js +38 -18
- package/modules/Navigation/renderers/MenuLinkRenderer.js.map +1 -1
- package/modules/Navigation/renderers/MenuSectionItemRenderer.js +38 -20
- package/modules/Navigation/renderers/MenuSectionItemRenderer.js.map +1 -1
- package/modules/Navigation/renderers/MenuSectionRenderer.js +31 -15
- package/modules/Navigation/renderers/MenuSectionRenderer.js.map +1 -1
- package/modules/NotFound/index.js +39 -19
- package/modules/NotFound/index.js.map +1 -1
- package/modules/Overlays/Dialog.js +32 -15
- package/modules/Overlays/Dialog.js.map +1 -1
- package/modules/Overlays/Snackbar.js +26 -13
- package/modules/Overlays/Snackbar.js.map +1 -1
- package/modules/Overlays/index.js +24 -10
- package/modules/Overlays/index.js.map +1 -1
- package/modules/Search/index.js +22 -9
- package/modules/Search/index.js.map +1 -1
- package/modules/UserMenu/index.js +56 -35
- package/modules/UserMenu/index.js.map +1 -1
- package/package.json +12 -12
|
@@ -1,18 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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.MenuGroupRenderer = void 0;
|
|
11
|
+
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
20
|
+
var _store = _interopRequireDefault(require("store"));
|
|
21
|
+
|
|
22
|
+
var _emotion = require("emotion");
|
|
23
|
+
|
|
24
|
+
var _reactTransitionGroup = require("react-transition-group");
|
|
25
|
+
|
|
26
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
27
|
+
|
|
28
|
+
var _reactRouter = require("@webiny/react-router");
|
|
29
|
+
|
|
30
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
31
|
+
|
|
32
|
+
var _List = require("@webiny/ui/List");
|
|
33
|
+
|
|
34
|
+
var _Button = require("@webiny/ui/Button");
|
|
35
|
+
|
|
36
|
+
var _index = require("../index");
|
|
37
|
+
|
|
38
|
+
var _roundKeyboard_arrow_up24px = require("../icons/round-keyboard_arrow_up-24px.svg");
|
|
39
|
+
|
|
40
|
+
var _roundKeyboard_arrow_down24px = require("../icons/round-keyboard_arrow_down-24px.svg");
|
|
41
|
+
|
|
16
42
|
var defaultStyle = {
|
|
17
43
|
transform: "translateY(-20px)",
|
|
18
44
|
opacity: 0,
|
|
@@ -31,7 +57,7 @@ var transitionStyles = {
|
|
|
31
57
|
opacity: 1
|
|
32
58
|
}
|
|
33
59
|
};
|
|
34
|
-
var menuTitle = /*#__PURE__*/css({
|
|
60
|
+
var menuTitle = /*#__PURE__*/(0, _emotion.css)({
|
|
35
61
|
".mdc-drawer &.mdc-list": {
|
|
36
62
|
borderBottom: "1px solid var(--mdc-theme-on-background)",
|
|
37
63
|
padding: 0,
|
|
@@ -45,17 +71,17 @@ var menuTitle = /*#__PURE__*/css({
|
|
|
45
71
|
}
|
|
46
72
|
}
|
|
47
73
|
}, "label:menuTitle;");
|
|
48
|
-
var menuTitleActive = /*#__PURE__*/css({
|
|
74
|
+
var menuTitleActive = /*#__PURE__*/(0, _emotion.css)({
|
|
49
75
|
backgroundColor: "var(--mdc-theme-background)"
|
|
50
76
|
}, "label:menuTitleActive;");
|
|
51
77
|
var LOCAL_STORAGE_KEY = "webiny_navigation_groups";
|
|
52
78
|
|
|
53
79
|
function loadState() {
|
|
54
|
-
return (
|
|
80
|
+
return (_store.default.get(LOCAL_STORAGE_KEY) || "").split(",").filter(Boolean);
|
|
55
81
|
}
|
|
56
82
|
|
|
57
83
|
function storeState(state) {
|
|
58
|
-
|
|
84
|
+
_store.default.set(LOCAL_STORAGE_KEY, state.join(","));
|
|
59
85
|
}
|
|
60
86
|
|
|
61
87
|
function getState(id) {
|
|
@@ -67,26 +93,26 @@ function getState(id) {
|
|
|
67
93
|
return state.includes(id);
|
|
68
94
|
}
|
|
69
95
|
|
|
70
|
-
|
|
96
|
+
var MenuGroupRenderer = function MenuGroupRenderer(PrevMenuItem) {
|
|
71
97
|
return function MenuGroup() {
|
|
72
|
-
var _useNavigation = useNavigation(),
|
|
98
|
+
var _useNavigation = (0, _index.useNavigation)(),
|
|
73
99
|
setVisible = _useNavigation.setVisible;
|
|
74
100
|
|
|
75
|
-
var _useMenuItem = useMenuItem(),
|
|
101
|
+
var _useMenuItem = (0, _appAdmin.useMenuItem)(),
|
|
76
102
|
menuItem = _useMenuItem.menuItem,
|
|
77
103
|
depth = _useMenuItem.depth;
|
|
78
104
|
|
|
79
105
|
var shouldRender = depth === 0 && menuItem && menuItem.children;
|
|
80
106
|
|
|
81
|
-
var _useState = useState(getState(menuItem ? menuItem.name : null)),
|
|
82
|
-
_useState2 =
|
|
107
|
+
var _useState = (0, _react.useState)(getState(menuItem ? menuItem.name : null)),
|
|
108
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
83
109
|
isExpanded = _useState2[0],
|
|
84
110
|
setExpanded = _useState2[1];
|
|
85
111
|
|
|
86
|
-
var hideMenu = useCallback(function () {
|
|
112
|
+
var hideMenu = (0, _react.useCallback)(function () {
|
|
87
113
|
return setVisible(false);
|
|
88
114
|
}, []);
|
|
89
|
-
var toggleElement = useCallback(function () {
|
|
115
|
+
var toggleElement = (0, _react.useCallback)(function () {
|
|
90
116
|
if (!menuItem) {
|
|
91
117
|
return;
|
|
92
118
|
}
|
|
@@ -106,7 +132,7 @@ export var MenuGroupRenderer = function MenuGroupRenderer(PrevMenuItem) {
|
|
|
106
132
|
}, [isExpanded, setExpanded]);
|
|
107
133
|
|
|
108
134
|
if (!shouldRender) {
|
|
109
|
-
return /*#__PURE__*/
|
|
135
|
+
return /*#__PURE__*/_react.default.createElement(PrevMenuItem, null);
|
|
110
136
|
}
|
|
111
137
|
|
|
112
138
|
if (!menuItem || !menuItem.children.length) {
|
|
@@ -114,34 +140,37 @@ export var MenuGroupRenderer = function MenuGroupRenderer(PrevMenuItem) {
|
|
|
114
140
|
}
|
|
115
141
|
|
|
116
142
|
var withLink = function withLink(content) {
|
|
117
|
-
return /*#__PURE__*/
|
|
143
|
+
return /*#__PURE__*/_react.default.createElement(_reactRouter.Link, {
|
|
118
144
|
to: menuItem.path || "",
|
|
119
145
|
"data-testid": menuItem.testId,
|
|
120
146
|
onClick: menuItem.onClick || hideMenu
|
|
121
147
|
}, content);
|
|
122
148
|
};
|
|
123
149
|
|
|
124
|
-
var item = /*#__PURE__*/
|
|
125
|
-
className:
|
|
126
|
-
}, /*#__PURE__*/
|
|
150
|
+
var item = /*#__PURE__*/_react.default.createElement(_List.List, {
|
|
151
|
+
className: (0, _classnames.default)(menuTitle, (0, _defineProperty2.default)({}, menuTitleActive, isExpanded))
|
|
152
|
+
}, /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
127
153
|
"data-testid": menuItem.testId,
|
|
128
154
|
onClick: toggleElement
|
|
129
|
-
}, menuItem.icon && /*#__PURE__*/
|
|
155
|
+
}, menuItem.icon && /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
|
|
130
156
|
icon: menuItem.icon
|
|
131
|
-
})), menuItem.label, menuItem.children.length ? /*#__PURE__*/
|
|
132
|
-
icon: isExpanded ? /*#__PURE__*/
|
|
157
|
+
})), menuItem.label, menuItem.children.length ? /*#__PURE__*/_react.default.createElement(_List.ListItemMeta, null, /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
|
|
158
|
+
icon: isExpanded ? /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_up24px.ReactComponent, null) : /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_down24px.ReactComponent, null)
|
|
133
159
|
})) : null));
|
|
134
|
-
|
|
160
|
+
|
|
161
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, menuItem.path ? withLink(item) : item, menuItem.children ? /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.Transition, {
|
|
135
162
|
in: isExpanded,
|
|
136
163
|
timeout: 100,
|
|
137
164
|
appear: true,
|
|
138
165
|
unmountOnExit: true
|
|
139
166
|
}, function (state) {
|
|
140
|
-
return /*#__PURE__*/
|
|
141
|
-
style:
|
|
142
|
-
}, /*#__PURE__*/
|
|
167
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
168
|
+
style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultStyle), transitionStyles[state])
|
|
169
|
+
}, /*#__PURE__*/_react.default.createElement(_appAdmin.MenuItems, {
|
|
143
170
|
menuItems: menuItem.children
|
|
144
171
|
}));
|
|
145
172
|
}) : null);
|
|
146
173
|
};
|
|
147
|
-
};
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
exports.MenuGroupRenderer = MenuGroupRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MenuGroupRenderer.tsx"],"names":["React","Fragment","useCallback","useState","default","localStorage","css","Transition","classNames","Link","useMenuItem","MenuItems","List","ListItem","ListItemGraphic","ListItemMeta","IconButton","useNavigation","ReactComponent","UpIcon","DownIcon","defaultStyle","transform","opacity","transitionProperty","transitionTimingFunction","transitionDuration","willChange","transitionStyles","entering","entered","menuTitle","borderBottom","padding","margin","height","width","fontWeight","boxSizing","menuTitleActive","backgroundColor","LOCAL_STORAGE_KEY","loadState","get","split","filter","Boolean","storeState","state","set","join","getState","id","includes","MenuGroupRenderer","PrevMenuItem","MenuGroup","setVisible","menuItem","depth","shouldRender","children","name","isExpanded","setExpanded","hideMenu","toggleElement","splice","indexOf","push","length","withLink","content","path","testId","onClick","item","icon","label"],"mappings":"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","sourcesContent":["import React, { Fragment, useCallback, useState } from \"react\";\nimport { default as localStorage } from \"store\";\nimport { css } from \"emotion\";\nimport { Transition } from \"react-transition-group\";\nimport classNames from \"classnames\";\nimport { Link } from \"@webiny/react-router\";\nimport { useMenuItem, MenuItems } from \"@webiny/app-admin\";\nimport { List, ListItem, ListItemGraphic, ListItemMeta } from \"@webiny/ui/List\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { useNavigation } from \"../index\";\nimport { ReactComponent as UpIcon } from \"../icons/round-keyboard_arrow_up-24px.svg\";\nimport { ReactComponent as DownIcon } from \"../icons/round-keyboard_arrow_down-24px.svg\";\n\nconst defaultStyle = {\n transform: \"translateY(-20px)\",\n opacity: 0,\n transitionProperty: \"transform, opacity\",\n transitionTimingFunction: \"cubic-bezier(0, 0, .2, 1)\",\n transitionDuration: \"100ms\",\n willChange: \"opacity, transform\"\n};\n\nconst transitionStyles: Record<string, any> = {\n entering: {\n transform: \"translateY(-20px)\",\n opacity: 0\n },\n entered: {\n transform: \"translateY(0px)\",\n opacity: 1\n }\n};\n\nconst menuTitle = css({\n \".mdc-drawer &.mdc-list\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n padding: 0,\n \".mdc-list-item\": {\n margin: 0,\n padding: \"0 15px\",\n height: \"48px\",\n width: \"100%\",\n fontWeight: 600,\n boxSizing: \"border-box\"\n }\n }\n});\n\nconst menuTitleActive = css({\n backgroundColor: \"var(--mdc-theme-background)\"\n});\n\nconst LOCAL_STORAGE_KEY = \"webiny_navigation_groups\";\n\nfunction loadState(): string[] {\n return (localStorage.get(LOCAL_STORAGE_KEY) || \"\").split(\",\").filter(Boolean);\n}\n\nfunction storeState(state: string[]) {\n localStorage.set(LOCAL_STORAGE_KEY, state.join(\",\"));\n}\n\nfunction getState(id: string | null): boolean {\n if (!id) {\n return false;\n }\n const state = loadState();\n return state.includes(id);\n}\n\nexport const MenuGroupRenderer = (PrevMenuItem: React.FC): React.FC => {\n return function MenuGroup() {\n const { setVisible } = useNavigation();\n const { menuItem, depth } = useMenuItem();\n const shouldRender = depth === 0 && menuItem && menuItem.children;\n const [isExpanded, setExpanded] = useState<boolean>(\n getState(menuItem ? menuItem.name : null)\n );\n\n const hideMenu = useCallback(() => setVisible(false), []);\n\n const toggleElement = useCallback(() => {\n if (!menuItem) {\n return;\n }\n const state = loadState();\n if (isExpanded && state.includes(menuItem.name)) {\n state.splice(state.indexOf(menuItem.name), 1);\n }\n\n if (!isExpanded && !state.includes(menuItem.name)) {\n state.push(menuItem.name);\n }\n\n setExpanded(!isExpanded);\n storeState(state);\n }, [isExpanded, setExpanded]);\n\n if (!shouldRender) {\n return <PrevMenuItem />;\n }\n\n if (!menuItem || !menuItem.children.length) {\n return null;\n }\n\n const withLink = (content: React.ReactNode): React.ReactElement => {\n return (\n <Link\n to={menuItem.path || \"\"}\n data-testid={menuItem.testId}\n onClick={menuItem.onClick || hideMenu}\n >\n {content}\n </Link>\n );\n };\n\n const item = (\n <List className={classNames(menuTitle, { [menuTitleActive]: isExpanded })}>\n <ListItem data-testid={menuItem.testId} onClick={toggleElement}>\n {menuItem.icon && (\n <ListItemGraphic>\n <IconButton icon={menuItem.icon} />\n </ListItemGraphic>\n )}\n\n {menuItem.label}\n\n {menuItem.children.length ? (\n <ListItemMeta>\n <IconButton icon={isExpanded ? <UpIcon /> : <DownIcon />} />\n </ListItemMeta>\n ) : null}\n </ListItem>\n </List>\n );\n\n return (\n <Fragment>\n {menuItem.path ? withLink(item) : item}\n {menuItem.children ? (\n <Transition in={isExpanded} timeout={100} appear unmountOnExit>\n {state => (\n <div style={{ ...defaultStyle, ...transitionStyles[state] }}>\n <MenuItems menuItems={menuItem.children} />\n </div>\n )}\n </Transition>\n ) : null}\n </Fragment>\n );\n };\n};\n"]}
|
|
1
|
+
{"version":3,"names":["defaultStyle","transform","opacity","transitionProperty","transitionTimingFunction","transitionDuration","willChange","transitionStyles","entering","entered","menuTitle","css","borderBottom","padding","margin","height","width","fontWeight","boxSizing","menuTitleActive","backgroundColor","LOCAL_STORAGE_KEY","loadState","localStorage","get","split","filter","Boolean","storeState","state","set","join","getState","id","includes","MenuGroupRenderer","PrevMenuItem","MenuGroup","useNavigation","setVisible","useMenuItem","menuItem","depth","shouldRender","children","useState","name","isExpanded","setExpanded","hideMenu","useCallback","toggleElement","splice","indexOf","push","length","withLink","content","path","testId","onClick","item","classNames","icon","label"],"sources":["MenuGroupRenderer.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useState } from \"react\";\nimport { default as localStorage } from \"store\";\nimport { css } from \"emotion\";\nimport { Transition } from \"react-transition-group\";\nimport classNames from \"classnames\";\nimport { Link } from \"@webiny/react-router\";\nimport { useMenuItem, MenuItems } from \"@webiny/app-admin\";\nimport { List, ListItem, ListItemGraphic, ListItemMeta } from \"@webiny/ui/List\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { useNavigation } from \"../index\";\nimport { ReactComponent as UpIcon } from \"../icons/round-keyboard_arrow_up-24px.svg\";\nimport { ReactComponent as DownIcon } from \"../icons/round-keyboard_arrow_down-24px.svg\";\n\nconst defaultStyle = {\n transform: \"translateY(-20px)\",\n opacity: 0,\n transitionProperty: \"transform, opacity\",\n transitionTimingFunction: \"cubic-bezier(0, 0, .2, 1)\",\n transitionDuration: \"100ms\",\n willChange: \"opacity, transform\"\n};\n\nconst transitionStyles: Record<string, any> = {\n entering: {\n transform: \"translateY(-20px)\",\n opacity: 0\n },\n entered: {\n transform: \"translateY(0px)\",\n opacity: 1\n }\n};\n\nconst menuTitle = css({\n \".mdc-drawer &.mdc-list\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n padding: 0,\n \".mdc-list-item\": {\n margin: 0,\n padding: \"0 15px\",\n height: \"48px\",\n width: \"100%\",\n fontWeight: 600,\n boxSizing: \"border-box\"\n }\n }\n});\n\nconst menuTitleActive = css({\n backgroundColor: \"var(--mdc-theme-background)\"\n});\n\nconst LOCAL_STORAGE_KEY = \"webiny_navigation_groups\";\n\nfunction loadState(): string[] {\n return (localStorage.get(LOCAL_STORAGE_KEY) || \"\").split(\",\").filter(Boolean);\n}\n\nfunction storeState(state: string[]) {\n localStorage.set(LOCAL_STORAGE_KEY, state.join(\",\"));\n}\n\nfunction getState(id: string | null): boolean {\n if (!id) {\n return false;\n }\n const state = loadState();\n return state.includes(id);\n}\n\nexport const MenuGroupRenderer = (PrevMenuItem: React.FC): React.FC => {\n return function MenuGroup() {\n const { setVisible } = useNavigation();\n const { menuItem, depth } = useMenuItem();\n const shouldRender = depth === 0 && menuItem && menuItem.children;\n const [isExpanded, setExpanded] = useState<boolean>(\n getState(menuItem ? menuItem.name : null)\n );\n\n const hideMenu = useCallback(() => setVisible(false), []);\n\n const toggleElement = useCallback(() => {\n if (!menuItem) {\n return;\n }\n const state = loadState();\n if (isExpanded && state.includes(menuItem.name)) {\n state.splice(state.indexOf(menuItem.name), 1);\n }\n\n if (!isExpanded && !state.includes(menuItem.name)) {\n state.push(menuItem.name);\n }\n\n setExpanded(!isExpanded);\n storeState(state);\n }, [isExpanded, setExpanded]);\n\n if (!shouldRender) {\n return <PrevMenuItem />;\n }\n\n if (!menuItem || !menuItem.children.length) {\n return null;\n }\n\n const withLink = (content: React.ReactNode): React.ReactElement => {\n return (\n <Link\n to={menuItem.path || \"\"}\n data-testid={menuItem.testId}\n onClick={menuItem.onClick || hideMenu}\n >\n {content}\n </Link>\n );\n };\n\n const item = (\n <List className={classNames(menuTitle, { [menuTitleActive]: isExpanded })}>\n <ListItem data-testid={menuItem.testId} onClick={toggleElement}>\n {menuItem.icon && (\n <ListItemGraphic>\n <IconButton icon={menuItem.icon} />\n </ListItemGraphic>\n )}\n\n {menuItem.label}\n\n {menuItem.children.length ? (\n <ListItemMeta>\n <IconButton icon={isExpanded ? <UpIcon /> : <DownIcon />} />\n </ListItemMeta>\n ) : null}\n </ListItem>\n </List>\n );\n\n return (\n <Fragment>\n {menuItem.path ? withLink(item) : item}\n {menuItem.children ? (\n <Transition in={isExpanded} timeout={100} appear unmountOnExit>\n {state => (\n <div style={{ ...defaultStyle, ...transitionStyles[state] }}>\n <MenuItems menuItems={menuItem.children} />\n </div>\n )}\n </Transition>\n ) : null}\n </Fragment>\n );\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,40 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.MenuLinkRenderer = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _emotion = require("emotion");
|
|
13
|
+
|
|
14
|
+
var _reactRouter = require("@webiny/react-router");
|
|
15
|
+
|
|
16
|
+
var _List = require("@webiny/ui/List");
|
|
17
|
+
|
|
18
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
19
|
+
|
|
20
|
+
var _Icon = require("@webiny/ui/Icon");
|
|
21
|
+
|
|
22
|
+
var _index = require("../index");
|
|
23
|
+
|
|
24
|
+
var listItemStyle = /*#__PURE__*/(0, _emotion.css)({
|
|
9
25
|
".mdc-list &.mdc-list-item:hover": {
|
|
10
26
|
cursor: "pointer",
|
|
11
27
|
backgroundColor: "var(--mdc-theme-background)"
|
|
12
28
|
}
|
|
13
29
|
}, "label:listItemStyle;");
|
|
14
|
-
|
|
30
|
+
|
|
31
|
+
var MenuLinkRenderer = function MenuLinkRenderer(PrevMenuItem) {
|
|
15
32
|
return function MenuLink() {
|
|
16
|
-
var _useNavigation = useNavigation(),
|
|
33
|
+
var _useNavigation = (0, _index.useNavigation)(),
|
|
17
34
|
setVisible = _useNavigation.setVisible;
|
|
18
35
|
|
|
19
|
-
var _useMenuItem = useMenuItem(),
|
|
36
|
+
var _useMenuItem = (0, _appAdmin.useMenuItem)(),
|
|
20
37
|
menuItem = _useMenuItem.menuItem,
|
|
21
38
|
depth = _useMenuItem.depth;
|
|
22
39
|
|
|
23
|
-
var hideMenu = useCallback(function () {
|
|
40
|
+
var hideMenu = (0, _react.useCallback)(function () {
|
|
24
41
|
return setVisible(false);
|
|
25
42
|
}, []);
|
|
26
43
|
var shouldRender = depth === 0 && (menuItem ? menuItem.tags || [] : []).includes("footer");
|
|
27
44
|
|
|
28
45
|
if (!shouldRender) {
|
|
29
|
-
return /*#__PURE__*/
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement(PrevMenuItem, null);
|
|
30
47
|
} else if (!menuItem) {
|
|
31
48
|
// TODO @ts-refactor check if to return component or null @pavel
|
|
32
49
|
console.log("MenuLinkRenderer returning PrevMenuItem because missing menuItem variable.");
|
|
33
|
-
return /*#__PURE__*/
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement(PrevMenuItem, null);
|
|
34
51
|
}
|
|
35
52
|
|
|
36
53
|
var withLink = function withLink(content) {
|
|
37
|
-
return /*#__PURE__*/
|
|
54
|
+
return /*#__PURE__*/_react.default.createElement(_reactRouter.Link, {
|
|
38
55
|
to: menuItem.path || "",
|
|
39
56
|
target: menuItem.target,
|
|
40
57
|
"data-testid": menuItem.testId,
|
|
@@ -42,14 +59,17 @@ export var MenuLinkRenderer = function MenuLinkRenderer(PrevMenuItem) {
|
|
|
42
59
|
}, content);
|
|
43
60
|
};
|
|
44
61
|
|
|
45
|
-
var item = /*#__PURE__*/
|
|
62
|
+
var item = /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
46
63
|
"data-testid": menuItem.testId,
|
|
47
64
|
ripple: false,
|
|
48
65
|
className: listItemStyle,
|
|
49
66
|
onClick: menuItem.onClick || hideMenu
|
|
50
|
-
}, menuItem.icon ? /*#__PURE__*/
|
|
67
|
+
}, menuItem.icon ? /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
51
68
|
icon: menuItem.icon
|
|
52
69
|
})) : null, menuItem.label);
|
|
70
|
+
|
|
53
71
|
return menuItem.path ? withLink(item) : item;
|
|
54
72
|
};
|
|
55
|
-
};
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
exports.MenuLinkRenderer = MenuLinkRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["listItemStyle","css","cursor","backgroundColor","MenuLinkRenderer","PrevMenuItem","MenuLink","useNavigation","setVisible","useMenuItem","menuItem","depth","hideMenu","useCallback","shouldRender","tags","includes","console","log","withLink","content","path","target","testId","onClick","item","icon","label"],"sources":["MenuLinkRenderer.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { css } from \"emotion\";\nimport { Link } from \"@webiny/react-router\";\nimport { ListItem, ListItemGraphic } from \"@webiny/ui/List\";\nimport { useMenuItem } from \"@webiny/app-admin\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { useNavigation } from \"../index\";\n\nconst listItemStyle = css({\n \".mdc-list &.mdc-list-item:hover\": {\n cursor: \"pointer\",\n backgroundColor: \"var(--mdc-theme-background)\"\n }\n});\n\nexport const MenuLinkRenderer = (PrevMenuItem: React.FC): React.FC => {\n return function MenuLink() {\n const { setVisible } = useNavigation();\n const { menuItem, depth } = useMenuItem();\n\n const hideMenu = useCallback(() => setVisible(false), []);\n const shouldRender =\n depth === 0 && (menuItem ? menuItem.tags || [] : []).includes(\"footer\");\n\n if (!shouldRender) {\n return <PrevMenuItem />;\n } else if (!menuItem) {\n // TODO @ts-refactor check if to return component or null @pavel\n console.log(\n \"MenuLinkRenderer returning PrevMenuItem because missing menuItem variable.\"\n );\n return <PrevMenuItem />;\n }\n\n const withLink = (content: React.ReactNode): React.ReactElement => {\n return (\n <Link\n to={menuItem.path || \"\"}\n target={menuItem.target}\n data-testid={menuItem.testId}\n onClick={menuItem.onClick || hideMenu}\n >\n {content}\n </Link>\n );\n };\n\n const item = (\n <ListItem\n data-testid={menuItem.testId}\n ripple={false}\n className={listItemStyle}\n onClick={menuItem.onClick || hideMenu}\n >\n {menuItem.icon ? (\n <ListItemGraphic>\n <Icon icon={menuItem.icon} />\n </ListItemGraphic>\n ) : null}\n {menuItem.label}\n </ListItem>\n );\n\n return menuItem.path ? withLink(item) : item;\n };\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,aAAa,gBAAG,IAAAC,YAAA,EAAI;EACtB,mCAAmC;IAC/BC,MAAM,EAAE,SADuB;IAE/BC,eAAe,EAAE;EAFc;AADb,CAAJ,yBAAtB;;AAOO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,YAAD,EAAsC;EAClE,OAAO,SAASC,QAAT,GAAoB;IACvB,qBAAuB,IAAAC,oBAAA,GAAvB;IAAA,IAAQC,UAAR,kBAAQA,UAAR;;IACA,mBAA4B,IAAAC,qBAAA,GAA5B;IAAA,IAAQC,QAAR,gBAAQA,QAAR;IAAA,IAAkBC,KAAlB,gBAAkBA,KAAlB;;IAEA,IAAMC,QAAQ,GAAG,IAAAC,kBAAA,EAAY;MAAA,OAAML,UAAU,CAAC,KAAD,CAAhB;IAAA,CAAZ,EAAqC,EAArC,CAAjB;IACA,IAAMM,YAAY,GACdH,KAAK,KAAK,CAAV,IAAe,CAACD,QAAQ,GAAGA,QAAQ,CAACK,IAAT,IAAiB,EAApB,GAAyB,EAAlC,EAAsCC,QAAtC,CAA+C,QAA/C,CADnB;;IAGA,IAAI,CAACF,YAAL,EAAmB;MACf,oBAAO,6BAAC,YAAD,OAAP;IACH,CAFD,MAEO,IAAI,CAACJ,QAAL,EAAe;MAClB;MACAO,OAAO,CAACC,GAAR,CACI,4EADJ;MAGA,oBAAO,6BAAC,YAAD,OAAP;IACH;;IAED,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,OAAD,EAAkD;MAC/D,oBACI,6BAAC,iBAAD;QACI,EAAE,EAAEV,QAAQ,CAACW,IAAT,IAAiB,EADzB;QAEI,MAAM,EAAEX,QAAQ,CAACY,MAFrB;QAGI,eAAaZ,QAAQ,CAACa,MAH1B;QAII,OAAO,EAAEb,QAAQ,CAACc,OAAT,IAAoBZ;MAJjC,GAMKQ,OANL,CADJ;IAUH,CAXD;;IAaA,IAAMK,IAAI,gBACN,6BAAC,cAAD;MACI,eAAaf,QAAQ,CAACa,MAD1B;MAEI,MAAM,EAAE,KAFZ;MAGI,SAAS,EAAEvB,aAHf;MAII,OAAO,EAAEU,QAAQ,CAACc,OAAT,IAAoBZ;IAJjC,GAMKF,QAAQ,CAACgB,IAAT,gBACG,6BAAC,qBAAD,qBACI,6BAAC,UAAD;MAAM,IAAI,EAAEhB,QAAQ,CAACgB;IAArB,EADJ,CADH,GAIG,IAVR,EAWKhB,QAAQ,CAACiB,KAXd,CADJ;;IAgBA,OAAOjB,QAAQ,CAACW,IAAT,GAAgBF,QAAQ,CAACM,IAAD,CAAxB,GAAiCA,IAAxC;EACH,CAhDD;AAiDH,CAlDM"}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.MenuSectionItemRenderer = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _emotion = require("emotion");
|
|
13
|
+
|
|
14
|
+
var _reactRouter = require("@webiny/react-router");
|
|
15
|
+
|
|
16
|
+
var _List = require("@webiny/ui/List");
|
|
17
|
+
|
|
18
|
+
var _index = require("../index");
|
|
19
|
+
|
|
20
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
21
|
+
|
|
22
|
+
var linkStyle = /*#__PURE__*/(0, _emotion.css)({
|
|
8
23
|
color: "var(--mdc-theme-text-primary-on-background)",
|
|
9
24
|
textDecoration: "none",
|
|
10
25
|
display: "flex",
|
|
@@ -17,50 +32,51 @@ var linkStyle = /*#__PURE__*/css({
|
|
|
17
32
|
textDecoration: "none"
|
|
18
33
|
}
|
|
19
34
|
}, "label:linkStyle;");
|
|
20
|
-
var submenuItems = /*#__PURE__*/css({
|
|
35
|
+
var submenuItems = /*#__PURE__*/(0, _emotion.css)({
|
|
21
36
|
".mdc-drawer &.mdc-list-item": {
|
|
22
37
|
paddingLeft: 0,
|
|
23
38
|
margin: 0,
|
|
24
39
|
padding: 0
|
|
25
40
|
}
|
|
26
41
|
}, "label:submenuItems;");
|
|
27
|
-
var submenuList = /*#__PURE__*/css({
|
|
42
|
+
var submenuList = /*#__PURE__*/(0, _emotion.css)({
|
|
28
43
|
"&.mdc-list": {
|
|
29
44
|
padding: 0
|
|
30
45
|
}
|
|
31
46
|
}, "label:submenuList;");
|
|
32
|
-
|
|
47
|
+
|
|
48
|
+
var MenuSectionItemRenderer = function MenuSectionItemRenderer(PrevMenuItem) {
|
|
33
49
|
return function MenuSectionItem() {
|
|
34
|
-
var _useNavigation = useNavigation(),
|
|
50
|
+
var _useNavigation = (0, _index.useNavigation)(),
|
|
35
51
|
setVisible = _useNavigation.setVisible;
|
|
36
52
|
|
|
37
|
-
var _useMenuItem = useMenuItem(),
|
|
53
|
+
var _useMenuItem = (0, _appAdmin.useMenuItem)(),
|
|
38
54
|
menuItem = _useMenuItem.menuItem,
|
|
39
55
|
depth = _useMenuItem.depth;
|
|
40
56
|
|
|
41
|
-
var hideMenu = useCallback(function () {
|
|
57
|
+
var hideMenu = (0, _react.useCallback)(function () {
|
|
42
58
|
return setVisible(false);
|
|
43
59
|
}, []);
|
|
44
60
|
var shouldRender = depth > 0 && Boolean(menuItem ? menuItem.path : false);
|
|
45
61
|
|
|
46
62
|
if (!shouldRender) {
|
|
47
|
-
return /*#__PURE__*/
|
|
63
|
+
return /*#__PURE__*/_react.default.createElement(PrevMenuItem, null);
|
|
48
64
|
} else if (!menuItem) {
|
|
49
65
|
// TODO @ts-refactor check if to return component or null @pavel
|
|
50
66
|
console.log("MenuSectionItemRenderer returning PrevMenuItem because no menuItem variable.");
|
|
51
|
-
return /*#__PURE__*/
|
|
67
|
+
return /*#__PURE__*/_react.default.createElement(PrevMenuItem, null);
|
|
52
68
|
}
|
|
53
69
|
|
|
54
|
-
return /*#__PURE__*/
|
|
70
|
+
return /*#__PURE__*/_react.default.createElement(_List.List, {
|
|
55
71
|
className: submenuList
|
|
56
|
-
}, /*#__PURE__*/
|
|
72
|
+
}, /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
57
73
|
className: submenuItems,
|
|
58
74
|
"data-testid": menuItem.testId
|
|
59
|
-
}, menuItem.path ? /*#__PURE__*/
|
|
75
|
+
}, menuItem.path ? /*#__PURE__*/_react.default.createElement(_reactRouter.Link, {
|
|
60
76
|
className: linkStyle,
|
|
61
77
|
to: menuItem.path,
|
|
62
78
|
onClick: menuItem.onClick || hideMenu
|
|
63
|
-
}, menuItem.label) : /*#__PURE__*/
|
|
79
|
+
}, menuItem.label) : /*#__PURE__*/_react.default.createElement("span", {
|
|
64
80
|
onClick: function onClick() {
|
|
65
81
|
if (!menuItem.onClick) {
|
|
66
82
|
return;
|
|
@@ -71,4 +87,6 @@ export var MenuSectionItemRenderer = function MenuSectionItemRenderer(PrevMenuIt
|
|
|
71
87
|
className: linkStyle
|
|
72
88
|
}, menuItem.label)));
|
|
73
89
|
};
|
|
74
|
-
};
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
exports.MenuSectionItemRenderer = MenuSectionItemRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["linkStyle","css","color","textDecoration","display","alignItems","width","height","outline","paddingLeft","submenuItems","margin","padding","submenuList","MenuSectionItemRenderer","PrevMenuItem","MenuSectionItem","useNavigation","setVisible","useMenuItem","menuItem","depth","hideMenu","useCallback","shouldRender","Boolean","path","console","log","testId","onClick","label"],"sources":["MenuSectionItemRenderer.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { css } from \"emotion\";\nimport { Link } from \"@webiny/react-router\";\nimport { List, ListItem } from \"@webiny/ui/List\";\nimport { useNavigation } from \"../index\";\nimport { useMenuItem } from \"@webiny/app-admin\";\n\nconst linkStyle = css({\n color: \"var(--mdc-theme-text-primary-on-background)\",\n textDecoration: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\",\n outline: \"none\",\n paddingLeft: 72,\n \"&:hover\": {\n textDecoration: \"none\"\n }\n});\n\nconst submenuItems = css({\n \".mdc-drawer &.mdc-list-item\": {\n paddingLeft: 0,\n margin: 0,\n padding: 0\n }\n});\n\nconst submenuList = css({\n \"&.mdc-list\": {\n padding: 0\n }\n});\n\nexport const MenuSectionItemRenderer = (PrevMenuItem: React.FC): React.FC => {\n return function MenuSectionItem() {\n const { setVisible } = useNavigation();\n const { menuItem, depth } = useMenuItem();\n\n const hideMenu = useCallback(() => setVisible(false), []);\n const shouldRender = depth > 0 && Boolean(menuItem ? menuItem.path : false);\n\n if (!shouldRender) {\n return <PrevMenuItem />;\n } else if (!menuItem) {\n // TODO @ts-refactor check if to return component or null @pavel\n console.log(\n \"MenuSectionItemRenderer returning PrevMenuItem because no menuItem variable.\"\n );\n return <PrevMenuItem />;\n }\n\n return (\n <List className={submenuList}>\n <ListItem className={submenuItems} data-testid={menuItem.testId}>\n {menuItem.path ? (\n <Link\n className={linkStyle}\n to={menuItem.path}\n onClick={menuItem.onClick || hideMenu}\n >\n {menuItem.label}\n </Link>\n ) : (\n <span\n onClick={() => {\n if (!menuItem.onClick) {\n return;\n }\n menuItem.onClick();\n }}\n className={linkStyle}\n >\n {menuItem.label}\n </span>\n )}\n </ListItem>\n </List>\n );\n };\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,SAAS,gBAAG,IAAAC,YAAA,EAAI;EAClBC,KAAK,EAAE,6CADW;EAElBC,cAAc,EAAE,MAFE;EAGlBC,OAAO,EAAE,MAHS;EAIlBC,UAAU,EAAE,QAJM;EAKlBC,KAAK,EAAE,MALW;EAMlBC,MAAM,EAAE,MANU;EAOlBC,OAAO,EAAE,MAPS;EAQlBC,WAAW,EAAE,EARK;EASlB,WAAW;IACPN,cAAc,EAAE;EADT;AATO,CAAJ,qBAAlB;AAcA,IAAMO,YAAY,gBAAG,IAAAT,YAAA,EAAI;EACrB,+BAA+B;IAC3BQ,WAAW,EAAE,CADc;IAE3BE,MAAM,EAAE,CAFmB;IAG3BC,OAAO,EAAE;EAHkB;AADV,CAAJ,wBAArB;AAQA,IAAMC,WAAW,gBAAG,IAAAZ,YAAA,EAAI;EACpB,cAAc;IACVW,OAAO,EAAE;EADC;AADM,CAAJ,uBAApB;;AAMO,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACC,YAAD,EAAsC;EACzE,OAAO,SAASC,eAAT,GAA2B;IAC9B,qBAAuB,IAAAC,oBAAA,GAAvB;IAAA,IAAQC,UAAR,kBAAQA,UAAR;;IACA,mBAA4B,IAAAC,qBAAA,GAA5B;IAAA,IAAQC,QAAR,gBAAQA,QAAR;IAAA,IAAkBC,KAAlB,gBAAkBA,KAAlB;;IAEA,IAAMC,QAAQ,GAAG,IAAAC,kBAAA,EAAY;MAAA,OAAML,UAAU,CAAC,KAAD,CAAhB;IAAA,CAAZ,EAAqC,EAArC,CAAjB;IACA,IAAMM,YAAY,GAAGH,KAAK,GAAG,CAAR,IAAaI,OAAO,CAACL,QAAQ,GAAGA,QAAQ,CAACM,IAAZ,GAAmB,KAA5B,CAAzC;;IAEA,IAAI,CAACF,YAAL,EAAmB;MACf,oBAAO,6BAAC,YAAD,OAAP;IACH,CAFD,MAEO,IAAI,CAACJ,QAAL,EAAe;MAClB;MACAO,OAAO,CAACC,GAAR,CACI,8EADJ;MAGA,oBAAO,6BAAC,YAAD,OAAP;IACH;;IAED,oBACI,6BAAC,UAAD;MAAM,SAAS,EAAEf;IAAjB,gBACI,6BAAC,cAAD;MAAU,SAAS,EAAEH,YAArB;MAAmC,eAAaU,QAAQ,CAACS;IAAzD,GACKT,QAAQ,CAACM,IAAT,gBACG,6BAAC,iBAAD;MACI,SAAS,EAAE1B,SADf;MAEI,EAAE,EAAEoB,QAAQ,CAACM,IAFjB;MAGI,OAAO,EAAEN,QAAQ,CAACU,OAAT,IAAoBR;IAHjC,GAKKF,QAAQ,CAACW,KALd,CADH,gBASG;MACI,OAAO,EAAE,mBAAM;QACX,IAAI,CAACX,QAAQ,CAACU,OAAd,EAAuB;UACnB;QACH;;QACDV,QAAQ,CAACU,OAAT;MACH,CANL;MAOI,SAAS,EAAE9B;IAPf,GASKoB,QAAQ,CAACW,KATd,CAVR,CADJ,CADJ;EA2BH,CA5CD;AA6CH,CA9CM"}
|
|
@@ -1,45 +1,61 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.MenuSectionRenderer = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _emotion = require("emotion");
|
|
13
|
+
|
|
14
|
+
var _Typography = require("@webiny/ui/Typography");
|
|
15
|
+
|
|
16
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
17
|
+
|
|
18
|
+
var menuSectionTitle = /*#__PURE__*/(0, _emotion.css)({
|
|
6
19
|
marginLeft: 20,
|
|
7
20
|
display: "flex",
|
|
8
21
|
alignItems: "center",
|
|
9
22
|
color: "var(--mdc-theme-on-surface)"
|
|
10
23
|
}, "label:menuSectionTitle;");
|
|
11
|
-
var iconWrapper = /*#__PURE__*/css({
|
|
24
|
+
var iconWrapper = /*#__PURE__*/(0, _emotion.css)({
|
|
12
25
|
marginRight: 5,
|
|
13
26
|
color: "var(--mdc-theme-on-surface)"
|
|
14
27
|
}, "label:iconWrapper;");
|
|
15
|
-
|
|
28
|
+
|
|
29
|
+
var MenuSectionRenderer = function MenuSectionRenderer(PrevMenuItem) {
|
|
16
30
|
return function MenuSection() {
|
|
17
|
-
var _useMenuItem = useMenuItem(),
|
|
31
|
+
var _useMenuItem = (0, _appAdmin.useMenuItem)(),
|
|
18
32
|
menuItem = _useMenuItem.menuItem,
|
|
19
33
|
depth = _useMenuItem.depth;
|
|
20
34
|
|
|
21
35
|
var shouldRender = depth === 1 && menuItem && menuItem.children.length > 0;
|
|
22
36
|
|
|
23
37
|
if (!shouldRender) {
|
|
24
|
-
return /*#__PURE__*/
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement(PrevMenuItem, null);
|
|
25
39
|
} else if (!menuItem) {
|
|
26
40
|
// TODO @ts-refactor check if to return component or null @pavel
|
|
27
41
|
console.log("MenuSectionRenderer returning PrevMenuItem because no menuItem variable.");
|
|
28
|
-
return /*#__PURE__*/
|
|
42
|
+
return /*#__PURE__*/_react.default.createElement(PrevMenuItem, null);
|
|
29
43
|
}
|
|
30
44
|
|
|
31
45
|
if (!menuItem.children.length) {
|
|
32
46
|
return null;
|
|
33
47
|
}
|
|
34
48
|
|
|
35
|
-
return /*#__PURE__*/
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
36
50
|
className: menuSectionTitle
|
|
37
|
-
}, /*#__PURE__*/
|
|
51
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
38
52
|
className: iconWrapper
|
|
39
|
-
}, menuItem.icon), /*#__PURE__*/
|
|
53
|
+
}, menuItem.icon), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
40
54
|
use: "overline"
|
|
41
|
-
}, menuItem.label)), /*#__PURE__*/
|
|
55
|
+
}, menuItem.label)), /*#__PURE__*/_react.default.createElement(_appAdmin.MenuItems, {
|
|
42
56
|
menuItems: menuItem.children
|
|
43
57
|
}));
|
|
44
58
|
};
|
|
45
|
-
};
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
exports.MenuSectionRenderer = MenuSectionRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["menuSectionTitle","css","marginLeft","display","alignItems","color","iconWrapper","marginRight","MenuSectionRenderer","PrevMenuItem","MenuSection","useMenuItem","menuItem","depth","shouldRender","children","length","console","log","icon","label"],"sources":["MenuSectionRenderer.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport { css } from \"emotion\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { MenuItems, useMenuItem } from \"@webiny/app-admin\";\n\nconst menuSectionTitle = css({\n marginLeft: 20,\n display: \"flex\",\n alignItems: \"center\",\n color: \"var(--mdc-theme-on-surface)\"\n});\n\nconst iconWrapper = css({\n marginRight: 5,\n color: \"var(--mdc-theme-on-surface)\"\n});\n\nexport const MenuSectionRenderer = (PrevMenuItem: React.FC): React.FC => {\n return function MenuSection() {\n const { menuItem, depth } = useMenuItem();\n\n const shouldRender = depth === 1 && menuItem && menuItem.children.length > 0;\n\n if (!shouldRender) {\n return <PrevMenuItem />;\n } else if (!menuItem) {\n // TODO @ts-refactor check if to return component or null @pavel\n console.log(\"MenuSectionRenderer returning PrevMenuItem because no menuItem variable.\");\n return <PrevMenuItem />;\n }\n\n if (!menuItem.children.length) {\n return null;\n }\n\n return (\n <Fragment>\n <div className={menuSectionTitle}>\n <div className={iconWrapper}>{menuItem.icon}</div>\n <Typography use=\"overline\">{menuItem.label}</Typography>\n </div>\n <MenuItems menuItems={menuItem.children} />\n </Fragment>\n );\n };\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,gBAAgB,gBAAG,IAAAC,YAAA,EAAI;EACzBC,UAAU,EAAE,EADa;EAEzBC,OAAO,EAAE,MAFgB;EAGzBC,UAAU,EAAE,QAHa;EAIzBC,KAAK,EAAE;AAJkB,CAAJ,4BAAzB;AAOA,IAAMC,WAAW,gBAAG,IAAAL,YAAA,EAAI;EACpBM,WAAW,EAAE,CADO;EAEpBF,KAAK,EAAE;AAFa,CAAJ,uBAApB;;AAKO,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,YAAD,EAAsC;EACrE,OAAO,SAASC,WAAT,GAAuB;IAC1B,mBAA4B,IAAAC,qBAAA,GAA5B;IAAA,IAAQC,QAAR,gBAAQA,QAAR;IAAA,IAAkBC,KAAlB,gBAAkBA,KAAlB;;IAEA,IAAMC,YAAY,GAAGD,KAAK,KAAK,CAAV,IAAeD,QAAf,IAA2BA,QAAQ,CAACG,QAAT,CAAkBC,MAAlB,GAA2B,CAA3E;;IAEA,IAAI,CAACF,YAAL,EAAmB;MACf,oBAAO,6BAAC,YAAD,OAAP;IACH,CAFD,MAEO,IAAI,CAACF,QAAL,EAAe;MAClB;MACAK,OAAO,CAACC,GAAR,CAAY,0EAAZ;MACA,oBAAO,6BAAC,YAAD,OAAP;IACH;;IAED,IAAI,CAACN,QAAQ,CAACG,QAAT,CAAkBC,MAAvB,EAA+B;MAC3B,OAAO,IAAP;IACH;;IAED,oBACI,6BAAC,eAAD,qBACI;MAAK,SAAS,EAAEhB;IAAhB,gBACI;MAAK,SAAS,EAAEM;IAAhB,GAA8BM,QAAQ,CAACO,IAAvC,CADJ,eAEI,6BAAC,sBAAD;MAAY,GAAG,EAAC;IAAhB,GAA4BP,QAAQ,CAACQ,KAArC,CAFJ,CADJ,eAKI,6BAAC,mBAAD;MAAW,SAAS,EAAER,QAAQ,CAACG;IAA/B,EALJ,CADJ;EASH,CA1BD;AA2BH,CA5BM"}
|