sbx-crm-menu-ui 2.0.0 → 2.0.1-beta.1
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/dist/index.css
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
.crm-class-sidebar {
|
|
2
|
-
width: 250px;
|
|
3
|
-
height: 100%;
|
|
4
|
-
color: white;
|
|
5
|
-
position: fixed;
|
|
6
|
-
top: 0;
|
|
7
|
-
left: 0;
|
|
8
|
-
overflow-x: hidden;
|
|
9
|
-
padding-top: 20px;
|
|
10
|
-
transition: 0.5s;
|
|
11
|
-
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
1
|
*,
|
|
15
2
|
::after,
|
|
16
3
|
::before {
|
|
@@ -19,20 +6,21 @@
|
|
|
19
6
|
|
|
20
7
|
.crm-class-sidebar {
|
|
21
8
|
width: 320px;
|
|
22
|
-
height:
|
|
9
|
+
height: 100vh;
|
|
23
10
|
color: white;
|
|
24
|
-
position: fixed;
|
|
25
|
-
top: 0;
|
|
26
|
-
left: 0;
|
|
27
11
|
overflow-x: hidden;
|
|
28
|
-
padding-top: 20px;
|
|
29
12
|
transition: 0.5s;
|
|
30
13
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
31
14
|
}
|
|
32
15
|
|
|
16
|
+
.crm-class-sidebar-content {
|
|
17
|
+
padding: 100px 20px;
|
|
18
|
+
width: 100%;
|
|
19
|
+
}
|
|
20
|
+
|
|
33
21
|
.crm-class-sidebar-list {
|
|
34
22
|
list-style-type: none;
|
|
35
|
-
padding:
|
|
23
|
+
padding: 100px 20px;
|
|
36
24
|
margin: 0;
|
|
37
25
|
color: #555;
|
|
38
26
|
position: relative;
|
|
@@ -103,7 +91,8 @@
|
|
|
103
91
|
padding: 0 1.5rem;
|
|
104
92
|
height: 80px;
|
|
105
93
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
106
|
-
position:
|
|
94
|
+
position: fixed;
|
|
95
|
+
width: 100%;
|
|
107
96
|
z-index: 20;
|
|
108
97
|
}
|
|
109
98
|
|
package/dist/index.js
CHANGED
|
@@ -214,9 +214,13 @@ var generateRoutes = function generateRoutes(routesData) {
|
|
|
214
214
|
var SidebarComponent = function SidebarComponent(props) {
|
|
215
215
|
var routes = generateRoutes(props.routesData);
|
|
216
216
|
return React__default.createElement("div", {
|
|
217
|
+
style: {
|
|
218
|
+
display: 'flex'
|
|
219
|
+
}
|
|
220
|
+
}, React__default.createElement("div", {
|
|
217
221
|
className: "crm-class-sidebar"
|
|
218
222
|
}, React__default.createElement("ul", {
|
|
219
|
-
className: "crm-class-sidebar-list
|
|
223
|
+
className: "crm-class-sidebar-list"
|
|
220
224
|
}, React__default.createElement("span", {
|
|
221
225
|
className: "crm-class-title"
|
|
222
226
|
}, "MENU"), routes.map(function (route, index) {
|
|
@@ -224,7 +228,9 @@ var SidebarComponent = function SidebarComponent(props) {
|
|
|
224
228
|
key: "route_" + index,
|
|
225
229
|
route: route
|
|
226
230
|
});
|
|
227
|
-
})))
|
|
231
|
+
}))), React__default.createElement("div", {
|
|
232
|
+
className: "crm-class-sidebar-content"
|
|
233
|
+
}, props.children));
|
|
228
234
|
};
|
|
229
235
|
|
|
230
236
|
var generateSubMenuData = function generateSubMenuData(labels) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils/utils.ts","../src/components/dropdown/Dropdown.tsx","../src/components/contentMenuComponent/UserInfo.tsx","../src/components/contentMenuComponent/LanguageDropdown.tsx","../src/components/menu/TopNavBarComponent/TopNavBarComponent.tsx","../src/components/menu/sidebar/SidebarItem.tsx","../src/components/menu/sidebar/Sidebar.tsx","../src/components/menu/sidebar/subMenuComponent/SubMenuComponent.tsx"],"sourcesContent":["export function uuidV4() {\n return ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c: any) =>\n (\n ((c ^ crypto.getRandomValues(new Uint8Array(1))[0]) & 15) >>\n (c / 4)\n ).toString(16)\n )\n}\n\n\nexport const colors = {\n 'A': '#FF5733',\n 'B': '#33FF57',\n 'C': '#5733FF',\n 'D': '#FF33B8',\n 'E': '#33B8FF',\n 'F': '#FFFF33',\n 'G': '#33FFFF',\n 'H': '#FF33A6',\n 'I': '#33A6FF',\n 'J': '#FF9033',\n 'K': '#3390FF',\n 'L': '#FF33F6',\n 'M': '#33F6FF',\n 'N': '#C833FF',\n 'O': '#33FFC8',\n 'P': '#FFC833',\n 'Q': '#33FF58',\n 'R': '#FF5833',\n 'S': '#58FF33',\n 'T': '#FF3358',\n 'U': '#3358FF',\n 'V': '#FF33D6',\n 'W': '#33D6FF',\n 'X': '#FF336A',\n 'Y': '#336AFF',\n 'Z': '#FFD633'\n}\n","import React, { useState } from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons'\nimport { colors } from '../../utils/utils'\n\nexport default function Dropdown(props: { startNameWord: string }) {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false)\n\n const toggleDropdown = () => {\n setIsDropdownOpen(!isDropdownOpen)\n }\n\n return (\n <div className=\"crm-class-dropdown crm-class-mr-20\" onClick={toggleDropdown}>\n <span style={{ background: colors[props.startNameWord.toUpperCase()] }}\n className=\"crm-class-top-nav-bar-avatar\">{props.startNameWord.toUpperCase()}</span>\n <span className=\"crm-class-ml-20\">\n <FontAwesomeIcon\n icon={isDropdownOpen ? faChevronUp : faChevronDown}\n className=\"crm-class-color-icon crm-class-slate-gray\"\n />\n </span>\n {isDropdownOpen && (\n <div className=\"crm-class-dropdown-content\">\n <p>Dropdown content here</p>\n </div>\n )}\n </div>\n )\n}\n","import React from 'react'\n\n\ninterface Props {\n email: string;\n name: string;\n}\n\nexport default function UserInfo({ name, email }: Props) {\n return (\n <div className=\"crm-class-top-nav-bar-info-user\">\n <span className=\"crm-class-font-bold\">{name} </span>\n <span>{email}</span>\n </div>\n )\n}\n","import React, { useState } from 'react'\n\nexport interface Language {\n code: string;\n label: string;\n flag: string;\n}\n\n\nexport default function LanguageDropdown(props: { languages: Language[] }) {\n const [selectedLanguage, setSelectedLanguage] = useState<Language>(\n props.languages[0]\n )\n\n const handleLanguageChange = (language: Language) => {\n setSelectedLanguage(language)\n }\n\n return (\n <div className=\"crm-class-dropdown-flag crm-class-mr-20\">\n <span className=\"crm-class-content-flag\">\n <span className={`crm-class-flag large ${selectedLanguage.flag}`}></span>\n </span>\n\n <div className=\"crm-class-dropdown-menu\">\n <button className=\"crm-class-dropdown-toggle\" type=\"button\">\n Choose Language\n </button>\n <h6 className=\"crm-class-dropdown-header\">Popular Languages</h6>\n {props.languages.map((language) => (\n <button\n key={language.code}\n type=\"button\"\n className=\"crm-class-dropdown-item \"\n onClick={() => handleLanguageChange(language)}\n >\n <span\n className={` opacity-8 crm-class-flag large crm-class-mr-20 ${language.flag}`}\n ></span>\n {language.code}\n </button>\n ))}\n </div>\n </div>\n )\n}\n","import { faBars, faSearch } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport React from 'react'\nimport Dropdown from '../../dropdown/Dropdown'\nimport UserInfo from '../../contentMenuComponent/UserInfo'\nimport LanguageDropdown, { Language } from '../../contentMenuComponent/LanguageDropdown'\n\ninterface Props {\n languages: Language[];\n onChooseLanguage?: (language: Language) => void;\n user: {\n name: string;\n email: string;\n },\n logoSrc?: string;\n}\n\nexport default function TopNavBarComponent(props: Props) {\n\n\n return (\n <div className=\"crm-class-top-nav-bar\">\n <div className=\"crm-class-flex-container\">\n <FontAwesomeIcon\n icon={faBars}\n color=\"#3f6ad8\"\n size=\"1x\"\n className=\"crm-class-mr-20 crm-class-cursor-pointer\"\n />\n <div className=\"crm-class-flex-container\">\n <div className=\"crm-class-icon-container crm-class-mr-20\">\n <FontAwesomeIcon\n icon={faSearch}\n color=\"#3f6ad8\"\n className=\"\"\n size=\"1x\"\n />\n </div>\n\n <img\n src={props.logoSrc ?? 'https://via.placeholder.com/150'}\n style={{ height: '30px' }}\n alt=\"\"\n />\n </div>\n </div>\n <div className=\"crm-class-top-nav-bar-options\">\n {/* */}\n\n <LanguageDropdown languages={props.languages} />\n\n\n <Dropdown startNameWord={props.user.name?.[0]} />\n <UserInfo name={props.user.name} email={props.user.email} />\n </div>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { SidebarItemProps } from '../../../types/Common'\nimport { uuidV4 } from '../../../utils/utils'\n\nconst SidebarItem = ({ route }: SidebarItemProps) => {\n const { icon, label, subRoutes = [], className } = route\n const [isSubMenuOpen, setIsSubMenuOpen] = useState(route.selected || false)\n\n const toggleSubMenu = () => {\n setIsSubMenuOpen((prevState) => !prevState)\n }\n return (\n <React.Fragment>\n <li\n className={`crm-class-sidebar-li ${className ?? ''}`}\n onClick={toggleSubMenu}\n >\n {icon && icon}\n <span onClick={route.subRoutes?.length ? undefined : route.action}\n className={`${route.selected ? 'crm-class-font-bold' : ''} `}>{label}</span>\n\n {!!subRoutes.length && (\n <span className=\"crm-class-ml-auto\">\n <FontAwesomeIcon\n icon={isSubMenuOpen ? faChevronUp : faChevronDown}\n className=\"crm-class-color-icon crm-class-font-10 crm-class-slate-gray\"\n />\n </span>\n )}\n </li>\n {(isSubMenuOpen) && !!subRoutes.length && (\n <ul className=\"crm-class-sidebar-sub-menu-list\">\n {subRoutes?.map((item) => (\n <SidebarItem key={uuidV4()} route={item} />\n ))}\n </ul>\n )}\n </React.Fragment>\n )\n}\n\nexport default SidebarItem\n","import { IconDefinition } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { Route } from '../../../types/Common'\nimport SidebarItem from './SidebarItem'\nimport React from 'react'\n\ninterface RoutesData {\n label: string;\n icon: IconDefinition;\n subRoutes: Route[];\n}\n\nconst generateRoute = (\n label: string,\n icon: React.ReactNode | IconDefinition,\n action?: () => void,\n subRoutes: Route[] = []\n): Route => ({\n label,\n visible: true,\n enable: true,\n icon: (\n <span className=\"crm-class-color-icon crm-class-mr-10\">\n {icon && (\n <FontAwesomeIcon\n icon={icon as IconDefinition}\n className=\"crm-class-color-icon\"\n />\n )}\n </span>\n ),\n action: () => action?.(),\n subRoutes: subRoutes.map((subRoute) =>\n generateRoute(subRoute.label, subRoute.icon, subRoute.action, subRoute.subRoutes || [])\n )\n})\n\nconst generateRoutes = (\n routesData: {\n label: string;\n icon: IconDefinition | undefined;\n action?: () => void;\n subRoutes: Route[];\n }[]\n): Route[] => {\n return routesData.map((routeData) =>\n generateRoute(routeData.label, routeData?.icon, routeData.action, routeData.subRoutes)\n )\n}\n\nconst SidebarComponent = (props: { routesData: RoutesData[] }) => {\n\n\n const routes: Route[] = generateRoutes(props.routesData)\n\n return (\n <div className=\"crm-class-sidebar\">\n <ul className=\"crm-class-sidebar-list crm-class-mt-70\">\n <span className=\"crm-class-title\">MENU</span>\n\n {routes.map((route, index) => (\n <SidebarItem key={`route_${index}`} route={route} />\n ))}\n\n </ul>\n </div>\n )\n}\nexport default SidebarComponent\n","import { faGem } from '@fortawesome/free-regular-svg-icons'\nimport { Route } from '../../../../types/Common'\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons'\n\ninterface View {\n path: string;\n name: string;\n root: string;\n permission: string;\n views?: View[];\n}\n\nexport const generateSubMenuData = (labels: View[]): Route[] => {\n return labels.map((label) => ({\n label: label.name,\n className: 'crm-class-ml-20',\n path: label.path,\n subRoutes: generateSubMenuData(label.views || [])\n }))\n}\n\nexport const icons: Record<string, IconDefinition> = {\n diamond: faGem,\n default: faGem\n}\n"],"names":["uuidV4","replace","c","crypto","getRandomValues","Uint8Array","toString","colors","Dropdown","props","_useState","useState","isDropdownOpen","setIsDropdownOpen","toggleDropdown","React","className","onClick","style","background","startNameWord","toUpperCase","FontAwesomeIcon","icon","faChevronUp","faChevronDown","UserInfo","_ref","name","email","LanguageDropdown","languages","selectedLanguage","setSelectedLanguage","handleLanguageChange","language","flag","type","map","key","code","TopNavBarComponent","faBars","color","size","faSearch","src","_props$logoSrc","logoSrc","height","alt","_props$user$name","user","SidebarItem","route","label","_route$subRoutes","subRoutes","selected","isSubMenuOpen","setIsSubMenuOpen","toggleSubMenu","prevState","Fragment","_route$subRoutes2","length","undefined","action","item","generateRoute","visible","enable","subRoute","generateRoutes","routesData","routeData","SidebarComponent","routes","index","generateSubMenuData","labels","path","views","icons","diamond","faGem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils/utils.ts","../src/components/dropdown/Dropdown.tsx","../src/components/contentMenuComponent/UserInfo.tsx","../src/components/contentMenuComponent/LanguageDropdown.tsx","../src/components/menu/TopNavBarComponent/TopNavBarComponent.tsx","../src/components/menu/sidebar/SidebarItem.tsx","../src/components/menu/sidebar/Sidebar.tsx","../src/components/menu/sidebar/subMenuComponent/SubMenuComponent.tsx"],"sourcesContent":["export function uuidV4() {\n return ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c: any) =>\n (\n ((c ^ crypto.getRandomValues(new Uint8Array(1))[0]) & 15) >>\n (c / 4)\n ).toString(16)\n )\n}\n\n\nexport const colors = {\n 'A': '#FF5733',\n 'B': '#33FF57',\n 'C': '#5733FF',\n 'D': '#FF33B8',\n 'E': '#33B8FF',\n 'F': '#FFFF33',\n 'G': '#33FFFF',\n 'H': '#FF33A6',\n 'I': '#33A6FF',\n 'J': '#FF9033',\n 'K': '#3390FF',\n 'L': '#FF33F6',\n 'M': '#33F6FF',\n 'N': '#C833FF',\n 'O': '#33FFC8',\n 'P': '#FFC833',\n 'Q': '#33FF58',\n 'R': '#FF5833',\n 'S': '#58FF33',\n 'T': '#FF3358',\n 'U': '#3358FF',\n 'V': '#FF33D6',\n 'W': '#33D6FF',\n 'X': '#FF336A',\n 'Y': '#336AFF',\n 'Z': '#FFD633'\n}\n","import React, { useState } from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons'\nimport { colors } from '../../utils/utils'\n\nexport default function Dropdown(props: { startNameWord: string }) {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false)\n\n const toggleDropdown = () => {\n setIsDropdownOpen(!isDropdownOpen)\n }\n\n return (\n <div className=\"crm-class-dropdown crm-class-mr-20\" onClick={toggleDropdown}>\n <span style={{ background: colors[props.startNameWord.toUpperCase()] }}\n className=\"crm-class-top-nav-bar-avatar\">{props.startNameWord.toUpperCase()}</span>\n <span className=\"crm-class-ml-20\">\n <FontAwesomeIcon\n icon={isDropdownOpen ? faChevronUp : faChevronDown}\n className=\"crm-class-color-icon crm-class-slate-gray\"\n />\n </span>\n {isDropdownOpen && (\n <div className=\"crm-class-dropdown-content\">\n <p>Dropdown content here</p>\n </div>\n )}\n </div>\n )\n}\n","import React from 'react'\n\n\ninterface Props {\n email: string;\n name: string;\n}\n\nexport default function UserInfo({ name, email }: Props) {\n return (\n <div className=\"crm-class-top-nav-bar-info-user\">\n <span className=\"crm-class-font-bold\">{name} </span>\n <span>{email}</span>\n </div>\n )\n}\n","import React, { useState } from 'react'\n\nexport interface Language {\n code: string;\n label: string;\n flag: string;\n}\n\n\nexport default function LanguageDropdown(props: { languages: Language[] }) {\n const [selectedLanguage, setSelectedLanguage] = useState<Language>(\n props.languages[0]\n )\n\n const handleLanguageChange = (language: Language) => {\n setSelectedLanguage(language)\n }\n\n return (\n <div className=\"crm-class-dropdown-flag crm-class-mr-20\">\n <span className=\"crm-class-content-flag\">\n <span className={`crm-class-flag large ${selectedLanguage.flag}`}></span>\n </span>\n\n <div className=\"crm-class-dropdown-menu\">\n <button className=\"crm-class-dropdown-toggle\" type=\"button\">\n Choose Language\n </button>\n <h6 className=\"crm-class-dropdown-header\">Popular Languages</h6>\n {props.languages.map((language) => (\n <button\n key={language.code}\n type=\"button\"\n className=\"crm-class-dropdown-item \"\n onClick={() => handleLanguageChange(language)}\n >\n <span\n className={` opacity-8 crm-class-flag large crm-class-mr-20 ${language.flag}`}\n ></span>\n {language.code}\n </button>\n ))}\n </div>\n </div>\n )\n}\n","import { faBars, faSearch } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport React from 'react'\nimport Dropdown from '../../dropdown/Dropdown'\nimport UserInfo from '../../contentMenuComponent/UserInfo'\nimport LanguageDropdown, { Language } from '../../contentMenuComponent/LanguageDropdown'\n\ninterface Props {\n languages: Language[];\n onChooseLanguage?: (language: Language) => void;\n user: {\n name: string;\n email: string;\n },\n logoSrc?: string;\n}\n\nexport default function TopNavBarComponent(props: Props) {\n\n\n return (\n <div className=\"crm-class-top-nav-bar\">\n <div className=\"crm-class-flex-container\">\n <FontAwesomeIcon\n icon={faBars}\n color=\"#3f6ad8\"\n size=\"1x\"\n className=\"crm-class-mr-20 crm-class-cursor-pointer\"\n />\n <div className=\"crm-class-flex-container\">\n <div className=\"crm-class-icon-container crm-class-mr-20\">\n <FontAwesomeIcon\n icon={faSearch}\n color=\"#3f6ad8\"\n className=\"\"\n size=\"1x\"\n />\n </div>\n\n <img\n src={props.logoSrc ?? 'https://via.placeholder.com/150'}\n style={{ height: '30px' }}\n alt=\"\"\n />\n </div>\n </div>\n <div className=\"crm-class-top-nav-bar-options\">\n {/* */}\n\n <LanguageDropdown languages={props.languages} />\n\n\n <Dropdown startNameWord={props.user.name?.[0]} />\n <UserInfo name={props.user.name} email={props.user.email} />\n </div>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { SidebarItemProps } from '../../../types/Common'\nimport { uuidV4 } from '../../../utils/utils'\n\nconst SidebarItem = ({ route }: SidebarItemProps) => {\n const { icon, label, subRoutes = [], className } = route\n const [isSubMenuOpen, setIsSubMenuOpen] = useState(route.selected || false)\n\n const toggleSubMenu = () => {\n setIsSubMenuOpen((prevState) => !prevState)\n }\n return (\n <React.Fragment>\n <li\n className={`crm-class-sidebar-li ${className ?? ''}`}\n onClick={toggleSubMenu}\n >\n {icon && icon}\n <span onClick={route.subRoutes?.length ? undefined : route.action}\n className={`${route.selected ? 'crm-class-font-bold' : ''} `}>{label}</span>\n\n {!!subRoutes.length && (\n <span className=\"crm-class-ml-auto\">\n <FontAwesomeIcon\n icon={isSubMenuOpen ? faChevronUp : faChevronDown}\n className=\"crm-class-color-icon crm-class-font-10 crm-class-slate-gray\"\n />\n </span>\n )}\n </li>\n {(isSubMenuOpen) && !!subRoutes.length && (\n <ul className=\"crm-class-sidebar-sub-menu-list\">\n {subRoutes?.map((item) => (\n <SidebarItem key={uuidV4()} route={item} />\n ))}\n </ul>\n )}\n </React.Fragment>\n )\n}\n\nexport default SidebarItem\n","import { IconDefinition } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { Route } from '../../../types/Common'\nimport SidebarItem from './SidebarItem'\nimport React from 'react'\n\ninterface RoutesData {\n label: string;\n icon: IconDefinition;\n subRoutes: Route[];\n}\n\nconst generateRoute = (\n label: string,\n icon: React.ReactNode | IconDefinition,\n action?: () => void,\n subRoutes: Route[] = []\n): Route => ({\n label,\n visible: true,\n enable: true,\n icon: (\n <span className=\"crm-class-color-icon crm-class-mr-10\">\n {icon && (\n <FontAwesomeIcon\n icon={icon as IconDefinition}\n className=\"crm-class-color-icon\"\n />\n )}\n </span>\n ),\n action: () => action?.(),\n subRoutes: subRoutes.map((subRoute) =>\n generateRoute(subRoute.label, subRoute.icon, subRoute.action, subRoute.subRoutes || [])\n )\n})\n\nconst generateRoutes = (\n routesData: {\n label: string;\n icon: IconDefinition | undefined;\n action?: () => void;\n subRoutes: Route[];\n }[]\n): Route[] => {\n return routesData.map((routeData) =>\n generateRoute(routeData.label, routeData?.icon, routeData.action, routeData.subRoutes)\n )\n}\n\nconst SidebarComponent = (props: { routesData: RoutesData[], children: React.ReactNode }) => {\n\n\n const routes: Route[] = generateRoutes(props.routesData)\n\n return (\n <div style={{ display: 'flex' }}>\n <div className=\"crm-class-sidebar\">\n <ul className=\"crm-class-sidebar-list\">\n <span className=\"crm-class-title\">MENU</span>\n\n {routes.map((route, index) => (\n <SidebarItem key={`route_${index}`} route={route} />\n ))}\n\n </ul>\n </div>\n <div className=\"crm-class-sidebar-content\">\n {props.children}\n </div>\n </div>\n )\n}\nexport default SidebarComponent\n","import { faGem } from '@fortawesome/free-regular-svg-icons'\nimport { Route } from '../../../../types/Common'\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons'\n\ninterface View {\n path: string;\n name: string;\n root: string;\n permission: string;\n views?: View[];\n}\n\nexport const generateSubMenuData = (labels: View[]): Route[] => {\n return labels.map((label) => ({\n label: label.name,\n className: 'crm-class-ml-20',\n path: label.path,\n subRoutes: generateSubMenuData(label.views || [])\n }))\n}\n\nexport const icons: Record<string, IconDefinition> = {\n diamond: faGem,\n default: faGem\n}\n"],"names":["uuidV4","replace","c","crypto","getRandomValues","Uint8Array","toString","colors","Dropdown","props","_useState","useState","isDropdownOpen","setIsDropdownOpen","toggleDropdown","React","className","onClick","style","background","startNameWord","toUpperCase","FontAwesomeIcon","icon","faChevronUp","faChevronDown","UserInfo","_ref","name","email","LanguageDropdown","languages","selectedLanguage","setSelectedLanguage","handleLanguageChange","language","flag","type","map","key","code","TopNavBarComponent","faBars","color","size","faSearch","src","_props$logoSrc","logoSrc","height","alt","_props$user$name","user","SidebarItem","route","label","_route$subRoutes","subRoutes","selected","isSubMenuOpen","setIsSubMenuOpen","toggleSubMenu","prevState","Fragment","_route$subRoutes2","length","undefined","action","item","generateRoute","visible","enable","subRoute","generateRoutes","routesData","routeData","SidebarComponent","routes","display","index","children","generateSubMenuData","labels","path","views","icons","diamond","faGem"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
|
@@ -211,9 +211,13 @@ var generateRoutes = function generateRoutes(routesData) {
|
|
|
211
211
|
var SidebarComponent = function SidebarComponent(props) {
|
|
212
212
|
var routes = generateRoutes(props.routesData);
|
|
213
213
|
return React.createElement("div", {
|
|
214
|
+
style: {
|
|
215
|
+
display: 'flex'
|
|
216
|
+
}
|
|
217
|
+
}, React.createElement("div", {
|
|
214
218
|
className: "crm-class-sidebar"
|
|
215
219
|
}, React.createElement("ul", {
|
|
216
|
-
className: "crm-class-sidebar-list
|
|
220
|
+
className: "crm-class-sidebar-list"
|
|
217
221
|
}, React.createElement("span", {
|
|
218
222
|
className: "crm-class-title"
|
|
219
223
|
}, "MENU"), routes.map(function (route, index) {
|
|
@@ -221,7 +225,9 @@ var SidebarComponent = function SidebarComponent(props) {
|
|
|
221
225
|
key: "route_" + index,
|
|
222
226
|
route: route
|
|
223
227
|
});
|
|
224
|
-
})))
|
|
228
|
+
}))), React.createElement("div", {
|
|
229
|
+
className: "crm-class-sidebar-content"
|
|
230
|
+
}, props.children));
|
|
225
231
|
};
|
|
226
232
|
|
|
227
233
|
var generateSubMenuData = function generateSubMenuData(labels) {
|
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/utils/utils.ts","../src/components/dropdown/Dropdown.tsx","../src/components/contentMenuComponent/UserInfo.tsx","../src/components/contentMenuComponent/LanguageDropdown.tsx","../src/components/menu/TopNavBarComponent/TopNavBarComponent.tsx","../src/components/menu/sidebar/SidebarItem.tsx","../src/components/menu/sidebar/Sidebar.tsx","../src/components/menu/sidebar/subMenuComponent/SubMenuComponent.tsx"],"sourcesContent":["export function uuidV4() {\n return ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c: any) =>\n (\n ((c ^ crypto.getRandomValues(new Uint8Array(1))[0]) & 15) >>\n (c / 4)\n ).toString(16)\n )\n}\n\n\nexport const colors = {\n 'A': '#FF5733',\n 'B': '#33FF57',\n 'C': '#5733FF',\n 'D': '#FF33B8',\n 'E': '#33B8FF',\n 'F': '#FFFF33',\n 'G': '#33FFFF',\n 'H': '#FF33A6',\n 'I': '#33A6FF',\n 'J': '#FF9033',\n 'K': '#3390FF',\n 'L': '#FF33F6',\n 'M': '#33F6FF',\n 'N': '#C833FF',\n 'O': '#33FFC8',\n 'P': '#FFC833',\n 'Q': '#33FF58',\n 'R': '#FF5833',\n 'S': '#58FF33',\n 'T': '#FF3358',\n 'U': '#3358FF',\n 'V': '#FF33D6',\n 'W': '#33D6FF',\n 'X': '#FF336A',\n 'Y': '#336AFF',\n 'Z': '#FFD633'\n}\n","import React, { useState } from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons'\nimport { colors } from '../../utils/utils'\n\nexport default function Dropdown(props: { startNameWord: string }) {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false)\n\n const toggleDropdown = () => {\n setIsDropdownOpen(!isDropdownOpen)\n }\n\n return (\n <div className=\"crm-class-dropdown crm-class-mr-20\" onClick={toggleDropdown}>\n <span style={{ background: colors[props.startNameWord.toUpperCase()] }}\n className=\"crm-class-top-nav-bar-avatar\">{props.startNameWord.toUpperCase()}</span>\n <span className=\"crm-class-ml-20\">\n <FontAwesomeIcon\n icon={isDropdownOpen ? faChevronUp : faChevronDown}\n className=\"crm-class-color-icon crm-class-slate-gray\"\n />\n </span>\n {isDropdownOpen && (\n <div className=\"crm-class-dropdown-content\">\n <p>Dropdown content here</p>\n </div>\n )}\n </div>\n )\n}\n","import React from 'react'\n\n\ninterface Props {\n email: string;\n name: string;\n}\n\nexport default function UserInfo({ name, email }: Props) {\n return (\n <div className=\"crm-class-top-nav-bar-info-user\">\n <span className=\"crm-class-font-bold\">{name} </span>\n <span>{email}</span>\n </div>\n )\n}\n","import React, { useState } from 'react'\n\nexport interface Language {\n code: string;\n label: string;\n flag: string;\n}\n\n\nexport default function LanguageDropdown(props: { languages: Language[] }) {\n const [selectedLanguage, setSelectedLanguage] = useState<Language>(\n props.languages[0]\n )\n\n const handleLanguageChange = (language: Language) => {\n setSelectedLanguage(language)\n }\n\n return (\n <div className=\"crm-class-dropdown-flag crm-class-mr-20\">\n <span className=\"crm-class-content-flag\">\n <span className={`crm-class-flag large ${selectedLanguage.flag}`}></span>\n </span>\n\n <div className=\"crm-class-dropdown-menu\">\n <button className=\"crm-class-dropdown-toggle\" type=\"button\">\n Choose Language\n </button>\n <h6 className=\"crm-class-dropdown-header\">Popular Languages</h6>\n {props.languages.map((language) => (\n <button\n key={language.code}\n type=\"button\"\n className=\"crm-class-dropdown-item \"\n onClick={() => handleLanguageChange(language)}\n >\n <span\n className={` opacity-8 crm-class-flag large crm-class-mr-20 ${language.flag}`}\n ></span>\n {language.code}\n </button>\n ))}\n </div>\n </div>\n )\n}\n","import { faBars, faSearch } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport React from 'react'\nimport Dropdown from '../../dropdown/Dropdown'\nimport UserInfo from '../../contentMenuComponent/UserInfo'\nimport LanguageDropdown, { Language } from '../../contentMenuComponent/LanguageDropdown'\n\ninterface Props {\n languages: Language[];\n onChooseLanguage?: (language: Language) => void;\n user: {\n name: string;\n email: string;\n },\n logoSrc?: string;\n}\n\nexport default function TopNavBarComponent(props: Props) {\n\n\n return (\n <div className=\"crm-class-top-nav-bar\">\n <div className=\"crm-class-flex-container\">\n <FontAwesomeIcon\n icon={faBars}\n color=\"#3f6ad8\"\n size=\"1x\"\n className=\"crm-class-mr-20 crm-class-cursor-pointer\"\n />\n <div className=\"crm-class-flex-container\">\n <div className=\"crm-class-icon-container crm-class-mr-20\">\n <FontAwesomeIcon\n icon={faSearch}\n color=\"#3f6ad8\"\n className=\"\"\n size=\"1x\"\n />\n </div>\n\n <img\n src={props.logoSrc ?? 'https://via.placeholder.com/150'}\n style={{ height: '30px' }}\n alt=\"\"\n />\n </div>\n </div>\n <div className=\"crm-class-top-nav-bar-options\">\n {/* */}\n\n <LanguageDropdown languages={props.languages} />\n\n\n <Dropdown startNameWord={props.user.name?.[0]} />\n <UserInfo name={props.user.name} email={props.user.email} />\n </div>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { SidebarItemProps } from '../../../types/Common'\nimport { uuidV4 } from '../../../utils/utils'\n\nconst SidebarItem = ({ route }: SidebarItemProps) => {\n const { icon, label, subRoutes = [], className } = route\n const [isSubMenuOpen, setIsSubMenuOpen] = useState(route.selected || false)\n\n const toggleSubMenu = () => {\n setIsSubMenuOpen((prevState) => !prevState)\n }\n return (\n <React.Fragment>\n <li\n className={`crm-class-sidebar-li ${className ?? ''}`}\n onClick={toggleSubMenu}\n >\n {icon && icon}\n <span onClick={route.subRoutes?.length ? undefined : route.action}\n className={`${route.selected ? 'crm-class-font-bold' : ''} `}>{label}</span>\n\n {!!subRoutes.length && (\n <span className=\"crm-class-ml-auto\">\n <FontAwesomeIcon\n icon={isSubMenuOpen ? faChevronUp : faChevronDown}\n className=\"crm-class-color-icon crm-class-font-10 crm-class-slate-gray\"\n />\n </span>\n )}\n </li>\n {(isSubMenuOpen) && !!subRoutes.length && (\n <ul className=\"crm-class-sidebar-sub-menu-list\">\n {subRoutes?.map((item) => (\n <SidebarItem key={uuidV4()} route={item} />\n ))}\n </ul>\n )}\n </React.Fragment>\n )\n}\n\nexport default SidebarItem\n","import { IconDefinition } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { Route } from '../../../types/Common'\nimport SidebarItem from './SidebarItem'\nimport React from 'react'\n\ninterface RoutesData {\n label: string;\n icon: IconDefinition;\n subRoutes: Route[];\n}\n\nconst generateRoute = (\n label: string,\n icon: React.ReactNode | IconDefinition,\n action?: () => void,\n subRoutes: Route[] = []\n): Route => ({\n label,\n visible: true,\n enable: true,\n icon: (\n <span className=\"crm-class-color-icon crm-class-mr-10\">\n {icon && (\n <FontAwesomeIcon\n icon={icon as IconDefinition}\n className=\"crm-class-color-icon\"\n />\n )}\n </span>\n ),\n action: () => action?.(),\n subRoutes: subRoutes.map((subRoute) =>\n generateRoute(subRoute.label, subRoute.icon, subRoute.action, subRoute.subRoutes || [])\n )\n})\n\nconst generateRoutes = (\n routesData: {\n label: string;\n icon: IconDefinition | undefined;\n action?: () => void;\n subRoutes: Route[];\n }[]\n): Route[] => {\n return routesData.map((routeData) =>\n generateRoute(routeData.label, routeData?.icon, routeData.action, routeData.subRoutes)\n )\n}\n\nconst SidebarComponent = (props: { routesData: RoutesData[] }) => {\n\n\n const routes: Route[] = generateRoutes(props.routesData)\n\n return (\n <div className=\"crm-class-sidebar\">\n <ul className=\"crm-class-sidebar-list crm-class-mt-70\">\n <span className=\"crm-class-title\">MENU</span>\n\n {routes.map((route, index) => (\n <SidebarItem key={`route_${index}`} route={route} />\n ))}\n\n </ul>\n </div>\n )\n}\nexport default SidebarComponent\n","import { faGem } from '@fortawesome/free-regular-svg-icons'\nimport { Route } from '../../../../types/Common'\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons'\n\ninterface View {\n path: string;\n name: string;\n root: string;\n permission: string;\n views?: View[];\n}\n\nexport const generateSubMenuData = (labels: View[]): Route[] => {\n return labels.map((label) => ({\n label: label.name,\n className: 'crm-class-ml-20',\n path: label.path,\n subRoutes: generateSubMenuData(label.views || [])\n }))\n}\n\nexport const icons: Record<string, IconDefinition> = {\n diamond: faGem,\n default: faGem\n}\n"],"names":["uuidV4","replace","c","crypto","getRandomValues","Uint8Array","toString","colors","Dropdown","props","_useState","useState","isDropdownOpen","setIsDropdownOpen","toggleDropdown","React","className","onClick","style","background","startNameWord","toUpperCase","FontAwesomeIcon","icon","faChevronUp","faChevronDown","UserInfo","_ref","name","email","LanguageDropdown","languages","selectedLanguage","setSelectedLanguage","handleLanguageChange","language","flag","type","map","key","code","TopNavBarComponent","faBars","color","size","faSearch","src","_props$logoSrc","logoSrc","height","alt","_props$user$name","user","SidebarItem","route","label","_route$subRoutes","subRoutes","selected","isSubMenuOpen","setIsSubMenuOpen","toggleSubMenu","prevState","Fragment","_route$subRoutes2","length","undefined","action","item","generateRoute","visible","enable","subRoute","generateRoutes","routesData","routeData","SidebarComponent","routes","index","generateSubMenuData","labels","path","views","icons","diamond","faGem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/utils/utils.ts","../src/components/dropdown/Dropdown.tsx","../src/components/contentMenuComponent/UserInfo.tsx","../src/components/contentMenuComponent/LanguageDropdown.tsx","../src/components/menu/TopNavBarComponent/TopNavBarComponent.tsx","../src/components/menu/sidebar/SidebarItem.tsx","../src/components/menu/sidebar/Sidebar.tsx","../src/components/menu/sidebar/subMenuComponent/SubMenuComponent.tsx"],"sourcesContent":["export function uuidV4() {\n return ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c: any) =>\n (\n ((c ^ crypto.getRandomValues(new Uint8Array(1))[0]) & 15) >>\n (c / 4)\n ).toString(16)\n )\n}\n\n\nexport const colors = {\n 'A': '#FF5733',\n 'B': '#33FF57',\n 'C': '#5733FF',\n 'D': '#FF33B8',\n 'E': '#33B8FF',\n 'F': '#FFFF33',\n 'G': '#33FFFF',\n 'H': '#FF33A6',\n 'I': '#33A6FF',\n 'J': '#FF9033',\n 'K': '#3390FF',\n 'L': '#FF33F6',\n 'M': '#33F6FF',\n 'N': '#C833FF',\n 'O': '#33FFC8',\n 'P': '#FFC833',\n 'Q': '#33FF58',\n 'R': '#FF5833',\n 'S': '#58FF33',\n 'T': '#FF3358',\n 'U': '#3358FF',\n 'V': '#FF33D6',\n 'W': '#33D6FF',\n 'X': '#FF336A',\n 'Y': '#336AFF',\n 'Z': '#FFD633'\n}\n","import React, { useState } from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons'\nimport { colors } from '../../utils/utils'\n\nexport default function Dropdown(props: { startNameWord: string }) {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false)\n\n const toggleDropdown = () => {\n setIsDropdownOpen(!isDropdownOpen)\n }\n\n return (\n <div className=\"crm-class-dropdown crm-class-mr-20\" onClick={toggleDropdown}>\n <span style={{ background: colors[props.startNameWord.toUpperCase()] }}\n className=\"crm-class-top-nav-bar-avatar\">{props.startNameWord.toUpperCase()}</span>\n <span className=\"crm-class-ml-20\">\n <FontAwesomeIcon\n icon={isDropdownOpen ? faChevronUp : faChevronDown}\n className=\"crm-class-color-icon crm-class-slate-gray\"\n />\n </span>\n {isDropdownOpen && (\n <div className=\"crm-class-dropdown-content\">\n <p>Dropdown content here</p>\n </div>\n )}\n </div>\n )\n}\n","import React from 'react'\n\n\ninterface Props {\n email: string;\n name: string;\n}\n\nexport default function UserInfo({ name, email }: Props) {\n return (\n <div className=\"crm-class-top-nav-bar-info-user\">\n <span className=\"crm-class-font-bold\">{name} </span>\n <span>{email}</span>\n </div>\n )\n}\n","import React, { useState } from 'react'\n\nexport interface Language {\n code: string;\n label: string;\n flag: string;\n}\n\n\nexport default function LanguageDropdown(props: { languages: Language[] }) {\n const [selectedLanguage, setSelectedLanguage] = useState<Language>(\n props.languages[0]\n )\n\n const handleLanguageChange = (language: Language) => {\n setSelectedLanguage(language)\n }\n\n return (\n <div className=\"crm-class-dropdown-flag crm-class-mr-20\">\n <span className=\"crm-class-content-flag\">\n <span className={`crm-class-flag large ${selectedLanguage.flag}`}></span>\n </span>\n\n <div className=\"crm-class-dropdown-menu\">\n <button className=\"crm-class-dropdown-toggle\" type=\"button\">\n Choose Language\n </button>\n <h6 className=\"crm-class-dropdown-header\">Popular Languages</h6>\n {props.languages.map((language) => (\n <button\n key={language.code}\n type=\"button\"\n className=\"crm-class-dropdown-item \"\n onClick={() => handleLanguageChange(language)}\n >\n <span\n className={` opacity-8 crm-class-flag large crm-class-mr-20 ${language.flag}`}\n ></span>\n {language.code}\n </button>\n ))}\n </div>\n </div>\n )\n}\n","import { faBars, faSearch } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport React from 'react'\nimport Dropdown from '../../dropdown/Dropdown'\nimport UserInfo from '../../contentMenuComponent/UserInfo'\nimport LanguageDropdown, { Language } from '../../contentMenuComponent/LanguageDropdown'\n\ninterface Props {\n languages: Language[];\n onChooseLanguage?: (language: Language) => void;\n user: {\n name: string;\n email: string;\n },\n logoSrc?: string;\n}\n\nexport default function TopNavBarComponent(props: Props) {\n\n\n return (\n <div className=\"crm-class-top-nav-bar\">\n <div className=\"crm-class-flex-container\">\n <FontAwesomeIcon\n icon={faBars}\n color=\"#3f6ad8\"\n size=\"1x\"\n className=\"crm-class-mr-20 crm-class-cursor-pointer\"\n />\n <div className=\"crm-class-flex-container\">\n <div className=\"crm-class-icon-container crm-class-mr-20\">\n <FontAwesomeIcon\n icon={faSearch}\n color=\"#3f6ad8\"\n className=\"\"\n size=\"1x\"\n />\n </div>\n\n <img\n src={props.logoSrc ?? 'https://via.placeholder.com/150'}\n style={{ height: '30px' }}\n alt=\"\"\n />\n </div>\n </div>\n <div className=\"crm-class-top-nav-bar-options\">\n {/* */}\n\n <LanguageDropdown languages={props.languages} />\n\n\n <Dropdown startNameWord={props.user.name?.[0]} />\n <UserInfo name={props.user.name} email={props.user.email} />\n </div>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { SidebarItemProps } from '../../../types/Common'\nimport { uuidV4 } from '../../../utils/utils'\n\nconst SidebarItem = ({ route }: SidebarItemProps) => {\n const { icon, label, subRoutes = [], className } = route\n const [isSubMenuOpen, setIsSubMenuOpen] = useState(route.selected || false)\n\n const toggleSubMenu = () => {\n setIsSubMenuOpen((prevState) => !prevState)\n }\n return (\n <React.Fragment>\n <li\n className={`crm-class-sidebar-li ${className ?? ''}`}\n onClick={toggleSubMenu}\n >\n {icon && icon}\n <span onClick={route.subRoutes?.length ? undefined : route.action}\n className={`${route.selected ? 'crm-class-font-bold' : ''} `}>{label}</span>\n\n {!!subRoutes.length && (\n <span className=\"crm-class-ml-auto\">\n <FontAwesomeIcon\n icon={isSubMenuOpen ? faChevronUp : faChevronDown}\n className=\"crm-class-color-icon crm-class-font-10 crm-class-slate-gray\"\n />\n </span>\n )}\n </li>\n {(isSubMenuOpen) && !!subRoutes.length && (\n <ul className=\"crm-class-sidebar-sub-menu-list\">\n {subRoutes?.map((item) => (\n <SidebarItem key={uuidV4()} route={item} />\n ))}\n </ul>\n )}\n </React.Fragment>\n )\n}\n\nexport default SidebarItem\n","import { IconDefinition } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { Route } from '../../../types/Common'\nimport SidebarItem from './SidebarItem'\nimport React from 'react'\n\ninterface RoutesData {\n label: string;\n icon: IconDefinition;\n subRoutes: Route[];\n}\n\nconst generateRoute = (\n label: string,\n icon: React.ReactNode | IconDefinition,\n action?: () => void,\n subRoutes: Route[] = []\n): Route => ({\n label,\n visible: true,\n enable: true,\n icon: (\n <span className=\"crm-class-color-icon crm-class-mr-10\">\n {icon && (\n <FontAwesomeIcon\n icon={icon as IconDefinition}\n className=\"crm-class-color-icon\"\n />\n )}\n </span>\n ),\n action: () => action?.(),\n subRoutes: subRoutes.map((subRoute) =>\n generateRoute(subRoute.label, subRoute.icon, subRoute.action, subRoute.subRoutes || [])\n )\n})\n\nconst generateRoutes = (\n routesData: {\n label: string;\n icon: IconDefinition | undefined;\n action?: () => void;\n subRoutes: Route[];\n }[]\n): Route[] => {\n return routesData.map((routeData) =>\n generateRoute(routeData.label, routeData?.icon, routeData.action, routeData.subRoutes)\n )\n}\n\nconst SidebarComponent = (props: { routesData: RoutesData[], children: React.ReactNode }) => {\n\n\n const routes: Route[] = generateRoutes(props.routesData)\n\n return (\n <div style={{ display: 'flex' }}>\n <div className=\"crm-class-sidebar\">\n <ul className=\"crm-class-sidebar-list\">\n <span className=\"crm-class-title\">MENU</span>\n\n {routes.map((route, index) => (\n <SidebarItem key={`route_${index}`} route={route} />\n ))}\n\n </ul>\n </div>\n <div className=\"crm-class-sidebar-content\">\n {props.children}\n </div>\n </div>\n )\n}\nexport default SidebarComponent\n","import { faGem } from '@fortawesome/free-regular-svg-icons'\nimport { Route } from '../../../../types/Common'\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons'\n\ninterface View {\n path: string;\n name: string;\n root: string;\n permission: string;\n views?: View[];\n}\n\nexport const generateSubMenuData = (labels: View[]): Route[] => {\n return labels.map((label) => ({\n label: label.name,\n className: 'crm-class-ml-20',\n path: label.path,\n subRoutes: generateSubMenuData(label.views || [])\n }))\n}\n\nexport const icons: Record<string, IconDefinition> = {\n diamond: faGem,\n default: faGem\n}\n"],"names":["uuidV4","replace","c","crypto","getRandomValues","Uint8Array","toString","colors","Dropdown","props","_useState","useState","isDropdownOpen","setIsDropdownOpen","toggleDropdown","React","className","onClick","style","background","startNameWord","toUpperCase","FontAwesomeIcon","icon","faChevronUp","faChevronDown","UserInfo","_ref","name","email","LanguageDropdown","languages","selectedLanguage","setSelectedLanguage","handleLanguageChange","language","flag","type","map","key","code","TopNavBarComponent","faBars","color","size","faSearch","src","_props$logoSrc","logoSrc","height","alt","_props$user$name","user","SidebarItem","route","label","_route$subRoutes","subRoutes","selected","isSubMenuOpen","setIsSubMenuOpen","toggleSubMenu","prevState","Fragment","_route$subRoutes2","length","undefined","action","item","generateRoute","visible","enable","subRoute","generateRoutes","routesData","routeData","SidebarComponent","routes","display","index","children","generateSubMenuData","labels","path","views","icons","diamond","faGem"],"mappings":"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"}
|