@blaze-cms/plugin-admin-core-ui 0.131.0-admin-updates.0 → 0.131.0-project-admin-customisations.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.
Files changed (88) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/README.md +97 -0
  3. package/lib/components/Layout/Layout.js +6 -3
  4. package/lib/components/Layout/Layout.js.map +1 -1
  5. package/lib/components/Layout/components/Grid/Grid.js +10 -88
  6. package/lib/components/Layout/components/Grid/Grid.js.map +1 -1
  7. package/lib/components/Menu/Icons/ChevronDown.js +27 -0
  8. package/lib/components/Menu/Icons/ChevronDown.js.map +1 -0
  9. package/lib/components/Menu/Icons/ChevronUp.js +27 -0
  10. package/lib/components/Menu/Icons/ChevronUp.js.map +1 -0
  11. package/lib/components/Menu/Items/MenuActionItem.js +37 -0
  12. package/lib/components/Menu/Items/MenuActionItem.js.map +1 -0
  13. package/lib/components/Menu/Items/MenuItem.js +73 -0
  14. package/lib/components/Menu/Items/MenuItem.js.map +1 -0
  15. package/lib/components/Menu/Items/MenuLinkItem.js +36 -0
  16. package/lib/components/Menu/Items/MenuLinkItem.js.map +1 -0
  17. package/lib/components/Menu/Menu.js +86 -0
  18. package/lib/components/Menu/Menu.js.map +1 -0
  19. package/lib/components/Menu/Section/MenuSection.js +28 -0
  20. package/lib/components/Menu/Section/MenuSection.js.map +1 -0
  21. package/lib/components/Menu/Section/MenuSectionCollapsible.js +91 -0
  22. package/lib/components/Menu/Section/MenuSectionCollapsible.js.map +1 -0
  23. package/lib/components/Menu/Section/MenuSectionItem.js +40 -0
  24. package/lib/components/Menu/Section/MenuSectionItem.js.map +1 -0
  25. package/lib/components/Menu/Section/MenuSectionItems.js +33 -0
  26. package/lib/components/Menu/Section/MenuSectionItems.js.map +1 -0
  27. package/lib/components/Menu/index.js +12 -0
  28. package/lib/components/Menu/index.js.map +1 -0
  29. package/lib/components/SideBar/SideBar.js +3 -14
  30. package/lib/components/SideBar/SideBar.js.map +1 -1
  31. package/lib/constants.js +1 -1
  32. package/lib/constants.js.map +1 -1
  33. package/lib/index.js +13 -9
  34. package/lib/index.js.map +1 -1
  35. package/lib/utils/menu-handler-singleton.js +114 -0
  36. package/lib/utils/menu-handler-singleton.js.map +1 -0
  37. package/lib-es/components/Layout/Layout.js +6 -3
  38. package/lib-es/components/Layout/Layout.js.map +1 -1
  39. package/lib-es/components/Layout/components/Grid/Grid.js +14 -54
  40. package/lib-es/components/Layout/components/Grid/Grid.js.map +1 -1
  41. package/lib-es/components/Menu/Icons/ChevronDown.js +16 -0
  42. package/lib-es/components/Menu/Icons/ChevronDown.js.map +1 -0
  43. package/lib-es/components/Menu/Icons/ChevronUp.js +16 -0
  44. package/lib-es/components/Menu/Icons/ChevronUp.js.map +1 -0
  45. package/lib-es/components/Menu/Items/MenuActionItem.js +31 -0
  46. package/lib-es/components/Menu/Items/MenuActionItem.js.map +1 -0
  47. package/lib-es/components/Menu/Items/MenuItem.js +64 -0
  48. package/lib-es/components/Menu/Items/MenuItem.js.map +1 -0
  49. package/lib-es/components/Menu/Items/MenuLinkItem.js +28 -0
  50. package/lib-es/components/Menu/Items/MenuLinkItem.js.map +1 -0
  51. package/lib-es/components/Menu/Menu.js +40 -0
  52. package/lib-es/components/Menu/Menu.js.map +1 -0
  53. package/lib-es/components/Menu/Section/MenuSection.js +18 -0
  54. package/lib-es/components/Menu/Section/MenuSection.js.map +1 -0
  55. package/lib-es/components/Menu/Section/MenuSectionCollapsible.js +67 -0
  56. package/lib-es/components/Menu/Section/MenuSectionCollapsible.js.map +1 -0
  57. package/lib-es/components/Menu/Section/MenuSectionItem.js +30 -0
  58. package/lib-es/components/Menu/Section/MenuSectionItem.js.map +1 -0
  59. package/lib-es/components/Menu/Section/MenuSectionItems.js +20 -0
  60. package/lib-es/components/Menu/Section/MenuSectionItems.js.map +1 -0
  61. package/lib-es/components/Menu/index.js +3 -0
  62. package/lib-es/components/Menu/index.js.map +1 -0
  63. package/lib-es/components/SideBar/SideBar.js +2 -7
  64. package/lib-es/components/SideBar/SideBar.js.map +1 -1
  65. package/lib-es/constants.js +1 -1
  66. package/lib-es/constants.js.map +1 -1
  67. package/lib-es/index.js +9 -9
  68. package/lib-es/index.js.map +1 -1
  69. package/lib-es/utils/menu-handler-singleton.js +55 -0
  70. package/lib-es/utils/menu-handler-singleton.js.map +1 -0
  71. package/package.json +9 -8
  72. package/src/components/Layout/Layout.js +14 -3
  73. package/src/components/Layout/components/Grid/Grid.js +13 -52
  74. package/src/components/Menu/Icons/ChevronDown.js +16 -0
  75. package/src/components/Menu/Icons/ChevronUp.js +16 -0
  76. package/src/components/Menu/Items/MenuActionItem.js +30 -0
  77. package/src/components/Menu/Items/MenuItem.js +49 -0
  78. package/src/components/Menu/Items/MenuLinkItem.js +25 -0
  79. package/src/components/Menu/Menu.js +48 -0
  80. package/src/components/Menu/Section/MenuSection.js +16 -0
  81. package/src/components/Menu/Section/MenuSectionCollapsible.js +59 -0
  82. package/src/components/Menu/Section/MenuSectionItem.js +28 -0
  83. package/src/components/Menu/Section/MenuSectionItems.js +17 -0
  84. package/src/components/Menu/index.js +3 -0
  85. package/src/components/SideBar/SideBar.js +3 -6
  86. package/src/constants.js +3 -1
  87. package/src/index.js +7 -6
  88. package/src/utils/menu-handler-singleton.js +64 -0
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.MenuHandler = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ require("core-js/modules/es.array.iterator.js");
11
+ require("core-js/modules/es.map.js");
12
+ require("core-js/modules/es.object.to-string.js");
13
+ require("core-js/modules/es.string.iterator.js");
14
+ require("core-js/modules/web.dom-collections.iterator.js");
15
+ require("core-js/modules/es.array.sort.js");
16
+ require("core-js/modules/es.object.entries.js");
17
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
18
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
+ var _lodash = _interopRequireDefault(require("lodash.merge"));
22
+ var instance;
23
+ var MenuHandler = /*#__PURE__*/function () {
24
+ function MenuHandler(app) {
25
+ (0, _classCallCheck2["default"])(this, MenuHandler);
26
+ (0, _defineProperty2["default"])(this, "menuSections", new Map());
27
+ (0, _defineProperty2["default"])(this, "menuConfig", void 0);
28
+ (0, _defineProperty2["default"])(this, "app", void 0);
29
+ if (instance) {
30
+ throw new Error('You can only create one instance!');
31
+ }
32
+ instance = this;
33
+ this.menuConfig = {};
34
+ this.app = null;
35
+ }
36
+ (0, _createClass2["default"])(MenuHandler, [{
37
+ key: "setApp",
38
+ value: function setApp(app) {
39
+ this.app = app;
40
+ }
41
+ }, {
42
+ key: "app",
43
+ get: function get() {
44
+ return this.app;
45
+ }
46
+ }, {
47
+ key: "menuConfig",
48
+ get: function get() {
49
+ return this.menuConfig;
50
+ }
51
+ }, {
52
+ key: "addConfig",
53
+ value: function addConfig(newConfig) {
54
+ this.menuConfig = (0, _lodash["default"])(this.menuConfig, newConfig);
55
+ }
56
+ }, {
57
+ key: "loadConfig",
58
+ value: function () {
59
+ var _loadConfig = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
60
+ var _this = this;
61
+ var addConfig, menuConfig;
62
+ return _regenerator["default"].wrap(function _callee$(_context) {
63
+ while (1) switch (_context.prev = _context.next) {
64
+ case 0:
65
+ addConfig = function addConfig(newConfig) {
66
+ _this.addConfig(newConfig);
67
+ };
68
+ menuConfig = this.menuConfig;
69
+ if (!(this.app && this.app.events)) {
70
+ _context.next = 7;
71
+ break;
72
+ }
73
+ _context.next = 5;
74
+ return this.app.events.emitAsync('admin:menu:config:load', {
75
+ addConfig: addConfig
76
+ });
77
+ case 5:
78
+ _context.next = 7;
79
+ return this.app.events.emitAsync('admin:menu:config:load:after', {
80
+ addConfig: addConfig,
81
+ menuConfig: menuConfig
82
+ });
83
+ case 7:
84
+ case "end":
85
+ return _context.stop();
86
+ }
87
+ }, _callee, this);
88
+ }));
89
+ function loadConfig() {
90
+ return _loadConfig.apply(this, arguments);
91
+ }
92
+ return loadConfig;
93
+ }()
94
+ }, {
95
+ key: "getInstance",
96
+ value: function getInstance() {
97
+ return this;
98
+ }
99
+ }, {
100
+ key: "getAll",
101
+ value: function getAll() {
102
+ var sortedByOrder = Object.entries(this.menuConfig).sort(function (a, b) {
103
+ return a.order > b.order ? 1 : -1;
104
+ });
105
+ return sortedByOrder;
106
+ }
107
+ }]);
108
+ return MenuHandler;
109
+ }();
110
+ exports.MenuHandler = MenuHandler;
111
+ var menuHandler = new MenuHandler();
112
+ var _default = menuHandler;
113
+ exports["default"] = _default;
114
+ //# sourceMappingURL=menu-handler-singleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-handler-singleton.js","names":["_lodash","_interopRequireDefault","require","instance","MenuHandler","app","_classCallCheck2","_defineProperty2","Map","Error","menuConfig","_createClass2","key","value","setApp","get","addConfig","newConfig","merge","_loadConfig","_asyncToGenerator2","_regenerator","mark","_callee","_this","wrap","_callee$","_context","prev","next","events","emitAsync","stop","loadConfig","apply","arguments","getInstance","getAll","sortedByOrder","Object","entries","sort","a","b","order","exports","menuHandler","_default"],"sources":["../../src/utils/menu-handler-singleton.js"],"sourcesContent":["import merge from 'lodash.merge';\n\nlet instance;\n\nexport class MenuHandler {\n menuSections = new Map();\n\n menuConfig;\n\n app;\n\n constructor(app) {\n if (instance) {\n throw new Error('You can only create one instance!');\n }\n instance = this;\n this.menuConfig = {};\n this.app = null;\n }\n\n setApp(app) {\n this.app = app;\n }\n\n get app() {\n return this.app;\n }\n\n get menuConfig() {\n return this.menuConfig;\n }\n\n addConfig(newConfig) {\n this.menuConfig = merge(this.menuConfig, newConfig);\n }\n\n async loadConfig() {\n const addConfig = newConfig => {\n this.addConfig(newConfig);\n };\n\n const { menuConfig } = this;\n\n if (this.app && this.app.events) {\n await this.app.events.emitAsync('admin:menu:config:load', { addConfig });\n await this.app.events.emitAsync('admin:menu:config:load:after', { addConfig, menuConfig });\n }\n }\n\n getInstance() {\n return this;\n }\n\n getAll() {\n const sortedByOrder = Object.entries(this.menuConfig).sort(\n (a, b) => (a.order > b.order ? 1 : -1)\n );\n\n return sortedByOrder;\n }\n}\n\nconst menuHandler = new MenuHandler();\nexport default menuHandler;\n"],"mappings":"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"}
@@ -12,8 +12,10 @@ const Layout = ({
12
12
  }) => {
13
13
  const [isOpenMenu, setOpenMenu] = useState(true);
14
14
  const onMenuClick = () => setOpenMenu(!isOpenMenu);
15
+ const simpleLayout = window.location !== window.parent.location;
16
+ const wrapperClass = simpleLayout ? ' grid--site-container--simle-layout' : '';
15
17
  return /*#__PURE__*/React.createElement("div", {
16
- className: "site-container grid--site-container"
18
+ className: `site-container grid--site-container${wrapperClass}`
17
19
  }, /*#__PURE__*/React.createElement(Query, {
18
20
  query: getQuery('GET_USER_AUTH_DATA'),
19
21
  errorPolicy: "all"
@@ -26,14 +28,15 @@ const Layout = ({
26
28
  userData = {}
27
29
  } = {}
28
30
  } = data;
29
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, {
31
+ return /*#__PURE__*/React.createElement(React.Fragment, null, !simpleLayout && /*#__PURE__*/React.createElement(Header, {
30
32
  isLoggedIn: isLoggedIn,
31
33
  onMenuClick: onMenuClick,
32
34
  isOpenMenu: isOpenMenu
33
35
  }), isLoggedIn ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Grid, {
34
36
  isOpenMenu: isOpenMenu,
35
37
  onMenuClick: onMenuClick,
36
- userData: userData
38
+ userData: userData,
39
+ simpleLayout: simpleLayout
37
40
  }, children)) : /*#__PURE__*/React.createElement(Background, null, /*#__PURE__*/React.createElement(Login, null)));
38
41
  }));
39
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.js","names":["React","useState","PropTypes","Query","getQuery","Login","Grid","Background","Header","Layout","children","isOpenMenu","setOpenMenu","onMenuClick","createElement","className","query","errorPolicy","data","session","isLoggedIn","userData","Fragment","propTypes","oneOfType","arrayOf","node","isRequired"],"sources":["../../../src/components/Layout/Layout.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Query } from '@apollo/client/react/components';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { Login } from '@blaze-cms/plugin-auth-ui';\nimport { Grid } from './components';\nimport Background from './Background';\nimport '@blaze-cms/admin-ui-styles/main.scss';\nimport Header from '../Header';\n\nconst Layout = ({ children }) => {\n const [isOpenMenu, setOpenMenu] = useState(true);\n const onMenuClick = () => setOpenMenu(!isOpenMenu);\n return (\n <div className=\"site-container grid--site-container\">\n <Query query={getQuery('GET_USER_AUTH_DATA')} errorPolicy=\"all\">\n {({ data = {} }) => {\n const { session: { isLoggedIn, userData = {} } = {} } = data;\n\n return (\n <>\n <Header isLoggedIn={isLoggedIn} onMenuClick={onMenuClick} isOpenMenu={isOpenMenu} />\n {isLoggedIn ? (\n <>\n <Grid isOpenMenu={isOpenMenu} onMenuClick={onMenuClick} userData={userData}>\n {children}\n </Grid>\n </>\n ) : (\n <Background>\n <Login />\n </Background>\n )}\n </>\n );\n }}\n </Query>\n </div>\n );\n};\n\nLayout.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n\nexport default Layout;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,KAAK,QAAQ,iCAAiC;AACvD,SAASC,QAAQ,QAAQ,2BAA2B;AACpD,SAASC,KAAK,QAAQ,2BAA2B;AACjD,SAASC,IAAI,QAAQ,cAAc;AACnC,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAO,sCAAsC;AAC7C,OAAOC,MAAM,MAAM,WAAW;AAE9B,MAAMC,MAAM,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EAC/B,MAAM,CAACC,UAAU,EAAEC,WAAW,CAAC,GAAGX,QAAQ,CAAC,IAAI,CAAC;EAChD,MAAMY,WAAW,GAAGA,CAAA,KAAMD,WAAW,CAAC,CAACD,UAAU,CAAC;EAClD,oBACEX,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAqC,gBAClDf,KAAA,CAAAc,aAAA,CAACX,KAAK;IAACa,KAAK,EAAEZ,QAAQ,CAAC,oBAAoB,CAAE;IAACa,WAAW,EAAC;EAAK,GAC5D,CAAC;IAAEC,IAAI,GAAG,CAAC;EAAE,CAAC,KAAK;IAClB,MAAM;MAAEC,OAAO,EAAE;QAAEC,UAAU;QAAEC,QAAQ,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAGH,IAAI;IAE5D,oBACElB,KAAA,CAAAc,aAAA,CAAAd,KAAA,CAAAsB,QAAA,qBACEtB,KAAA,CAAAc,aAAA,CAACN,MAAM;MAACY,UAAU,EAAEA,UAAW;MAACP,WAAW,EAAEA,WAAY;MAACF,UAAU,EAAEA;IAAW,CAAE,CAAC,EACnFS,UAAU,gBACTpB,KAAA,CAAAc,aAAA,CAAAd,KAAA,CAAAsB,QAAA,qBACEtB,KAAA,CAAAc,aAAA,CAACR,IAAI;MAACK,UAAU,EAAEA,UAAW;MAACE,WAAW,EAAEA,WAAY;MAACQ,QAAQ,EAAEA;IAAS,GACxEX,QACG,CACN,CAAC,gBAEHV,KAAA,CAAAc,aAAA,CAACP,UAAU,qBACTP,KAAA,CAAAc,aAAA,CAACT,KAAK,MAAE,CACE,CAEd,CAAC;EAEP,CACK,CACJ,CAAC;AAEV,CAAC;AAEDI,MAAM,CAACc,SAAS,GAAG;EACjBb,QAAQ,EAAER,SAAS,CAACsB,SAAS,CAAC,CAACtB,SAAS,CAACuB,OAAO,CAACvB,SAAS,CAACwB,IAAI,CAAC,EAAExB,SAAS,CAACwB,IAAI,CAAC,CAAC,CAACC;AACrF,CAAC;AAED,eAAelB,MAAM"}
1
+ {"version":3,"file":"Layout.js","names":["React","useState","PropTypes","Query","getQuery","Login","Grid","Background","Header","Layout","children","isOpenMenu","setOpenMenu","onMenuClick","simpleLayout","window","location","parent","wrapperClass","createElement","className","query","errorPolicy","data","session","isLoggedIn","userData","Fragment","propTypes","oneOfType","arrayOf","node","isRequired"],"sources":["../../../src/components/Layout/Layout.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Query } from '@apollo/client/react/components';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { Login } from '@blaze-cms/plugin-auth-ui';\nimport { Grid } from './components';\nimport Background from './Background';\nimport '@blaze-cms/admin-ui-styles/main.scss';\nimport Header from '../Header';\n\nconst Layout = ({ children }) => {\n const [isOpenMenu, setOpenMenu] = useState(true);\n const onMenuClick = () => setOpenMenu(!isOpenMenu);\n\n const simpleLayout = window.location !== window.parent.location;\n\n const wrapperClass = simpleLayout ? ' grid--site-container--simle-layout' : '';\n\n return (\n <div className={`site-container grid--site-container${wrapperClass}`}>\n <Query query={getQuery('GET_USER_AUTH_DATA')} errorPolicy=\"all\">\n {({ data = {} }) => {\n const { session: { isLoggedIn, userData = {} } = {} } = data;\n\n return (\n <>\n {!simpleLayout && (\n <Header isLoggedIn={isLoggedIn} onMenuClick={onMenuClick} isOpenMenu={isOpenMenu} />\n )}\n {isLoggedIn ? (\n <>\n <Grid\n isOpenMenu={isOpenMenu}\n onMenuClick={onMenuClick}\n userData={userData}\n simpleLayout={simpleLayout}>\n {children}\n </Grid>\n </>\n ) : (\n <Background>\n <Login />\n </Background>\n )}\n </>\n );\n }}\n </Query>\n </div>\n );\n};\n\nLayout.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n\nexport default Layout;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,KAAK,QAAQ,iCAAiC;AACvD,SAASC,QAAQ,QAAQ,2BAA2B;AACpD,SAASC,KAAK,QAAQ,2BAA2B;AACjD,SAASC,IAAI,QAAQ,cAAc;AACnC,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAO,sCAAsC;AAC7C,OAAOC,MAAM,MAAM,WAAW;AAE9B,MAAMC,MAAM,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EAC/B,MAAM,CAACC,UAAU,EAAEC,WAAW,CAAC,GAAGX,QAAQ,CAAC,IAAI,CAAC;EAChD,MAAMY,WAAW,GAAGA,CAAA,KAAMD,WAAW,CAAC,CAACD,UAAU,CAAC;EAElD,MAAMG,YAAY,GAAGC,MAAM,CAACC,QAAQ,KAAKD,MAAM,CAACE,MAAM,CAACD,QAAQ;EAE/D,MAAME,YAAY,GAAGJ,YAAY,GAAG,qCAAqC,GAAG,EAAE;EAE9E,oBACEd,KAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAG,sCAAqCF,YAAa;EAAE,gBACnElB,KAAA,CAAAmB,aAAA,CAAChB,KAAK;IAACkB,KAAK,EAAEjB,QAAQ,CAAC,oBAAoB,CAAE;IAACkB,WAAW,EAAC;EAAK,GAC5D,CAAC;IAAEC,IAAI,GAAG,CAAC;EAAE,CAAC,KAAK;IAClB,MAAM;MAAEC,OAAO,EAAE;QAAEC,UAAU;QAAEC,QAAQ,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAGH,IAAI;IAE5D,oBACEvB,KAAA,CAAAmB,aAAA,CAAAnB,KAAA,CAAA2B,QAAA,QACG,CAACb,YAAY,iBACZd,KAAA,CAAAmB,aAAA,CAACX,MAAM;MAACiB,UAAU,EAAEA,UAAW;MAACZ,WAAW,EAAEA,WAAY;MAACF,UAAU,EAAEA;IAAW,CAAE,CACpF,EACAc,UAAU,gBACTzB,KAAA,CAAAmB,aAAA,CAAAnB,KAAA,CAAA2B,QAAA,qBACE3B,KAAA,CAAAmB,aAAA,CAACb,IAAI;MACHK,UAAU,EAAEA,UAAW;MACvBE,WAAW,EAAEA,WAAY;MACzBa,QAAQ,EAAEA,QAAS;MACnBZ,YAAY,EAAEA;IAAa,GAC1BJ,QACG,CACN,CAAC,gBAEHV,KAAA,CAAAmB,aAAA,CAACZ,UAAU,qBACTP,KAAA,CAAAmB,aAAA,CAACd,KAAK,MAAE,CACE,CAEd,CAAC;EAEP,CACK,CACJ,CAAC;AAEV,CAAC;AAEDI,MAAM,CAACmB,SAAS,GAAG;EACjBlB,QAAQ,EAAER,SAAS,CAAC2B,SAAS,CAAC,CAAC3B,SAAS,CAAC4B,OAAO,CAAC5B,SAAS,CAAC6B,IAAI,CAAC,EAAE7B,SAAS,CAAC6B,IAAI,CAAC,CAAC,CAACC;AACrF,CAAC;AAED,eAAevB,MAAM"}
@@ -1,69 +1,29 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
- import React, { useState, useEffect } from 'react';
1
+ import React from 'react';
5
2
  import PropTypes from 'prop-types';
6
- import { useApolloClient } from '@apollo/client';
7
- import { getQuery, MainContextProvider } from '@blaze-cms/admin-ui-utils';
8
3
  import SideBar from '../../../SideBar';
9
4
  const Grid = ({
10
5
  children,
11
6
  isOpenMenu,
12
7
  onMenuClick,
13
- userData
14
- }) => {
15
- const [menuItems, setMenuItems] = useState(null);
16
- const client = useApolloClient();
17
- useEffect(() => {
18
- (async () => {
19
- const {
20
- data: {
21
- getMenuItems
22
- }
23
- } = await client.query({
24
- query: getQuery('GET_MENU_ITEMS')
25
- });
26
- const parsedMenuItems = getMenuItems.map(([key, {
27
- header,
28
- items
29
- }]) => [key, {
30
- header,
31
- items: items.map(item => _objectSpread(_objectSpread({}, item), {}, {
32
- isDisplayedPrompt: true
33
- }))
34
- }]);
35
- if (!menuItems) {
36
- setMenuItems(parsedMenuItems);
37
- }
38
- })();
39
- }, [client, menuItems]);
40
- const updateItems = items => {
41
- setMenuItems(items);
42
- };
43
- return menuItems ? /*#__PURE__*/React.createElement(MainContextProvider, {
44
- value: {
45
- menuItems,
46
- setMenuItems: items => updateItems(items)
47
- }
48
- }, /*#__PURE__*/React.createElement("div", {
49
- className: "main-content grid grid--main-content"
50
- }, /*#__PURE__*/React.createElement(SideBar, {
51
- isOpenMenu: isOpenMenu,
52
- menuItems: menuItems,
53
- onMenuClick: onMenuClick,
54
- userData: userData
55
- }), /*#__PURE__*/React.createElement("div", {
56
- className: "grid--main-content-wrapper"
57
- }, children))) : 'loading';
58
- };
8
+ userData,
9
+ simpleLayout
10
+ }) => /*#__PURE__*/React.createElement("div", {
11
+ className: "main-content grid grid--main-content"
12
+ }, !simpleLayout && /*#__PURE__*/React.createElement(SideBar, {
13
+ isOpenMenu: isOpenMenu,
14
+ onMenuClick: onMenuClick,
15
+ userData: userData
16
+ }), children);
59
17
  Grid.propTypes = {
60
18
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
61
19
  isOpenMenu: PropTypes.bool.isRequired,
62
20
  onMenuClick: PropTypes.func.isRequired,
63
- userData: PropTypes.object
21
+ userData: PropTypes.object,
22
+ simpleLayout: PropTypes.bool
64
23
  };
65
24
  Grid.defaultProps = {
66
- userData: {}
25
+ userData: {},
26
+ simpleLayout: false
67
27
  };
68
28
  export default Grid;
69
29
  //# sourceMappingURL=Grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.js","names":["React","useState","useEffect","PropTypes","useApolloClient","getQuery","MainContextProvider","SideBar","Grid","children","isOpenMenu","onMenuClick","userData","menuItems","setMenuItems","client","data","getMenuItems","query","parsedMenuItems","map","key","header","items","item","_objectSpread","isDisplayedPrompt","updateItems","createElement","value","className","propTypes","oneOfType","arrayOf","node","isRequired","bool","func","object","defaultProps"],"sources":["../../../../../src/components/Layout/components/Grid/Grid.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useApolloClient } from '@apollo/client';\nimport { getQuery, MainContextProvider } from '@blaze-cms/admin-ui-utils';\nimport SideBar from '../../../SideBar';\n\nconst Grid = ({ children, isOpenMenu, onMenuClick, userData }) => {\n const [menuItems, setMenuItems] = useState(null);\n const client = useApolloClient();\n\n useEffect(\n () => {\n (async () => {\n const {\n data: { getMenuItems }\n } = await client.query({ query: getQuery('GET_MENU_ITEMS') });\n\n const parsedMenuItems = getMenuItems.map(([key, { header, items }]) => [\n key,\n {\n header,\n items: items.map(item => ({ ...item, isDisplayedPrompt: true }))\n }\n ]);\n\n if (!menuItems) {\n setMenuItems(parsedMenuItems);\n }\n })();\n },\n [client, menuItems]\n );\n\n const updateItems = items => {\n setMenuItems(items);\n };\n\n return menuItems ? (\n <MainContextProvider value={{ menuItems, setMenuItems: items => updateItems(items) }}>\n <div className=\"main-content grid grid--main-content\">\n <SideBar\n isOpenMenu={isOpenMenu}\n menuItems={menuItems}\n onMenuClick={onMenuClick}\n userData={userData}\n />\n <div className=\"grid--main-content-wrapper\">{children}</div>\n </div>\n </MainContextProvider>\n ) : (\n 'loading'\n );\n};\n\nGrid.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n isOpenMenu: PropTypes.bool.isRequired,\n onMenuClick: PropTypes.func.isRequired,\n userData: PropTypes.object\n};\n\nGrid.defaultProps = {\n userData: {}\n};\n\nexport default Grid;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,eAAe,QAAQ,gBAAgB;AAChD,SAASC,QAAQ,EAAEC,mBAAmB,QAAQ,2BAA2B;AACzE,OAAOC,OAAO,MAAM,kBAAkB;AAEtC,MAAMC,IAAI,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,UAAU;EAAEC,WAAW;EAAEC;AAAS,CAAC,KAAK;EAChE,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGb,QAAQ,CAAC,IAAI,CAAC;EAChD,MAAMc,MAAM,GAAGX,eAAe,CAAC,CAAC;EAEhCF,SAAS,CACP,MAAM;IACJ,CAAC,YAAY;MACX,MAAM;QACJc,IAAI,EAAE;UAAEC;QAAa;MACvB,CAAC,GAAG,MAAMF,MAAM,CAACG,KAAK,CAAC;QAAEA,KAAK,EAAEb,QAAQ,CAAC,gBAAgB;MAAE,CAAC,CAAC;MAE7D,MAAMc,eAAe,GAAGF,YAAY,CAACG,GAAG,CAAC,CAAC,CAACC,GAAG,EAAE;QAAEC,MAAM;QAAEC;MAAM,CAAC,CAAC,KAAK,CACrEF,GAAG,EACH;QACEC,MAAM;QACNC,KAAK,EAAEA,KAAK,CAACH,GAAG,CAACI,IAAI,IAAAC,aAAA,CAAAA,aAAA,KAAUD,IAAI;UAAEE,iBAAiB,EAAE;QAAI,EAAG;MACjE,CAAC,CACF,CAAC;MAEF,IAAI,CAACb,SAAS,EAAE;QACdC,YAAY,CAACK,eAAe,CAAC;MAC/B;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EACD,CAACJ,MAAM,EAAEF,SAAS,CACpB,CAAC;EAED,MAAMc,WAAW,GAAGJ,KAAK,IAAI;IAC3BT,YAAY,CAACS,KAAK,CAAC;EACrB,CAAC;EAED,OAAOV,SAAS,gBACdb,KAAA,CAAA4B,aAAA,CAACtB,mBAAmB;IAACuB,KAAK,EAAE;MAAEhB,SAAS;MAAEC,YAAY,EAAES,KAAK,IAAII,WAAW,CAACJ,KAAK;IAAE;EAAE,gBACnFvB,KAAA,CAAA4B,aAAA;IAAKE,SAAS,EAAC;EAAsC,gBACnD9B,KAAA,CAAA4B,aAAA,CAACrB,OAAO;IACNG,UAAU,EAAEA,UAAW;IACvBG,SAAS,EAAEA,SAAU;IACrBF,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA;EAAS,CACpB,CAAC,eACFZ,KAAA,CAAA4B,aAAA;IAAKE,SAAS,EAAC;EAA4B,GAAErB,QAAc,CACxD,CACc,CAAC,GAEtB,SACD;AACH,CAAC;AAEDD,IAAI,CAACuB,SAAS,GAAG;EACftB,QAAQ,EAAEN,SAAS,CAAC6B,SAAS,CAAC,CAAC7B,SAAS,CAAC8B,OAAO,CAAC9B,SAAS,CAAC+B,IAAI,CAAC,EAAE/B,SAAS,CAAC+B,IAAI,CAAC,CAAC,CAACC,UAAU;EAC7FzB,UAAU,EAAEP,SAAS,CAACiC,IAAI,CAACD,UAAU;EACrCxB,WAAW,EAAER,SAAS,CAACkC,IAAI,CAACF,UAAU;EACtCvB,QAAQ,EAAET,SAAS,CAACmC;AACtB,CAAC;AAED9B,IAAI,CAAC+B,YAAY,GAAG;EAClB3B,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,eAAeJ,IAAI"}
1
+ {"version":3,"file":"Grid.js","names":["React","PropTypes","SideBar","Grid","children","isOpenMenu","onMenuClick","userData","simpleLayout","createElement","className","propTypes","oneOfType","arrayOf","node","isRequired","bool","func","object","defaultProps"],"sources":["../../../../../src/components/Layout/components/Grid/Grid.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport SideBar from '../../../SideBar';\n\nconst Grid = ({ children, isOpenMenu, onMenuClick, userData, simpleLayout }) => (\n <div className=\"main-content grid grid--main-content\">\n {!simpleLayout && (\n <SideBar isOpenMenu={isOpenMenu} onMenuClick={onMenuClick} userData={userData} />\n )}\n {children}\n </div>\n);\n\nGrid.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n isOpenMenu: PropTypes.bool.isRequired,\n onMenuClick: PropTypes.func.isRequired,\n userData: PropTypes.object,\n simpleLayout: PropTypes.bool\n};\n\nGrid.defaultProps = {\n userData: {},\n simpleLayout: false\n};\n\nexport default Grid;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,OAAO,MAAM,kBAAkB;AAEtC,MAAMC,IAAI,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,UAAU;EAAEC,WAAW;EAAEC,QAAQ;EAAEC;AAAa,CAAC,kBACzER,KAAA,CAAAS,aAAA;EAAKC,SAAS,EAAC;AAAsC,GAClD,CAACF,YAAY,iBACZR,KAAA,CAAAS,aAAA,CAACP,OAAO;EAACG,UAAU,EAAEA,UAAW;EAACC,WAAW,EAAEA,WAAY;EAACC,QAAQ,EAAEA;AAAS,CAAE,CACjF,EACAH,QACE,CACN;AAEDD,IAAI,CAACQ,SAAS,GAAG;EACfP,QAAQ,EAAEH,SAAS,CAACW,SAAS,CAAC,CAACX,SAAS,CAACY,OAAO,CAACZ,SAAS,CAACa,IAAI,CAAC,EAAEb,SAAS,CAACa,IAAI,CAAC,CAAC,CAACC,UAAU;EAC7FV,UAAU,EAAEJ,SAAS,CAACe,IAAI,CAACD,UAAU;EACrCT,WAAW,EAAEL,SAAS,CAACgB,IAAI,CAACF,UAAU;EACtCR,QAAQ,EAAEN,SAAS,CAACiB,MAAM;EAC1BV,YAAY,EAAEP,SAAS,CAACe;AAC1B,CAAC;AAEDb,IAAI,CAACgB,YAAY,GAAG;EAClBZ,QAAQ,EAAE,CAAC,CAAC;EACZC,YAAY,EAAE;AAChB,CAAC;AAED,eAAeL,IAAI"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ const ChevronDown = () => /*#__PURE__*/React.createElement("svg", {
3
+ xmlns: "http://www.w3.org/2000/svg",
4
+ fill: "none",
5
+ viewBox: "0 0 24 24",
6
+ strokeWidth: 1.5,
7
+ width: "20",
8
+ height: "20",
9
+ stroke: "currentColor"
10
+ }, /*#__PURE__*/React.createElement("path", {
11
+ strokeLinecap: "round",
12
+ strokeLinejoin: "round",
13
+ d: "M19.5 8.25l-7.5 7.5-7.5-7.5"
14
+ }));
15
+ export default ChevronDown;
16
+ //# sourceMappingURL=ChevronDown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChevronDown.js","names":["React","ChevronDown","createElement","xmlns","fill","viewBox","strokeWidth","width","height","stroke","strokeLinecap","strokeLinejoin","d"],"sources":["../../../../src/components/Menu/Icons/ChevronDown.js"],"sourcesContent":["import React from 'react';\n\nconst ChevronDown = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n width=\"20\"\n height=\"20\"\n stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19.5 8.25l-7.5 7.5-7.5-7.5\" />\n </svg>\n);\n\nexport default ChevronDown;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,MAAMC,WAAW,GAAGA,CAAA,kBAClBD,KAAA,CAAAE,aAAA;EACEC,KAAK,EAAC,4BAA4B;EAClCC,IAAI,EAAC,MAAM;EACXC,OAAO,EAAC,WAAW;EACnBC,WAAW,EAAE,GAAI;EACjBC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,MAAM,EAAC;AAAc,gBACrBT,KAAA,CAAAE,aAAA;EAAMQ,aAAa,EAAC,OAAO;EAACC,cAAc,EAAC,OAAO;EAACC,CAAC,EAAC;AAA6B,CAAE,CACjF,CACN;AAED,eAAeX,WAAW"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ const ChevronUp = () => /*#__PURE__*/React.createElement("svg", {
3
+ xmlns: "http://www.w3.org/2000/svg",
4
+ fill: "none",
5
+ viewBox: "0 0 22 22",
6
+ strokeWidth: 1.5,
7
+ width: "20",
8
+ height: "20",
9
+ stroke: "currentColor"
10
+ }, /*#__PURE__*/React.createElement("path", {
11
+ strokeLinecap: "round",
12
+ strokeLinejoin: "round",
13
+ d: "M4.5 15.75l7.5-7.5 7.5 7.5"
14
+ }));
15
+ export default ChevronUp;
16
+ //# sourceMappingURL=ChevronUp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChevronUp.js","names":["React","ChevronUp","createElement","xmlns","fill","viewBox","strokeWidth","width","height","stroke","strokeLinecap","strokeLinejoin","d"],"sources":["../../../../src/components/Menu/Icons/ChevronUp.js"],"sourcesContent":["import React from 'react';\n\nconst ChevronUp = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 22 22\"\n strokeWidth={1.5}\n width=\"20\"\n height=\"20\"\n stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4.5 15.75l7.5-7.5 7.5 7.5\" />\n </svg>\n);\n\nexport default ChevronUp;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,MAAMC,SAAS,GAAGA,CAAA,kBAChBD,KAAA,CAAAE,aAAA;EACEC,KAAK,EAAC,4BAA4B;EAClCC,IAAI,EAAC,MAAM;EACXC,OAAO,EAAC,WAAW;EACnBC,WAAW,EAAE,GAAI;EACjBC,KAAK,EAAC,IAAI;EACVC,MAAM,EAAC,IAAI;EACXC,MAAM,EAAC;AAAc,gBACrBT,KAAA,CAAAE,aAAA;EAAMQ,aAAa,EAAC,OAAO;EAACC,cAAc,EAAC,OAAO;EAACC,CAAC,EAAC;AAA4B,CAAE,CAChF,CACN;AAED,eAAeX,SAAS"}
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { Link } from 'react-router-dom';
3
+ const MenuActionItem = ({
4
+ item
5
+ }) => {
6
+ const {
7
+ label,
8
+ icon: MenuSectionIcon,
9
+ onClick,
10
+ uri
11
+ } = item;
12
+ const modifier = MenuSectionIcon ? '' : 'side-nav__list-link--noIcon';
13
+ return /*#__PURE__*/React.createElement("li", {
14
+ className: "side-nav__list--item",
15
+ key: item.label
16
+ }, /*#__PURE__*/React.createElement(Link, {
17
+ to: uri,
18
+ className: `side-nav__list-link ${modifier}`,
19
+ onClick: () => {
20
+ if (onClick) {
21
+ onClick();
22
+ }
23
+ }
24
+ }, MenuSectionIcon && /*#__PURE__*/React.createElement("div", {
25
+ className: "side-nav__list-link--icon"
26
+ }, /*#__PURE__*/React.createElement(MenuSectionIcon, null)), /*#__PURE__*/React.createElement("div", {
27
+ className: "side-nav__list-label"
28
+ }, label)));
29
+ };
30
+ export default MenuActionItem;
31
+ //# sourceMappingURL=MenuActionItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuActionItem.js","names":["React","Link","MenuActionItem","item","label","icon","MenuSectionIcon","onClick","uri","modifier","createElement","className","key","to"],"sources":["../../../../src/components/Menu/Items/MenuActionItem.js"],"sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst MenuActionItem = ({ item }) => {\n const { label, icon: MenuSectionIcon, onClick, uri } = item;\n\n const modifier = MenuSectionIcon ? '' : 'side-nav__list-link--noIcon';\n\n return (\n <li className=\"side-nav__list--item\" key={item.label}>\n <Link\n to={uri}\n className={`side-nav__list-link ${modifier}`}\n onClick={() => {\n if (onClick) {\n onClick();\n }\n }}>\n {MenuSectionIcon && (\n <div className=\"side-nav__list-link--icon\">\n <MenuSectionIcon />\n </div>\n )}\n <div className=\"side-nav__list-label\">{label}</div>\n </Link>\n </li>\n );\n};\n\nexport default MenuActionItem;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,kBAAkB;AAEvC,MAAMC,cAAc,GAAGA,CAAC;EAAEC;AAAK,CAAC,KAAK;EACnC,MAAM;IAAEC,KAAK;IAAEC,IAAI,EAAEC,eAAe;IAAEC,OAAO;IAAEC;EAAI,CAAC,GAAGL,IAAI;EAE3D,MAAMM,QAAQ,GAAGH,eAAe,GAAG,EAAE,GAAG,6BAA6B;EAErE,oBACEN,KAAA,CAAAU,aAAA;IAAIC,SAAS,EAAC,sBAAsB;IAACC,GAAG,EAAET,IAAI,CAACC;EAAM,gBACnDJ,KAAA,CAAAU,aAAA,CAACT,IAAI;IACHY,EAAE,EAAEL,GAAI;IACRG,SAAS,EAAG,uBAAsBF,QAAS,EAAE;IAC7CF,OAAO,EAAEA,CAAA,KAAM;MACb,IAAIA,OAAO,EAAE;QACXA,OAAO,CAAC,CAAC;MACX;IACF;EAAE,GACDD,eAAe,iBACdN,KAAA,CAAAU,aAAA;IAAKC,SAAS,EAAC;EAA2B,gBACxCX,KAAA,CAAAU,aAAA,CAACJ,eAAe,MAAE,CACf,CACN,eACDN,KAAA,CAAAU,aAAA;IAAKC,SAAS,EAAC;EAAsB,GAAEP,KAAW,CAC9C,CACJ,CAAC;AAET,CAAC;AAED,eAAeF,cAAc"}
@@ -0,0 +1,64 @@
1
+ import React from 'react';
2
+ import { useLocation } from 'react-router-dom';
3
+ import MenuLinkItem from './MenuLinkItem';
4
+ const MenuItem = ({
5
+ item,
6
+ RenderItems
7
+ }) => {
8
+ const location = useLocation();
9
+ const {
10
+ label,
11
+ items,
12
+ uri
13
+ } = item;
14
+ if (label && uri) {
15
+ const isActive = location.pathname === uri;
16
+ return /*#__PURE__*/React.createElement(MenuLinkItem, {
17
+ item: item,
18
+ isActive: isActive,
19
+ root: true
20
+ });
21
+ }
22
+ if (label && items && Object.values(items).length > 0) {
23
+ const childrenMenu = Object.keys(items).map(key => items[key]);
24
+ const childrenComponents = childrenMenu.map(child => {
25
+ const {
26
+ label: childLabel,
27
+ uri: childUri
28
+ } = child;
29
+ const isActive = location.pathname === childUri;
30
+ if (childLabel && childUri) {
31
+ return /*#__PURE__*/React.createElement(MenuLinkItem, {
32
+ item: child,
33
+ isActive: isActive,
34
+ root: false
35
+ });
36
+ }
37
+ return null;
38
+ });
39
+ return /*#__PURE__*/React.createElement(RenderItems, {
40
+ item: item
41
+ }, childrenComponents);
42
+ }
43
+ if (!label && items) {
44
+ const childrenMenu = Object.keys(items).map(key => items[key]);
45
+ return childrenMenu.map(child => {
46
+ const {
47
+ label: childLabel,
48
+ uri: childUri
49
+ } = child;
50
+ const isActive = location.pathname === childUri;
51
+ if (childLabel && childUri) {
52
+ return /*#__PURE__*/React.createElement(MenuLinkItem, {
53
+ item: child,
54
+ isActive: isActive,
55
+ root: true
56
+ });
57
+ }
58
+ return null;
59
+ });
60
+ }
61
+ return null;
62
+ };
63
+ export default MenuItem;
64
+ //# sourceMappingURL=MenuItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuItem.js","names":["React","useLocation","MenuLinkItem","MenuItem","item","RenderItems","location","label","items","uri","isActive","pathname","createElement","root","Object","values","length","childrenMenu","keys","map","key","childrenComponents","child","childLabel","childUri"],"sources":["../../../../src/components/Menu/Items/MenuItem.js"],"sourcesContent":["import React from 'react';\nimport { useLocation } from 'react-router-dom';\nimport MenuLinkItem from './MenuLinkItem';\n\nconst MenuItem = ({ item, RenderItems }) => {\n const location = useLocation();\n const { label, items, uri } = item;\n\n if (label && uri) {\n const isActive = location.pathname === uri;\n return <MenuLinkItem item={item} isActive={isActive} root />;\n }\n\n if (label && items && Object.values(items).length > 0) {\n const childrenMenu = Object.keys(items).map(key => items[key]);\n\n const childrenComponents = childrenMenu.map(child => {\n const { label: childLabel, uri: childUri } = child;\n const isActive = location.pathname === childUri;\n\n if (childLabel && childUri) {\n return <MenuLinkItem item={child} isActive={isActive} root={false} />;\n }\n\n return null;\n });\n\n return <RenderItems item={item}>{childrenComponents}</RenderItems>;\n }\n\n if (!label && items) {\n const childrenMenu = Object.keys(items).map(key => items[key]);\n\n return childrenMenu.map(child => {\n const { label: childLabel, uri: childUri } = child;\n const isActive = location.pathname === childUri;\n\n if (childLabel && childUri) {\n return <MenuLinkItem item={child} isActive={isActive} root />;\n }\n\n return null;\n });\n }\n\n return null;\n};\n\nexport default MenuItem;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,OAAOC,YAAY,MAAM,gBAAgB;AAEzC,MAAMC,QAAQ,GAAGA,CAAC;EAAEC,IAAI;EAAEC;AAAY,CAAC,KAAK;EAC1C,MAAMC,QAAQ,GAAGL,WAAW,CAAC,CAAC;EAC9B,MAAM;IAAEM,KAAK;IAAEC,KAAK;IAAEC;EAAI,CAAC,GAAGL,IAAI;EAElC,IAAIG,KAAK,IAAIE,GAAG,EAAE;IAChB,MAAMC,QAAQ,GAAGJ,QAAQ,CAACK,QAAQ,KAAKF,GAAG;IAC1C,oBAAOT,KAAA,CAAAY,aAAA,CAACV,YAAY;MAACE,IAAI,EAAEA,IAAK;MAACM,QAAQ,EAAEA,QAAS;MAACG,IAAI;IAAA,CAAE,CAAC;EAC9D;EAEA,IAAIN,KAAK,IAAIC,KAAK,IAAIM,MAAM,CAACC,MAAM,CAACP,KAAK,CAAC,CAACQ,MAAM,GAAG,CAAC,EAAE;IACrD,MAAMC,YAAY,GAAGH,MAAM,CAACI,IAAI,CAACV,KAAK,CAAC,CAACW,GAAG,CAACC,GAAG,IAAIZ,KAAK,CAACY,GAAG,CAAC,CAAC;IAE9D,MAAMC,kBAAkB,GAAGJ,YAAY,CAACE,GAAG,CAACG,KAAK,IAAI;MACnD,MAAM;QAAEf,KAAK,EAAEgB,UAAU;QAAEd,GAAG,EAAEe;MAAS,CAAC,GAAGF,KAAK;MAClD,MAAMZ,QAAQ,GAAGJ,QAAQ,CAACK,QAAQ,KAAKa,QAAQ;MAE/C,IAAID,UAAU,IAAIC,QAAQ,EAAE;QAC1B,oBAAOxB,KAAA,CAAAY,aAAA,CAACV,YAAY;UAACE,IAAI,EAAEkB,KAAM;UAACZ,QAAQ,EAAEA,QAAS;UAACG,IAAI,EAAE;QAAM,CAAE,CAAC;MACvE;MAEA,OAAO,IAAI;IACb,CAAC,CAAC;IAEF,oBAAOb,KAAA,CAAAY,aAAA,CAACP,WAAW;MAACD,IAAI,EAAEA;IAAK,GAAEiB,kBAAgC,CAAC;EACpE;EAEA,IAAI,CAACd,KAAK,IAAIC,KAAK,EAAE;IACnB,MAAMS,YAAY,GAAGH,MAAM,CAACI,IAAI,CAACV,KAAK,CAAC,CAACW,GAAG,CAACC,GAAG,IAAIZ,KAAK,CAACY,GAAG,CAAC,CAAC;IAE9D,OAAOH,YAAY,CAACE,GAAG,CAACG,KAAK,IAAI;MAC/B,MAAM;QAAEf,KAAK,EAAEgB,UAAU;QAAEd,GAAG,EAAEe;MAAS,CAAC,GAAGF,KAAK;MAClD,MAAMZ,QAAQ,GAAGJ,QAAQ,CAACK,QAAQ,KAAKa,QAAQ;MAE/C,IAAID,UAAU,IAAIC,QAAQ,EAAE;QAC1B,oBAAOxB,KAAA,CAAAY,aAAA,CAACV,YAAY;UAACE,IAAI,EAAEkB,KAAM;UAACZ,QAAQ,EAAEA,QAAS;UAACG,IAAI;QAAA,CAAE,CAAC;MAC/D;MAEA,OAAO,IAAI;IACb,CAAC,CAAC;EACJ;EAEA,OAAO,IAAI;AACb,CAAC;AAED,eAAeV,QAAQ"}
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { Link } from 'react-router-dom';
3
+ const MenuLinkItem = ({
4
+ item,
5
+ isActive,
6
+ root = true
7
+ }) => {
8
+ const {
9
+ label,
10
+ icon: MenuSectionIcon,
11
+ uri
12
+ } = item;
13
+ const modifier = MenuSectionIcon ? '' : 'side-nav__list-link--noIcon';
14
+ const activeModifier = isActive ? 'side-nav__list-link--active' : '';
15
+ return /*#__PURE__*/React.createElement("li", {
16
+ className: "side-nav__list--item",
17
+ key: item.label
18
+ }, /*#__PURE__*/React.createElement(Link, {
19
+ to: uri,
20
+ className: `side-nav__list-link ${modifier} ${activeModifier}`
21
+ }, MenuSectionIcon && /*#__PURE__*/React.createElement("div", {
22
+ className: "side-nav__list-link--icon"
23
+ }, /*#__PURE__*/React.createElement(MenuSectionIcon, null)), /*#__PURE__*/React.createElement("div", {
24
+ className: "side-nav__list-link--label"
25
+ }, label)));
26
+ };
27
+ export default MenuLinkItem;
28
+ //# sourceMappingURL=MenuLinkItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuLinkItem.js","names":["React","Link","MenuLinkItem","item","isActive","root","label","icon","MenuSectionIcon","uri","modifier","activeModifier","createElement","className","key","to"],"sources":["../../../../src/components/Menu/Items/MenuLinkItem.js"],"sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst MenuLinkItem = ({ item, isActive, root = true }) => {\n const { label, icon: MenuSectionIcon, uri } = item;\n\n const modifier = MenuSectionIcon ? '' : 'side-nav__list-link--noIcon';\n\n const activeModifier = isActive ? 'side-nav__list-link--active' : '';\n\n return (\n <li className=\"side-nav__list--item\" key={item.label}>\n <Link to={uri} className={`side-nav__list-link ${modifier} ${activeModifier}`}>\n {MenuSectionIcon && (\n <div className=\"side-nav__list-link--icon\">\n <MenuSectionIcon />\n </div>\n )}\n <div className=\"side-nav__list-link--label\">{label}</div>\n </Link>\n </li>\n );\n};\n\nexport default MenuLinkItem;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,kBAAkB;AAEvC,MAAMC,YAAY,GAAGA,CAAC;EAAEC,IAAI;EAAEC,QAAQ;EAAEC,IAAI,GAAG;AAAK,CAAC,KAAK;EACxD,MAAM;IAAEC,KAAK;IAAEC,IAAI,EAAEC,eAAe;IAAEC;EAAI,CAAC,GAAGN,IAAI;EAElD,MAAMO,QAAQ,GAAGF,eAAe,GAAG,EAAE,GAAG,6BAA6B;EAErE,MAAMG,cAAc,GAAGP,QAAQ,GAAG,6BAA6B,GAAG,EAAE;EAEpE,oBACEJ,KAAA,CAAAY,aAAA;IAAIC,SAAS,EAAC,sBAAsB;IAACC,GAAG,EAAEX,IAAI,CAACG;EAAM,gBACnDN,KAAA,CAAAY,aAAA,CAACX,IAAI;IAACc,EAAE,EAAEN,GAAI;IAACI,SAAS,EAAG,uBAAsBH,QAAS,IAAGC,cAAe;EAAE,GAC3EH,eAAe,iBACdR,KAAA,CAAAY,aAAA;IAAKC,SAAS,EAAC;EAA2B,gBACxCb,KAAA,CAAAY,aAAA,CAACJ,eAAe,MAAE,CACf,CACN,eACDR,KAAA,CAAAY,aAAA;IAAKC,SAAS,EAAC;EAA4B,GAAEP,KAAW,CACpD,CACJ,CAAC;AAET,CAAC;AAED,eAAeJ,YAAY"}
@@ -0,0 +1,40 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import menuHandler from '../../utils/menu-handler-singleton';
4
+ import MenuSection from './Section/MenuSection';
5
+ const Menu = ({
6
+ children
7
+ }) => {
8
+ const [config, setConfig] = useState();
9
+ useEffect(() => {
10
+ const loadConfig = async () => {
11
+ await menuHandler.loadConfig();
12
+ };
13
+ loadConfig().then(() => setConfig(menuHandler.getAll()));
14
+ }, []);
15
+ const MenuSections = () => {
16
+ if (!config) return null;
17
+ return config.map(sections => {
18
+ if (!sections || !Array.isArray(sections) || !sections.length) {
19
+ return null;
20
+ }
21
+ const menuSections = sections.filter(section => section.items);
22
+ return menuSections.map(menuSection => /*#__PURE__*/React.createElement(MenuSection, {
23
+ items: menuSection
24
+ }));
25
+ });
26
+ };
27
+ return /*#__PURE__*/React.createElement("div", {
28
+ className: "side-nav__block"
29
+ }, /*#__PURE__*/React.createElement("ul", {
30
+ className: "side-nav__list"
31
+ }, /*#__PURE__*/React.createElement(MenuSections, null)));
32
+ };
33
+ Menu.propTypes = {
34
+ children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])
35
+ };
36
+ Menu.defaultProps = {
37
+ children: null
38
+ };
39
+ export default Menu;
40
+ //# sourceMappingURL=Menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.js","names":["React","useState","useEffect","PropTypes","menuHandler","MenuSection","Menu","children","config","setConfig","loadConfig","then","getAll","MenuSections","map","sections","Array","isArray","length","menuSections","filter","section","items","menuSection","createElement","className","propTypes","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/Menu/Menu.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport menuHandler from '../../utils/menu-handler-singleton';\nimport MenuSection from './Section/MenuSection';\n\nconst Menu = ({ children }) => {\n const [config, setConfig] = useState();\n\n useEffect(() => {\n const loadConfig = async () => {\n await menuHandler.loadConfig();\n };\n\n loadConfig().then(() => setConfig(menuHandler.getAll()));\n }, []);\n\n const MenuSections = () => {\n if (!config) return null;\n\n return config.map(sections => {\n if (!sections || !Array.isArray(sections) || !sections.length) {\n return null;\n }\n\n const menuSections = sections.filter(section => section.items);\n\n return menuSections.map(menuSection => <MenuSection items={menuSection} />);\n });\n };\n\n return (\n <div className=\"side-nav__block\">\n <ul className=\"side-nav__list\">\n <MenuSections />\n </ul>\n </div>\n );\n};\n\nMenu.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenu.defaultProps = {\n children: null\n};\n\nexport default Menu;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,WAAW,MAAM,oCAAoC;AAC5D,OAAOC,WAAW,MAAM,uBAAuB;AAE/C,MAAMC,IAAI,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EAC7B,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGR,QAAQ,CAAC,CAAC;EAEtCC,SAAS,CAAC,MAAM;IACd,MAAMQ,UAAU,GAAG,MAAAA,CAAA,KAAY;MAC7B,MAAMN,WAAW,CAACM,UAAU,CAAC,CAAC;IAChC,CAAC;IAEDA,UAAU,CAAC,CAAC,CAACC,IAAI,CAAC,MAAMF,SAAS,CAACL,WAAW,CAACQ,MAAM,CAAC,CAAC,CAAC,CAAC;EAC1D,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,YAAY,GAAGA,CAAA,KAAM;IACzB,IAAI,CAACL,MAAM,EAAE,OAAO,IAAI;IAExB,OAAOA,MAAM,CAACM,GAAG,CAACC,QAAQ,IAAI;MAC5B,IAAI,CAACA,QAAQ,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,IAAI,CAACA,QAAQ,CAACG,MAAM,EAAE;QAC7D,OAAO,IAAI;MACb;MAEA,MAAMC,YAAY,GAAGJ,QAAQ,CAACK,MAAM,CAACC,OAAO,IAAIA,OAAO,CAACC,KAAK,CAAC;MAE9D,OAAOH,YAAY,CAACL,GAAG,CAACS,WAAW,iBAAIvB,KAAA,CAAAwB,aAAA,CAACnB,WAAW;QAACiB,KAAK,EAAEC;MAAY,CAAE,CAAC,CAAC;IAC7E,CAAC,CAAC;EACJ,CAAC;EAED,oBACEvB,KAAA,CAAAwB,aAAA;IAAKC,SAAS,EAAC;EAAiB,gBAC9BzB,KAAA,CAAAwB,aAAA;IAAIC,SAAS,EAAC;EAAgB,gBAC5BzB,KAAA,CAAAwB,aAAA,CAACX,YAAY,MAAE,CACb,CACD,CAAC;AAEV,CAAC;AAEDP,IAAI,CAACoB,SAAS,GAAG;EACfnB,QAAQ,EAAEJ,SAAS,CAACwB,SAAS,CAAC,CAACxB,SAAS,CAACyB,OAAO,CAACzB,SAAS,CAAC0B,IAAI,CAAC,EAAE1B,SAAS,CAAC0B,IAAI,CAAC;AACnF,CAAC;AAEDvB,IAAI,CAACwB,YAAY,GAAG;EAClBvB,QAAQ,EAAE;AACZ,CAAC;AAED,eAAeD,IAAI"}
@@ -0,0 +1,18 @@
1
+ import PropTypes from 'prop-types';
2
+ import React from 'react';
3
+ import MenuSectionItems from './MenuSectionItems';
4
+ const MenuSection = ({
5
+ items,
6
+ children
7
+ }) => /*#__PURE__*/React.createElement(MenuSectionItems, {
8
+ sectionItems: items
9
+ });
10
+ MenuSection.propTypes = {
11
+ children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
12
+ items: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired
13
+ };
14
+ MenuSection.defaultProps = {
15
+ children: null
16
+ };
17
+ export default MenuSection;
18
+ //# sourceMappingURL=MenuSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuSection.js","names":["PropTypes","React","MenuSectionItems","MenuSection","items","children","createElement","sectionItems","propTypes","oneOfType","arrayOf","node","isRequired","defaultProps"],"sources":["../../../../src/components/Menu/Section/MenuSection.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport MenuSectionItems from './MenuSectionItems';\n\nconst MenuSection = ({ items, children }) => <MenuSectionItems sectionItems={items} />;\n\nMenuSection.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n items: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n\nMenuSection.defaultProps = {\n children: null\n};\n\nexport default MenuSection;\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,YAAY;AAClC,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,gBAAgB,MAAM,oBAAoB;AAEjD,MAAMC,WAAW,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAS,CAAC,kBAAKJ,KAAA,CAAAK,aAAA,CAACJ,gBAAgB;EAACK,YAAY,EAAEH;AAAM,CAAE,CAAC;AAEtFD,WAAW,CAACK,SAAS,GAAG;EACtBH,QAAQ,EAAEL,SAAS,CAACS,SAAS,CAAC,CAACT,SAAS,CAACU,OAAO,CAACV,SAAS,CAACW,IAAI,CAAC,EAAEX,SAAS,CAACW,IAAI,CAAC,CAAC;EAClFP,KAAK,EAAEJ,SAAS,CAACS,SAAS,CAAC,CAACT,SAAS,CAACU,OAAO,CAACV,SAAS,CAACW,IAAI,CAAC,EAAEX,SAAS,CAACW,IAAI,CAAC,CAAC,CAACC;AAClF,CAAC;AAEDT,WAAW,CAACU,YAAY,GAAG;EACzBR,QAAQ,EAAE;AACZ,CAAC;AAED,eAAeF,WAAW"}
@@ -0,0 +1,67 @@
1
+ import React, { useState } from 'react';
2
+ import ChevronDown from '../Icons/ChevronDown';
3
+ import ChevronUp from '../Icons/ChevronUp';
4
+ const capitalise = s => {
5
+ if (typeof s !== 'string') return '';
6
+ return s.charAt(0).toUpperCase() + s.slice(1);
7
+ };
8
+ const MenuSectionCollapsible = ({
9
+ name,
10
+ item,
11
+ children
12
+ }) => {
13
+ const {
14
+ label,
15
+ loadOpen,
16
+ icon: MenuSectionIcon,
17
+ items
18
+ } = item;
19
+ const [collapsed, setCollapsed] = useState(!loadOpen);
20
+ const CollapseIcon = () => collapsed ? /*#__PURE__*/React.createElement(ChevronDown, null) : /*#__PURE__*/React.createElement(ChevronUp, null);
21
+ const handleClick = () => {
22
+ setCollapsed(!collapsed);
23
+ };
24
+ const modifier = collapsed ? 'side-nav__list--item' : 'side-nav__list--item__selected';
25
+ const buttonModifier = collapsed ? 'side-nav__list-link' : 'side-nav__list-link--selected';
26
+ if (name) {
27
+ return /*#__PURE__*/React.createElement("li", {
28
+ className: modifier
29
+ }, /*#__PURE__*/React.createElement("button", {
30
+ type: "button",
31
+ className: buttonModifier,
32
+ onClick: handleClick
33
+ }, /*#__PURE__*/React.createElement("div", {
34
+ className: "side-nav__list-link--icon"
35
+ }, MenuSectionIcon && /*#__PURE__*/React.createElement(MenuSectionIcon, null)), /*#__PURE__*/React.createElement("div", {
36
+ className: "side-nav__list-link--wrapper"
37
+ }, /*#__PURE__*/React.createElement("div", {
38
+ className: "side-nav__list-link--label"
39
+ }, capitalise(name)), /*#__PURE__*/React.createElement("div", {
40
+ className: "side-nav__list-link--toggleCollapseIcon",
41
+ role: "button"
42
+ }, /*#__PURE__*/React.createElement(CollapseIcon, null)))), /*#__PURE__*/React.createElement("div", {
43
+ className: "side-nav__list-link--children"
44
+ }, collapsed ? null : children));
45
+ }
46
+ if (label && items && Object.keys(items).length > 0) {
47
+ return /*#__PURE__*/React.createElement("li", {
48
+ className: modifier
49
+ }, children);
50
+ }
51
+ if (label && items && Object.keys(items).length === 0) {
52
+ return /*#__PURE__*/React.createElement("li", {
53
+ className: modifier
54
+ }, /*#__PURE__*/React.createElement("button", {
55
+ type: "button",
56
+ className: "side-nav__list-link",
57
+ onClick: handleClick
58
+ }, /*#__PURE__*/React.createElement("div", {
59
+ className: "side-nav__list-link--icon"
60
+ }, MenuSectionIcon && /*#__PURE__*/React.createElement(MenuSectionIcon, null)), /*#__PURE__*/React.createElement("div", {
61
+ className: "side-nav__list-label"
62
+ }, label)));
63
+ }
64
+ return null;
65
+ };
66
+ export default MenuSectionCollapsible;
67
+ //# sourceMappingURL=MenuSectionCollapsible.js.map