@blaze-cms/plugin-admin-core-ui 0.146.0-node18-core-styles-tooltips.45 → 0.146.0-node18-core-styles-tooltips.54
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/CHANGELOG.md +16 -0
- package/lib-es/components/Header/Header.js +28 -0
- package/lib-es/components/Header/Header.js.map +1 -0
- package/lib-es/components/Header/components/Language/Language.js +14 -0
- package/lib-es/components/Header/components/Language/Language.js.map +1 -0
- package/lib-es/components/Header/components/Language/index.js +3 -0
- package/lib-es/components/Header/components/Language/index.js.map +1 -0
- package/lib-es/components/Header/components/Logo/Logo.js +29 -0
- package/lib-es/components/Header/components/Logo/Logo.js.map +1 -0
- package/lib-es/components/Header/components/Logo/index.js +3 -0
- package/lib-es/components/Header/components/Logo/index.js.map +1 -0
- package/lib-es/components/Header/components/Menu/Menu.js +33 -0
- package/lib-es/components/Header/components/Menu/Menu.js.map +1 -0
- package/lib-es/components/Header/components/Menu/index.js +3 -0
- package/lib-es/components/Header/components/Menu/index.js.map +1 -0
- package/lib-es/components/Header/components/index.js +5 -0
- package/lib-es/components/Header/components/index.js.map +1 -0
- package/lib-es/components/Header/index.js +3 -0
- package/lib-es/components/Header/index.js.map +1 -0
- package/lib-es/components/Layout/Background.js +16 -0
- package/lib-es/components/Layout/Background.js.map +1 -0
- package/lib-es/components/Layout/Layout.js +48 -0
- package/lib-es/components/Layout/Layout.js.map +1 -0
- package/lib-es/components/Layout/components/Grid/Grid.js +29 -0
- package/lib-es/components/Layout/components/Grid/Grid.js.map +1 -0
- package/lib-es/components/Layout/components/Grid/index.js +3 -0
- package/lib-es/components/Layout/components/Grid/index.js.map +1 -0
- package/lib-es/components/Layout/components/index.js +3 -0
- package/lib-es/components/Layout/components/index.js.map +1 -0
- package/lib-es/components/Menu/Icons/ChevronDown.js +19 -0
- package/lib-es/components/Menu/Icons/ChevronDown.js.map +1 -0
- package/lib-es/components/Menu/Icons/ChevronUp.js +19 -0
- package/lib-es/components/Menu/Icons/ChevronUp.js.map +1 -0
- package/lib-es/components/Menu/Items/MenuActionItem.js +34 -0
- package/lib-es/components/Menu/Items/MenuActionItem.js.map +1 -0
- package/lib-es/components/Menu/Items/MenuItem.js +64 -0
- package/lib-es/components/Menu/Items/MenuItem.js.map +1 -0
- package/lib-es/components/Menu/Items/MenuLinkItem.js +31 -0
- package/lib-es/components/Menu/Items/MenuLinkItem.js.map +1 -0
- package/lib-es/components/Menu/Menu.js +40 -0
- package/lib-es/components/Menu/Menu.js.map +1 -0
- package/lib-es/components/Menu/Section/MenuSection.js +18 -0
- package/lib-es/components/Menu/Section/MenuSection.js.map +1 -0
- package/lib-es/components/Menu/Section/MenuSectionCollapsible.js +71 -0
- package/lib-es/components/Menu/Section/MenuSectionCollapsible.js.map +1 -0
- package/lib-es/components/Menu/Section/MenuSectionItem.js +30 -0
- package/lib-es/components/Menu/Section/MenuSectionItem.js.map +1 -0
- package/lib-es/components/Menu/Section/MenuSectionItems.js +20 -0
- package/lib-es/components/Menu/Section/MenuSectionItems.js.map +1 -0
- package/lib-es/components/Menu/index.js +3 -0
- package/lib-es/components/Menu/index.js.map +1 -0
- package/lib-es/components/SideBar/SideBar.js +71 -0
- package/lib-es/components/SideBar/SideBar.js.map +1 -0
- package/lib-es/components/SideBar/components/SideBlock.js +48 -0
- package/lib-es/components/SideBar/components/SideBlock.js.map +1 -0
- package/lib-es/components/SideBar/components/SideBlockItem.js +19 -0
- package/lib-es/components/SideBar/components/SideBlockItem.js.map +1 -0
- package/lib-es/components/SideBar/components/index.js +3 -0
- package/lib-es/components/SideBar/components/index.js.map +1 -0
- package/lib-es/components/SideBar/index.js +3 -0
- package/lib-es/components/SideBar/index.js.map +1 -0
- package/lib-es/components/index.js +3 -0
- package/lib-es/components/index.js.map +1 -0
- package/lib-es/constants.js +15 -0
- package/lib-es/constants.js.map +1 -0
- package/lib-es/containers/Home/Home.js +5 -0
- package/lib-es/containers/Home/Home.js.map +1 -0
- package/lib-es/containers/index.js +3 -0
- package/lib-es/containers/index.js.map +1 -0
- package/lib-es/index.js +32 -0
- package/lib-es/index.js.map +1 -0
- package/lib-es/utils/get-menu-items-resolver.js +14 -0
- package/lib-es/utils/get-menu-items-resolver.js.map +1 -0
- package/lib-es/utils/menu-handler-singleton.js +66 -0
- package/lib-es/utils/menu-handler-singleton.js.map +1 -0
- package/lib-es/utils/menu-handler.js +49 -0
- package/lib-es/utils/menu-handler.js.map +1 -0
- package/package.json +9 -8
|
@@ -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","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
if (name) {
|
|
25
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
26
|
+
className: "side-nav__list--item"
|
|
27
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
28
|
+
type: "button",
|
|
29
|
+
className: "side-nav__list-link",
|
|
30
|
+
onClick: handleClick
|
|
31
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
32
|
+
className: "side-nav__list-link--icon"
|
|
33
|
+
}, MenuSectionIcon && /*#__PURE__*/React.createElement(MenuSectionIcon, {
|
|
34
|
+
width: "20px",
|
|
35
|
+
height: "20px"
|
|
36
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
37
|
+
className: "side-nav__list-link--wrapper"
|
|
38
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
39
|
+
className: "side-nav__list-link--label"
|
|
40
|
+
}, capitalise(label) || capitalise(name)), /*#__PURE__*/React.createElement("div", {
|
|
41
|
+
className: "side-nav__list-link--toggleCollapseIcon",
|
|
42
|
+
role: "button"
|
|
43
|
+
}, /*#__PURE__*/React.createElement(CollapseIcon, null)))), /*#__PURE__*/React.createElement("div", {
|
|
44
|
+
className: "side-nav__list-link--children"
|
|
45
|
+
}, collapsed ? null : children));
|
|
46
|
+
}
|
|
47
|
+
if (label && items && Object.keys(items).length > 0) {
|
|
48
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
49
|
+
className: "side-nav__list--item"
|
|
50
|
+
}, children);
|
|
51
|
+
}
|
|
52
|
+
if (label && items && Object.keys(items).length === 0) {
|
|
53
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
54
|
+
className: "side-nav__list--item"
|
|
55
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
56
|
+
type: "button",
|
|
57
|
+
className: "side-nav__list-link",
|
|
58
|
+
onClick: handleClick
|
|
59
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
60
|
+
className: "side-nav__list-link--icon"
|
|
61
|
+
}, MenuSectionIcon && /*#__PURE__*/React.createElement(MenuSectionIcon, {
|
|
62
|
+
width: "20px",
|
|
63
|
+
height: "20px"
|
|
64
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
65
|
+
className: "side-nav__list-label"
|
|
66
|
+
}, label)));
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
};
|
|
70
|
+
export default MenuSectionCollapsible;
|
|
71
|
+
//# sourceMappingURL=MenuSectionCollapsible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuSectionCollapsible.js","names":["React","useState","ChevronDown","ChevronUp","capitalise","s","charAt","toUpperCase","slice","MenuSectionCollapsible","name","item","children","label","loadOpen","icon","MenuSectionIcon","items","collapsed","setCollapsed","CollapseIcon","createElement","handleClick","className","type","onClick","width","height","role","Object","keys","length"],"sources":["../../../../src/components/Menu/Section/MenuSectionCollapsible.js"],"sourcesContent":["import React, { useState } from 'react';\nimport ChevronDown from '../Icons/ChevronDown';\nimport ChevronUp from '../Icons/ChevronUp';\n\nconst capitalise = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n};\n\nconst MenuSectionCollapsible = ({ name, item, children }) => {\n const { label, loadOpen, icon: MenuSectionIcon, items } = item;\n const [collapsed, setCollapsed] = useState(!loadOpen);\n\n const CollapseIcon = () => (collapsed ? <ChevronDown /> : <ChevronUp />);\n\n const handleClick = () => {\n setCollapsed(!collapsed);\n };\n\n if (name) {\n return (\n <li className=\"side-nav__list--item\">\n <button type=\"button\" className=\"side-nav__list-link\" onClick={handleClick}>\n <div className=\"side-nav__list-link--icon\">\n {MenuSectionIcon && <MenuSectionIcon width=\"20px\" height=\"20px\" />}\n </div>\n <div className=\"side-nav__list-link--wrapper\">\n <div className=\"side-nav__list-link--label\">\n {capitalise(label) || capitalise(name)}\n </div>\n <div className=\"side-nav__list-link--toggleCollapseIcon\" role=\"button\">\n <CollapseIcon />\n </div>\n </div>\n </button>\n <div className=\"side-nav__list-link--children\">{collapsed ? null : children}</div>\n </li>\n );\n }\n\n if (label && items && Object.keys(items).length > 0) {\n return <li className=\"side-nav__list--item\">{children}</li>;\n }\n\n if (label && items && Object.keys(items).length === 0) {\n return (\n <li className=\"side-nav__list--item\">\n <button type=\"button\" className=\"side-nav__list-link\" onClick={handleClick}>\n <div className=\"side-nav__list-link--icon\">\n {MenuSectionIcon && <MenuSectionIcon width=\"20px\" height=\"20px\" />}\n </div>\n <div className=\"side-nav__list-label\">{label}</div>\n </button>\n </li>\n );\n }\n\n return null;\n};\n\nexport default MenuSectionCollapsible;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,WAAW,MAAM,sBAAsB;AAC9C,OAAOC,SAAS,MAAM,oBAAoB;AAE1C,MAAMC,UAAU,GAAGC,CAAC,IAAI;EACtB,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE,OAAO,EAAE;EACpC,OAAOA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGF,CAAC,CAACG,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAMC,sBAAsB,GAAGA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC;AAAS,CAAC,KAAK;EAC3D,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,IAAI,EAAEC,eAAe;IAAEC;EAAM,CAAC,GAAGN,IAAI;EAC9D,MAAM,CAACO,SAAS,EAAEC,YAAY,CAAC,GAAGlB,QAAQ,CAAC,CAACa,QAAQ,CAAC;EAErD,MAAMM,YAAY,GAAGA,CAAA,KAAOF,SAAS,gBAAGlB,KAAA,CAAAqB,aAAA,CAACnB,WAAW,MAAE,CAAC,gBAAGF,KAAA,CAAAqB,aAAA,CAAClB,SAAS,MAAE,CAAE;EAExE,MAAMmB,WAAW,GAAGA,CAAA,KAAM;IACxBH,YAAY,CAAC,CAACD,SAAS,CAAC;EAC1B,CAAC;EAED,IAAIR,IAAI,EAAE;IACR,oBACEV,KAAA,CAAAqB,aAAA;MAAIE,SAAS,EAAC;IAAsB,gBAClCvB,KAAA,CAAAqB,aAAA;MAAQG,IAAI,EAAC,QAAQ;MAACD,SAAS,EAAC,qBAAqB;MAACE,OAAO,EAAEH;IAAY,gBACzEtB,KAAA,CAAAqB,aAAA;MAAKE,SAAS,EAAC;IAA2B,GACvCP,eAAe,iBAAIhB,KAAA,CAAAqB,aAAA,CAACL,eAAe;MAACU,KAAK,EAAC,MAAM;MAACC,MAAM,EAAC;IAAM,CAAE,CAC9D,CAAC,eACN3B,KAAA,CAAAqB,aAAA;MAAKE,SAAS,EAAC;IAA8B,gBAC3CvB,KAAA,CAAAqB,aAAA;MAAKE,SAAS,EAAC;IAA4B,GACxCnB,UAAU,CAACS,KAAK,CAAC,IAAIT,UAAU,CAACM,IAAI,CAClC,CAAC,eACNV,KAAA,CAAAqB,aAAA;MAAKE,SAAS,EAAC,yCAAyC;MAACK,IAAI,EAAC;IAAQ,gBACpE5B,KAAA,CAAAqB,aAAA,CAACD,YAAY,MAAE,CACZ,CACF,CACC,CAAC,eACTpB,KAAA,CAAAqB,aAAA;MAAKE,SAAS,EAAC;IAA+B,GAAEL,SAAS,GAAG,IAAI,GAAGN,QAAc,CAC/E,CAAC;EAET;EAEA,IAAIC,KAAK,IAAII,KAAK,IAAIY,MAAM,CAACC,IAAI,CAACb,KAAK,CAAC,CAACc,MAAM,GAAG,CAAC,EAAE;IACnD,oBAAO/B,KAAA,CAAAqB,aAAA;MAAIE,SAAS,EAAC;IAAsB,GAAEX,QAAa,CAAC;EAC7D;EAEA,IAAIC,KAAK,IAAII,KAAK,IAAIY,MAAM,CAACC,IAAI,CAACb,KAAK,CAAC,CAACc,MAAM,KAAK,CAAC,EAAE;IACrD,oBACE/B,KAAA,CAAAqB,aAAA;MAAIE,SAAS,EAAC;IAAsB,gBAClCvB,KAAA,CAAAqB,aAAA;MAAQG,IAAI,EAAC,QAAQ;MAACD,SAAS,EAAC,qBAAqB;MAACE,OAAO,EAAEH;IAAY,gBACzEtB,KAAA,CAAAqB,aAAA;MAAKE,SAAS,EAAC;IAA2B,GACvCP,eAAe,iBAAIhB,KAAA,CAAAqB,aAAA,CAACL,eAAe;MAACU,KAAK,EAAC,MAAM;MAACC,MAAM,EAAC;IAAM,CAAE,CAC9D,CAAC,eACN3B,KAAA,CAAAqB,aAAA;MAAKE,SAAS,EAAC;IAAsB,GAAEV,KAAW,CAC5C,CACN,CAAC;EAET;EAEA,OAAO,IAAI;AACb,CAAC;AAED,eAAeJ,sBAAsB","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import MenuItem from '../Items/MenuItem';
|
|
4
|
+
import MenuSectionCollapsible from './MenuSectionCollapsible';
|
|
5
|
+
const MenuSectionItem = ({
|
|
6
|
+
name,
|
|
7
|
+
item
|
|
8
|
+
}) => {
|
|
9
|
+
if (!item) return null;
|
|
10
|
+
if (item.uri) {
|
|
11
|
+
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
12
|
+
item: item,
|
|
13
|
+
RenderItems: MenuSectionCollapsible
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
if (Object.values(item.items).length === 0) return null;
|
|
17
|
+
return /*#__PURE__*/React.createElement(MenuSectionCollapsible, {
|
|
18
|
+
name: name,
|
|
19
|
+
item: item
|
|
20
|
+
}, /*#__PURE__*/React.createElement(MenuItem, {
|
|
21
|
+
item: item,
|
|
22
|
+
RenderItems: MenuSectionCollapsible
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
export default MenuSectionItem;
|
|
26
|
+
MenuSectionItem.propTypes = {
|
|
27
|
+
name: PropTypes.string.isRequired,
|
|
28
|
+
item: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node, PropTypes.object]).isRequired
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=MenuSectionItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuSectionItem.js","names":["React","PropTypes","MenuItem","MenuSectionCollapsible","MenuSectionItem","name","item","uri","createElement","RenderItems","Object","values","items","length","propTypes","string","isRequired","oneOfType","arrayOf","node","object"],"sources":["../../../../src/components/Menu/Section/MenuSectionItem.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItem from '../Items/MenuItem';\nimport MenuSectionCollapsible from './MenuSectionCollapsible';\n\nconst MenuSectionItem = ({ name, item }) => {\n if (!item) return null;\n\n if (item.uri) {\n return <MenuItem item={item} RenderItems={MenuSectionCollapsible} />;\n }\n\n if (Object.values(item.items).length === 0) return null;\n\n return (\n <MenuSectionCollapsible name={name} item={item}>\n <MenuItem item={item} RenderItems={MenuSectionCollapsible} />\n </MenuSectionCollapsible>\n );\n};\n\nexport default MenuSectionItem;\n\nMenuSectionItem.propTypes = {\n name: PropTypes.string.isRequired,\n item: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node, PropTypes.object])\n .isRequired\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,QAAQ,MAAM,mBAAmB;AACxC,OAAOC,sBAAsB,MAAM,0BAA0B;AAE7D,MAAMC,eAAe,GAAGA,CAAC;EAAEC,IAAI;EAAEC;AAAK,CAAC,KAAK;EAC1C,IAAI,CAACA,IAAI,EAAE,OAAO,IAAI;EAEtB,IAAIA,IAAI,CAACC,GAAG,EAAE;IACZ,oBAAOP,KAAA,CAAAQ,aAAA,CAACN,QAAQ;MAACI,IAAI,EAAEA,IAAK;MAACG,WAAW,EAAEN;IAAuB,CAAE,CAAC;EACtE;EAEA,IAAIO,MAAM,CAACC,MAAM,CAACL,IAAI,CAACM,KAAK,CAAC,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAEvD,oBACEb,KAAA,CAAAQ,aAAA,CAACL,sBAAsB;IAACE,IAAI,EAAEA,IAAK;IAACC,IAAI,EAAEA;EAAK,gBAC7CN,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACI,IAAI,EAAEA,IAAK;IAACG,WAAW,EAAEN;EAAuB,CAAE,CACtC,CAAC;AAE7B,CAAC;AAED,eAAeC,eAAe;AAE9BA,eAAe,CAACU,SAAS,GAAG;EAC1BT,IAAI,EAAEJ,SAAS,CAACc,MAAM,CAACC,UAAU;EACjCV,IAAI,EAAEL,SAAS,CAACgB,SAAS,CAAC,CAAChB,SAAS,CAACiB,OAAO,CAACjB,SAAS,CAACkB,IAAI,CAAC,EAAElB,SAAS,CAACkB,IAAI,EAAElB,SAAS,CAACmB,MAAM,CAAC,CAAC,CAC7FJ;AACL,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import MenuSectionItem from './MenuSectionItem';
|
|
4
|
+
const MenuSectionItems = ({
|
|
5
|
+
sectionItems
|
|
6
|
+
}) => {
|
|
7
|
+
const {
|
|
8
|
+
items
|
|
9
|
+
} = sectionItems;
|
|
10
|
+
const menuSections = Object.entries(items).sort((a, b) => a[1].order - b[1].order);
|
|
11
|
+
return menuSections.map(menuItem => /*#__PURE__*/React.createElement(MenuSectionItem, {
|
|
12
|
+
name: menuItem[0],
|
|
13
|
+
item: menuItem[1]
|
|
14
|
+
}));
|
|
15
|
+
};
|
|
16
|
+
export default MenuSectionItems;
|
|
17
|
+
MenuSectionItems.propTypes = {
|
|
18
|
+
sectionItems: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=MenuSectionItems.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuSectionItems.js","names":["React","PropTypes","MenuSectionItem","MenuSectionItems","sectionItems","items","menuSections","Object","entries","sort","a","b","order","map","menuItem","createElement","name","item","propTypes","oneOfType","arrayOf","node","isRequired"],"sources":["../../../../src/components/Menu/Section/MenuSectionItems.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuSectionItem from './MenuSectionItem';\n\nconst MenuSectionItems = ({ sectionItems }) => {\n const { items } = sectionItems;\n\n const menuSections = Object.entries(items).sort((a, b) => a[1].order - b[1].order);\n\n return menuSections.map(menuItem => <MenuSectionItem name={menuItem[0]} item={menuItem[1]} />);\n};\n\nexport default MenuSectionItems;\n\nMenuSectionItems.propTypes = {\n sectionItems: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,eAAe,MAAM,mBAAmB;AAE/C,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC;AAAa,CAAC,KAAK;EAC7C,MAAM;IAAEC;EAAM,CAAC,GAAGD,YAAY;EAE9B,MAAME,YAAY,GAAGC,MAAM,CAACC,OAAO,CAACH,KAAK,CAAC,CAACI,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAAC,CAAC,CAAC,CAACE,KAAK,GAAGD,CAAC,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC;EAElF,OAAON,YAAY,CAACO,GAAG,CAACC,QAAQ,iBAAId,KAAA,CAAAe,aAAA,CAACb,eAAe;IAACc,IAAI,EAAEF,QAAQ,CAAC,CAAC,CAAE;IAACG,IAAI,EAAEH,QAAQ,CAAC,CAAC;EAAE,CAAE,CAAC,CAAC;AAChG,CAAC;AAED,eAAeX,gBAAgB;AAE/BA,gBAAgB,CAACe,SAAS,GAAG;EAC3Bd,YAAY,EAAEH,SAAS,CAACkB,SAAS,CAAC,CAAClB,SAAS,CAACmB,OAAO,CAACnB,SAAS,CAACoB,IAAI,CAAC,EAAEpB,SAAS,CAACoB,IAAI,CAAC,CAAC,CAACC;AACzF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Menu"],"sources":["../../../src/components/Menu/index.js"],"sourcesContent":["import Menu from './Menu';\n\nexport default Menu;\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,QAAQ;AAEzB,eAAeA,IAAI","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import { useApolloClient } from '@apollo/client';
|
|
5
|
+
import Avatar from '@blaze-react/avatar';
|
|
6
|
+
import { handleLogout } from '@blaze-cms/core-auth-ui';
|
|
7
|
+
import { Link } from 'react-router-dom';
|
|
8
|
+
import Menu from '../Menu';
|
|
9
|
+
const SideBar = ({
|
|
10
|
+
isOpenMenu,
|
|
11
|
+
onMenuClick,
|
|
12
|
+
userData
|
|
13
|
+
}) => {
|
|
14
|
+
const client = useApolloClient();
|
|
15
|
+
const {
|
|
16
|
+
firstname,
|
|
17
|
+
lastname,
|
|
18
|
+
id
|
|
19
|
+
} = userData;
|
|
20
|
+
const username = `${firstname} ${lastname}`;
|
|
21
|
+
const sideNavClassname = classnames('side-nav', {
|
|
22
|
+
'side-nav--open': isOpenMenu,
|
|
23
|
+
'side-nav--close': !isOpenMenu
|
|
24
|
+
});
|
|
25
|
+
const sideNavWrapperClassname = classnames('side-nav__wrapper', {
|
|
26
|
+
'side-nav__wrapper--close': !isOpenMenu
|
|
27
|
+
});
|
|
28
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
29
|
+
"data-testid": "sidebar",
|
|
30
|
+
className: sideNavClassname
|
|
31
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
32
|
+
role: "button",
|
|
33
|
+
className: "side-nav__button open",
|
|
34
|
+
id: "side-nav-button",
|
|
35
|
+
onClick: onMenuClick
|
|
36
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
37
|
+
className: "material-icons"
|
|
38
|
+
}, "keyboard_arrow_left")), /*#__PURE__*/React.createElement("div", {
|
|
39
|
+
className: sideNavWrapperClassname,
|
|
40
|
+
"data-testid": "sidenav",
|
|
41
|
+
id: "side-nav__wrapper"
|
|
42
|
+
}, /*#__PURE__*/React.createElement(Menu, null)), /*#__PURE__*/React.createElement("div", {
|
|
43
|
+
className: "side-nav__user"
|
|
44
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
45
|
+
className: "side-nav__user--info"
|
|
46
|
+
}, /*#__PURE__*/React.createElement(Avatar, {
|
|
47
|
+
username: username
|
|
48
|
+
}), /*#__PURE__*/React.createElement(Link, {
|
|
49
|
+
to: `/data-listing/user/update/${id}`,
|
|
50
|
+
className: "user-name"
|
|
51
|
+
}, username)), /*#__PURE__*/React.createElement("div", {
|
|
52
|
+
className: "side-nav__user--button"
|
|
53
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
54
|
+
id: "logout-button",
|
|
55
|
+
role: "button",
|
|
56
|
+
onClick: async () => {
|
|
57
|
+
await handleLogout(client);
|
|
58
|
+
window.location.href = '/';
|
|
59
|
+
},
|
|
60
|
+
className: "material-icons"
|
|
61
|
+
}, "power_settings_new")), /*#__PURE__*/React.createElement("span", {
|
|
62
|
+
className: "side-nav__user--toggle"
|
|
63
|
+
}, "Log off")));
|
|
64
|
+
};
|
|
65
|
+
SideBar.propTypes = {
|
|
66
|
+
isOpenMenu: PropTypes.bool.isRequired,
|
|
67
|
+
onMenuClick: PropTypes.func.isRequired,
|
|
68
|
+
userData: PropTypes.object.isRequired
|
|
69
|
+
};
|
|
70
|
+
export default SideBar;
|
|
71
|
+
//# sourceMappingURL=SideBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideBar.js","names":["React","classnames","PropTypes","useApolloClient","Avatar","handleLogout","Link","Menu","SideBar","isOpenMenu","onMenuClick","userData","client","firstname","lastname","id","username","sideNavClassname","sideNavWrapperClassname","createElement","className","role","onClick","to","window","location","href","propTypes","bool","isRequired","func","object"],"sources":["../../../src/components/SideBar/SideBar.js"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { useApolloClient } from '@apollo/client';\nimport Avatar from '@blaze-react/avatar';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { Link } from 'react-router-dom';\nimport Menu from '../Menu';\n\nconst SideBar = ({ isOpenMenu, onMenuClick, userData }) => {\n const client = useApolloClient();\n\n const { firstname, lastname, id } = userData;\n const username = `${firstname} ${lastname}`;\n\n const sideNavClassname = classnames('side-nav', {\n 'side-nav--open': isOpenMenu,\n 'side-nav--close': !isOpenMenu\n });\n\n const sideNavWrapperClassname = classnames('side-nav__wrapper', {\n 'side-nav__wrapper--close': !isOpenMenu\n });\n\n return (\n <div data-testid=\"sidebar\" className={sideNavClassname}>\n <div\n role=\"button\"\n className=\"side-nav__button open\"\n id=\"side-nav-button\"\n onClick={onMenuClick}>\n <i className=\"material-icons\">keyboard_arrow_left</i>\n </div>\n {/* <Link to=\"/\" className=\"side-nav__block-home\">\n Dashboard\n </Link> */}\n <div className={sideNavWrapperClassname} data-testid=\"sidenav\" id=\"side-nav__wrapper\">\n <Menu />\n </div>\n <div className=\"side-nav__user\">\n <div className=\"side-nav__user--info\">\n <Avatar username={username} />\n <Link to={`/data-listing/user/update/${id}`} className=\"user-name\">\n {username}\n </Link>\n </div>\n <div className=\"side-nav__user--button\">\n <span\n id=\"logout-button\"\n role=\"button\"\n onClick={async () => {\n await handleLogout(client);\n window.location.href = '/';\n }}\n className=\"material-icons\">\n power_settings_new\n </span>\n </div>\n <span className=\"side-nav__user--toggle\">Log off</span>\n </div>\n </div>\n );\n};\n\nSideBar.propTypes = {\n isOpenMenu: PropTypes.bool.isRequired,\n onMenuClick: PropTypes.func.isRequired,\n userData: PropTypes.object.isRequired\n};\n\nexport default SideBar;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,eAAe,QAAQ,gBAAgB;AAChD,OAAOC,MAAM,MAAM,qBAAqB;AACxC,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,IAAI,QAAQ,kBAAkB;AACvC,OAAOC,IAAI,MAAM,SAAS;AAE1B,MAAMC,OAAO,GAAGA,CAAC;EAAEC,UAAU;EAAEC,WAAW;EAAEC;AAAS,CAAC,KAAK;EACzD,MAAMC,MAAM,GAAGT,eAAe,CAAC,CAAC;EAEhC,MAAM;IAAEU,SAAS;IAAEC,QAAQ;IAAEC;EAAG,CAAC,GAAGJ,QAAQ;EAC5C,MAAMK,QAAQ,GAAG,GAAGH,SAAS,IAAIC,QAAQ,EAAE;EAE3C,MAAMG,gBAAgB,GAAGhB,UAAU,CAAC,UAAU,EAAE;IAC9C,gBAAgB,EAAEQ,UAAU;IAC5B,iBAAiB,EAAE,CAACA;EACtB,CAAC,CAAC;EAEF,MAAMS,uBAAuB,GAAGjB,UAAU,CAAC,mBAAmB,EAAE;IAC9D,0BAA0B,EAAE,CAACQ;EAC/B,CAAC,CAAC;EAEF,oBACET,KAAA,CAAAmB,aAAA;IAAK,eAAY,SAAS;IAACC,SAAS,EAAEH;EAAiB,gBACrDjB,KAAA,CAAAmB,aAAA;IACEE,IAAI,EAAC,QAAQ;IACbD,SAAS,EAAC,uBAAuB;IACjCL,EAAE,EAAC,iBAAiB;IACpBO,OAAO,EAAEZ;EAAY,gBACrBV,KAAA,CAAAmB,aAAA;IAAGC,SAAS,EAAC;EAAgB,GAAC,qBAAsB,CACjD,CAAC,eAINpB,KAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAEF,uBAAwB;IAAC,eAAY,SAAS;IAACH,EAAE,EAAC;EAAmB,gBACnFf,KAAA,CAAAmB,aAAA,CAACZ,IAAI,MAAE,CACJ,CAAC,eACNP,KAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAC;EAAgB,gBAC7BpB,KAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAC;EAAsB,gBACnCpB,KAAA,CAAAmB,aAAA,CAACf,MAAM;IAACY,QAAQ,EAAEA;EAAS,CAAE,CAAC,eAC9BhB,KAAA,CAAAmB,aAAA,CAACb,IAAI;IAACiB,EAAE,EAAE,6BAA6BR,EAAE,EAAG;IAACK,SAAS,EAAC;EAAW,GAC/DJ,QACG,CACH,CAAC,eACNhB,KAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAC;EAAwB,gBACrCpB,KAAA,CAAAmB,aAAA;IACEJ,EAAE,EAAC,eAAe;IAClBM,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,MAAMjB,YAAY,CAACO,MAAM,CAAC;MAC1BY,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAG,GAAG;IAC5B,CAAE;IACFN,SAAS,EAAC;EAAgB,GAAC,oBAEvB,CACH,CAAC,eACNpB,KAAA,CAAAmB,aAAA;IAAMC,SAAS,EAAC;EAAwB,GAAC,SAAa,CACnD,CACF,CAAC;AAEV,CAAC;AAEDZ,OAAO,CAACmB,SAAS,GAAG;EAClBlB,UAAU,EAAEP,SAAS,CAAC0B,IAAI,CAACC,UAAU;EACrCnB,WAAW,EAAER,SAAS,CAAC4B,IAAI,CAACD,UAAU;EACtClB,QAAQ,EAAET,SAAS,CAAC6B,MAAM,CAACF;AAC7B,CAAC;AAED,eAAerB,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import SideBlockItem from './SideBlockItem';
|
|
5
|
+
import { ACTIVE_LABEL, DEFAULT_LABEL, DOWN_ICON } from '../../../constants';
|
|
6
|
+
const SideBlock = ({
|
|
7
|
+
header,
|
|
8
|
+
items
|
|
9
|
+
}) => {
|
|
10
|
+
const [{
|
|
11
|
+
text,
|
|
12
|
+
icon
|
|
13
|
+
}, setLabelStatus] = useState(DEFAULT_LABEL);
|
|
14
|
+
const clonedItems = [...items];
|
|
15
|
+
const firstItems = clonedItems.splice(0, 10);
|
|
16
|
+
const handleLabelClick = () => icon === DOWN_ICON ? setLabelStatus(ACTIVE_LABEL) : setLabelStatus(DEFAULT_LABEL);
|
|
17
|
+
const arrowType = `keyboard_arrow_${icon}`;
|
|
18
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
19
|
+
className: "side-nav__block"
|
|
20
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
21
|
+
className: "side-nav__block-heading"
|
|
22
|
+
}, header), /*#__PURE__*/React.createElement("ul", {
|
|
23
|
+
className: "side-nav__list"
|
|
24
|
+
}, firstItems.map(SideBlockItem), !!clonedItems.length && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", {
|
|
25
|
+
type: "checkbox",
|
|
26
|
+
className: "sub-menu-checkbox",
|
|
27
|
+
id: "dropdown"
|
|
28
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
29
|
+
className: "side-nav__list-dropdown"
|
|
30
|
+
}, clonedItems.map(SideBlockItem)), /*#__PURE__*/React.createElement("li", {
|
|
31
|
+
className: "side-nav__list-item"
|
|
32
|
+
}, /*#__PURE__*/React.createElement("label", {
|
|
33
|
+
title: "See more",
|
|
34
|
+
htmlFor: "dropdown",
|
|
35
|
+
onClick: handleLabelClick
|
|
36
|
+
}, text, " ", /*#__PURE__*/React.createElement("i", {
|
|
37
|
+
className: "material-icons"
|
|
38
|
+
}, arrowType))))));
|
|
39
|
+
};
|
|
40
|
+
SideBlock.propTypes = {
|
|
41
|
+
header: PropTypes.string.isRequired,
|
|
42
|
+
items: PropTypes.arrayOf(PropTypes.shape({
|
|
43
|
+
uri: PropTypes.string.isRequired,
|
|
44
|
+
name: PropTypes.string.isRequired
|
|
45
|
+
})).isRequired
|
|
46
|
+
};
|
|
47
|
+
export default SideBlock;
|
|
48
|
+
//# sourceMappingURL=SideBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideBlock.js","names":["React","useState","PropTypes","SideBlockItem","ACTIVE_LABEL","DEFAULT_LABEL","DOWN_ICON","SideBlock","header","items","text","icon","setLabelStatus","clonedItems","firstItems","splice","handleLabelClick","arrowType","createElement","className","map","length","Fragment","type","id","title","htmlFor","onClick","propTypes","string","isRequired","arrayOf","shape","uri","name"],"sources":["../../../../src/components/SideBar/components/SideBlock.js"],"sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport SideBlockItem from './SideBlockItem';\nimport { ACTIVE_LABEL, DEFAULT_LABEL, DOWN_ICON } from '../../../constants';\n\nconst SideBlock = ({ header, items }) => {\n const [{ text, icon }, setLabelStatus] = useState(DEFAULT_LABEL);\n\n const clonedItems = [...items];\n const firstItems = clonedItems.splice(0, 10);\n\n const handleLabelClick = () =>\n icon === DOWN_ICON ? setLabelStatus(ACTIVE_LABEL) : setLabelStatus(DEFAULT_LABEL);\n\n const arrowType = `keyboard_arrow_${icon}`;\n\n return (\n <div className=\"side-nav__block\">\n <div className=\"side-nav__block-heading\">{header}</div>\n <ul className=\"side-nav__list\">\n {firstItems.map(SideBlockItem)}\n {!!clonedItems.length && (\n <>\n <input type=\"checkbox\" className=\"sub-menu-checkbox\" id=\"dropdown\" />\n <div className=\"side-nav__list-dropdown\">{clonedItems.map(SideBlockItem)}</div>\n <li className=\"side-nav__list-item\">\n <label title=\"See more\" htmlFor=\"dropdown\" onClick={handleLabelClick}>\n {text} <i className=\"material-icons\">{arrowType}</i>\n </label>\n </li>\n </>\n )}\n </ul>\n </div>\n );\n};\n\nSideBlock.propTypes = {\n header: PropTypes.string.isRequired,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n uri: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired\n })\n ).isRequired\n};\n\nexport default SideBlock;\n"],"mappings":"AAAA;AACA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,SAASC,YAAY,EAAEC,aAAa,EAAEC,SAAS,QAAQ,oBAAoB;AAE3E,MAAMC,SAAS,GAAGA,CAAC;EAAEC,MAAM;EAAEC;AAAM,CAAC,KAAK;EACvC,MAAM,CAAC;IAAEC,IAAI;IAAEC;EAAK,CAAC,EAAEC,cAAc,CAAC,GAAGX,QAAQ,CAACI,aAAa,CAAC;EAEhE,MAAMQ,WAAW,GAAG,CAAC,GAAGJ,KAAK,CAAC;EAC9B,MAAMK,UAAU,GAAGD,WAAW,CAACE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;EAE5C,MAAMC,gBAAgB,GAAGA,CAAA,KACvBL,IAAI,KAAKL,SAAS,GAAGM,cAAc,CAACR,YAAY,CAAC,GAAGQ,cAAc,CAACP,aAAa,CAAC;EAEnF,MAAMY,SAAS,GAAG,kBAAkBN,IAAI,EAAE;EAE1C,oBACEX,KAAA,CAAAkB,aAAA;IAAKC,SAAS,EAAC;EAAiB,gBAC9BnB,KAAA,CAAAkB,aAAA;IAAKC,SAAS,EAAC;EAAyB,GAAEX,MAAY,CAAC,eACvDR,KAAA,CAAAkB,aAAA;IAAIC,SAAS,EAAC;EAAgB,GAC3BL,UAAU,CAACM,GAAG,CAACjB,aAAa,CAAC,EAC7B,CAAC,CAACU,WAAW,CAACQ,MAAM,iBACnBrB,KAAA,CAAAkB,aAAA,CAAAlB,KAAA,CAAAsB,QAAA,qBACEtB,KAAA,CAAAkB,aAAA;IAAOK,IAAI,EAAC,UAAU;IAACJ,SAAS,EAAC,mBAAmB;IAACK,EAAE,EAAC;EAAU,CAAE,CAAC,eACrExB,KAAA,CAAAkB,aAAA;IAAKC,SAAS,EAAC;EAAyB,GAAEN,WAAW,CAACO,GAAG,CAACjB,aAAa,CAAO,CAAC,eAC/EH,KAAA,CAAAkB,aAAA;IAAIC,SAAS,EAAC;EAAqB,gBACjCnB,KAAA,CAAAkB,aAAA;IAAOO,KAAK,EAAC,UAAU;IAACC,OAAO,EAAC,UAAU;IAACC,OAAO,EAAEX;EAAiB,GAClEN,IAAI,EAAC,GAAC,eAAAV,KAAA,CAAAkB,aAAA;IAAGC,SAAS,EAAC;EAAgB,GAAEF,SAAa,CAC9C,CACL,CACJ,CAEF,CACD,CAAC;AAEV,CAAC;AAEDV,SAAS,CAACqB,SAAS,GAAG;EACpBpB,MAAM,EAAEN,SAAS,CAAC2B,MAAM,CAACC,UAAU;EACnCrB,KAAK,EAAEP,SAAS,CAAC6B,OAAO,CACtB7B,SAAS,CAAC8B,KAAK,CAAC;IACdC,GAAG,EAAE/B,SAAS,CAAC2B,MAAM,CAACC,UAAU;IAChCI,IAAI,EAAEhC,SAAS,CAAC2B,MAAM,CAACC;EACzB,CAAC,CACH,CAAC,CAACA;AACJ,CAAC;AAED,eAAevB,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { Link } from 'react-router-dom';
|
|
4
|
+
const SideBlockItem = ({
|
|
5
|
+
uri,
|
|
6
|
+
name
|
|
7
|
+
}) => /*#__PURE__*/React.createElement("li", {
|
|
8
|
+
key: name,
|
|
9
|
+
className: "side-nav__list-item"
|
|
10
|
+
}, /*#__PURE__*/React.createElement(Link, {
|
|
11
|
+
to: uri,
|
|
12
|
+
className: "side-nav__list-link"
|
|
13
|
+
}, name));
|
|
14
|
+
SideBlockItem.propTypes = {
|
|
15
|
+
uri: PropTypes.string.isRequired,
|
|
16
|
+
name: PropTypes.string.isRequired
|
|
17
|
+
};
|
|
18
|
+
export default SideBlockItem;
|
|
19
|
+
//# sourceMappingURL=SideBlockItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideBlockItem.js","names":["React","PropTypes","Link","SideBlockItem","uri","name","createElement","key","className","to","propTypes","string","isRequired"],"sources":["../../../../src/components/SideBar/components/SideBlockItem.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\n\nconst SideBlockItem = ({ uri, name }) => (\n <li key={name} className=\"side-nav__list-item\">\n <Link to={uri} className=\"side-nav__list-link\">\n {name}\n </Link>\n </li>\n);\n\nSideBlockItem.propTypes = {\n uri: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired\n};\n\nexport default SideBlockItem;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,IAAI,QAAQ,kBAAkB;AAEvC,MAAMC,aAAa,GAAGA,CAAC;EAAEC,GAAG;EAAEC;AAAK,CAAC,kBAClCL,KAAA,CAAAM,aAAA;EAAIC,GAAG,EAAEF,IAAK;EAACG,SAAS,EAAC;AAAqB,gBAC5CR,KAAA,CAAAM,aAAA,CAACJ,IAAI;EAACO,EAAE,EAAEL,GAAI;EAACI,SAAS,EAAC;AAAqB,GAC3CH,IACG,CACJ,CACL;AAEDF,aAAa,CAACO,SAAS,GAAG;EACxBN,GAAG,EAAEH,SAAS,CAACU,MAAM,CAACC,UAAU;EAChCP,IAAI,EAAEJ,SAAS,CAACU,MAAM,CAACC;AACzB,CAAC;AAED,eAAeT,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["SideBlock"],"sources":["../../../../src/components/SideBar/components/index.js"],"sourcesContent":["import SideBlock from './SideBlock';\n\nexport { SideBlock };\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,aAAa;AAEnC,SAASA,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["SideBar"],"sources":["../../../src/components/SideBar/index.js"],"sourcesContent":["import SideBar from './SideBar';\n\nexport default SideBar;\n"],"mappings":"AAAA,OAAOA,OAAO,MAAM,WAAW;AAE/B,eAAeA,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Layout"],"sources":["../../src/components/index.js"],"sourcesContent":["import Layout from './Layout/Layout';\n\nexport { Layout };\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,iBAAiB;AAEpC,SAASA,MAAM","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const PLUGIN_NAME = 'admin-core-ui';
|
|
2
|
+
const LOGO_PROPS = {
|
|
3
|
+
src: process.env.BLAZE_ADMIN_HEAD_LOGO_URL || 'https://images.thisisblaze.com/logo-98-148.png'
|
|
4
|
+
};
|
|
5
|
+
const DEFAULT_LABEL = {
|
|
6
|
+
text: 'See more',
|
|
7
|
+
icon: 'down'
|
|
8
|
+
};
|
|
9
|
+
const ACTIVE_LABEL = {
|
|
10
|
+
text: 'See less',
|
|
11
|
+
icon: 'up'
|
|
12
|
+
};
|
|
13
|
+
const DOWN_ICON = 'down';
|
|
14
|
+
export { PLUGIN_NAME, LOGO_PROPS, ACTIVE_LABEL, DEFAULT_LABEL, DOWN_ICON };
|
|
15
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["PLUGIN_NAME","LOGO_PROPS","src","process","env","BLAZE_ADMIN_HEAD_LOGO_URL","DEFAULT_LABEL","text","icon","ACTIVE_LABEL","DOWN_ICON"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'admin-core-ui';\nconst LOGO_PROPS = {\n src: process.env.BLAZE_ADMIN_HEAD_LOGO_URL || 'https://images.thisisblaze.com/logo-98-148.png'\n};\n\nconst DEFAULT_LABEL = {\n text: 'See more',\n icon: 'down'\n};\n\nconst ACTIVE_LABEL = {\n text: 'See less',\n icon: 'up'\n};\n\nconst DOWN_ICON = 'down';\n\nexport { PLUGIN_NAME, LOGO_PROPS, ACTIVE_LABEL, DEFAULT_LABEL, DOWN_ICON };\n"],"mappings":"AAAA,MAAMA,WAAW,GAAG,eAAe;AACnC,MAAMC,UAAU,GAAG;EACjBC,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,yBAAyB,IAAI;AAChD,CAAC;AAED,MAAMC,aAAa,GAAG;EACpBC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,YAAY,GAAG;EACnBF,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE;AACR,CAAC;AAED,MAAME,SAAS,GAAG,MAAM;AAExB,SAASV,WAAW,EAAEC,UAAU,EAAEQ,YAAY,EAAEH,aAAa,EAAEI,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Home.js","names":["React","Home","createElement","displayName"],"sources":["../../../src/containers/Home/Home.js"],"sourcesContent":["import React from 'react';\n\nconst Home = () => <div />;\n\nHome.displayName = 'Home';\n\nexport default Home;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,MAAMC,IAAI,GAAGA,CAAA,kBAAMD,KAAA,CAAAE,aAAA,YAAM,CAAC;AAE1BD,IAAI,CAACE,WAAW,GAAG,MAAM;AAEzB,eAAeF,IAAI","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Home"],"sources":["../../src/containers/index.js"],"sourcesContent":["import Home from './Home/Home';\n\nexport default Home;\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,aAAa;AAE9B,eAAeA,IAAI","ignoreList":[]}
|
package/lib-es/index.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Layout } from './components';
|
|
3
|
+
import pkg from '../package.json';
|
|
4
|
+
import { PLUGIN_NAME } from './constants';
|
|
5
|
+
import menuHandler from './utils/menu-handler-singleton';
|
|
6
|
+
const Home = React.lazy(() => import(/* webpackChunkName: 'Home' */'./containers'));
|
|
7
|
+
async function load(app, options = {}) {
|
|
8
|
+
const {
|
|
9
|
+
menuConfig = {},
|
|
10
|
+
homeRoute
|
|
11
|
+
} = options;
|
|
12
|
+
const home = {
|
|
13
|
+
path: '/',
|
|
14
|
+
exact: true,
|
|
15
|
+
key: 'home',
|
|
16
|
+
redirect: homeRoute,
|
|
17
|
+
component: Home
|
|
18
|
+
};
|
|
19
|
+
app.addRoute(home);
|
|
20
|
+
menuHandler.setApp(app);
|
|
21
|
+
app.setLayout(Layout);
|
|
22
|
+
app.events.once('admin:menu:config:load:after', ({
|
|
23
|
+
addConfig
|
|
24
|
+
}) => addConfig(menuConfig));
|
|
25
|
+
return {
|
|
26
|
+
name: PLUGIN_NAME,
|
|
27
|
+
version: pkg.version
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
load.pluginName = PLUGIN_NAME;
|
|
31
|
+
export default load;
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","Layout","pkg","PLUGIN_NAME","menuHandler","Home","lazy","load","app","options","menuConfig","homeRoute","home","path","exact","key","redirect","component","addRoute","setApp","setLayout","events","once","addConfig","name","version","pluginName"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { Layout } from './components';\nimport pkg from '../package.json';\nimport { PLUGIN_NAME } from './constants';\nimport menuHandler from './utils/menu-handler-singleton';\n\nconst Home = React.lazy(() => import(/* webpackChunkName: 'Home' */ './containers'));\n\nasync function load(app, options = {}) {\n const { menuConfig = {}, homeRoute } = options;\n\n const home = {\n path: '/',\n exact: true,\n key: 'home',\n redirect: homeRoute,\n component: Home\n };\n\n app.addRoute(home);\n\n menuHandler.setApp(app);\n\n app.setLayout(Layout);\n\n app.events.once('admin:menu:config:load:after', ({ addConfig }) => addConfig(menuConfig));\n\n return {\n name: PLUGIN_NAME,\n version: pkg.version\n };\n}\n\nload.pluginName = PLUGIN_NAME;\n\nexport default load;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,cAAc;AACrC,OAAOC,GAAG,MAAM,iBAAiB;AACjC,SAASC,WAAW,QAAQ,aAAa;AACzC,OAAOC,WAAW,MAAM,gCAAgC;AAExD,MAAMC,IAAI,GAAGL,KAAK,CAACM,IAAI,CAAC,MAAM,MAAM,CAAC,8BAA+B,cAAc,CAAC,CAAC;AAEpF,eAAeC,IAAIA,CAACC,GAAG,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;EACrC,MAAM;IAAEC,UAAU,GAAG,CAAC,CAAC;IAAEC;EAAU,CAAC,GAAGF,OAAO;EAE9C,MAAMG,IAAI,GAAG;IACXC,IAAI,EAAE,GAAG;IACTC,KAAK,EAAE,IAAI;IACXC,GAAG,EAAE,MAAM;IACXC,QAAQ,EAAEL,SAAS;IACnBM,SAAS,EAAEZ;EACb,CAAC;EAEDG,GAAG,CAACU,QAAQ,CAACN,IAAI,CAAC;EAElBR,WAAW,CAACe,MAAM,CAACX,GAAG,CAAC;EAEvBA,GAAG,CAACY,SAAS,CAACnB,MAAM,CAAC;EAErBO,GAAG,CAACa,MAAM,CAACC,IAAI,CAAC,8BAA8B,EAAE,CAAC;IAAEC;EAAU,CAAC,KAAKA,SAAS,CAACb,UAAU,CAAC,CAAC;EAEzF,OAAO;IACLc,IAAI,EAAErB,WAAW;IACjBsB,OAAO,EAAEvB,GAAG,CAACuB;EACf,CAAC;AACH;AAEAlB,IAAI,CAACmB,UAAU,GAAGvB,WAAW;AAE7B,eAAeI,IAAI","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import menuHandler from './menu-handler';
|
|
2
|
+
export default function getMenuItemsResolver(app) {
|
|
3
|
+
return async () => {
|
|
4
|
+
const {
|
|
5
|
+
addItem,
|
|
6
|
+
addSection,
|
|
7
|
+
getAll
|
|
8
|
+
} = menuHandler();
|
|
9
|
+
await app.events.emitAsync('load:menu-section', addSection);
|
|
10
|
+
await app.events.emitAsync('load:menu-items', addItem);
|
|
11
|
+
return getAll();
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=get-menu-items-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-menu-items-resolver.js","names":["menuHandler","getMenuItemsResolver","app","addItem","addSection","getAll","events","emitAsync"],"sources":["../../src/utils/get-menu-items-resolver.js"],"sourcesContent":["import menuHandler from './menu-handler';\n\nexport default function getMenuItemsResolver(app) {\n return async () => {\n const { addItem, addSection, getAll } = menuHandler();\n await app.events.emitAsync('load:menu-section', addSection);\n await app.events.emitAsync('load:menu-items', addItem);\n return getAll();\n };\n}\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,gBAAgB;AAExC,eAAe,SAASC,oBAAoBA,CAACC,GAAG,EAAE;EAChD,OAAO,YAAY;IACjB,MAAM;MAAEC,OAAO;MAAEC,UAAU;MAAEC;IAAO,CAAC,GAAGL,WAAW,CAAC,CAAC;IACrD,MAAME,GAAG,CAACI,MAAM,CAACC,SAAS,CAAC,mBAAmB,EAAEH,UAAU,CAAC;IAC3D,MAAMF,GAAG,CAACI,MAAM,CAACC,SAAS,CAAC,iBAAiB,EAAEJ,OAAO,CAAC;IACtD,OAAOE,MAAM,CAAC,CAAC;EACjB,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import merge from 'lodash.merge';
|
|
3
|
+
let instance;
|
|
4
|
+
export class MenuHandler {
|
|
5
|
+
constructor(app) {
|
|
6
|
+
_defineProperty(this, "menuSections", new Map());
|
|
7
|
+
_defineProperty(this, "menuConfig", void 0);
|
|
8
|
+
_defineProperty(this, "app", void 0);
|
|
9
|
+
if (instance) {
|
|
10
|
+
throw new Error('You can only create one instance!');
|
|
11
|
+
}
|
|
12
|
+
instance = this;
|
|
13
|
+
this.menuConfig = {};
|
|
14
|
+
this.app = null;
|
|
15
|
+
}
|
|
16
|
+
setApp(app) {
|
|
17
|
+
this.app = app;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// eslint-disable-next-line no-dupe-class-members
|
|
21
|
+
get app() {
|
|
22
|
+
return this.app;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// eslint-disable-next-line no-dupe-class-members
|
|
26
|
+
get menuConfig() {
|
|
27
|
+
return this.menuConfig;
|
|
28
|
+
}
|
|
29
|
+
addConfig(newConfig) {
|
|
30
|
+
this.menuConfig = merge(this.menuConfig, newConfig);
|
|
31
|
+
}
|
|
32
|
+
async loadConfig() {
|
|
33
|
+
const addConfig = newConfig => {
|
|
34
|
+
this.addConfig(newConfig);
|
|
35
|
+
};
|
|
36
|
+
const {
|
|
37
|
+
menuConfig
|
|
38
|
+
} = this;
|
|
39
|
+
if (this.app && this.app.events) {
|
|
40
|
+
await this.app.events.emitAsync('admin:menu:config:load', {
|
|
41
|
+
addConfig
|
|
42
|
+
});
|
|
43
|
+
await this.app.events.emitAsync('admin:menu:config:load:after', {
|
|
44
|
+
addConfig,
|
|
45
|
+
menuConfig
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
getInstance() {
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
getAll() {
|
|
53
|
+
return Object.entries(this.menuConfig).sort((a, b) => {
|
|
54
|
+
if (a[1].order === undefined) {
|
|
55
|
+
return 1;
|
|
56
|
+
}
|
|
57
|
+
if (b[1].order === undefined) {
|
|
58
|
+
return -1;
|
|
59
|
+
}
|
|
60
|
+
return a[1].order > b[1].order ? 1 : -1;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const menuHandler = new MenuHandler();
|
|
65
|
+
export default menuHandler;
|
|
66
|
+
//# sourceMappingURL=menu-handler-singleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-handler-singleton.js","names":["merge","instance","MenuHandler","constructor","app","_defineProperty","Map","Error","menuConfig","setApp","addConfig","newConfig","loadConfig","events","emitAsync","getInstance","getAll","Object","entries","sort","a","b","order","undefined","menuHandler"],"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 // eslint-disable-next-line no-dupe-class-members\n get app() {\n return this.app;\n }\n\n // eslint-disable-next-line no-dupe-class-members\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 return Object.entries(this.menuConfig).sort((a, b) => {\n if (a[1].order === undefined) {\n return 1;\n }\n if (b[1].order === undefined) {\n return -1;\n }\n return a[1].order > b[1].order ? 1 : -1;\n });\n }\n}\n\nconst menuHandler = new MenuHandler();\nexport default menuHandler;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,cAAc;AAEhC,IAAIC,QAAQ;AAEZ,OAAO,MAAMC,WAAW,CAAC;EAOvBC,WAAWA,CAACC,GAAG,EAAE;IAAAC,eAAA,uBANF,IAAIC,GAAG,CAAC,CAAC;IAAAD,eAAA;IAAAA,eAAA;IAOtB,IAAIJ,QAAQ,EAAE;MACZ,MAAM,IAAIM,KAAK,CAAC,mCAAmC,CAAC;IACtD;IACAN,QAAQ,GAAG,IAAI;IACf,IAAI,CAACO,UAAU,GAAG,CAAC,CAAC;IACpB,IAAI,CAACJ,GAAG,GAAG,IAAI;EACjB;EAEAK,MAAMA,CAACL,GAAG,EAAE;IACV,IAAI,CAACA,GAAG,GAAGA,GAAG;EAChB;;EAEA;EACA,IAAIA,GAAGA,CAAA,EAAG;IACR,OAAO,IAAI,CAACA,GAAG;EACjB;;EAEA;EACA,IAAII,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACA,UAAU;EACxB;EAEAE,SAASA,CAACC,SAAS,EAAE;IACnB,IAAI,CAACH,UAAU,GAAGR,KAAK,CAAC,IAAI,CAACQ,UAAU,EAAEG,SAAS,CAAC;EACrD;EAEA,MAAMC,UAAUA,CAAA,EAAG;IACjB,MAAMF,SAAS,GAAGC,SAAS,IAAI;MAC7B,IAAI,CAACD,SAAS,CAACC,SAAS,CAAC;IAC3B,CAAC;IAED,MAAM;MAAEH;IAAW,CAAC,GAAG,IAAI;IAE3B,IAAI,IAAI,CAACJ,GAAG,IAAI,IAAI,CAACA,GAAG,CAACS,MAAM,EAAE;MAC/B,MAAM,IAAI,CAACT,GAAG,CAACS,MAAM,CAACC,SAAS,CAAC,wBAAwB,EAAE;QAAEJ;MAAU,CAAC,CAAC;MACxE,MAAM,IAAI,CAACN,GAAG,CAACS,MAAM,CAACC,SAAS,CAAC,8BAA8B,EAAE;QAAEJ,SAAS;QAAEF;MAAW,CAAC,CAAC;IAC5F;EACF;EAEAO,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI;EACb;EAEAC,MAAMA,CAAA,EAAG;IACP,OAAOC,MAAM,CAACC,OAAO,CAAC,IAAI,CAACV,UAAU,CAAC,CAACW,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;MACpD,IAAID,CAAC,CAAC,CAAC,CAAC,CAACE,KAAK,KAAKC,SAAS,EAAE;QAC5B,OAAO,CAAC;MACV;MACA,IAAIF,CAAC,CAAC,CAAC,CAAC,CAACC,KAAK,KAAKC,SAAS,EAAE;QAC5B,OAAO,CAAC,CAAC;MACX;MACA,OAAOH,CAAC,CAAC,CAAC,CAAC,CAACE,KAAK,GAAGD,CAAC,CAAC,CAAC,CAAC,CAACC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC;EACJ;AACF;AAEA,MAAME,WAAW,GAAG,IAAItB,WAAW,CAAC,CAAC;AACrC,eAAesB,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export default function menuHandler() {
|
|
2
|
+
const menuSections = new Map();
|
|
3
|
+
function getSection(key) {
|
|
4
|
+
return menuSections.get(key);
|
|
5
|
+
}
|
|
6
|
+
function getAll() {
|
|
7
|
+
return Array.from(menuSections.entries()).sort(([, {
|
|
8
|
+
order: order1
|
|
9
|
+
}], [, {
|
|
10
|
+
order: order2
|
|
11
|
+
}]) => order1 > order2 ? 1 : -1);
|
|
12
|
+
}
|
|
13
|
+
function addSection(key, {
|
|
14
|
+
header,
|
|
15
|
+
order
|
|
16
|
+
}) {
|
|
17
|
+
validateSection(key, order);
|
|
18
|
+
const section = {
|
|
19
|
+
header,
|
|
20
|
+
order,
|
|
21
|
+
items: []
|
|
22
|
+
};
|
|
23
|
+
menuSections.set(key, section);
|
|
24
|
+
}
|
|
25
|
+
function addItem(item, sectionKey) {
|
|
26
|
+
validateItem(sectionKey);
|
|
27
|
+
const section = menuSections.get(sectionKey);
|
|
28
|
+
section.items.push(item);
|
|
29
|
+
}
|
|
30
|
+
function validateItem(key) {
|
|
31
|
+
if (!menuSections.has(key)) throw new Error(`Section ${key} doesn\'t exist`);
|
|
32
|
+
}
|
|
33
|
+
function validateSection(key, order) {
|
|
34
|
+
if (!key) throw new Error('Section requires a key');
|
|
35
|
+
if (menuSections.has(key)) throw new Error(`Section with ${key} has been already added`);
|
|
36
|
+
if (Array.from(menuSections.entries()).some(([_, {
|
|
37
|
+
order: _order
|
|
38
|
+
}]) => _order === order)) {
|
|
39
|
+
throw new Error('Section with this order has already been added');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
addSection,
|
|
44
|
+
addItem,
|
|
45
|
+
getSection,
|
|
46
|
+
getAll
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=menu-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-handler.js","names":["menuHandler","menuSections","Map","getSection","key","get","getAll","Array","from","entries","sort","order","order1","order2","addSection","header","validateSection","section","items","set","addItem","item","sectionKey","validateItem","push","has","Error","some","_","_order"],"sources":["../../src/utils/menu-handler.js"],"sourcesContent":["export default function menuHandler() {\n const menuSections = new Map();\n\n function getSection(key) {\n return menuSections.get(key);\n }\n\n function getAll() {\n return Array.from(menuSections.entries()).sort(\n ([, { order: order1 }], [, { order: order2 }]) => (order1 > order2 ? 1 : -1)\n );\n }\n\n function addSection(key, { header, order }) {\n validateSection(key, order);\n const section = {\n header,\n order,\n items: []\n };\n menuSections.set(key, section);\n }\n\n function addItem(item, sectionKey) {\n validateItem(sectionKey);\n const section = menuSections.get(sectionKey);\n section.items.push(item);\n }\n\n function validateItem(key) {\n if (!menuSections.has(key)) throw new Error(`Section ${key} doesn\\'t exist`);\n }\n\n function validateSection(key, order) {\n if (!key) throw new Error('Section requires a key');\n if (menuSections.has(key)) throw new Error(`Section with ${key} has been already added`);\n if (Array.from(menuSections.entries()).some(([_, { order: _order }]) => _order === order)) {\n throw new Error('Section with this order has already been added');\n }\n }\n\n return {\n addSection,\n addItem,\n getSection,\n getAll\n };\n}\n"],"mappings":"AAAA,eAAe,SAASA,WAAWA,CAAA,EAAG;EACpC,MAAMC,YAAY,GAAG,IAAIC,GAAG,CAAC,CAAC;EAE9B,SAASC,UAAUA,CAACC,GAAG,EAAE;IACvB,OAAOH,YAAY,CAACI,GAAG,CAACD,GAAG,CAAC;EAC9B;EAEA,SAASE,MAAMA,CAAA,EAAG;IAChB,OAAOC,KAAK,CAACC,IAAI,CAACP,YAAY,CAACQ,OAAO,CAAC,CAAC,CAAC,CAACC,IAAI,CAC5C,CAAC,GAAG;MAAEC,KAAK,EAAEC;IAAO,CAAC,CAAC,EAAE,GAAG;MAAED,KAAK,EAAEE;IAAO,CAAC,CAAC,KAAMD,MAAM,GAAGC,MAAM,GAAG,CAAC,GAAG,CAAC,CAC5E,CAAC;EACH;EAEA,SAASC,UAAUA,CAACV,GAAG,EAAE;IAAEW,MAAM;IAAEJ;EAAM,CAAC,EAAE;IAC1CK,eAAe,CAACZ,GAAG,EAAEO,KAAK,CAAC;IAC3B,MAAMM,OAAO,GAAG;MACdF,MAAM;MACNJ,KAAK;MACLO,KAAK,EAAE;IACT,CAAC;IACDjB,YAAY,CAACkB,GAAG,CAACf,GAAG,EAAEa,OAAO,CAAC;EAChC;EAEA,SAASG,OAAOA,CAACC,IAAI,EAAEC,UAAU,EAAE;IACjCC,YAAY,CAACD,UAAU,CAAC;IACxB,MAAML,OAAO,GAAGhB,YAAY,CAACI,GAAG,CAACiB,UAAU,CAAC;IAC5CL,OAAO,CAACC,KAAK,CAACM,IAAI,CAACH,IAAI,CAAC;EAC1B;EAEA,SAASE,YAAYA,CAACnB,GAAG,EAAE;IACzB,IAAI,CAACH,YAAY,CAACwB,GAAG,CAACrB,GAAG,CAAC,EAAE,MAAM,IAAIsB,KAAK,CAAC,WAAWtB,GAAG,iBAAiB,CAAC;EAC9E;EAEA,SAASY,eAAeA,CAACZ,GAAG,EAAEO,KAAK,EAAE;IACnC,IAAI,CAACP,GAAG,EAAE,MAAM,IAAIsB,KAAK,CAAC,wBAAwB,CAAC;IACnD,IAAIzB,YAAY,CAACwB,GAAG,CAACrB,GAAG,CAAC,EAAE,MAAM,IAAIsB,KAAK,CAAC,gBAAgBtB,GAAG,yBAAyB,CAAC;IACxF,IAAIG,KAAK,CAACC,IAAI,CAACP,YAAY,CAACQ,OAAO,CAAC,CAAC,CAAC,CAACkB,IAAI,CAAC,CAAC,CAACC,CAAC,EAAE;MAAEjB,KAAK,EAAEkB;IAAO,CAAC,CAAC,KAAKA,MAAM,KAAKlB,KAAK,CAAC,EAAE;MACzF,MAAM,IAAIe,KAAK,CAAC,gDAAgD,CAAC;IACnE;EACF;EAEA,OAAO;IACLZ,UAAU;IACVM,OAAO;IACPjB,UAAU;IACVG;EACF,CAAC;AACH","ignoreList":[]}
|