@webiny/app-admin-rmwc 0.0.0-unstable.5e7233243f
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/LICENSE +21 -0
- package/README.md +7 -0
- package/index.d.ts +2 -0
- package/index.js +32 -0
- package/index.js.map +1 -0
- package/modules/Brand/index.d.ts +2 -0
- package/modules/Brand/index.js +72 -0
- package/modules/Brand/index.js.map +1 -0
- package/modules/Brand/webiny-logo.svg +20 -0
- package/modules/Dashboard/Welcome.d.ts +3 -0
- package/modules/Dashboard/Welcome.js +271 -0
- package/modules/Dashboard/Welcome.js.map +1 -0
- package/modules/Dashboard/icons/github.svg +1 -0
- package/modules/Dashboard/icons/laptop.svg +1 -0
- package/modules/Dashboard/icons/slack.svg +1 -0
- package/modules/Dashboard/icons/textbook.svg +1 -0
- package/modules/Dashboard/icons/twitter.svg +1 -0
- package/modules/Dashboard/icons/youtube.svg +1 -0
- package/modules/Dashboard/index.d.ts +2 -0
- package/modules/Dashboard/index.js +33 -0
- package/modules/Dashboard/index.js.map +1 -0
- package/modules/Layout.d.ts +2 -0
- package/modules/Layout.js +65 -0
- package/modules/Layout.js.map +1 -0
- package/modules/Navigation/Hamburger.d.ts +3 -0
- package/modules/Navigation/Hamburger.js +46 -0
- package/modules/Navigation/Hamburger.js.map +1 -0
- package/modules/Navigation/Styled.d.ts +9 -0
- package/modules/Navigation/Styled.js +64 -0
- package/modules/Navigation/Styled.js.map +1 -0
- package/modules/Navigation/icons/hamburger.svg +4 -0
- package/modules/Navigation/icons/round-keyboard_arrow_down-24px.svg +16 -0
- package/modules/Navigation/icons/round-keyboard_arrow_up-24px.svg +16 -0
- package/modules/Navigation/icons/webiny-orange-logo.svg +20 -0
- package/modules/Navigation/index.d.ts +10 -0
- package/modules/Navigation/index.js +170 -0
- package/modules/Navigation/index.js.map +1 -0
- package/modules/Navigation/renderers/MenuElementRenderer.d.ts +2 -0
- package/modules/Navigation/renderers/MenuElementRenderer.js +27 -0
- package/modules/Navigation/renderers/MenuElementRenderer.js.map +1 -0
- package/modules/Navigation/renderers/MenuGroupRenderer.d.ts +2 -0
- package/modules/Navigation/renderers/MenuGroupRenderer.js +176 -0
- package/modules/Navigation/renderers/MenuGroupRenderer.js.map +1 -0
- package/modules/Navigation/renderers/MenuLinkRenderer.d.ts +2 -0
- package/modules/Navigation/renderers/MenuLinkRenderer.js +75 -0
- package/modules/Navigation/renderers/MenuLinkRenderer.js.map +1 -0
- package/modules/Navigation/renderers/MenuSectionItemRenderer.d.ts +2 -0
- package/modules/Navigation/renderers/MenuSectionItemRenderer.js +92 -0
- package/modules/Navigation/renderers/MenuSectionItemRenderer.js.map +1 -0
- package/modules/Navigation/renderers/MenuSectionRenderer.d.ts +2 -0
- package/modules/Navigation/renderers/MenuSectionRenderer.js +61 -0
- package/modules/Navigation/renderers/MenuSectionRenderer.js.map +1 -0
- package/modules/NotFound/SecureRouteError.svg +1 -0
- package/modules/NotFound/index.d.ts +2 -0
- package/modules/NotFound/index.js +78 -0
- package/modules/NotFound/index.js.map +1 -0
- package/modules/Overlays/Dialog.d.ts +2 -0
- package/modules/Overlays/Dialog.js +57 -0
- package/modules/Overlays/Dialog.js.map +1 -0
- package/modules/Overlays/Snackbar.d.ts +3 -0
- package/modules/Overlays/Snackbar.js +41 -0
- package/modules/Overlays/Snackbar.js.map +1 -0
- package/modules/Overlays/index.d.ts +2 -0
- package/modules/Overlays/index.js +47 -0
- package/modules/Overlays/index.js.map +1 -0
- package/modules/Search/index.d.ts +2 -0
- package/modules/Search/index.js +31 -0
- package/modules/Search/index.js.map +1 -0
- package/modules/UserMenu/account.svg +1 -0
- package/modules/UserMenu/index.d.ts +2 -0
- package/modules/UserMenu/index.js +137 -0
- package/modules/UserMenu/index.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,57 @@
|
|
|
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.DialogContainer = void 0;
|
|
11
|
+
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
+
|
|
14
|
+
var _get3 = _interopRequireDefault(require("lodash/get"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _useUi = require("@webiny/app/hooks/useUi");
|
|
19
|
+
|
|
20
|
+
var _Dialog = require("@webiny/ui/Dialog");
|
|
21
|
+
|
|
22
|
+
var DialogContainer = function DialogContainer() {
|
|
23
|
+
var ui = (0, _useUi.useUi)();
|
|
24
|
+
var message = (0, _get3.default)(ui, "dialog.message");
|
|
25
|
+
|
|
26
|
+
var _get2 = (0, _get3.default)(ui, "dialog.options", {}),
|
|
27
|
+
dataTestId = _get2.dataTestId,
|
|
28
|
+
title = _get2.title,
|
|
29
|
+
_get2$actions = _get2.actions,
|
|
30
|
+
actions = _get2$actions === void 0 ? {
|
|
31
|
+
cancel: null,
|
|
32
|
+
accept: {
|
|
33
|
+
label: "OK"
|
|
34
|
+
}
|
|
35
|
+
} : _get2$actions,
|
|
36
|
+
style = _get2.style;
|
|
37
|
+
|
|
38
|
+
var hideDialog = (0, _react.useCallback)(function () {
|
|
39
|
+
ui.setState(function (ui) {
|
|
40
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ui), {}, {
|
|
41
|
+
dialog: null
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}, [ui]);
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement(_Dialog.Dialog, {
|
|
46
|
+
open: !!message,
|
|
47
|
+
onClose: hideDialog,
|
|
48
|
+
"data-testid": dataTestId,
|
|
49
|
+
style: style
|
|
50
|
+
}, title && /*#__PURE__*/_react.default.createElement(_Dialog.DialogTitle, null, title), /*#__PURE__*/_react.default.createElement(_Dialog.DialogContent, null, message), /*#__PURE__*/_react.default.createElement(_Dialog.DialogActions, null, actions.cancel && /*#__PURE__*/_react.default.createElement(_Dialog.DialogAccept, {
|
|
51
|
+
onClick: actions.cancel.onClick
|
|
52
|
+
}, actions.cancel.label), actions.accept && /*#__PURE__*/_react.default.createElement(_Dialog.DialogAccept, {
|
|
53
|
+
onClick: actions.accept.onClick
|
|
54
|
+
}, actions.accept.label)));
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
exports.DialogContainer = DialogContainer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DialogContainer","ui","useUi","message","dataTestId","title","actions","cancel","accept","label","style","hideDialog","useCallback","setState","dialog","onClick"],"sources":["Dialog.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { get } from \"lodash\";\nimport { useUi } from \"@webiny/app/hooks/useUi\";\nimport { Dialog, DialogAccept, DialogTitle, DialogActions, DialogContent } from \"@webiny/ui/Dialog\";\n\nexport const DialogContainer: React.FC = () => {\n const ui = useUi();\n const message: React.ReactNode = get(ui, \"dialog.message\");\n const {\n dataTestId,\n title,\n actions = { cancel: null, accept: { label: \"OK\" } },\n style\n } = get(ui, \"dialog.options\", {});\n\n const hideDialog = useCallback(() => {\n ui.setState(ui => ({ ...ui, dialog: null }));\n }, [ui]);\n\n return (\n <Dialog open={!!message} onClose={hideDialog} data-testid={dataTestId} style={style}>\n {title && <DialogTitle>{title}</DialogTitle>}\n <DialogContent>{message}</DialogContent>\n <DialogActions>\n {actions.cancel && (\n <DialogAccept onClick={actions.cancel.onClick}>\n {actions.cancel.label}\n </DialogAccept>\n )}\n {actions.accept && (\n <DialogAccept onClick={actions.accept.onClick}>\n {actions.accept.label}\n </DialogAccept>\n )}\n </DialogActions>\n </Dialog>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AAEO,IAAMA,eAAyB,GAAG,SAA5BA,eAA4B,GAAM;EAC3C,IAAMC,EAAE,GAAG,IAAAC,YAAA,GAAX;EACA,IAAMC,OAAwB,GAAG,mBAAIF,EAAJ,EAAQ,gBAAR,CAAjC;;EACA,YAKI,mBAAIA,EAAJ,EAAQ,gBAAR,EAA0B,EAA1B,CALJ;EAAA,IACIG,UADJ,SACIA,UADJ;EAAA,IAEIC,KAFJ,SAEIA,KAFJ;EAAA,0BAGIC,OAHJ;EAAA,IAGIA,OAHJ,8BAGc;IAAEC,MAAM,EAAE,IAAV;IAAgBC,MAAM,EAAE;MAAEC,KAAK,EAAE;IAAT;EAAxB,CAHd;EAAA,IAIIC,KAJJ,SAIIA,KAJJ;;EAOA,IAAMC,UAAU,GAAG,IAAAC,kBAAA,EAAY,YAAM;IACjCX,EAAE,CAACY,QAAH,CAAY,UAAAZ,EAAE;MAAA,mEAAUA,EAAV;QAAca,MAAM,EAAE;MAAtB;IAAA,CAAd;EACH,CAFkB,EAEhB,CAACb,EAAD,CAFgB,CAAnB;EAIA,oBACI,6BAAC,cAAD;IAAQ,IAAI,EAAE,CAAC,CAACE,OAAhB;IAAyB,OAAO,EAAEQ,UAAlC;IAA8C,eAAaP,UAA3D;IAAuE,KAAK,EAAEM;EAA9E,GACKL,KAAK,iBAAI,6BAAC,mBAAD,QAAcA,KAAd,CADd,eAEI,6BAAC,qBAAD,QAAgBF,OAAhB,CAFJ,eAGI,6BAAC,qBAAD,QACKG,OAAO,CAACC,MAAR,iBACG,6BAAC,oBAAD;IAAc,OAAO,EAAED,OAAO,CAACC,MAAR,CAAeQ;EAAtC,GACKT,OAAO,CAACC,MAAR,CAAeE,KADpB,CAFR,EAMKH,OAAO,CAACE,MAAR,iBACG,6BAAC,oBAAD;IAAc,OAAO,EAAEF,OAAO,CAACE,MAAR,CAAeO;EAAtC,GACKT,OAAO,CAACE,MAAR,CAAeC,KADpB,CAPR,CAHJ,CADJ;AAkBH,CAhCM"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
+
|
|
14
|
+
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _Snackbar = require("@webiny/ui/Snackbar");
|
|
19
|
+
|
|
20
|
+
var _useUi = require("@webiny/app/hooks/useUi");
|
|
21
|
+
|
|
22
|
+
var SnackbarMain = function SnackbarMain() {
|
|
23
|
+
var ui = (0, _useUi.useUi)();
|
|
24
|
+
var message = (0, _get2.default)(ui, "snackbar.message");
|
|
25
|
+
var options = (0, _get2.default)(ui, "snackbar.options", {});
|
|
26
|
+
var hideSnackbar = (0, _react.useCallback)(function () {
|
|
27
|
+
ui.setState(function (ui) {
|
|
28
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ui), {}, {
|
|
29
|
+
snackbar: null
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
}, [ui]);
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement(_Snackbar.Snackbar, Object.assign({
|
|
34
|
+
open: !!message,
|
|
35
|
+
onClose: hideSnackbar,
|
|
36
|
+
message: message
|
|
37
|
+
}, options));
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var _default = SnackbarMain;
|
|
41
|
+
exports.default = _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SnackbarMain","ui","useUi","message","options","hideSnackbar","useCallback","setState","snackbar"],"sources":["Snackbar.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Snackbar } from \"@webiny/ui/Snackbar\";\nimport { get } from \"lodash\";\nimport { useUi } from \"@webiny/app/hooks/useUi\";\n\nconst SnackbarMain: React.FC = () => {\n const ui = useUi();\n const message: React.ReactNode = get(ui, \"snackbar.message\");\n const options: Record<string, any> = get(ui, \"snackbar.options\", {});\n\n const hideSnackbar = useCallback((): void => {\n ui.setState(ui => ({ ...ui, snackbar: null }));\n }, [ui]);\n\n return <Snackbar open={!!message} onClose={hideSnackbar} message={message} {...options} />;\n};\n\nexport default SnackbarMain;\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEA,IAAMA,YAAsB,GAAG,SAAzBA,YAAyB,GAAM;EACjC,IAAMC,EAAE,GAAG,IAAAC,YAAA,GAAX;EACA,IAAMC,OAAwB,GAAG,mBAAIF,EAAJ,EAAQ,kBAAR,CAAjC;EACA,IAAMG,OAA4B,GAAG,mBAAIH,EAAJ,EAAQ,kBAAR,EAA4B,EAA5B,CAArC;EAEA,IAAMI,YAAY,GAAG,IAAAC,kBAAA,EAAY,YAAY;IACzCL,EAAE,CAACM,QAAH,CAAY,UAAAN,EAAE;MAAA,mEAAUA,EAAV;QAAcO,QAAQ,EAAE;MAAxB;IAAA,CAAd;EACH,CAFoB,EAElB,CAACP,EAAD,CAFkB,CAArB;EAIA,oBAAO,6BAAC,kBAAD;IAAU,IAAI,EAAE,CAAC,CAACE,OAAlB;IAA2B,OAAO,EAAEE,YAApC;IAAkD,OAAO,EAAEF;EAA3D,GAAwEC,OAAxE,EAAP;AACH,CAVD;;eAYeJ,Y"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Overlays = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _appAdmin = require("@webiny/app-admin/");
|
|
13
|
+
|
|
14
|
+
var _Snackbar = _interopRequireDefault(require("./Snackbar"));
|
|
15
|
+
|
|
16
|
+
var _Dialog = require("./Dialog");
|
|
17
|
+
|
|
18
|
+
var _base = require("@rmwc/base");
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Dialogs, Menus and Snackbars require a container to be rendered, and we want to place it outside of
|
|
22
|
+
* any other views that are constructed by developers. We need these 2 containers to always be
|
|
23
|
+
* present, even if there is no <Layout> mounted.
|
|
24
|
+
*/
|
|
25
|
+
var OverlaysHOC = function OverlaysHOC(Component) {
|
|
26
|
+
return function Overlays(_ref) {
|
|
27
|
+
var children = _ref.children;
|
|
28
|
+
return /*#__PURE__*/_react.default.createElement(Component, null, children, /*#__PURE__*/_react.default.createElement("div", {
|
|
29
|
+
style: {
|
|
30
|
+
zIndex: 30,
|
|
31
|
+
position: "absolute"
|
|
32
|
+
}
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_Snackbar.default, null)), /*#__PURE__*/_react.default.createElement(_base.Portal, null), /*#__PURE__*/_react.default.createElement(_Dialog.DialogContainer, null));
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var Overlays = function Overlays() {
|
|
38
|
+
/**
|
|
39
|
+
* TODO @ts-refactor @pavel
|
|
40
|
+
*/
|
|
41
|
+
// @ts-ignore
|
|
42
|
+
return /*#__PURE__*/_react.default.createElement(_appAdmin.Provider, {
|
|
43
|
+
hoc: OverlaysHOC
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
exports.Overlays = Overlays;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OverlaysHOC","Component","Overlays","children","zIndex","position"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app-admin/\";\nimport Snackbar from \"./Snackbar\";\nimport { DialogContainer } from \"./Dialog\";\nimport { Portal } from \"@rmwc/base\";\n\n/**\n * Dialogs, Menus and Snackbars require a container to be rendered, and we want to place it outside of\n * any other views that are constructed by developers. We need these 2 containers to always be\n * present, even if there is no <Layout> mounted.\n */\nconst OverlaysHOC = (Component: React.FC): React.FC => {\n return function Overlays({ children }) {\n return (\n <Component>\n {children}\n <div style={{ zIndex: 30, position: \"absolute\" }}>\n <Snackbar />\n </div>\n <Portal />\n <DialogContainer />\n </Component>\n );\n };\n};\n\nexport const Overlays: React.FC = () => {\n /**\n * TODO @ts-refactor @pavel\n */\n // @ts-ignore\n return <Provider hoc={OverlaysHOC} />;\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,SAAD,EAAmC;EACnD,OAAO,SAASC,QAAT,OAAgC;IAAA,IAAZC,QAAY,QAAZA,QAAY;IACnC,oBACI,6BAAC,SAAD,QACKA,QADL,eAEI;MAAK,KAAK,EAAE;QAAEC,MAAM,EAAE,EAAV;QAAcC,QAAQ,EAAE;MAAxB;IAAZ,gBACI,6BAAC,iBAAD,OADJ,CAFJ,eAKI,6BAAC,YAAD,OALJ,eAMI,6BAAC,uBAAD,OANJ,CADJ;EAUH,CAXD;AAYH,CAbD;;AAeO,IAAMH,QAAkB,GAAG,SAArBA,QAAqB,GAAM;EACpC;AACJ;AACA;EACI;EACA,oBAAO,6BAAC,kBAAD;IAAU,GAAG,EAAEF;EAAf,EAAP;AACH,CANM"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Search = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
13
|
+
|
|
14
|
+
var _SearchBar = _interopRequireDefault(require("@webiny/app-admin/plugins/globalSearch/SearchBar"));
|
|
15
|
+
|
|
16
|
+
// For the time being, import the existing component.
|
|
17
|
+
// TODO: implement a new SearchBar component
|
|
18
|
+
var SearchRenderer = function SearchRenderer() {
|
|
19
|
+
return function Search() {
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(_SearchBar.default, null);
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
var Search = function Search() {
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(_appAdmin.Compose, {
|
|
26
|
+
component: _appAdmin.SearchRenderer,
|
|
27
|
+
with: SearchRenderer
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
exports.Search = Search;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SearchRenderer","Search","SearchSpec"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Compose, SearchRenderer as SearchSpec } from \"@webiny/app-admin\";\n\n// For the time being, import the existing component.\n// TODO: implement a new SearchBar component\nimport SearchBar from \"@webiny/app-admin/plugins/globalSearch/SearchBar\";\n\nconst SearchRenderer = (): React.FC => {\n return function Search() {\n return <SearchBar />;\n };\n};\n\nexport const Search: React.FC = () => {\n return <Compose component={SearchSpec} with={SearchRenderer} />;\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAIA;;AAFA;AACA;AAGA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,GAAgB;EACnC,OAAO,SAASC,MAAT,GAAkB;IACrB,oBAAO,6BAAC,kBAAD,OAAP;EACH,CAFD;AAGH,CAJD;;AAMO,IAAMA,MAAgB,GAAG,SAAnBA,MAAmB,GAAM;EAClC,oBAAO,6BAAC,iBAAD;IAAS,SAAS,EAAEC,wBAApB;IAAgC,IAAI,EAAEF;EAAtC,EAAP;AACH,CAFM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/></svg>
|
|
@@ -0,0 +1,137 @@
|
|
|
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.UserMenu = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _emotion = require("emotion");
|
|
13
|
+
|
|
14
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
15
|
+
|
|
16
|
+
var _Menu = require("@webiny/ui/Menu");
|
|
17
|
+
|
|
18
|
+
var _List = require("@webiny/ui/List");
|
|
19
|
+
|
|
20
|
+
var _Icon = require("@webiny/ui/Icon");
|
|
21
|
+
|
|
22
|
+
var _reactRouter = require("@webiny/react-router");
|
|
23
|
+
|
|
24
|
+
var _appSecurity = require("@webiny/app-security");
|
|
25
|
+
|
|
26
|
+
var _Avatar = require("@webiny/ui/Avatar");
|
|
27
|
+
|
|
28
|
+
var _components = require("@webiny/app/components");
|
|
29
|
+
|
|
30
|
+
var _TopAppBar = require("@webiny/ui/TopAppBar");
|
|
31
|
+
|
|
32
|
+
var UserMenuRendererImpl = function UserMenuRendererImpl() {
|
|
33
|
+
return function UserMenu() {
|
|
34
|
+
var security = (0, _appSecurity.useSecurity)();
|
|
35
|
+
|
|
36
|
+
var _useUserMenu = (0, _appAdmin.useUserMenu)(),
|
|
37
|
+
menuItems = _useUserMenu.menuItems;
|
|
38
|
+
|
|
39
|
+
if (!security || !security.identity) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
|
|
44
|
+
anchor: "topEnd",
|
|
45
|
+
handle: /*#__PURE__*/_react.default.createElement(_TopAppBar.TopAppBarActionItem, {
|
|
46
|
+
icon: /*#__PURE__*/_react.default.createElement(_appAdmin.UserMenuHandle, null)
|
|
47
|
+
})
|
|
48
|
+
}, /*#__PURE__*/_react.default.createElement(_List.List, {
|
|
49
|
+
"data-testid": "logged-in-user-menu-list"
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement(_appAdmin.UserMenuItems, {
|
|
51
|
+
menuItems: menuItems
|
|
52
|
+
})));
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
var UserMenuHandleRendererImpl = function UserMenuHandleRendererImpl() {
|
|
57
|
+
return function UserMenuHandle() {
|
|
58
|
+
var _useSecurity = (0, _appSecurity.useSecurity)(),
|
|
59
|
+
identity = _useSecurity.identity;
|
|
60
|
+
|
|
61
|
+
if (!identity) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
var _ref = identity.profile || {},
|
|
66
|
+
firstName = _ref.firstName,
|
|
67
|
+
lastName = _ref.lastName,
|
|
68
|
+
avatar = _ref.avatar,
|
|
69
|
+
gravatar = _ref.gravatar;
|
|
70
|
+
|
|
71
|
+
var fullName = "".concat(firstName, " ").concat(lastName);
|
|
72
|
+
return /*#__PURE__*/_react.default.createElement(_Avatar.Avatar, {
|
|
73
|
+
"data-testid": "logged-in-user-menu-avatar",
|
|
74
|
+
src: avatar ? avatar.src : gravatar,
|
|
75
|
+
alt: fullName,
|
|
76
|
+
fallbackText: fullName,
|
|
77
|
+
renderImage: function renderImage(props) {
|
|
78
|
+
return /*#__PURE__*/_react.default.createElement(_components.Image, Object.assign({}, props, {
|
|
79
|
+
transform: {
|
|
80
|
+
width: 100
|
|
81
|
+
}
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
var linkStyles = /*#__PURE__*/(0, _emotion.css)({
|
|
89
|
+
"&:hover": {
|
|
90
|
+
textDecoration: "none"
|
|
91
|
+
}
|
|
92
|
+
}, "label:linkStyles;");
|
|
93
|
+
|
|
94
|
+
var UserMenuItemRendererImpl = function UserMenuItemRendererImpl() {
|
|
95
|
+
return function UserMenuItemRenderer() {
|
|
96
|
+
var _useUserMenuItem = (0, _appAdmin.useUserMenuItem)(),
|
|
97
|
+
label = _useUserMenuItem.label,
|
|
98
|
+
path = _useUserMenuItem.path,
|
|
99
|
+
icon = _useUserMenuItem.icon,
|
|
100
|
+
onClick = _useUserMenuItem.onClick,
|
|
101
|
+
element = _useUserMenuItem.element;
|
|
102
|
+
|
|
103
|
+
if (element) {
|
|
104
|
+
return element;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (path) {
|
|
108
|
+
return /*#__PURE__*/_react.default.createElement(_reactRouter.Link, {
|
|
109
|
+
to: path,
|
|
110
|
+
className: linkStyles
|
|
111
|
+
}, /*#__PURE__*/_react.default.createElement(_List.ListItem, null, /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, icon ? /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
112
|
+
icon: icon
|
|
113
|
+
}) : null), label));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
117
|
+
onClick: onClick
|
|
118
|
+
}, /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, icon ? /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
119
|
+
icon: icon
|
|
120
|
+
}) : null), label);
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
var UserMenu = function UserMenu() {
|
|
125
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_appAdmin.Compose, {
|
|
126
|
+
component: _appAdmin.UserMenuHandleRenderer,
|
|
127
|
+
with: UserMenuHandleRendererImpl
|
|
128
|
+
}), /*#__PURE__*/_react.default.createElement(_appAdmin.Compose, {
|
|
129
|
+
component: _appAdmin.UserMenuRenderer,
|
|
130
|
+
with: UserMenuRendererImpl
|
|
131
|
+
}), /*#__PURE__*/_react.default.createElement(_appAdmin.Compose, {
|
|
132
|
+
component: _appAdmin.UserMenuItemRenderer,
|
|
133
|
+
with: UserMenuItemRendererImpl
|
|
134
|
+
}));
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
exports.UserMenu = UserMenu;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UserMenuRendererImpl","UserMenu","security","useSecurity","useUserMenu","menuItems","identity","UserMenuHandleRendererImpl","UserMenuHandle","profile","firstName","lastName","avatar","gravatar","fullName","src","props","width","linkStyles","css","textDecoration","UserMenuItemRendererImpl","UserMenuItemRenderer","useUserMenuItem","label","path","icon","onClick","element","UserMenuHandleRendererSpec","UserMenuRendererSpec","UserMenuItemRendererSpec"],"sources":["index.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport { css } from \"emotion\";\nimport {\n Compose,\n UserMenuHandle,\n UserMenuHandleRenderer as UserMenuHandleRendererSpec,\n UserMenuRenderer as UserMenuRendererSpec,\n UserMenuItems,\n UserMenuItemRenderer as UserMenuItemRendererSpec,\n useUserMenuItem,\n useUserMenu\n} from \"@webiny/app-admin\";\nimport { Menu } from \"@webiny/ui/Menu\";\nimport { List, ListItem, ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Link } from \"@webiny/react-router\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { Avatar } from \"@webiny/ui/Avatar\";\nimport { Image } from \"@webiny/app/components\";\nimport { TopAppBarActionItem } from \"@webiny/ui/TopAppBar\";\n\nconst UserMenuRendererImpl = (): React.FC => {\n return function UserMenu() {\n const security = useSecurity();\n const { menuItems } = useUserMenu();\n\n if (!security || !security.identity) {\n return null;\n }\n\n return (\n <Menu anchor={\"topEnd\"} handle={<TopAppBarActionItem icon={<UserMenuHandle />} />}>\n <List data-testid=\"logged-in-user-menu-list\">\n <UserMenuItems menuItems={menuItems} />\n </List>\n </Menu>\n );\n };\n};\n\nconst UserMenuHandleRendererImpl = (): React.FC => {\n return function UserMenuHandle() {\n const { identity } = useSecurity();\n\n if (!identity) {\n return null;\n }\n\n const { firstName, lastName, avatar, gravatar } = identity.profile || {};\n const fullName = `${firstName} ${lastName}`;\n\n return (\n <Avatar\n data-testid=\"logged-in-user-menu-avatar\"\n src={avatar ? avatar.src : gravatar}\n alt={fullName}\n fallbackText={fullName}\n renderImage={props => <Image {...props} transform={{ width: 100 }} />}\n />\n );\n };\n};\n\nconst linkStyles = css({\n \"&:hover\": {\n textDecoration: \"none\"\n }\n});\n\nconst UserMenuItemRendererImpl = (): React.FC => {\n return function UserMenuItemRenderer() {\n const { label, path, icon, onClick, element } = useUserMenuItem();\n\n if (element) {\n return element;\n }\n\n if (path) {\n return (\n <Link to={path} className={linkStyles}>\n <ListItem>\n <ListItemGraphic>{icon ? <Icon icon={icon} /> : null}</ListItemGraphic>\n {label}\n </ListItem>\n </Link>\n );\n }\n\n return (\n <ListItem onClick={onClick}>\n <ListItemGraphic>{icon ? <Icon icon={icon} /> : null}</ListItemGraphic>\n {label}\n </ListItem>\n );\n };\n};\n\nexport const UserMenu: React.FC = () => {\n return (\n <Fragment>\n <Compose component={UserMenuHandleRendererSpec} with={UserMenuHandleRendererImpl} />\n <Compose component={UserMenuRendererSpec} with={UserMenuRendererImpl} />\n <Compose component={UserMenuItemRendererSpec} with={UserMenuItemRendererImpl} />\n </Fragment>\n );\n};\n"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@webiny/app-admin-rmwc",
|
|
3
|
+
"version": "0.0.0-unstable.5e7233243f",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/webiny/webiny-js.git"
|
|
8
|
+
},
|
|
9
|
+
"author": "Webiny Ltd.",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@babel/runtime": "7.18.9",
|
|
13
|
+
"@emotion/styled": "10.3.0",
|
|
14
|
+
"@rmwc/base": "7.0.3",
|
|
15
|
+
"@types/react": "17.0.39",
|
|
16
|
+
"@webiny/app": "0.0.0-unstable.5e7233243f",
|
|
17
|
+
"@webiny/app-admin": "0.0.0-unstable.5e7233243f",
|
|
18
|
+
"@webiny/app-plugin-admin-welcome-screen": "0.0.0-unstable.5e7233243f",
|
|
19
|
+
"@webiny/app-security": "0.0.0-unstable.5e7233243f",
|
|
20
|
+
"@webiny/plugins": "0.0.0-unstable.5e7233243f",
|
|
21
|
+
"@webiny/react-router": "0.0.0-unstable.5e7233243f",
|
|
22
|
+
"@webiny/ui": "0.0.0-unstable.5e7233243f",
|
|
23
|
+
"classnames": "2.3.1",
|
|
24
|
+
"emotion": "10.0.27",
|
|
25
|
+
"lodash": "4.17.21",
|
|
26
|
+
"react": "17.0.2",
|
|
27
|
+
"react-dom": "17.0.2",
|
|
28
|
+
"react-helmet": "6.1.0",
|
|
29
|
+
"react-transition-group": "4.4.5",
|
|
30
|
+
"store": "2.0.12"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@babel/cli": "^7.5.5",
|
|
34
|
+
"@babel/core": "^7.5.5",
|
|
35
|
+
"@babel/preset-env": "^7.5.5",
|
|
36
|
+
"@babel/preset-react": "^7.0.0",
|
|
37
|
+
"@babel/preset-typescript": "^7.8.3",
|
|
38
|
+
"@types/react-helmet": "^6.1.5",
|
|
39
|
+
"@webiny/cli": "^0.0.0-unstable.5e7233243f",
|
|
40
|
+
"@webiny/project-utils": "^0.0.0-unstable.5e7233243f",
|
|
41
|
+
"babel-plugin-emotion": "^9.2.8",
|
|
42
|
+
"babel-plugin-named-asset-import": "^1.0.0-next.3e165448",
|
|
43
|
+
"rimraf": "^3.0.2",
|
|
44
|
+
"ttypescript": "^1.5.12",
|
|
45
|
+
"typescript": "4.7.4"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public",
|
|
49
|
+
"directory": "dist"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "yarn webiny run build",
|
|
53
|
+
"watch": "yarn webiny run watch"
|
|
54
|
+
},
|
|
55
|
+
"svgo": {
|
|
56
|
+
"plugins": {
|
|
57
|
+
"removeViewBox": false
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"gitHead": "995a4b337db9b8497c6615e335dcd206afe26f8f"
|
|
61
|
+
}
|