sbx-crm-menu-ui 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/components/contentMenuComponent/LanguageDropdown.d.ts +2 -0
- package/dist/components/contentMenuComponent/UserInfo.d.ts +7 -0
- package/dist/components/dropdown/Dropdown.d.ts +2 -0
- package/dist/components/menu/TopNavBarComponent/TopNavBarComponent.d.ts +2 -0
- package/dist/components/menu/sidebar/Sidebar.d.ts +3 -0
- package/dist/components/menu/sidebar/SidebarItem.d.ts +4 -0
- package/dist/components/menu/sidebar/subMenuComponent/SubMenuComponent.d.ts +13 -0
- package/dist/index.css +307 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +264 -0
- package/dist/index.js.map +1 -0
- package/dist/index.modern.js +260 -0
- package/dist/index.modern.js.map +1 -0
- package/dist/index.test.d.ts +1 -0
- package/dist/types/Common.d.ts +13 -0
- package/dist/utils/utils.d.ts +1 -0
- package/package.json +70 -0
package/README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# sbx-crm-menu-ui
|
|
2
|
+
|
|
3
|
+
> Menu Create by SBX Company for CRM.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/sbx-crm-menu-ui) [](https://standardjs.com)
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install --save sbx-crm-menu-ui
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import React, { Component } from 'react'
|
|
17
|
+
|
|
18
|
+
import MyComponent from 'sbx-crm-menu-ui'
|
|
19
|
+
import 'sbx-crm-menu-ui/dist/index.css'
|
|
20
|
+
|
|
21
|
+
class Example extends Component {
|
|
22
|
+
render() {
|
|
23
|
+
return <MyComponent />
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## License
|
|
29
|
+
|
|
30
|
+
ISC © [Frank Carpio](https://github.com/Frank Carpio)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Route } from "../../../../types/Common";
|
|
2
|
+
export declare const generateSubMenuData: (labels: string[]) => Route[];
|
|
3
|
+
declare const subMenuDataHome: Route[];
|
|
4
|
+
declare const subMenuDataAnalytics: Route[];
|
|
5
|
+
declare const subMenuDataProcess: Route[];
|
|
6
|
+
declare const subMenuDataForm: Route[];
|
|
7
|
+
declare const subMenuDataComunications: Route[];
|
|
8
|
+
declare const subMenuDataDataProviders: Route[];
|
|
9
|
+
declare const subMenuData: Route[];
|
|
10
|
+
declare const subMenuDataReports: Route[];
|
|
11
|
+
declare const subMenuDataConfig: Route[];
|
|
12
|
+
declare const subMenuDataMarketing: Route[];
|
|
13
|
+
export { subMenuDataHome, subMenuData, subMenuDataComunications, subMenuDataConfig, subMenuDataDataProviders, subMenuDataForm, subMenuDataReports, subMenuDataMarketing, subMenuDataAnalytics, subMenuDataProcess, };
|
package/dist/index.css
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
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
|
+
*,
|
|
15
|
+
::after,
|
|
16
|
+
::before {
|
|
17
|
+
box-sizing: border-box;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.crm-class-sidebar {
|
|
21
|
+
width: 320px;
|
|
22
|
+
height: 100%;
|
|
23
|
+
color: white;
|
|
24
|
+
position: fixed;
|
|
25
|
+
top: 0;
|
|
26
|
+
left: 0;
|
|
27
|
+
overflow-x: hidden;
|
|
28
|
+
padding-top: 20px;
|
|
29
|
+
transition: 0.5s;
|
|
30
|
+
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.crm-class-sidebar-list {
|
|
34
|
+
list-style-type: none;
|
|
35
|
+
padding: 10px 20px;
|
|
36
|
+
margin: 0;
|
|
37
|
+
color: #555;
|
|
38
|
+
position: relative;
|
|
39
|
+
}
|
|
40
|
+
.crm-class-sidebar-list .cmr-class-tittle {
|
|
41
|
+
font-weight: bold;
|
|
42
|
+
margin-bottom: 10px;
|
|
43
|
+
display: block;
|
|
44
|
+
color: #3f6ad8;
|
|
45
|
+
}
|
|
46
|
+
.crm-class-sidebar-list .crm-class-sidebar-li {
|
|
47
|
+
padding: 10px 15px;
|
|
48
|
+
font-size: 16px;
|
|
49
|
+
transition: 0.3s;
|
|
50
|
+
cursor: pointer;
|
|
51
|
+
display: flex;
|
|
52
|
+
}
|
|
53
|
+
.crm-class-sidebar-list .crm-class-sidebar-li:hover {
|
|
54
|
+
background-color: #e0f3ff;
|
|
55
|
+
border-radius: 4px;
|
|
56
|
+
-webkit-border-radius: 4px;
|
|
57
|
+
-moz-border-radius: 4px;
|
|
58
|
+
-ms-border-radius: 4px;
|
|
59
|
+
-o-border-radius: 4px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.cmr-class-content-sub-menu-items {
|
|
63
|
+
padding-top: 0.5rem;
|
|
64
|
+
padding-bottom: 0.5rem;
|
|
65
|
+
padding-left: 0.6rem;
|
|
66
|
+
padding-right: 0.4rem;
|
|
67
|
+
cursor: pointer;
|
|
68
|
+
}
|
|
69
|
+
.cmr-class-content-sub-menu-items:hover {
|
|
70
|
+
background-color: #e0f3ff;
|
|
71
|
+
border-radius: 4px;
|
|
72
|
+
-webkit-border-radius: 4px;
|
|
73
|
+
-moz-border-radius: 4px;
|
|
74
|
+
-ms-border-radius: 4px;
|
|
75
|
+
-o-border-radius: 4px;
|
|
76
|
+
color: #3f6ad8;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.crm-class-sidebar-sub-menu-list {
|
|
80
|
+
list-style-type: none;
|
|
81
|
+
padding: 10px 20px;
|
|
82
|
+
margin: 0;
|
|
83
|
+
color: #555;
|
|
84
|
+
position: relative;
|
|
85
|
+
}
|
|
86
|
+
.crm-class-sidebar-sub-menu-list::before {
|
|
87
|
+
content: "";
|
|
88
|
+
height: 100%;
|
|
89
|
+
opacity: 1;
|
|
90
|
+
width: 3px;
|
|
91
|
+
background: #e0f3ff;
|
|
92
|
+
position: absolute;
|
|
93
|
+
left: 20px;
|
|
94
|
+
top: 0;
|
|
95
|
+
border-radius: 15px;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.cmr-class-top-nav-bar {
|
|
99
|
+
background-color: white;
|
|
100
|
+
display: flex;
|
|
101
|
+
align-items: center;
|
|
102
|
+
align-content: center;
|
|
103
|
+
flex: 1 1;
|
|
104
|
+
padding: 0 1.5rem;
|
|
105
|
+
height: 80px;
|
|
106
|
+
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
107
|
+
position: relative;
|
|
108
|
+
z-index: 20;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.cmr-class-flex-container {
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: center;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.cmr-class-icon-container {
|
|
117
|
+
width: 60px;
|
|
118
|
+
height: 60px;
|
|
119
|
+
border: none;
|
|
120
|
+
padding: 0;
|
|
121
|
+
outline: none;
|
|
122
|
+
position: relative;
|
|
123
|
+
cursor: pointer;
|
|
124
|
+
transition: all 0.3s ease-in-out;
|
|
125
|
+
background: rgba(0, 0, 0, 0.06);
|
|
126
|
+
border-radius: 30px;
|
|
127
|
+
display: flex;
|
|
128
|
+
align-items: center;
|
|
129
|
+
justify-content: center;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.cmr-class-top-nav-bar-avatar {
|
|
133
|
+
width: 40px;
|
|
134
|
+
height: 40px;
|
|
135
|
+
border: none;
|
|
136
|
+
padding: 0;
|
|
137
|
+
outline: none;
|
|
138
|
+
position: relative;
|
|
139
|
+
cursor: pointer;
|
|
140
|
+
transition: all 0.3s ease-in-out;
|
|
141
|
+
background: #9b6443;
|
|
142
|
+
border-radius: 30px;
|
|
143
|
+
display: flex;
|
|
144
|
+
align-items: center;
|
|
145
|
+
justify-content: center;
|
|
146
|
+
color: white;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.cmr-class-top-nav-bar-options {
|
|
150
|
+
display: flex;
|
|
151
|
+
margin-left: auto;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.cmr-class-dropdown {
|
|
155
|
+
position: relative;
|
|
156
|
+
display: inline-flex;
|
|
157
|
+
align-items: center;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.cmr-class-top-nav-bar-info-user {
|
|
161
|
+
display: flex;
|
|
162
|
+
flex-direction: column;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.cmr-class-dropdown-content {
|
|
166
|
+
display: none;
|
|
167
|
+
position: absolute;
|
|
168
|
+
background-color: #f9f9f9;
|
|
169
|
+
min-width: 160px;
|
|
170
|
+
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
|
|
171
|
+
padding: 12px 16px;
|
|
172
|
+
z-index: 1;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.cmr-class-cursor-pointer {
|
|
176
|
+
cursor: pointer;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.cmr-class-font-10 {
|
|
180
|
+
font-size: 10px;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.cmr-class-slate-gray {
|
|
184
|
+
color: #495057;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.cmr-class-ml-20 {
|
|
188
|
+
margin-left: 20px;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.cmr-class-mr-10 {
|
|
192
|
+
margin-right: 10px;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.cmr-class-color-icon {
|
|
196
|
+
color: #495057;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.cmr-class-ml-auto {
|
|
200
|
+
margin-left: auto;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.cmr-class-list-none {
|
|
204
|
+
list-style-type: none;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.cmr-class-font-bold {
|
|
208
|
+
font-weight: 900;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.cmr-class-mt-70 {
|
|
212
|
+
margin-top: 70px;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.cmr-class-mr-20 {
|
|
216
|
+
margin-right: 20px;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/*/*/
|
|
220
|
+
.cmr-class-content-flag {
|
|
221
|
+
width: 55px;
|
|
222
|
+
height: 55px;
|
|
223
|
+
border: none;
|
|
224
|
+
padding: 0;
|
|
225
|
+
outline: none;
|
|
226
|
+
position: relative;
|
|
227
|
+
cursor: pointer;
|
|
228
|
+
transition: all 0.3s ease-in-out;
|
|
229
|
+
background: rgba(0, 0, 0, 0.06);
|
|
230
|
+
border-radius: 30px;
|
|
231
|
+
display: flex;
|
|
232
|
+
align-items: center;
|
|
233
|
+
justify-content: center;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.cmr-class-flag {
|
|
237
|
+
display: inline-block;
|
|
238
|
+
width: 20px;
|
|
239
|
+
height: 15px;
|
|
240
|
+
background-size: cover;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.cmr-class-flag.large {
|
|
244
|
+
width: 30px;
|
|
245
|
+
height: 20px;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.cmr-class-flag.US {
|
|
249
|
+
background-image: url("https://flagcdn.com/w20/us.png");
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.cmr-class-flag.ES {
|
|
253
|
+
background-image: url("https://flagcdn.com/w20/es.png");
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.cmr-class-flag.NL {
|
|
257
|
+
background-image: url("https://flagcdn.com/w20/nl.png");
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.cmr-class-dropdown-flag {
|
|
261
|
+
position: relative;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.cmr-class-dropdown-toggle {
|
|
265
|
+
background: none;
|
|
266
|
+
border: none;
|
|
267
|
+
cursor: pointer;
|
|
268
|
+
font-size: 16px;
|
|
269
|
+
padding: 10px;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.cmr-class-dropdown-menu {
|
|
273
|
+
display: none;
|
|
274
|
+
position: absolute;
|
|
275
|
+
background-color: white;
|
|
276
|
+
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
|
|
277
|
+
padding: 12px 16px;
|
|
278
|
+
z-index: 1;
|
|
279
|
+
min-width: 200px;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.cmr-class-dropdown-menu .cmr-class-dropdown-header {
|
|
283
|
+
font-weight: bold;
|
|
284
|
+
margin-bottom: 8px;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.cmr-class-dropdown-flag:hover .cmr-class-dropdown-menu {
|
|
288
|
+
display: block;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
.cmr-class-dropdown-item {
|
|
292
|
+
background: none;
|
|
293
|
+
border: none;
|
|
294
|
+
cursor: pointer;
|
|
295
|
+
display: flex;
|
|
296
|
+
align-items: center;
|
|
297
|
+
padding: 8px 0;
|
|
298
|
+
width: 100%;
|
|
299
|
+
text-align: left;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.cmr-class-selected-language {
|
|
303
|
+
display: flex;
|
|
304
|
+
align-items: center;
|
|
305
|
+
justify-items: center;
|
|
306
|
+
justify-content: center;
|
|
307
|
+
}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
2
|
+
|
|
3
|
+
var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
|
|
4
|
+
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var React__default = _interopDefault(React);
|
|
7
|
+
var freeRegularSvgIcons = require('@fortawesome/free-regular-svg-icons');
|
|
8
|
+
|
|
9
|
+
function Dropdown() {
|
|
10
|
+
var _useState = React.useState(false),
|
|
11
|
+
isDropdownOpen = _useState[0],
|
|
12
|
+
setIsDropdownOpen = _useState[1];
|
|
13
|
+
var toggleDropdown = function toggleDropdown() {
|
|
14
|
+
setIsDropdownOpen(!isDropdownOpen);
|
|
15
|
+
};
|
|
16
|
+
return React__default.createElement("div", {
|
|
17
|
+
className: "cmr-class-dropdown cmr-class-mr-20",
|
|
18
|
+
onClick: toggleDropdown
|
|
19
|
+
}, React__default.createElement("span", {
|
|
20
|
+
className: "cmr-class-top-nav-bar-avatar"
|
|
21
|
+
}, "A"), React__default.createElement("span", {
|
|
22
|
+
className: "cmr-class-ml-20"
|
|
23
|
+
}, React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
24
|
+
icon: isDropdownOpen ? freeSolidSvgIcons.faChevronUp : freeSolidSvgIcons.faChevronDown,
|
|
25
|
+
className: "cmr-class-color-icon cmr-class-slate-gray"
|
|
26
|
+
})), isDropdownOpen && React__default.createElement("div", {
|
|
27
|
+
className: "cmr-class-dropdown-content"
|
|
28
|
+
}, React__default.createElement("p", null, "Dropdown content here")));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function UserInfo(_ref) {
|
|
32
|
+
var name = _ref.name,
|
|
33
|
+
email = _ref.email;
|
|
34
|
+
return React__default.createElement("div", {
|
|
35
|
+
className: "cmr-class-top-nav-bar-info-user"
|
|
36
|
+
}, React__default.createElement("span", {
|
|
37
|
+
className: "cmr-class-font-bold"
|
|
38
|
+
}, name, " "), React__default.createElement("span", null, email));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
var languages = [{
|
|
42
|
+
code: "EN",
|
|
43
|
+
label: "English",
|
|
44
|
+
flag: "US"
|
|
45
|
+
}, {
|
|
46
|
+
code: "ES",
|
|
47
|
+
label: "Español",
|
|
48
|
+
flag: "ES"
|
|
49
|
+
}, {
|
|
50
|
+
code: 'NL',
|
|
51
|
+
label: 'Nederlands',
|
|
52
|
+
flag: 'NL'
|
|
53
|
+
}];
|
|
54
|
+
function LanguageDropdown() {
|
|
55
|
+
var _useState = React.useState(languages[0]),
|
|
56
|
+
selectedLanguage = _useState[0],
|
|
57
|
+
setSelectedLanguage = _useState[1];
|
|
58
|
+
var handleLanguageChange = function handleLanguageChange(language) {
|
|
59
|
+
setSelectedLanguage(language);
|
|
60
|
+
};
|
|
61
|
+
return React__default.createElement("div", {
|
|
62
|
+
className: "cmr-class-dropdown-flag cmr-class-mr-20"
|
|
63
|
+
}, React__default.createElement("span", {
|
|
64
|
+
className: "cmr-class-content-flag"
|
|
65
|
+
}, React__default.createElement("span", {
|
|
66
|
+
className: "cmr-class-flag large " + selectedLanguage.flag
|
|
67
|
+
})), React__default.createElement("div", {
|
|
68
|
+
className: "cmr-class-dropdown-menu"
|
|
69
|
+
}, React__default.createElement("button", {
|
|
70
|
+
className: "cmr-class-dropdown-toggle",
|
|
71
|
+
type: "button"
|
|
72
|
+
}, "Choose Language"), React__default.createElement("h6", {
|
|
73
|
+
className: "cmr-class-dropdown-header"
|
|
74
|
+
}, "Popular Languages"), languages.map(function (language) {
|
|
75
|
+
return React__default.createElement("button", {
|
|
76
|
+
key: language.code,
|
|
77
|
+
type: "button",
|
|
78
|
+
className: "cmr-class-dropdown-item ",
|
|
79
|
+
onClick: function onClick() {
|
|
80
|
+
return handleLanguageChange(language);
|
|
81
|
+
}
|
|
82
|
+
}, React__default.createElement("span", {
|
|
83
|
+
className: " opacity-8 cmr-class-flag large cmr-class-mr-20 " + language.flag
|
|
84
|
+
}), language.code);
|
|
85
|
+
})));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function TopNavBarComponent() {
|
|
89
|
+
return React__default.createElement("div", {
|
|
90
|
+
className: "cmr-class-top-nav-bar"
|
|
91
|
+
}, React__default.createElement("div", {
|
|
92
|
+
className: "cmr-class-flex-container"
|
|
93
|
+
}, React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
94
|
+
icon: freeSolidSvgIcons.faBars,
|
|
95
|
+
color: "#3f6ad8",
|
|
96
|
+
size: "2x",
|
|
97
|
+
className: "cmr-class-mr-20 cmr-class-cursor-pointer"
|
|
98
|
+
}), React__default.createElement("div", {
|
|
99
|
+
className: "cmr-class-flex-container"
|
|
100
|
+
}, React__default.createElement("div", {
|
|
101
|
+
className: "cmr-class-icon-container cmr-class-mr-20"
|
|
102
|
+
}, React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
103
|
+
icon: freeSolidSvgIcons.faSearch,
|
|
104
|
+
color: "#3f6ad8",
|
|
105
|
+
className: "",
|
|
106
|
+
size: "2x"
|
|
107
|
+
})), React__default.createElement("img", {
|
|
108
|
+
src: "https://sbxcloud.com/www/ibuyflowers/prod/test/images/logo-ibuyflowers.svg",
|
|
109
|
+
style: {
|
|
110
|
+
height: '40px'
|
|
111
|
+
},
|
|
112
|
+
alt: ""
|
|
113
|
+
}))), React__default.createElement("div", {
|
|
114
|
+
className: "cmr-class-top-nav-bar-options"
|
|
115
|
+
}, React__default.createElement(LanguageDropdown, null), React__default.createElement(Dropdown, null), React__default.createElement(UserInfo, {
|
|
116
|
+
name: "Admin Chilco",
|
|
117
|
+
email: "box+admin.chilco@socobox.co"
|
|
118
|
+
})));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function uuidV4() {
|
|
122
|
+
return ("" + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
|
|
123
|
+
return (((c ^ crypto.getRandomValues(new Uint8Array(1))[0]) & 15) >> c / 4).toString(16);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
var SidebarItem = function SidebarItem(_ref) {
|
|
128
|
+
var route = _ref.route;
|
|
129
|
+
var icon = route.icon,
|
|
130
|
+
label = route.label,
|
|
131
|
+
subRoutes = route.subRoutes,
|
|
132
|
+
className = route.className;
|
|
133
|
+
var _useState = React.useState(false),
|
|
134
|
+
isSubMenuOpen = _useState[0],
|
|
135
|
+
setIsSubMenuOpen = _useState[1];
|
|
136
|
+
var toggleSubMenu = function toggleSubMenu() {
|
|
137
|
+
setIsSubMenuOpen(function (prevState) {
|
|
138
|
+
return !prevState;
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
return React__default.createElement(React__default.Fragment, null, React__default.createElement("li", {
|
|
142
|
+
className: "crm-class-sidebar-li " + (className != null ? className : ''),
|
|
143
|
+
onClick: toggleSubMenu
|
|
144
|
+
}, icon && icon, React__default.createElement("span", {
|
|
145
|
+
className: (isSubMenuOpen ? 'cmr-class-font-bold' : '') + " "
|
|
146
|
+
}, label), (subRoutes === null || subRoutes === void 0 ? void 0 : subRoutes.length) > 0 && React__default.createElement("span", {
|
|
147
|
+
className: "cmr-class-ml-auto"
|
|
148
|
+
}, React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
149
|
+
icon: isSubMenuOpen ? freeSolidSvgIcons.faChevronUp : freeSolidSvgIcons.faChevronDown,
|
|
150
|
+
className: "cmr-class-color-icon cmr-class-font-10 cmr-class-slate-gray"
|
|
151
|
+
}))), isSubMenuOpen && (subRoutes === null || subRoutes === void 0 ? void 0 : subRoutes.length) > 0 && React__default.createElement("ul", {
|
|
152
|
+
className: "crm-class-sidebar-sub-menu-list"
|
|
153
|
+
}, subRoutes === null || subRoutes === void 0 ? void 0 : subRoutes.map(function (item) {
|
|
154
|
+
return React__default.createElement(SidebarItem, {
|
|
155
|
+
key: uuidV4(),
|
|
156
|
+
route: item
|
|
157
|
+
});
|
|
158
|
+
})));
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
var generateSubMenuData = function generateSubMenuData(labels) {
|
|
162
|
+
return labels.map(function (label) {
|
|
163
|
+
return {
|
|
164
|
+
label: label,
|
|
165
|
+
className: "cmr-class-ml-20"
|
|
166
|
+
};
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
var subMenuDataHome = generateSubMenuData(["Dashboard", "Accounts", "My Tasks", "Web designer"]);
|
|
170
|
+
var subMenuDataAnalytics = generateSubMenuData(["Customer Cohorts", "Product group", "Marketing UTM", "Customer growth", "Customer events", "Claims", "Products sold", "Available Inventory", "Purchase by re order", "Most sold Varieties", "Search terms"]);
|
|
171
|
+
var subMenuDataProcess = generateSubMenuData(["Project manager", "Project list", "Launch process"]);
|
|
172
|
+
var subMenuDataForm = generateSubMenuData(["Form list"]);
|
|
173
|
+
var subMenuDataComunications = generateSubMenuData(["Email Blast", "Template Generator"]);
|
|
174
|
+
var subMenuDataDataProviders = generateSubMenuData(["Data providers"]);
|
|
175
|
+
var subMenuData = generateSubMenuData(["Search Engine", "CMS"]);
|
|
176
|
+
var subMenuDataReports = generateSubMenuData(["Crm reports", "Report generator"]);
|
|
177
|
+
var subMenuDataConfig = generateSubMenuData(["App", "Manage users", "Permissions assignment", "Groups manager", "Crm executions"]);
|
|
178
|
+
var subMenuDataMarketing = generateSubMenuData(["Conversion Rate by Page"]);
|
|
179
|
+
|
|
180
|
+
var generateRoute = function generateRoute(label, icon, subRoutes) {
|
|
181
|
+
if (subRoutes === void 0) {
|
|
182
|
+
subRoutes = [];
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
label: label,
|
|
186
|
+
visible: true,
|
|
187
|
+
enable: true,
|
|
188
|
+
icon: React__default.createElement("span", {
|
|
189
|
+
className: "cmr-class-color-icon cmr-class-mr-10"
|
|
190
|
+
}, icon && React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
191
|
+
icon: icon,
|
|
192
|
+
className: "cmr-class-color-icon"
|
|
193
|
+
})),
|
|
194
|
+
action: function action() {},
|
|
195
|
+
subRoutes: subRoutes.map(function (subRoute) {
|
|
196
|
+
return generateRoute(subRoute.label, subRoute.icon, subRoute.subRoutes || []);
|
|
197
|
+
})
|
|
198
|
+
};
|
|
199
|
+
};
|
|
200
|
+
var generateRoutes = function generateRoutes(routesData) {
|
|
201
|
+
return routesData.map(function (routeData) {
|
|
202
|
+
return generateRoute(routeData.label, routeData === null || routeData === void 0 ? void 0 : routeData.icon, routeData.subRoutes);
|
|
203
|
+
});
|
|
204
|
+
};
|
|
205
|
+
var SidebarComponent = function SidebarComponent() {
|
|
206
|
+
var routesData = [{
|
|
207
|
+
label: 'Home',
|
|
208
|
+
icon: freeRegularSvgIcons.faGem,
|
|
209
|
+
subRoutes: subMenuDataHome
|
|
210
|
+
}, {
|
|
211
|
+
label: 'Analytics',
|
|
212
|
+
icon: freeSolidSvgIcons.faShip,
|
|
213
|
+
subRoutes: subMenuDataAnalytics
|
|
214
|
+
}, {
|
|
215
|
+
label: 'Process',
|
|
216
|
+
icon: freeRegularSvgIcons.faHourglass,
|
|
217
|
+
subRoutes: subMenuDataProcess
|
|
218
|
+
}, {
|
|
219
|
+
label: 'Forms',
|
|
220
|
+
icon: freeSolidSvgIcons.faWallet,
|
|
221
|
+
subRoutes: subMenuDataForm
|
|
222
|
+
}, {
|
|
223
|
+
label: 'Communications',
|
|
224
|
+
icon: freeSolidSvgIcons.faHeadphones,
|
|
225
|
+
subRoutes: subMenuDataComunications
|
|
226
|
+
}, {
|
|
227
|
+
label: 'Data providers',
|
|
228
|
+
icon: freeSolidSvgIcons.faDatabase,
|
|
229
|
+
subRoutes: subMenuDataDataProviders
|
|
230
|
+
}, {
|
|
231
|
+
label: 'Data',
|
|
232
|
+
icon: freeSolidSvgIcons.faCloudDownloadAlt,
|
|
233
|
+
subRoutes: subMenuData
|
|
234
|
+
}, {
|
|
235
|
+
label: 'Reports',
|
|
236
|
+
icon: freeSolidSvgIcons.faCog,
|
|
237
|
+
subRoutes: subMenuDataReports
|
|
238
|
+
}, {
|
|
239
|
+
label: 'Config',
|
|
240
|
+
icon: freeRegularSvgIcons.faGem,
|
|
241
|
+
subRoutes: subMenuDataConfig
|
|
242
|
+
}, {
|
|
243
|
+
label: 'Marketing',
|
|
244
|
+
icon: freeSolidSvgIcons.faBullhorn,
|
|
245
|
+
subRoutes: subMenuDataMarketing
|
|
246
|
+
}];
|
|
247
|
+
var routes = generateRoutes(routesData);
|
|
248
|
+
return React__default.createElement("div", {
|
|
249
|
+
className: "crm-class-sidebar"
|
|
250
|
+
}, React__default.createElement("ul", {
|
|
251
|
+
className: "crm-class-sidebar-list cmr-class-mt-70"
|
|
252
|
+
}, React__default.createElement("span", {
|
|
253
|
+
className: "cmr-class-tittle"
|
|
254
|
+
}, "MENU"), routes.map(function (route, index) {
|
|
255
|
+
return React__default.createElement(SidebarItem, {
|
|
256
|
+
key: "route_" + index,
|
|
257
|
+
route: route
|
|
258
|
+
});
|
|
259
|
+
})));
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
exports.SidebarComponent = SidebarComponent;
|
|
263
|
+
exports.TopNavBarComponent = TopNavBarComponent;
|
|
264
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/dropdown/Dropdown.tsx","../src/components/contentMenuComponent/UserInfo.tsx","../src/components/contentMenuComponent/LanguageDropdown.tsx","../src/components/menu/TopNavBarComponent/TopNavBarComponent.tsx","../src/utils/utils.ts","../src/components/menu/sidebar/SidebarItem.tsx","../src/components/menu/sidebar/subMenuComponent/SubMenuComponent.tsx","../src/components/menu/sidebar/Sidebar.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons';\n\nexport default function Dropdown() {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n const toggleDropdown = () => {\n setIsDropdownOpen(!isDropdownOpen);\n };\n\n return (\n <div className=\"cmr-class-dropdown cmr-class-mr-20\" onClick={toggleDropdown}>\n <span className=\"cmr-class-top-nav-bar-avatar\">A</span>\n <span className=\"cmr-class-ml-20\">\n <FontAwesomeIcon\n icon={isDropdownOpen ? faChevronUp : faChevronDown}\n className=\"cmr-class-color-icon cmr-class-slate-gray\"\n />\n </span>\n {isDropdownOpen && (\n <div className=\"cmr-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}\nexport default function UserInfo({ name, email }:Props) {\n return (\n <div className=\"cmr-class-top-nav-bar-info-user\">\n <span className=\"cmr-class-font-bold\">{name} </span>\n <span>{email}</span>\n </div>\n );\n}","import React, { useState } from \"react\";\n\ninterface Language {\n code: string;\n label: string;\n flag: string;\n}\n\nconst languages: Language[] = [\n { code: \"EN\", label: \"English\", flag: \"US\" },\n { code: \"ES\", label: \"Español\", flag: \"ES\" },\n { code: 'NL', label: 'Nederlands', flag: 'NL' }\n];\n\nexport default function LanguageDropdown() {\n const [selectedLanguage, setSelectedLanguage] = useState<Language>(\n languages[0]\n );\n\n const handleLanguageChange = (language: Language) => {\n setSelectedLanguage(language);\n };\n\n return (\n <div className=\"cmr-class-dropdown-flag cmr-class-mr-20\">\n <span className=\"cmr-class-content-flag\">\n <span className={`cmr-class-flag large ${selectedLanguage.flag}`}></span>\n </span>\n\n <div className=\"cmr-class-dropdown-menu\">\n <button className=\"cmr-class-dropdown-toggle\" type=\"button\">\n Choose Language\n </button>\n <h6 className=\"cmr-class-dropdown-header\">Popular Languages</h6>\n {languages.map((language) => (\n <button\n key={language.code}\n type=\"button\"\n className=\"cmr-class-dropdown-item \"\n onClick={() => handleLanguageChange(language)}\n >\n <span\n className={` opacity-8 cmr-class-flag large cmr-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 from '../../contentMenuComponent/LanguageDropdown'\n\nexport default function TopNavBarComponent() {\n\n\n return (\n <div className=\"cmr-class-top-nav-bar\">\n <div className=\"cmr-class-flex-container\">\n <FontAwesomeIcon\n icon={faBars}\n color=\"#3f6ad8\"\n size=\"2x\"\n className=\"cmr-class-mr-20 cmr-class-cursor-pointer\"\n />\n <div className=\"cmr-class-flex-container\">\n <div className=\"cmr-class-icon-container cmr-class-mr-20\">\n <FontAwesomeIcon\n icon={faSearch}\n color=\"#3f6ad8\"\n className=\"\"\n size=\"2x\"\n />\n </div>\n\n <img\n src=\"https://sbxcloud.com/www/ibuyflowers/prod/test/images/logo-ibuyflowers.svg\"\n style={{ height: '40px' }}\n alt=\"\"\n />\n </div>\n </div>\n <div className=\"cmr-class-top-nav-bar-options\">\n {/* */}\n\n <LanguageDropdown />\n\n\n <Dropdown />\n <UserInfo name=\"Admin Chilco\" email=\"box+admin.chilco@socobox.co\" />\n </div>\n </div>\n )\n}\n","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\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(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 className={`${isSubMenuOpen ? 'cmr-class-font-bold' : ''} `}>{label}</span>\n\n {subRoutes?.length! > 0 && (\n <span className=\"cmr-class-ml-auto\">\n <FontAwesomeIcon\n icon={isSubMenuOpen ? faChevronUp : faChevronDown}\n className=\"cmr-class-color-icon cmr-class-font-10 cmr-class-slate-gray\"\n />\n </span>\n )}\n </li>\n {isSubMenuOpen && subRoutes?.length! > 0 && (\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","\nimport { Route } from \"../../../../types/Common\";\n\nexport const generateSubMenuData = (labels: string[]): Route[] => {\n return labels.map((label) => ({\n label,\n className: \"cmr-class-ml-20\",\n }));\n};\n\nconst subMenuDataHome: Route[] = generateSubMenuData([\n \"Dashboard\",\n \"Accounts\",\n \"My Tasks\",\n \"Web designer\",\n]);\n\nconst subMenuDataAnalytics: Route[] = generateSubMenuData([\n \"Customer Cohorts\",\n \"Product group\",\n \"Marketing UTM\",\n \"Customer growth\",\n \"Customer events\",\n \"Claims\",\n \"Products sold\",\n \"Available Inventory\",\n \"Purchase by re order\",\n \"Most sold Varieties\",\n \"Search terms\",\n]);\n\nconst subMenuDataProcess: Route[] = generateSubMenuData([\n \"Project manager\",\n \"Project list\",\n \"Launch process\",\n]);\n\nconst subMenuDataForm: Route[] = generateSubMenuData([\"Form list\"]);\n\nconst subMenuDataComunications: Route[] = generateSubMenuData([\n \"Email Blast\",\n \"Template Generator\",\n]);\n\nconst subMenuDataDataProviders: Route[] = generateSubMenuData([\n \"Data providers\",\n]);\n\nconst subMenuData: Route[] = generateSubMenuData([\"Search Engine\", \"CMS\"]);\n\nconst subMenuDataReports: Route[] = generateSubMenuData([\n \"Crm reports\",\n \"Report generator\",\n]);\n\nconst subMenuDataConfig: Route[] = generateSubMenuData([\n \"App\",\n \"Manage users\",\n \"Permissions assignment\",\n \"Groups manager\",\n \"Crm executions\",\n]);\n\nconst subMenuDataMarketing: Route[] = generateSubMenuData([\n \"Conversion Rate by Page\",\n]);\n\nexport {\n subMenuDataHome,\n subMenuData,\n subMenuDataComunications,\n subMenuDataConfig,\n subMenuDataDataProviders,\n subMenuDataForm,\n subMenuDataReports,\n subMenuDataMarketing,\n subMenuDataAnalytics,\n subMenuDataProcess,\n};\n","import {\n faBullhorn,\n faCloudDownloadAlt,\n faCog,\n faDatabase,\n faHeadphones,\n faShip,\n faWallet,\n IconDefinition\n} from '@fortawesome/free-solid-svg-icons'\n\nimport { faGem, faHourglass } from '@fortawesome/free-regular-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { Route } from '../../../types/Common'\nimport SidebarItem from './SidebarItem'\nimport {\n subMenuData,\n subMenuDataAnalytics,\n subMenuDataComunications,\n subMenuDataConfig,\n subMenuDataDataProviders,\n subMenuDataForm,\n subMenuDataHome,\n subMenuDataMarketing,\n subMenuDataProcess,\n subMenuDataReports\n} from './subMenuComponent/SubMenuComponent'\nimport React from 'react'\n\nconst generateRoute = (\n label: string,\n icon: React.ReactNode | IconDefinition,\n subRoutes: Route[] = []\n): Route => ({\n label,\n visible: true,\n enable: true,\n icon: (\n <span className=\"cmr-class-color-icon cmr-class-mr-10\">\n {icon && (\n <FontAwesomeIcon\n icon={icon as IconDefinition}\n className=\"cmr-class-color-icon\"\n />\n )}\n </span>\n ),\n action: () => {\n },\n subRoutes: subRoutes.map((subRoute) =>\n generateRoute(subRoute.label, subRoute.icon, subRoute.subRoutes || [])\n )\n})\n\nconst generateRoutes = (\n routesData: {\n label: string;\n icon: IconDefinition | undefined;\n subRoutes: Route[];\n }[]\n): Route[] => {\n return routesData.map((routeData) =>\n generateRoute(routeData.label, routeData?.icon!, routeData.subRoutes)\n )\n}\n\nconst SidebarComponent = () => {\n const routesData = [\n {\n label: 'Home',\n icon: faGem,\n subRoutes: subMenuDataHome\n },\n\n { label: 'Analytics', icon: faShip, subRoutes: subMenuDataAnalytics },\n { label: 'Process', icon: faHourglass, subRoutes: subMenuDataProcess },\n { label: 'Forms', icon: faWallet, subRoutes: subMenuDataForm },\n {\n label: 'Communications',\n icon: faHeadphones,\n subRoutes: subMenuDataComunications\n },\n {\n label: 'Data providers',\n icon: faDatabase,\n subRoutes: subMenuDataDataProviders\n },\n { label: 'Data', icon: faCloudDownloadAlt, subRoutes: subMenuData },\n { label: 'Reports', icon: faCog, subRoutes: subMenuDataReports },\n { label: 'Config', icon: faGem, subRoutes: subMenuDataConfig },\n { label: 'Marketing', icon: faBullhorn, subRoutes: subMenuDataMarketing }\n ]\n\n const routes: Route[] = generateRoutes(routesData)\n\n return (\n <div className=\"crm-class-sidebar\">\n <ul className=\"crm-class-sidebar-list cmr-class-mt-70\">\n <span className=\"cmr-class-tittle\">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"],"names":["Dropdown","_useState","useState","isDropdownOpen","setIsDropdownOpen","toggleDropdown","React","className","onClick","FontAwesomeIcon","icon","faChevronUp","faChevronDown","UserInfo","_ref","name","email","languages","code","label","flag","LanguageDropdown","selectedLanguage","setSelectedLanguage","handleLanguageChange","language","type","map","key","TopNavBarComponent","faBars","color","size","faSearch","src","style","height","alt","uuidV4","replace","c","crypto","getRandomValues","Uint8Array","toString","SidebarItem","route","subRoutes","isSubMenuOpen","setIsSubMenuOpen","toggleSubMenu","prevState","Fragment","length","item","generateSubMenuData","labels","subMenuDataHome","subMenuDataAnalytics","subMenuDataProcess","subMenuDataForm","subMenuDataComunications","subMenuDataDataProviders","subMenuData","subMenuDataReports","subMenuDataConfig","subMenuDataMarketing","generateRoute","visible","enable","action","subRoute","generateRoutes","routesData","routeData","SidebarComponent","faGem","faShip","faHourglass","faWallet","faHeadphones","faDatabase","faCloudDownloadAlt","faCog","faBullhorn","routes","index"],"mappings":"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"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { faChevronUp, faChevronDown, faBars, faSearch, faShip, faWallet, faHeadphones, faDatabase, faCloudDownloadAlt, faCog, faBullhorn } from '@fortawesome/free-solid-svg-icons';
|
|
2
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { faGem, faHourglass } from '@fortawesome/free-regular-svg-icons';
|
|
5
|
+
|
|
6
|
+
function Dropdown() {
|
|
7
|
+
var _useState = useState(false),
|
|
8
|
+
isDropdownOpen = _useState[0],
|
|
9
|
+
setIsDropdownOpen = _useState[1];
|
|
10
|
+
var toggleDropdown = function toggleDropdown() {
|
|
11
|
+
setIsDropdownOpen(!isDropdownOpen);
|
|
12
|
+
};
|
|
13
|
+
return React.createElement("div", {
|
|
14
|
+
className: "cmr-class-dropdown cmr-class-mr-20",
|
|
15
|
+
onClick: toggleDropdown
|
|
16
|
+
}, React.createElement("span", {
|
|
17
|
+
className: "cmr-class-top-nav-bar-avatar"
|
|
18
|
+
}, "A"), React.createElement("span", {
|
|
19
|
+
className: "cmr-class-ml-20"
|
|
20
|
+
}, React.createElement(FontAwesomeIcon, {
|
|
21
|
+
icon: isDropdownOpen ? faChevronUp : faChevronDown,
|
|
22
|
+
className: "cmr-class-color-icon cmr-class-slate-gray"
|
|
23
|
+
})), isDropdownOpen && React.createElement("div", {
|
|
24
|
+
className: "cmr-class-dropdown-content"
|
|
25
|
+
}, React.createElement("p", null, "Dropdown content here")));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function UserInfo(_ref) {
|
|
29
|
+
var name = _ref.name,
|
|
30
|
+
email = _ref.email;
|
|
31
|
+
return React.createElement("div", {
|
|
32
|
+
className: "cmr-class-top-nav-bar-info-user"
|
|
33
|
+
}, React.createElement("span", {
|
|
34
|
+
className: "cmr-class-font-bold"
|
|
35
|
+
}, name, " "), React.createElement("span", null, email));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var languages = [{
|
|
39
|
+
code: "EN",
|
|
40
|
+
label: "English",
|
|
41
|
+
flag: "US"
|
|
42
|
+
}, {
|
|
43
|
+
code: "ES",
|
|
44
|
+
label: "Español",
|
|
45
|
+
flag: "ES"
|
|
46
|
+
}, {
|
|
47
|
+
code: 'NL',
|
|
48
|
+
label: 'Nederlands',
|
|
49
|
+
flag: 'NL'
|
|
50
|
+
}];
|
|
51
|
+
function LanguageDropdown() {
|
|
52
|
+
var _useState = useState(languages[0]),
|
|
53
|
+
selectedLanguage = _useState[0],
|
|
54
|
+
setSelectedLanguage = _useState[1];
|
|
55
|
+
var handleLanguageChange = function handleLanguageChange(language) {
|
|
56
|
+
setSelectedLanguage(language);
|
|
57
|
+
};
|
|
58
|
+
return React.createElement("div", {
|
|
59
|
+
className: "cmr-class-dropdown-flag cmr-class-mr-20"
|
|
60
|
+
}, React.createElement("span", {
|
|
61
|
+
className: "cmr-class-content-flag"
|
|
62
|
+
}, React.createElement("span", {
|
|
63
|
+
className: "cmr-class-flag large " + selectedLanguage.flag
|
|
64
|
+
})), React.createElement("div", {
|
|
65
|
+
className: "cmr-class-dropdown-menu"
|
|
66
|
+
}, React.createElement("button", {
|
|
67
|
+
className: "cmr-class-dropdown-toggle",
|
|
68
|
+
type: "button"
|
|
69
|
+
}, "Choose Language"), React.createElement("h6", {
|
|
70
|
+
className: "cmr-class-dropdown-header"
|
|
71
|
+
}, "Popular Languages"), languages.map(function (language) {
|
|
72
|
+
return React.createElement("button", {
|
|
73
|
+
key: language.code,
|
|
74
|
+
type: "button",
|
|
75
|
+
className: "cmr-class-dropdown-item ",
|
|
76
|
+
onClick: function onClick() {
|
|
77
|
+
return handleLanguageChange(language);
|
|
78
|
+
}
|
|
79
|
+
}, React.createElement("span", {
|
|
80
|
+
className: " opacity-8 cmr-class-flag large cmr-class-mr-20 " + language.flag
|
|
81
|
+
}), language.code);
|
|
82
|
+
})));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function TopNavBarComponent() {
|
|
86
|
+
return React.createElement("div", {
|
|
87
|
+
className: "cmr-class-top-nav-bar"
|
|
88
|
+
}, React.createElement("div", {
|
|
89
|
+
className: "cmr-class-flex-container"
|
|
90
|
+
}, React.createElement(FontAwesomeIcon, {
|
|
91
|
+
icon: faBars,
|
|
92
|
+
color: "#3f6ad8",
|
|
93
|
+
size: "2x",
|
|
94
|
+
className: "cmr-class-mr-20 cmr-class-cursor-pointer"
|
|
95
|
+
}), React.createElement("div", {
|
|
96
|
+
className: "cmr-class-flex-container"
|
|
97
|
+
}, React.createElement("div", {
|
|
98
|
+
className: "cmr-class-icon-container cmr-class-mr-20"
|
|
99
|
+
}, React.createElement(FontAwesomeIcon, {
|
|
100
|
+
icon: faSearch,
|
|
101
|
+
color: "#3f6ad8",
|
|
102
|
+
className: "",
|
|
103
|
+
size: "2x"
|
|
104
|
+
})), React.createElement("img", {
|
|
105
|
+
src: "https://sbxcloud.com/www/ibuyflowers/prod/test/images/logo-ibuyflowers.svg",
|
|
106
|
+
style: {
|
|
107
|
+
height: '40px'
|
|
108
|
+
},
|
|
109
|
+
alt: ""
|
|
110
|
+
}))), React.createElement("div", {
|
|
111
|
+
className: "cmr-class-top-nav-bar-options"
|
|
112
|
+
}, React.createElement(LanguageDropdown, null), React.createElement(Dropdown, null), React.createElement(UserInfo, {
|
|
113
|
+
name: "Admin Chilco",
|
|
114
|
+
email: "box+admin.chilco@socobox.co"
|
|
115
|
+
})));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function uuidV4() {
|
|
119
|
+
return ("" + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
|
|
120
|
+
return (((c ^ crypto.getRandomValues(new Uint8Array(1))[0]) & 15) >> c / 4).toString(16);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
var SidebarItem = function SidebarItem(_ref) {
|
|
125
|
+
var route = _ref.route;
|
|
126
|
+
var icon = route.icon,
|
|
127
|
+
label = route.label,
|
|
128
|
+
subRoutes = route.subRoutes,
|
|
129
|
+
className = route.className;
|
|
130
|
+
var _useState = useState(false),
|
|
131
|
+
isSubMenuOpen = _useState[0],
|
|
132
|
+
setIsSubMenuOpen = _useState[1];
|
|
133
|
+
var toggleSubMenu = function toggleSubMenu() {
|
|
134
|
+
setIsSubMenuOpen(function (prevState) {
|
|
135
|
+
return !prevState;
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
return React.createElement(React.Fragment, null, React.createElement("li", {
|
|
139
|
+
className: "crm-class-sidebar-li " + (className != null ? className : ''),
|
|
140
|
+
onClick: toggleSubMenu
|
|
141
|
+
}, icon && icon, React.createElement("span", {
|
|
142
|
+
className: (isSubMenuOpen ? 'cmr-class-font-bold' : '') + " "
|
|
143
|
+
}, label), (subRoutes === null || subRoutes === void 0 ? void 0 : subRoutes.length) > 0 && React.createElement("span", {
|
|
144
|
+
className: "cmr-class-ml-auto"
|
|
145
|
+
}, React.createElement(FontAwesomeIcon, {
|
|
146
|
+
icon: isSubMenuOpen ? faChevronUp : faChevronDown,
|
|
147
|
+
className: "cmr-class-color-icon cmr-class-font-10 cmr-class-slate-gray"
|
|
148
|
+
}))), isSubMenuOpen && (subRoutes === null || subRoutes === void 0 ? void 0 : subRoutes.length) > 0 && React.createElement("ul", {
|
|
149
|
+
className: "crm-class-sidebar-sub-menu-list"
|
|
150
|
+
}, subRoutes === null || subRoutes === void 0 ? void 0 : subRoutes.map(function (item) {
|
|
151
|
+
return React.createElement(SidebarItem, {
|
|
152
|
+
key: uuidV4(),
|
|
153
|
+
route: item
|
|
154
|
+
});
|
|
155
|
+
})));
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
var generateSubMenuData = function generateSubMenuData(labels) {
|
|
159
|
+
return labels.map(function (label) {
|
|
160
|
+
return {
|
|
161
|
+
label: label,
|
|
162
|
+
className: "cmr-class-ml-20"
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
};
|
|
166
|
+
var subMenuDataHome = generateSubMenuData(["Dashboard", "Accounts", "My Tasks", "Web designer"]);
|
|
167
|
+
var subMenuDataAnalytics = generateSubMenuData(["Customer Cohorts", "Product group", "Marketing UTM", "Customer growth", "Customer events", "Claims", "Products sold", "Available Inventory", "Purchase by re order", "Most sold Varieties", "Search terms"]);
|
|
168
|
+
var subMenuDataProcess = generateSubMenuData(["Project manager", "Project list", "Launch process"]);
|
|
169
|
+
var subMenuDataForm = generateSubMenuData(["Form list"]);
|
|
170
|
+
var subMenuDataComunications = generateSubMenuData(["Email Blast", "Template Generator"]);
|
|
171
|
+
var subMenuDataDataProviders = generateSubMenuData(["Data providers"]);
|
|
172
|
+
var subMenuData = generateSubMenuData(["Search Engine", "CMS"]);
|
|
173
|
+
var subMenuDataReports = generateSubMenuData(["Crm reports", "Report generator"]);
|
|
174
|
+
var subMenuDataConfig = generateSubMenuData(["App", "Manage users", "Permissions assignment", "Groups manager", "Crm executions"]);
|
|
175
|
+
var subMenuDataMarketing = generateSubMenuData(["Conversion Rate by Page"]);
|
|
176
|
+
|
|
177
|
+
var generateRoute = function generateRoute(label, icon, subRoutes) {
|
|
178
|
+
if (subRoutes === void 0) {
|
|
179
|
+
subRoutes = [];
|
|
180
|
+
}
|
|
181
|
+
return {
|
|
182
|
+
label: label,
|
|
183
|
+
visible: true,
|
|
184
|
+
enable: true,
|
|
185
|
+
icon: React.createElement("span", {
|
|
186
|
+
className: "cmr-class-color-icon cmr-class-mr-10"
|
|
187
|
+
}, icon && React.createElement(FontAwesomeIcon, {
|
|
188
|
+
icon: icon,
|
|
189
|
+
className: "cmr-class-color-icon"
|
|
190
|
+
})),
|
|
191
|
+
action: function action() {},
|
|
192
|
+
subRoutes: subRoutes.map(function (subRoute) {
|
|
193
|
+
return generateRoute(subRoute.label, subRoute.icon, subRoute.subRoutes || []);
|
|
194
|
+
})
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
var generateRoutes = function generateRoutes(routesData) {
|
|
198
|
+
return routesData.map(function (routeData) {
|
|
199
|
+
return generateRoute(routeData.label, routeData === null || routeData === void 0 ? void 0 : routeData.icon, routeData.subRoutes);
|
|
200
|
+
});
|
|
201
|
+
};
|
|
202
|
+
var SidebarComponent = function SidebarComponent() {
|
|
203
|
+
var routesData = [{
|
|
204
|
+
label: 'Home',
|
|
205
|
+
icon: faGem,
|
|
206
|
+
subRoutes: subMenuDataHome
|
|
207
|
+
}, {
|
|
208
|
+
label: 'Analytics',
|
|
209
|
+
icon: faShip,
|
|
210
|
+
subRoutes: subMenuDataAnalytics
|
|
211
|
+
}, {
|
|
212
|
+
label: 'Process',
|
|
213
|
+
icon: faHourglass,
|
|
214
|
+
subRoutes: subMenuDataProcess
|
|
215
|
+
}, {
|
|
216
|
+
label: 'Forms',
|
|
217
|
+
icon: faWallet,
|
|
218
|
+
subRoutes: subMenuDataForm
|
|
219
|
+
}, {
|
|
220
|
+
label: 'Communications',
|
|
221
|
+
icon: faHeadphones,
|
|
222
|
+
subRoutes: subMenuDataComunications
|
|
223
|
+
}, {
|
|
224
|
+
label: 'Data providers',
|
|
225
|
+
icon: faDatabase,
|
|
226
|
+
subRoutes: subMenuDataDataProviders
|
|
227
|
+
}, {
|
|
228
|
+
label: 'Data',
|
|
229
|
+
icon: faCloudDownloadAlt,
|
|
230
|
+
subRoutes: subMenuData
|
|
231
|
+
}, {
|
|
232
|
+
label: 'Reports',
|
|
233
|
+
icon: faCog,
|
|
234
|
+
subRoutes: subMenuDataReports
|
|
235
|
+
}, {
|
|
236
|
+
label: 'Config',
|
|
237
|
+
icon: faGem,
|
|
238
|
+
subRoutes: subMenuDataConfig
|
|
239
|
+
}, {
|
|
240
|
+
label: 'Marketing',
|
|
241
|
+
icon: faBullhorn,
|
|
242
|
+
subRoutes: subMenuDataMarketing
|
|
243
|
+
}];
|
|
244
|
+
var routes = generateRoutes(routesData);
|
|
245
|
+
return React.createElement("div", {
|
|
246
|
+
className: "crm-class-sidebar"
|
|
247
|
+
}, React.createElement("ul", {
|
|
248
|
+
className: "crm-class-sidebar-list cmr-class-mt-70"
|
|
249
|
+
}, React.createElement("span", {
|
|
250
|
+
className: "cmr-class-tittle"
|
|
251
|
+
}, "MENU"), routes.map(function (route, index) {
|
|
252
|
+
return React.createElement(SidebarItem, {
|
|
253
|
+
key: "route_" + index,
|
|
254
|
+
route: route
|
|
255
|
+
});
|
|
256
|
+
})));
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
export { SidebarComponent, TopNavBarComponent };
|
|
260
|
+
//# sourceMappingURL=index.modern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/components/dropdown/Dropdown.tsx","../src/components/contentMenuComponent/UserInfo.tsx","../src/components/contentMenuComponent/LanguageDropdown.tsx","../src/components/menu/TopNavBarComponent/TopNavBarComponent.tsx","../src/utils/utils.ts","../src/components/menu/sidebar/SidebarItem.tsx","../src/components/menu/sidebar/subMenuComponent/SubMenuComponent.tsx","../src/components/menu/sidebar/Sidebar.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons';\n\nexport default function Dropdown() {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n const toggleDropdown = () => {\n setIsDropdownOpen(!isDropdownOpen);\n };\n\n return (\n <div className=\"cmr-class-dropdown cmr-class-mr-20\" onClick={toggleDropdown}>\n <span className=\"cmr-class-top-nav-bar-avatar\">A</span>\n <span className=\"cmr-class-ml-20\">\n <FontAwesomeIcon\n icon={isDropdownOpen ? faChevronUp : faChevronDown}\n className=\"cmr-class-color-icon cmr-class-slate-gray\"\n />\n </span>\n {isDropdownOpen && (\n <div className=\"cmr-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}\nexport default function UserInfo({ name, email }:Props) {\n return (\n <div className=\"cmr-class-top-nav-bar-info-user\">\n <span className=\"cmr-class-font-bold\">{name} </span>\n <span>{email}</span>\n </div>\n );\n}","import React, { useState } from \"react\";\n\ninterface Language {\n code: string;\n label: string;\n flag: string;\n}\n\nconst languages: Language[] = [\n { code: \"EN\", label: \"English\", flag: \"US\" },\n { code: \"ES\", label: \"Español\", flag: \"ES\" },\n { code: 'NL', label: 'Nederlands', flag: 'NL' }\n];\n\nexport default function LanguageDropdown() {\n const [selectedLanguage, setSelectedLanguage] = useState<Language>(\n languages[0]\n );\n\n const handleLanguageChange = (language: Language) => {\n setSelectedLanguage(language);\n };\n\n return (\n <div className=\"cmr-class-dropdown-flag cmr-class-mr-20\">\n <span className=\"cmr-class-content-flag\">\n <span className={`cmr-class-flag large ${selectedLanguage.flag}`}></span>\n </span>\n\n <div className=\"cmr-class-dropdown-menu\">\n <button className=\"cmr-class-dropdown-toggle\" type=\"button\">\n Choose Language\n </button>\n <h6 className=\"cmr-class-dropdown-header\">Popular Languages</h6>\n {languages.map((language) => (\n <button\n key={language.code}\n type=\"button\"\n className=\"cmr-class-dropdown-item \"\n onClick={() => handleLanguageChange(language)}\n >\n <span\n className={` opacity-8 cmr-class-flag large cmr-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 from '../../contentMenuComponent/LanguageDropdown'\n\nexport default function TopNavBarComponent() {\n\n\n return (\n <div className=\"cmr-class-top-nav-bar\">\n <div className=\"cmr-class-flex-container\">\n <FontAwesomeIcon\n icon={faBars}\n color=\"#3f6ad8\"\n size=\"2x\"\n className=\"cmr-class-mr-20 cmr-class-cursor-pointer\"\n />\n <div className=\"cmr-class-flex-container\">\n <div className=\"cmr-class-icon-container cmr-class-mr-20\">\n <FontAwesomeIcon\n icon={faSearch}\n color=\"#3f6ad8\"\n className=\"\"\n size=\"2x\"\n />\n </div>\n\n <img\n src=\"https://sbxcloud.com/www/ibuyflowers/prod/test/images/logo-ibuyflowers.svg\"\n style={{ height: '40px' }}\n alt=\"\"\n />\n </div>\n </div>\n <div className=\"cmr-class-top-nav-bar-options\">\n {/* */}\n\n <LanguageDropdown />\n\n\n <Dropdown />\n <UserInfo name=\"Admin Chilco\" email=\"box+admin.chilco@socobox.co\" />\n </div>\n </div>\n )\n}\n","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\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(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 className={`${isSubMenuOpen ? 'cmr-class-font-bold' : ''} `}>{label}</span>\n\n {subRoutes?.length! > 0 && (\n <span className=\"cmr-class-ml-auto\">\n <FontAwesomeIcon\n icon={isSubMenuOpen ? faChevronUp : faChevronDown}\n className=\"cmr-class-color-icon cmr-class-font-10 cmr-class-slate-gray\"\n />\n </span>\n )}\n </li>\n {isSubMenuOpen && subRoutes?.length! > 0 && (\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","\nimport { Route } from \"../../../../types/Common\";\n\nexport const generateSubMenuData = (labels: string[]): Route[] => {\n return labels.map((label) => ({\n label,\n className: \"cmr-class-ml-20\",\n }));\n};\n\nconst subMenuDataHome: Route[] = generateSubMenuData([\n \"Dashboard\",\n \"Accounts\",\n \"My Tasks\",\n \"Web designer\",\n]);\n\nconst subMenuDataAnalytics: Route[] = generateSubMenuData([\n \"Customer Cohorts\",\n \"Product group\",\n \"Marketing UTM\",\n \"Customer growth\",\n \"Customer events\",\n \"Claims\",\n \"Products sold\",\n \"Available Inventory\",\n \"Purchase by re order\",\n \"Most sold Varieties\",\n \"Search terms\",\n]);\n\nconst subMenuDataProcess: Route[] = generateSubMenuData([\n \"Project manager\",\n \"Project list\",\n \"Launch process\",\n]);\n\nconst subMenuDataForm: Route[] = generateSubMenuData([\"Form list\"]);\n\nconst subMenuDataComunications: Route[] = generateSubMenuData([\n \"Email Blast\",\n \"Template Generator\",\n]);\n\nconst subMenuDataDataProviders: Route[] = generateSubMenuData([\n \"Data providers\",\n]);\n\nconst subMenuData: Route[] = generateSubMenuData([\"Search Engine\", \"CMS\"]);\n\nconst subMenuDataReports: Route[] = generateSubMenuData([\n \"Crm reports\",\n \"Report generator\",\n]);\n\nconst subMenuDataConfig: Route[] = generateSubMenuData([\n \"App\",\n \"Manage users\",\n \"Permissions assignment\",\n \"Groups manager\",\n \"Crm executions\",\n]);\n\nconst subMenuDataMarketing: Route[] = generateSubMenuData([\n \"Conversion Rate by Page\",\n]);\n\nexport {\n subMenuDataHome,\n subMenuData,\n subMenuDataComunications,\n subMenuDataConfig,\n subMenuDataDataProviders,\n subMenuDataForm,\n subMenuDataReports,\n subMenuDataMarketing,\n subMenuDataAnalytics,\n subMenuDataProcess,\n};\n","import {\n faBullhorn,\n faCloudDownloadAlt,\n faCog,\n faDatabase,\n faHeadphones,\n faShip,\n faWallet,\n IconDefinition\n} from '@fortawesome/free-solid-svg-icons'\n\nimport { faGem, faHourglass } from '@fortawesome/free-regular-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { Route } from '../../../types/Common'\nimport SidebarItem from './SidebarItem'\nimport {\n subMenuData,\n subMenuDataAnalytics,\n subMenuDataComunications,\n subMenuDataConfig,\n subMenuDataDataProviders,\n subMenuDataForm,\n subMenuDataHome,\n subMenuDataMarketing,\n subMenuDataProcess,\n subMenuDataReports\n} from './subMenuComponent/SubMenuComponent'\nimport React from 'react'\n\nconst generateRoute = (\n label: string,\n icon: React.ReactNode | IconDefinition,\n subRoutes: Route[] = []\n): Route => ({\n label,\n visible: true,\n enable: true,\n icon: (\n <span className=\"cmr-class-color-icon cmr-class-mr-10\">\n {icon && (\n <FontAwesomeIcon\n icon={icon as IconDefinition}\n className=\"cmr-class-color-icon\"\n />\n )}\n </span>\n ),\n action: () => {\n },\n subRoutes: subRoutes.map((subRoute) =>\n generateRoute(subRoute.label, subRoute.icon, subRoute.subRoutes || [])\n )\n})\n\nconst generateRoutes = (\n routesData: {\n label: string;\n icon: IconDefinition | undefined;\n subRoutes: Route[];\n }[]\n): Route[] => {\n return routesData.map((routeData) =>\n generateRoute(routeData.label, routeData?.icon!, routeData.subRoutes)\n )\n}\n\nconst SidebarComponent = () => {\n const routesData = [\n {\n label: 'Home',\n icon: faGem,\n subRoutes: subMenuDataHome\n },\n\n { label: 'Analytics', icon: faShip, subRoutes: subMenuDataAnalytics },\n { label: 'Process', icon: faHourglass, subRoutes: subMenuDataProcess },\n { label: 'Forms', icon: faWallet, subRoutes: subMenuDataForm },\n {\n label: 'Communications',\n icon: faHeadphones,\n subRoutes: subMenuDataComunications\n },\n {\n label: 'Data providers',\n icon: faDatabase,\n subRoutes: subMenuDataDataProviders\n },\n { label: 'Data', icon: faCloudDownloadAlt, subRoutes: subMenuData },\n { label: 'Reports', icon: faCog, subRoutes: subMenuDataReports },\n { label: 'Config', icon: faGem, subRoutes: subMenuDataConfig },\n { label: 'Marketing', icon: faBullhorn, subRoutes: subMenuDataMarketing }\n ]\n\n const routes: Route[] = generateRoutes(routesData)\n\n return (\n <div className=\"crm-class-sidebar\">\n <ul className=\"crm-class-sidebar-list cmr-class-mt-70\">\n <span className=\"cmr-class-tittle\">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"],"names":["Dropdown","_useState","useState","isDropdownOpen","setIsDropdownOpen","toggleDropdown","React","className","onClick","FontAwesomeIcon","icon","faChevronUp","faChevronDown","UserInfo","_ref","name","email","languages","code","label","flag","LanguageDropdown","selectedLanguage","setSelectedLanguage","handleLanguageChange","language","type","map","key","TopNavBarComponent","faBars","color","size","faSearch","src","style","height","alt","uuidV4","replace","c","crypto","getRandomValues","Uint8Array","toString","SidebarItem","route","subRoutes","isSubMenuOpen","setIsSubMenuOpen","toggleSubMenu","prevState","Fragment","length","item","generateSubMenuData","labels","subMenuDataHome","subMenuDataAnalytics","subMenuDataProcess","subMenuDataForm","subMenuDataComunications","subMenuDataDataProviders","subMenuData","subMenuDataReports","subMenuDataConfig","subMenuDataMarketing","generateRoute","visible","enable","action","subRoute","generateRoutes","routesData","routeData","SidebarComponent","faGem","faShip","faHourglass","faWallet","faHeadphones","faDatabase","faCloudDownloadAlt","faCog","faBullhorn","routes","index"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export interface Route {
|
|
3
|
+
label: string;
|
|
4
|
+
visible?: boolean;
|
|
5
|
+
enable?: boolean;
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
action?: Function;
|
|
8
|
+
subRoutes?: Route[];
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface SidebarItemProps {
|
|
12
|
+
route: Route;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function uuidV4(): string;
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sbx-crm-menu-ui",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Menu Create by SBX Company for CRM.",
|
|
5
|
+
"author": "Frank Carpio",
|
|
6
|
+
"license": "ISC",
|
|
7
|
+
"repository": "https://github.com/socobox/sbx-crm-menu-ui",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"module": "dist/index.modern.js",
|
|
10
|
+
"source": "src/index.tsx",
|
|
11
|
+
"engines": {
|
|
12
|
+
"node": "18"
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "microbundle-crl --no-compress --no-css-modules --format modern,cjs",
|
|
16
|
+
"start": "microbundle-crl watch --no-compress --format modern,cjs",
|
|
17
|
+
"prepare": "run-s build",
|
|
18
|
+
"test": "run-s test:unit test:lint test:build",
|
|
19
|
+
"test:build": "run-s build",
|
|
20
|
+
"test:lint": "eslint .",
|
|
21
|
+
"test:unit": "cross-env CI=1 react-scripts test --env=jsdom",
|
|
22
|
+
"test:watch": "react-scripts test --env=jsdom",
|
|
23
|
+
"predeploy": "cd example && yarn install && yarn run build",
|
|
24
|
+
"test-lib": "yarn run build && cp -r dist /Users/frankcarpio/Desktop/Personal/lib/sbx-crm-menu-ui"
|
|
25
|
+
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"react": "^18.3.1"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@testing-library/jest-dom": "^6.4.6",
|
|
31
|
+
"@testing-library/react": "^16.0.0",
|
|
32
|
+
"@testing-library/user-event": "^14.5.2",
|
|
33
|
+
"@types/jest": "^29.5.12",
|
|
34
|
+
"@types/node": "^18.17.0",
|
|
35
|
+
"@types/react": "^18.3.3",
|
|
36
|
+
"@types/react-dom": "^18.3.0",
|
|
37
|
+
"@typescript-eslint/eslint-plugin": "^7.13.1",
|
|
38
|
+
"@typescript-eslint/parser": "^7.13.1",
|
|
39
|
+
"babel-eslint": "^10.1.0",
|
|
40
|
+
"cross-env": "^7.0.3",
|
|
41
|
+
"eslint": "^9.5.0",
|
|
42
|
+
"eslint-config-prettier": "^9.1.0",
|
|
43
|
+
"eslint-config-standard": "^17.1.0",
|
|
44
|
+
"eslint-config-standard-react": "^13.0.0",
|
|
45
|
+
"eslint-plugin-import": "^2.29.1",
|
|
46
|
+
"eslint-plugin-node": "^11.1.0",
|
|
47
|
+
"eslint-plugin-prettier": "^5.1.3",
|
|
48
|
+
"eslint-plugin-promise": "^6.2.0",
|
|
49
|
+
"eslint-plugin-react": "^7.34.2",
|
|
50
|
+
"eslint-plugin-standard": "^5.0.0",
|
|
51
|
+
"gh-pages": "^6.1.1",
|
|
52
|
+
"microbundle-crl": "^0.13.11",
|
|
53
|
+
"npm-run-all": "^4.1.5",
|
|
54
|
+
"prettier": "^3.3.2",
|
|
55
|
+
"react": "^18.3.1",
|
|
56
|
+
"react-dom": "^18.3.1",
|
|
57
|
+
"react-scripts": "^5.0.1",
|
|
58
|
+
"typescript": "^5.4.5"
|
|
59
|
+
},
|
|
60
|
+
"files": [
|
|
61
|
+
"dist"
|
|
62
|
+
],
|
|
63
|
+
"dependencies": {
|
|
64
|
+
"@fortawesome/fontawesome-svg-core": "^6.5.2",
|
|
65
|
+
"@fortawesome/free-regular-svg-icons": "^6.5.2",
|
|
66
|
+
"@fortawesome/free-solid-svg-icons": "^6.5.2",
|
|
67
|
+
"@fortawesome/react-fontawesome": "^0.2.2",
|
|
68
|
+
"sass": "^1.77.6"
|
|
69
|
+
}
|
|
70
|
+
}
|