sbx-crm-menu-ui 2.0.1-beta.9 → 2.0.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/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 +2 -0
- package/dist/index.css +191 -23
- package/dist/index.js +115 -26
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +116 -27
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,8 @@ import { Route } from '../../../types/Common';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
declare const SidebarComponent: (props: {
|
|
4
4
|
routes: Route[];
|
|
5
|
+
openSideBar: boolean;
|
|
6
|
+
setOpenSideBar: React.Dispatch<React.SetStateAction<boolean>>;
|
|
5
7
|
children: React.ReactNode;
|
|
6
8
|
}) => React.JSX.Element;
|
|
7
9
|
export default SidebarComponent;
|
package/dist/index.css
CHANGED
|
@@ -12,9 +12,30 @@
|
|
|
12
12
|
transition: 0.5s;
|
|
13
13
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
14
14
|
}
|
|
15
|
+
.crm-class-sidebar::-webkit-scrollbar-thumb {
|
|
16
|
+
background: gray;
|
|
17
|
+
border-radius: 8px;
|
|
18
|
+
}
|
|
19
|
+
.crm-class-sidebar::-webkit-scrollbar {
|
|
20
|
+
width: 5px;
|
|
21
|
+
height: 5px;
|
|
22
|
+
background: transparent;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.crm-class-sidebar-icons-content {
|
|
26
|
+
margin: 0;
|
|
27
|
+
padding: 0;
|
|
28
|
+
list-style: none;
|
|
29
|
+
margin-top: 10px;
|
|
30
|
+
}
|
|
31
|
+
.crm-class-sidebar-icons-content li {
|
|
32
|
+
display: flex;
|
|
33
|
+
justify-content: center;
|
|
34
|
+
margin-bottom: 10px;
|
|
35
|
+
}
|
|
15
36
|
|
|
16
37
|
.crm-class-sidebar-content {
|
|
17
|
-
padding:
|
|
38
|
+
padding: 80px 10px;
|
|
18
39
|
width: 100%;
|
|
19
40
|
height: 100vh;
|
|
20
41
|
overflow: auto;
|
|
@@ -22,7 +43,7 @@
|
|
|
22
43
|
|
|
23
44
|
.crm-class-sidebar-list {
|
|
24
45
|
list-style-type: none;
|
|
25
|
-
padding:
|
|
46
|
+
padding: 80px 20px;
|
|
26
47
|
margin: 0;
|
|
27
48
|
color: #555;
|
|
28
49
|
position: relative;
|
|
@@ -42,6 +63,10 @@
|
|
|
42
63
|
cursor: pointer;
|
|
43
64
|
display: flex;
|
|
44
65
|
}
|
|
66
|
+
.crm-class-sidebar-list .crm-class-sidebar-li svg {
|
|
67
|
+
color: rgb(202, 202, 202);
|
|
68
|
+
transition: color 0.3s;
|
|
69
|
+
}
|
|
45
70
|
.crm-class-sidebar-list .crm-class-sidebar-li:hover {
|
|
46
71
|
background-color: #e0f3ff;
|
|
47
72
|
border-radius: 4px;
|
|
@@ -50,6 +75,9 @@
|
|
|
50
75
|
-ms-border-radius: 4px;
|
|
51
76
|
-o-border-radius: 4px;
|
|
52
77
|
}
|
|
78
|
+
.crm-class-sidebar-list .crm-class-sidebar-li:hover svg {
|
|
79
|
+
color: rgb(141, 141, 141);
|
|
80
|
+
}
|
|
53
81
|
|
|
54
82
|
.crm-class-content-sub-menu-items {
|
|
55
83
|
padding: 0.5rem 0.4rem 0.5rem 0.6rem;
|
|
@@ -91,7 +119,7 @@
|
|
|
91
119
|
align-content: center;
|
|
92
120
|
flex: 1 1;
|
|
93
121
|
padding: 0 1.5rem;
|
|
94
|
-
height:
|
|
122
|
+
height: 60px;
|
|
95
123
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
96
124
|
position: fixed;
|
|
97
125
|
width: 100%;
|
|
@@ -120,17 +148,18 @@
|
|
|
120
148
|
}
|
|
121
149
|
|
|
122
150
|
.crm-class-top-nav-bar-avatar {
|
|
123
|
-
width:
|
|
124
|
-
height:
|
|
125
|
-
border:
|
|
151
|
+
width: 36px;
|
|
152
|
+
height: 36px;
|
|
153
|
+
border: 3px solid #dee2e6;
|
|
126
154
|
padding: 0;
|
|
127
155
|
outline: none;
|
|
128
156
|
position: relative;
|
|
129
157
|
cursor: pointer;
|
|
130
158
|
transition: all 0.3s ease-in-out;
|
|
131
159
|
background: #9b6443;
|
|
132
|
-
border-radius:
|
|
160
|
+
border-radius: 50%;
|
|
133
161
|
display: flex;
|
|
162
|
+
font-size: 13px;
|
|
134
163
|
align-items: center;
|
|
135
164
|
justify-content: center;
|
|
136
165
|
color: white;
|
|
@@ -146,22 +175,122 @@
|
|
|
146
175
|
display: inline-flex;
|
|
147
176
|
align-items: center;
|
|
148
177
|
}
|
|
178
|
+
.crm-class-dropdown svg {
|
|
179
|
+
font-size: 13px;
|
|
180
|
+
}
|
|
149
181
|
|
|
150
182
|
.crm-class-top-nav-bar-info-user {
|
|
151
|
-
display:
|
|
152
|
-
|
|
183
|
+
display: none;
|
|
184
|
+
color: #495057;
|
|
185
|
+
}
|
|
186
|
+
.crm-class-top-nav-bar-info-user span {
|
|
187
|
+
opacity: 0.8;
|
|
153
188
|
}
|
|
154
189
|
|
|
155
190
|
.crm-class-dropdown-content {
|
|
156
|
-
display: none;
|
|
157
191
|
position: absolute;
|
|
158
192
|
background-color: #f9f9f9;
|
|
159
|
-
|
|
193
|
+
transform: translateX(-170px);
|
|
194
|
+
min-width: 230px;
|
|
160
195
|
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
|
|
161
|
-
|
|
196
|
+
animation: cms-fade-in-mobile 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) both;
|
|
162
197
|
z-index: 1;
|
|
198
|
+
border-radius: 3px;
|
|
199
|
+
border: 1px solid rgba(0, 0, 0, 0.15);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
@media (min-width: 1300px) {
|
|
203
|
+
.crm-class-top-nav-bar-info-user {
|
|
204
|
+
display: flex;
|
|
205
|
+
flex-direction: column;
|
|
206
|
+
justify-content: center;
|
|
207
|
+
}
|
|
208
|
+
.crm-class-dropdown-content {
|
|
209
|
+
transform: translateX(-50px);
|
|
210
|
+
animation: cms-fade-in 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) both;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
.crm-class-dropdown-content .crm-class-dropdown-header {
|
|
214
|
+
background-color: #16aaff !important;
|
|
215
|
+
border-top-left-radius: 3px;
|
|
216
|
+
border-top-right-radius: 3px;
|
|
217
|
+
position: relative;
|
|
218
|
+
}
|
|
219
|
+
.crm-class-dropdown-content .crm-class-dropdown-header .crm-class-dropdown-user-bg {
|
|
220
|
+
background: url(https://sbx.ibuyflowers.com/assets/images/dropdown-header/city3.jpg);
|
|
221
|
+
opacity: 0.2;
|
|
222
|
+
filter: grayscale(80%);
|
|
223
|
+
background-size: cover;
|
|
224
|
+
border-top-left-radius: 5px;
|
|
225
|
+
border-top-right-radius: 5px;
|
|
226
|
+
position: absolute;
|
|
227
|
+
z-index: 2;
|
|
228
|
+
width: 100%;
|
|
229
|
+
height: 100%;
|
|
230
|
+
}
|
|
231
|
+
.crm-class-dropdown-content .crm-class-dropdown-header .crm-class-dropdown-user-content {
|
|
232
|
+
border-top-left-radius: 3px;
|
|
233
|
+
border-top-right-radius: 3px;
|
|
234
|
+
padding: 18px;
|
|
235
|
+
position: relative;
|
|
236
|
+
z-index: 5;
|
|
237
|
+
}
|
|
238
|
+
.crm-class-dropdown-content .crm-class-dropdown-header .crm-class-dropdown-user-content p {
|
|
239
|
+
margin: 0;
|
|
240
|
+
color: white;
|
|
241
|
+
}
|
|
242
|
+
.crm-class-dropdown-content .crm-class-dropdown-header .crm-class-dropdown-user-content .crm-class-dropdown-user-name {
|
|
243
|
+
font-size: 13px;
|
|
244
|
+
opacity: 0.8;
|
|
245
|
+
font-weight: 700;
|
|
246
|
+
}
|
|
247
|
+
.crm-class-dropdown-content .crm-class-dropdown-header .crm-class-dropdown-user-content .crm-class-dropdown-user-email {
|
|
248
|
+
font-size: 13px;
|
|
249
|
+
opacity: 0.8;
|
|
163
250
|
}
|
|
164
251
|
|
|
252
|
+
.crm-class-dropdown-options {
|
|
253
|
+
min-height: 150px;
|
|
254
|
+
}
|
|
255
|
+
.crm-class-dropdown-options ul {
|
|
256
|
+
margin: 0;
|
|
257
|
+
padding: 0 15px;
|
|
258
|
+
list-style: none;
|
|
259
|
+
}
|
|
260
|
+
.crm-class-dropdown-options ul li a {
|
|
261
|
+
font-size: 13px;
|
|
262
|
+
color: #3f6ad8;
|
|
263
|
+
text-decoration: none;
|
|
264
|
+
}
|
|
265
|
+
.crm-class-dropdown-options ul li a svg {
|
|
266
|
+
margin-right: 5px;
|
|
267
|
+
}
|
|
268
|
+
.crm-class-dropdown-options ul .crm-class-dropdown-first-option {
|
|
269
|
+
text-transform: uppercase;
|
|
270
|
+
font-size: 9.5px;
|
|
271
|
+
color: #6c757d;
|
|
272
|
+
font-weight: 700;
|
|
273
|
+
padding: 10px 0 5px 0;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
@keyframes cms-fade-in {
|
|
277
|
+
0% {
|
|
278
|
+
opacity: 0;
|
|
279
|
+
}
|
|
280
|
+
100% {
|
|
281
|
+
opacity: 1;
|
|
282
|
+
transform: translate(-50px, 165px);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
@keyframes cms-fade-in-mobile {
|
|
286
|
+
0% {
|
|
287
|
+
opacity: 0;
|
|
288
|
+
}
|
|
289
|
+
100% {
|
|
290
|
+
opacity: 1;
|
|
291
|
+
transform: translate(-170px, 165px);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
165
294
|
.crm-class-cursor-pointer {
|
|
166
295
|
cursor: pointer;
|
|
167
296
|
}
|
|
@@ -178,6 +307,10 @@
|
|
|
178
307
|
margin-left: 20px;
|
|
179
308
|
}
|
|
180
309
|
|
|
310
|
+
.crm-class-ml-15 {
|
|
311
|
+
margin-left: 15px;
|
|
312
|
+
}
|
|
313
|
+
|
|
181
314
|
.crm-class-mr-10 {
|
|
182
315
|
margin-right: 10px;
|
|
183
316
|
}
|
|
@@ -208,8 +341,8 @@
|
|
|
208
341
|
|
|
209
342
|
/*/*/
|
|
210
343
|
.crm-class-content-flag {
|
|
211
|
-
width:
|
|
212
|
-
height:
|
|
344
|
+
width: 44px;
|
|
345
|
+
height: 44px;
|
|
213
346
|
border: none;
|
|
214
347
|
padding: 0;
|
|
215
348
|
outline: none;
|
|
@@ -217,11 +350,14 @@
|
|
|
217
350
|
cursor: pointer;
|
|
218
351
|
transition: all 0.3s ease-in-out;
|
|
219
352
|
background: rgba(0, 0, 0, 0.06);
|
|
220
|
-
border-radius:
|
|
353
|
+
border-radius: 40px;
|
|
221
354
|
display: flex;
|
|
222
355
|
align-items: center;
|
|
223
356
|
justify-content: center;
|
|
224
357
|
}
|
|
358
|
+
.crm-class-content-flag:hover {
|
|
359
|
+
background: rgb(227, 227, 227);
|
|
360
|
+
}
|
|
225
361
|
|
|
226
362
|
.crm-class-flag {
|
|
227
363
|
display: inline-block;
|
|
@@ -260,22 +396,46 @@
|
|
|
260
396
|
}
|
|
261
397
|
|
|
262
398
|
.crm-class-dropdown-menu {
|
|
263
|
-
display: none;
|
|
264
399
|
position: absolute;
|
|
265
400
|
background-color: white;
|
|
266
401
|
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
|
|
267
|
-
padding:
|
|
402
|
+
padding-bottom: 10px;
|
|
268
403
|
z-index: 1;
|
|
269
|
-
min-width:
|
|
404
|
+
min-width: 195px;
|
|
405
|
+
transform: translate(-200px, -100px);
|
|
406
|
+
border: 1px solid rgba(0, 0, 0, 0.15);
|
|
407
|
+
border-radius: 5px;
|
|
408
|
+
animation: cms-fade-in-2 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) both;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
@keyframes cms-fade-in-2 {
|
|
412
|
+
0% {
|
|
413
|
+
opacity: 0;
|
|
414
|
+
}
|
|
415
|
+
100% {
|
|
416
|
+
opacity: 1;
|
|
417
|
+
transform: translate(-200px, 30px);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
.crm-class-dropdown-title {
|
|
421
|
+
background-color: #444054;
|
|
422
|
+
width: 100%;
|
|
423
|
+
color: rgba(255, 255, 255, 0.8);
|
|
424
|
+
font-size: 13px;
|
|
425
|
+
text-align: center;
|
|
426
|
+
padding: 20px 0;
|
|
427
|
+
border-top-left-radius: 5px;
|
|
428
|
+
border-top-right-radius: 5px;
|
|
270
429
|
}
|
|
271
430
|
|
|
272
431
|
.crm-class-dropdown-menu .crm-class-dropdown-header {
|
|
273
432
|
font-weight: bold;
|
|
433
|
+
margin-top: 10px;
|
|
274
434
|
margin-bottom: 8px;
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
435
|
+
text-transform: uppercase;
|
|
436
|
+
color: #3f6ad8;
|
|
437
|
+
font-size: 9.5px;
|
|
438
|
+
padding: 0 15px;
|
|
279
439
|
}
|
|
280
440
|
|
|
281
441
|
.crm-class-dropdown-item {
|
|
@@ -284,9 +444,17 @@
|
|
|
284
444
|
cursor: pointer;
|
|
285
445
|
display: flex;
|
|
286
446
|
align-items: center;
|
|
287
|
-
padding: 8px
|
|
447
|
+
padding: 8px 15px;
|
|
288
448
|
width: 100%;
|
|
289
449
|
text-align: left;
|
|
450
|
+
font-size: 10px;
|
|
451
|
+
}
|
|
452
|
+
.crm-class-dropdown-item:hover {
|
|
453
|
+
background-color: #e0f3ff;
|
|
454
|
+
}
|
|
455
|
+
.crm-class-dropdown-item.selected {
|
|
456
|
+
background-color: #3f6ad8;
|
|
457
|
+
color: white;
|
|
290
458
|
}
|
|
291
459
|
|
|
292
460
|
.crm-class-selected-language {
|
package/dist/index.js
CHANGED
|
@@ -68,13 +68,35 @@ function Dropdown(props) {
|
|
|
68
68
|
},
|
|
69
69
|
className: "crm-class-top-nav-bar-avatar"
|
|
70
70
|
}, props.startNameWord.toUpperCase()), React__default.createElement("span", {
|
|
71
|
-
className: "crm-class-ml-
|
|
71
|
+
className: "crm-class-ml-15"
|
|
72
72
|
}, React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
73
73
|
icon: isDropdownOpen ? freeSolidSvgIcons.faChevronUp : freeSolidSvgIcons.faChevronDown,
|
|
74
74
|
className: "crm-class-color-icon crm-class-slate-gray"
|
|
75
75
|
})), isDropdownOpen && React__default.createElement("div", {
|
|
76
76
|
className: "crm-class-dropdown-content"
|
|
77
|
-
}, React__default.createElement("
|
|
77
|
+
}, React__default.createElement("div", {
|
|
78
|
+
className: 'crm-class-dropdown-header'
|
|
79
|
+
}, React__default.createElement("div", {
|
|
80
|
+
className: 'crm-class-dropdown-user-bg'
|
|
81
|
+
}), React__default.createElement("div", {
|
|
82
|
+
className: 'crm-class-dropdown-user-content'
|
|
83
|
+
}, React__default.createElement("p", {
|
|
84
|
+
className: 'crm-class-dropdown-user-name'
|
|
85
|
+
}, props.name), React__default.createElement("p", {
|
|
86
|
+
className: 'crm-class-dropdown-user-email'
|
|
87
|
+
}, props.email))), React__default.createElement("div", {
|
|
88
|
+
className: 'crm-class-dropdown-options'
|
|
89
|
+
}, React__default.createElement("ul", null, React__default.createElement("li", {
|
|
90
|
+
className: 'crm-class-dropdown-first-option'
|
|
91
|
+
}, "Options"), React__default.createElement("li", null, React__default.createElement("a", {
|
|
92
|
+
href: "/en/auth/profile/proposal-profile"
|
|
93
|
+
}, React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
94
|
+
icon: freeSolidSvgIcons.faUser
|
|
95
|
+
}), "My Profile")), React__default.createElement("li", null, React__default.createElement("a", {
|
|
96
|
+
href: ""
|
|
97
|
+
}, React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
98
|
+
icon: freeSolidSvgIcons.faPowerOff
|
|
99
|
+
}), "Logout"))))));
|
|
78
100
|
}
|
|
79
101
|
|
|
80
102
|
function UserInfo(_ref) {
|
|
@@ -83,35 +105,50 @@ function UserInfo(_ref) {
|
|
|
83
105
|
return React__default.createElement("div", {
|
|
84
106
|
className: "crm-class-top-nav-bar-info-user"
|
|
85
107
|
}, React__default.createElement("span", {
|
|
86
|
-
className: "crm-class-font-bold"
|
|
87
|
-
|
|
108
|
+
className: "crm-class-font-bold",
|
|
109
|
+
style: {
|
|
110
|
+
fontSize: 13
|
|
111
|
+
}
|
|
112
|
+
}, name, " "), React__default.createElement("span", {
|
|
113
|
+
style: {
|
|
114
|
+
fontSize: 10
|
|
115
|
+
}
|
|
116
|
+
}, email));
|
|
88
117
|
}
|
|
89
118
|
|
|
90
119
|
function LanguageDropdown(props) {
|
|
91
120
|
var _useState = React.useState(props.languages[0]),
|
|
92
121
|
selectedLanguage = _useState[0],
|
|
93
122
|
setSelectedLanguage = _useState[1];
|
|
123
|
+
var _useState2 = React.useState(false),
|
|
124
|
+
openLanguageDropdown = _useState2[0],
|
|
125
|
+
setOpenLanguageDropdown = _useState2[1];
|
|
94
126
|
var handleLanguageChange = function handleLanguageChange(language) {
|
|
95
127
|
setSelectedLanguage(language);
|
|
96
128
|
};
|
|
97
129
|
return React__default.createElement("div", {
|
|
98
130
|
className: "crm-class-dropdown-flag crm-class-mr-20"
|
|
99
131
|
}, React__default.createElement("span", {
|
|
100
|
-
className: "crm-class-content-flag"
|
|
132
|
+
className: "crm-class-content-flag",
|
|
133
|
+
onClick: function onClick() {
|
|
134
|
+
return setOpenLanguageDropdown(!openLanguageDropdown);
|
|
135
|
+
}
|
|
101
136
|
}, React__default.createElement("span", {
|
|
137
|
+
style: {
|
|
138
|
+
borderRadius: 30
|
|
139
|
+
},
|
|
102
140
|
className: "crm-class-flag large " + selectedLanguage.flag
|
|
103
|
-
})), React__default.createElement("div", {
|
|
141
|
+
})), openLanguageDropdown && React__default.createElement("div", {
|
|
104
142
|
className: "crm-class-dropdown-menu"
|
|
105
|
-
}, React__default.createElement("
|
|
106
|
-
className: "crm-class-dropdown-
|
|
107
|
-
type: "button"
|
|
143
|
+
}, React__default.createElement("div", {
|
|
144
|
+
className: "crm-class-dropdown-title"
|
|
108
145
|
}, "Choose Language"), React__default.createElement("h6", {
|
|
109
146
|
className: "crm-class-dropdown-header"
|
|
110
147
|
}, "Popular Languages"), props.languages.map(function (language) {
|
|
111
148
|
return React__default.createElement("button", {
|
|
112
149
|
key: language.code,
|
|
113
150
|
type: "button",
|
|
114
|
-
className: "crm-class-dropdown-item ",
|
|
151
|
+
className: "crm-class-dropdown-item " + (language.code === selectedLanguage.code ? 'selected' : ''),
|
|
115
152
|
onClick: function onClick() {
|
|
116
153
|
return handleLanguageChange(language);
|
|
117
154
|
}
|
|
@@ -122,32 +159,48 @@ function LanguageDropdown(props) {
|
|
|
122
159
|
}
|
|
123
160
|
|
|
124
161
|
function TopNavBarComponent(props) {
|
|
125
|
-
var _props$logoSrc, _props$onClickLogo, _props$user$name;
|
|
162
|
+
var _props$logoSrc, _props$onClickLogo, _props$logoSrc2, _props$onClickLogo2, _props$user$name;
|
|
126
163
|
return React__default.createElement("div", {
|
|
127
164
|
className: "crm-class-top-nav-bar"
|
|
128
165
|
}, React__default.createElement("div", {
|
|
129
166
|
className: "crm-class-flex-container"
|
|
130
|
-
}, React__default.createElement(
|
|
167
|
+
}, props.openSideBar && React__default.createElement("img", {
|
|
168
|
+
src: (_props$logoSrc = props.logoSrc) != null ? _props$logoSrc : 'https://via.placeholder.com/150',
|
|
169
|
+
style: {
|
|
170
|
+
height: '20px',
|
|
171
|
+
marginRight: '40px'
|
|
172
|
+
},
|
|
173
|
+
className: props.onClickLogo ? 'crm-pointer' : '',
|
|
174
|
+
alt: "",
|
|
175
|
+
onClick: (_props$onClickLogo = props.onClickLogo) != null ? _props$onClickLogo : undefined
|
|
176
|
+
}), React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
131
177
|
icon: freeSolidSvgIcons.faBars,
|
|
132
178
|
color: "#3f6ad8",
|
|
133
179
|
size: "1x",
|
|
134
|
-
className: "crm-class-mr-20 crm-class-cursor-pointer"
|
|
180
|
+
className: "crm-class-mr-20 crm-class-cursor-pointer",
|
|
181
|
+
onClick: function onClick() {
|
|
182
|
+
return props.setOpenSideBar(function (prevOpen) {
|
|
183
|
+
return !prevOpen;
|
|
184
|
+
});
|
|
185
|
+
}
|
|
135
186
|
}), React__default.createElement("div", {
|
|
136
187
|
className: "crm-class-flex-container"
|
|
137
|
-
}, React__default.createElement("img", {
|
|
138
|
-
src: (_props$
|
|
188
|
+
}, !props.openSideBar && React__default.createElement("img", {
|
|
189
|
+
src: (_props$logoSrc2 = props.logoSrc) != null ? _props$logoSrc2 : 'https://via.placeholder.com/150',
|
|
139
190
|
style: {
|
|
140
|
-
height: '
|
|
191
|
+
height: '40px'
|
|
141
192
|
},
|
|
142
193
|
className: props.onClickLogo ? 'crm-pointer' : '',
|
|
143
194
|
alt: "",
|
|
144
|
-
onClick: (_props$
|
|
195
|
+
onClick: (_props$onClickLogo2 = props.onClickLogo) != null ? _props$onClickLogo2 : undefined
|
|
145
196
|
}))), React__default.createElement("div", {
|
|
146
197
|
className: "crm-class-top-nav-bar-options"
|
|
147
198
|
}, React__default.createElement(LanguageDropdown, {
|
|
148
199
|
languages: props.languages
|
|
149
200
|
}), React__default.createElement(Dropdown, {
|
|
150
|
-
startNameWord: (_props$user$name = props.user.name) === null || _props$user$name === void 0 ? void 0 : _props$user$name[0]
|
|
201
|
+
startNameWord: (_props$user$name = props.user.name) === null || _props$user$name === void 0 ? void 0 : _props$user$name[0],
|
|
202
|
+
name: props.user.name,
|
|
203
|
+
email: props.user.email
|
|
151
204
|
}), React__default.createElement(UserInfo, {
|
|
152
205
|
name: props.user.name,
|
|
153
206
|
email: props.user.email
|
|
@@ -207,10 +260,9 @@ var SidebarItem = function SidebarItem(_ref) {
|
|
|
207
260
|
}
|
|
208
261
|
}
|
|
209
262
|
}, icon && React__default.createElement("span", {
|
|
210
|
-
className: 'crm-class-
|
|
263
|
+
className: 'crm-class-mr-10'
|
|
211
264
|
}, React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
212
|
-
icon: icon
|
|
213
|
-
className: 'crm-class-color-icon'
|
|
265
|
+
icon: icon
|
|
214
266
|
})), React__default.createElement("span", {
|
|
215
267
|
className: (route.selected ? 'crm-class-font-bold' : '') + " "
|
|
216
268
|
}, label), !!subRoutes.length && React__default.createElement("span", {
|
|
@@ -229,23 +281,60 @@ var SidebarItem = function SidebarItem(_ref) {
|
|
|
229
281
|
};
|
|
230
282
|
|
|
231
283
|
var SidebarComponent = function SidebarComponent(props) {
|
|
232
|
-
var routes = props.routes
|
|
284
|
+
var routes = props.routes,
|
|
285
|
+
openSideBar = props.openSideBar,
|
|
286
|
+
setOpenSideBar = props.setOpenSideBar;
|
|
287
|
+
function iconFa(iconName) {
|
|
288
|
+
var name = iconsPath[iconName != null ? iconName : ''];
|
|
289
|
+
return require("@fortawesome/free-regular-svg-icons")[name] || require("@fortawesome/free-solid-svg-icons")[name];
|
|
290
|
+
}
|
|
233
291
|
return React__default.createElement("div", {
|
|
234
292
|
style: {
|
|
235
293
|
display: 'flex'
|
|
236
294
|
}
|
|
237
295
|
}, React__default.createElement("div", {
|
|
238
|
-
|
|
296
|
+
style: !openSideBar ? {
|
|
297
|
+
width: '80px'
|
|
298
|
+
} : {},
|
|
299
|
+
className: 'crm-class-sidebar',
|
|
300
|
+
onMouseOver: function onMouseOver() {
|
|
301
|
+
return setOpenSideBar(true);
|
|
302
|
+
},
|
|
303
|
+
onMouseOut: function onMouseOut() {
|
|
304
|
+
return setOpenSideBar(false);
|
|
305
|
+
}
|
|
239
306
|
}, React__default.createElement("ul", {
|
|
240
307
|
className: 'crm-class-sidebar-list'
|
|
241
|
-
}, React__default.createElement("span", {
|
|
308
|
+
}, openSideBar ? React__default.createElement("span", {
|
|
242
309
|
className: 'crm-class-title'
|
|
243
|
-
}, "MENU")
|
|
310
|
+
}, "MENU") : React__default.createElement("div", {
|
|
311
|
+
style: {
|
|
312
|
+
backgroundColor: '#e0f3ff',
|
|
313
|
+
height: '2px',
|
|
314
|
+
borderRadius: '15px'
|
|
315
|
+
}
|
|
316
|
+
}), openSideBar ? routes.map(function (route, index) {
|
|
244
317
|
return React__default.createElement(SidebarItem, {
|
|
245
318
|
key: "route_" + index,
|
|
246
319
|
route: route
|
|
247
320
|
});
|
|
248
|
-
})
|
|
321
|
+
}) : React__default.createElement("ul", {
|
|
322
|
+
className: 'crm-class-sidebar-icons-content'
|
|
323
|
+
}, routes.map(function (route, index) {
|
|
324
|
+
var icon = iconFa(route.iconName);
|
|
325
|
+
if (icon) {
|
|
326
|
+
return React__default.createElement("li", {
|
|
327
|
+
key: "route_" + index
|
|
328
|
+
}, React__default.createElement("span", null, React__default.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
329
|
+
style: {
|
|
330
|
+
fontSize: 13,
|
|
331
|
+
color: '#cacaca'
|
|
332
|
+
},
|
|
333
|
+
icon: icon
|
|
334
|
+
})));
|
|
335
|
+
}
|
|
336
|
+
return React__default.createElement(React__default.Fragment, null);
|
|
337
|
+
})))), React__default.createElement("div", {
|
|
249
338
|
className: 'crm-class-sidebar-content'
|
|
250
339
|
}, props.children));
|
|
251
340
|
};
|
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","../src/provider/TranslateProvider.tsx","../src/hooks/useTranslate.ts"],"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\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\nexport function getDataFromKey<T>(data: T, key: string): string {\n try {\n let val: any = data\n if (val[key]) return val[key]\n key.split('.').forEach((key) => {\n val = val[key]\n })\n return val as string\n } catch (e) {\n return ''\n }\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 } 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 onClickLogo?: () => void; \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 className={props.onClickLogo ? 'crm-pointer' : ''}\n alt=\"\"\n onClick={props.onClickLogo ?? undefined}\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, { useEffect, useMemo, useState } from 'react'\nimport {\n faChevronDown,\n faChevronUp,\n IconDefinition\n} from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { SidebarItemProps } from '../../../types/Common'\nimport { uuidV4 } from '../../../utils/utils'\n\nexport const iconsPath: Record<string, string> = {\n 'pe-7s-diamond': 'faGem',\n 'pe-7s-piggy': 'faPiggyBank',\n 'pe-7s-helm': 'faShip',\n 'pe-7s-hourglass': 'faHourglass',\n 'pe-7s-safe': 'faWallet',\n 'pe-7s-headphones': 'faHeadphones',\n 'pe-7s-next-2': 'faRectangleList',\n 'pe-7s-cloud-download': 'faCloudDownloadAlt',\n 'pe-7s-news-paper': 'faNewspaper',\n 'pe-7s-upload': 'faUpload',\n 'pe-7s-display1': 'faChartBar',\n 'pe-7s-settings': 'faCog'\n}\n\nconst SidebarItem = ({ route }: SidebarItemProps) => {\n const {\n iconName = '',\n label,\n subRoutes = [],\n className,\n visible = true\n } = route\n\n const [isSubMenuOpen, setIsSubMenuOpen] = useState(route.expanded || false)\n\n const toggleSubMenu = () => {\n setIsSubMenuOpen((prevState) => !prevState)\n }\n\n const icon: IconDefinition = useMemo(() => {\n const name = iconsPath[iconName] || iconName\n return (\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-regular-svg-icons`)[name] ||\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-solid-svg-icons`)[name]\n )\n }, [])\n\n useEffect(() => {\n setIsSubMenuOpen(route.expanded || false)\n }, [route.expanded])\n\n if (!visible) {\n return null\n }\n\n return (\n <React.Fragment>\n <li\n className={`crm-class-sidebar-li ${className ?? ''}`}\n onClick={() => {\n toggleSubMenu()\n if (!route.subRoutes?.length) {\n route.action?.()\n }\n }}\n >\n {icon && (\n <span className='crm-class-color-icon crm-class-mr-10'>\n <FontAwesomeIcon icon={icon} className='crm-class-color-icon' />\n </span>\n )}\n <span\n // onClick={route.subRoutes?.length ? undefined : route.action}\n className={`${route.selected ? 'crm-class-font-bold' : ''} `}\n >\n {label}\n </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'\n// import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { Route } from '../../../types/Common'\nimport SidebarItem from './SidebarItem'\nimport React from 'react'\n\nconst SidebarComponent = (props: {\n routes: Route[]\n children: React.ReactNode\n}) => {\n const { routes } = props\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 </ul>\n </div>\n <div className='crm-class-sidebar-content'>{props.children}</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 | string[]\n views?: View[]\n}\n\nexport const generateSubMenuData = (\n labels: View[],\n callBackPath: (v: View) => void,\n ruleSelection?: (v: View) => boolean\n): Route[] => {\n return labels.map((label) => ({\n label: label.name,\n className: 'crm-class-ml-20',\n action: () => callBackPath(label),\n path: label.path,\n selected: ruleSelection?.(label) || false,\n subRoutes: generateSubMenuData(\n label.views || [],\n callBackPath,\n ruleSelection\n )\n }))\n}\n\nexport const icons: Record<string, IconDefinition> = {\n diamond: faGem,\n default: faGem\n}\n","import React from 'react'\n\ninterface TranslateProviderProps<Config> {\n children: React.ReactNode\n locale: string\n translations: Config\n}\n\nexport const TranslateContext = React.createContext<{\n locale: string\n translations: Record<string, Record<string, string>>\n}>({\n locale: '',\n translations: {}\n})\n\nexport default function TranslateProvider<Config>(\n props: TranslateProviderProps<Config>\n) {\n const { children, ...value } = props\n\n return (\n <TranslateContext.Provider value={value as any}>\n {children}\n </TranslateContext.Provider>\n )\n}\n","import { useCallback, useContext } from 'react'\nimport { TranslateContext } from '../provider/TranslateProvider'\nimport { getDataFromKey } from '../utils/utils'\n\nconst useTranslate = (module: string) => {\n const { translations: language, locale } = useContext(TranslateContext)\n\n const t = useCallback(\n (field = ''): string => {\n return getDataFromKey(language[locale][module], field)\n },\n [language, locale]\n )\n return { t }\n}\n\nexport default useTranslate\n"],"names":["uuidV4","replace","c","crypto","getRandomValues","Uint8Array","toString","colors","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","getDataFromKey","data","key","val","split","forEach","e","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","code","TopNavBarComponent","faBars","color","size","src","_props$logoSrc","logoSrc","height","onClickLogo","alt","_props$onClickLogo","undefined","_props$user$name","user","iconsPath","SidebarItem","route","_route$iconName","iconName","label","_route$subRoutes","subRoutes","_route$visible","visible","expanded","isSubMenuOpen","setIsSubMenuOpen","toggleSubMenu","prevState","useMemo","require","useEffect","Fragment","_route$subRoutes2","length","_route$action","action","call","selected","item","SidebarComponent","routes","display","index","children","generateSubMenuData","labels","callBackPath","ruleSelection","path","views","icons","diamond","faGem","TranslateContext","createContext","locale","translations","TranslateProvider","value","_objectWithoutPropertiesLoose","_excluded","Provider","useTranslate","module","_useContext","useContext","t","useCallback","field"],"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","../src/provider/TranslateProvider.tsx","../src/hooks/useTranslate.ts"],"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\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\nexport function getDataFromKey<T>(data: T, key: string): string {\n try {\n let val: any = data\n if (val[key]) return val[key]\n key.split('.').forEach((key) => {\n val = val[key]\n })\n return val as string\n } catch (e) {\n return ''\n }\n}\n","import React, { useState } from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faChevronDown, faChevronUp, faUser, faPowerOff } from '@fortawesome/free-solid-svg-icons'\nimport { colors } from '../../utils/utils'\n\nexport default function Dropdown(props: { startNameWord: string, name: string, email: 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-15\">\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 <div className='crm-class-dropdown-header'>\n <div className='crm-class-dropdown-user-bg'>\n </div>\n <div className='crm-class-dropdown-user-content'>\n <p className='crm-class-dropdown-user-name'>{props.name}</p>\n <p className='crm-class-dropdown-user-email'>{props.email}</p>\n </div>\n </div>\n <div className='crm-class-dropdown-options'>\n <ul>\n <li className='crm-class-dropdown-first-option'>Options</li>\n <li>\n <a href=\"/en/auth/profile/proposal-profile\">\n <FontAwesomeIcon\n icon={faUser}\n />\n My Profile\n </a>\n </li>\n <li>\n <a href=\"\">\n <FontAwesomeIcon\n icon={faPowerOff}\n />\n Logout\n </a>\n </li>\n </ul>\n </div>\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\" style={{fontSize: 13}}>{name} </span>\n <span style={{fontSize: 10}}>{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 const [openLanguageDropdown, setOpenLanguageDropdown] = useState(false);\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\" onClick={() => setOpenLanguageDropdown(!openLanguageDropdown)} >\n <span \n style={{borderRadius: 30}} \n className={`crm-class-flag large ${selectedLanguage.flag}`}></span>\n </span>\n\n {\n openLanguageDropdown && (\n <div className=\"crm-class-dropdown-menu\">\n <div className=\"crm-class-dropdown-title\">\n Choose Language\n </div>\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 ${language.code === selectedLanguage.code ? 'selected' : ''}`}\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 )\n }\n </div>\n )\n}\n","import { faBars } 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 openSideBar: boolean,\n setOpenSideBar: React.Dispatch<React.SetStateAction<boolean>>,\n logoSrc?: string;\n onClickLogo?: () => void; \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 {\n props.openSideBar && (\n <img\n src={props.logoSrc ?? 'https://via.placeholder.com/150'}\n style={{ height: '20px', marginRight: '40px' }}\n className={props.onClickLogo ? 'crm-pointer' : ''}\n alt=\"\"\n onClick={props.onClickLogo ?? undefined}\n />\n )\n }\n <FontAwesomeIcon\n icon={faBars}\n color=\"#3f6ad8\"\n size=\"1x\"\n className=\"crm-class-mr-20 crm-class-cursor-pointer\"\n onClick={() => props.setOpenSideBar((prevOpen) => !prevOpen)}\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 !props.openSideBar && (\n <img\n src={props.logoSrc ?? 'https://via.placeholder.com/150'}\n style={{ height: '40px' }}\n className={props.onClickLogo ? 'crm-pointer' : ''}\n alt=\"\"\n onClick={props.onClickLogo ?? undefined}\n />\n )\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]} name={props.user.name} email={props.user.email} />\n <UserInfo name={props.user.name} email={props.user.email} />\n </div>\n </div>\n )\n}\n","import React, { useEffect, useMemo, useState } from 'react'\nimport {\n faChevronDown,\n faChevronUp,\n IconDefinition\n} from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { SidebarItemProps } from '../../../types/Common'\nimport { uuidV4 } from '../../../utils/utils'\n\nexport const iconsPath: Record<string, string> = {\n 'pe-7s-diamond': 'faGem',\n 'pe-7s-piggy': 'faPiggyBank',\n 'pe-7s-helm': 'faShip',\n 'pe-7s-hourglass': 'faHourglass',\n 'pe-7s-safe': 'faWallet',\n 'pe-7s-headphones': 'faHeadphones',\n 'pe-7s-next-2': 'faRectangleList',\n 'pe-7s-cloud-download': 'faCloudDownloadAlt',\n 'pe-7s-news-paper': 'faNewspaper',\n 'pe-7s-upload': 'faUpload',\n 'pe-7s-display1': 'faChartBar',\n 'pe-7s-settings': 'faCog'\n}\n\nconst SidebarItem = ({ route }: SidebarItemProps) => {\n const {\n iconName = '',\n label,\n subRoutes = [],\n className,\n visible = true\n } = route\n\n const [isSubMenuOpen, setIsSubMenuOpen] = useState(route.expanded || false)\n\n const toggleSubMenu = () => {\n setIsSubMenuOpen((prevState) => !prevState)\n }\n\n const icon: IconDefinition = useMemo(() => {\n const name = iconsPath[iconName] || iconName\n return (\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-regular-svg-icons`)[name] ||\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-solid-svg-icons`)[name]\n )\n }, [])\n\n useEffect(() => {\n setIsSubMenuOpen(route.expanded || false)\n }, [route.expanded])\n\n if (!visible) {\n return null\n }\n\n return (\n <React.Fragment>\n <li\n className={`crm-class-sidebar-li ${className ?? ''}`}\n onClick={() => {\n toggleSubMenu()\n if (!route.subRoutes?.length) {\n route.action?.()\n }\n }}\n >\n {icon && (\n <span className='crm-class-mr-10'>\n <FontAwesomeIcon icon={icon} />\n </span>\n )}\n <span\n // onClick={route.subRoutes?.length ? undefined : route.action}\n className={`${route.selected ? 'crm-class-font-bold' : ''} `}\n >\n {label}\n </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'\n// import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { Route } from '../../../types/Common'\nimport SidebarItem, { iconsPath } from './SidebarItem'\nimport React from 'react'\n\nconst SidebarComponent = (props: {\n routes: Route[],\n openSideBar: boolean,\n setOpenSideBar: React.Dispatch<React.SetStateAction<boolean>>,\n children: React.ReactNode\n}) => {\n const { routes, openSideBar, setOpenSideBar } = props;\n\n function iconFa (iconName: string | undefined) {\n const name = iconsPath[iconName ?? '']\n return (\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-regular-svg-icons`)[name] ||\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-solid-svg-icons`)[name]\n )\n }\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={!openSideBar ? { width: '80px'} : {}} \n className='crm-class-sidebar' \n onMouseOver={() => setOpenSideBar(true)}\n onMouseOut={() => setOpenSideBar(false)}\n >\n <ul className='crm-class-sidebar-list'>\n\n {\n openSideBar\n ? <span className='crm-class-title'>MENU</span>\n : <div style={{backgroundColor: '#e0f3ff', height: '2px', borderRadius: '15px'}}></div>\n }\n\n {\n openSideBar\n ? routes.map((route, index) => (\n <SidebarItem key={`route_${index}`} route={route} />\n ))\n : (\n <ul className='crm-class-sidebar-icons-content'>\n {\n routes.map((route, index) => {\n const icon = iconFa(route.iconName);\n\n if(icon) {\n return (\n <li key={`route_${index}`}>\n <span>\n <FontAwesomeIcon style={{fontSize: 13, color: '#cacaca'}} icon={icon} />\n </span>\n </li>\n )\n }\n\n return <React.Fragment></React.Fragment>;\n })\n }\n </ul>\n )\n }\n \n\n {}\n </ul>\n </div>\n <div className='crm-class-sidebar-content'>{props.children}</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 | string[]\n views?: View[]\n}\n\nexport const generateSubMenuData = (\n labels: View[],\n callBackPath: (v: View) => void,\n ruleSelection?: (v: View) => boolean\n): Route[] => {\n return labels.map((label) => ({\n label: label.name,\n className: 'crm-class-ml-20',\n action: () => callBackPath(label),\n path: label.path,\n selected: ruleSelection?.(label) || false,\n subRoutes: generateSubMenuData(\n label.views || [],\n callBackPath,\n ruleSelection\n )\n }))\n}\n\nexport const icons: Record<string, IconDefinition> = {\n diamond: faGem,\n default: faGem\n}\n","import React from 'react'\n\ninterface TranslateProviderProps<Config> {\n children: React.ReactNode\n locale: string\n translations: Config\n}\n\nexport const TranslateContext = React.createContext<{\n locale: string\n translations: Record<string, Record<string, string>>\n}>({\n locale: '',\n translations: {}\n})\n\nexport default function TranslateProvider<Config>(\n props: TranslateProviderProps<Config>\n) {\n const { children, ...value } = props\n\n return (\n <TranslateContext.Provider value={value as any}>\n {children}\n </TranslateContext.Provider>\n )\n}\n","import { useCallback, useContext } from 'react'\nimport { TranslateContext } from '../provider/TranslateProvider'\nimport { getDataFromKey } from '../utils/utils'\n\nconst useTranslate = (module: string) => {\n const { translations: language, locale } = useContext(TranslateContext)\n\n const t = useCallback(\n (field = ''): string => {\n return getDataFromKey(language[locale][module], field)\n },\n [language, locale]\n )\n return { t }\n}\n\nexport default useTranslate\n"],"names":["uuidV4","replace","c","crypto","getRandomValues","Uint8Array","toString","colors","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","getDataFromKey","data","key","val","split","forEach","e","Dropdown","props","_useState","useState","isDropdownOpen","setIsDropdownOpen","toggleDropdown","React","className","onClick","style","background","startNameWord","toUpperCase","FontAwesomeIcon","icon","faChevronUp","faChevronDown","name","email","href","faUser","faPowerOff","UserInfo","_ref","fontSize","LanguageDropdown","languages","selectedLanguage","setSelectedLanguage","_useState2","openLanguageDropdown","setOpenLanguageDropdown","handleLanguageChange","language","borderRadius","flag","map","code","type","TopNavBarComponent","openSideBar","src","_props$logoSrc","logoSrc","height","marginRight","onClickLogo","alt","_props$onClickLogo","undefined","faBars","color","size","setOpenSideBar","prevOpen","_props$logoSrc2","_props$onClickLogo2","_props$user$name","user","iconsPath","SidebarItem","route","_route$iconName","iconName","label","_route$subRoutes","subRoutes","_route$visible","visible","expanded","isSubMenuOpen","setIsSubMenuOpen","toggleSubMenu","prevState","useMemo","require","useEffect","Fragment","_route$subRoutes2","length","_route$action","action","call","selected","item","SidebarComponent","routes","iconFa","display","width","onMouseOver","onMouseOut","backgroundColor","index","children","generateSubMenuData","labels","callBackPath","ruleSelection","path","views","icons","diamond","faGem","TranslateContext","createContext","locale","translations","TranslateProvider","value","_objectWithoutPropertiesLoose","_excluded","Provider","useTranslate","module","_useContext","useContext","t","useCallback","field"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { faChevronUp, faChevronDown, faBars } from '@fortawesome/free-solid-svg-icons';
|
|
1
|
+
import { faChevronUp, faChevronDown, faUser, faPowerOff, faBars } from '@fortawesome/free-solid-svg-icons';
|
|
2
2
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
3
3
|
import React, { useState, useMemo, useEffect, useContext, useCallback } from 'react';
|
|
4
4
|
import { faGem } from '@fortawesome/free-regular-svg-icons';
|
|
@@ -65,13 +65,35 @@ function Dropdown(props) {
|
|
|
65
65
|
},
|
|
66
66
|
className: "crm-class-top-nav-bar-avatar"
|
|
67
67
|
}, props.startNameWord.toUpperCase()), React.createElement("span", {
|
|
68
|
-
className: "crm-class-ml-
|
|
68
|
+
className: "crm-class-ml-15"
|
|
69
69
|
}, React.createElement(FontAwesomeIcon, {
|
|
70
70
|
icon: isDropdownOpen ? faChevronUp : faChevronDown,
|
|
71
71
|
className: "crm-class-color-icon crm-class-slate-gray"
|
|
72
72
|
})), isDropdownOpen && React.createElement("div", {
|
|
73
73
|
className: "crm-class-dropdown-content"
|
|
74
|
-
}, React.createElement("
|
|
74
|
+
}, React.createElement("div", {
|
|
75
|
+
className: 'crm-class-dropdown-header'
|
|
76
|
+
}, React.createElement("div", {
|
|
77
|
+
className: 'crm-class-dropdown-user-bg'
|
|
78
|
+
}), React.createElement("div", {
|
|
79
|
+
className: 'crm-class-dropdown-user-content'
|
|
80
|
+
}, React.createElement("p", {
|
|
81
|
+
className: 'crm-class-dropdown-user-name'
|
|
82
|
+
}, props.name), React.createElement("p", {
|
|
83
|
+
className: 'crm-class-dropdown-user-email'
|
|
84
|
+
}, props.email))), React.createElement("div", {
|
|
85
|
+
className: 'crm-class-dropdown-options'
|
|
86
|
+
}, React.createElement("ul", null, React.createElement("li", {
|
|
87
|
+
className: 'crm-class-dropdown-first-option'
|
|
88
|
+
}, "Options"), React.createElement("li", null, React.createElement("a", {
|
|
89
|
+
href: "/en/auth/profile/proposal-profile"
|
|
90
|
+
}, React.createElement(FontAwesomeIcon, {
|
|
91
|
+
icon: faUser
|
|
92
|
+
}), "My Profile")), React.createElement("li", null, React.createElement("a", {
|
|
93
|
+
href: ""
|
|
94
|
+
}, React.createElement(FontAwesomeIcon, {
|
|
95
|
+
icon: faPowerOff
|
|
96
|
+
}), "Logout"))))));
|
|
75
97
|
}
|
|
76
98
|
|
|
77
99
|
function UserInfo(_ref) {
|
|
@@ -80,35 +102,50 @@ function UserInfo(_ref) {
|
|
|
80
102
|
return React.createElement("div", {
|
|
81
103
|
className: "crm-class-top-nav-bar-info-user"
|
|
82
104
|
}, React.createElement("span", {
|
|
83
|
-
className: "crm-class-font-bold"
|
|
84
|
-
|
|
105
|
+
className: "crm-class-font-bold",
|
|
106
|
+
style: {
|
|
107
|
+
fontSize: 13
|
|
108
|
+
}
|
|
109
|
+
}, name, " "), React.createElement("span", {
|
|
110
|
+
style: {
|
|
111
|
+
fontSize: 10
|
|
112
|
+
}
|
|
113
|
+
}, email));
|
|
85
114
|
}
|
|
86
115
|
|
|
87
116
|
function LanguageDropdown(props) {
|
|
88
117
|
var _useState = useState(props.languages[0]),
|
|
89
118
|
selectedLanguage = _useState[0],
|
|
90
119
|
setSelectedLanguage = _useState[1];
|
|
120
|
+
var _useState2 = useState(false),
|
|
121
|
+
openLanguageDropdown = _useState2[0],
|
|
122
|
+
setOpenLanguageDropdown = _useState2[1];
|
|
91
123
|
var handleLanguageChange = function handleLanguageChange(language) {
|
|
92
124
|
setSelectedLanguage(language);
|
|
93
125
|
};
|
|
94
126
|
return React.createElement("div", {
|
|
95
127
|
className: "crm-class-dropdown-flag crm-class-mr-20"
|
|
96
128
|
}, React.createElement("span", {
|
|
97
|
-
className: "crm-class-content-flag"
|
|
129
|
+
className: "crm-class-content-flag",
|
|
130
|
+
onClick: function onClick() {
|
|
131
|
+
return setOpenLanguageDropdown(!openLanguageDropdown);
|
|
132
|
+
}
|
|
98
133
|
}, React.createElement("span", {
|
|
134
|
+
style: {
|
|
135
|
+
borderRadius: 30
|
|
136
|
+
},
|
|
99
137
|
className: "crm-class-flag large " + selectedLanguage.flag
|
|
100
|
-
})), React.createElement("div", {
|
|
138
|
+
})), openLanguageDropdown && React.createElement("div", {
|
|
101
139
|
className: "crm-class-dropdown-menu"
|
|
102
|
-
}, React.createElement("
|
|
103
|
-
className: "crm-class-dropdown-
|
|
104
|
-
type: "button"
|
|
140
|
+
}, React.createElement("div", {
|
|
141
|
+
className: "crm-class-dropdown-title"
|
|
105
142
|
}, "Choose Language"), React.createElement("h6", {
|
|
106
143
|
className: "crm-class-dropdown-header"
|
|
107
144
|
}, "Popular Languages"), props.languages.map(function (language) {
|
|
108
145
|
return React.createElement("button", {
|
|
109
146
|
key: language.code,
|
|
110
147
|
type: "button",
|
|
111
|
-
className: "crm-class-dropdown-item ",
|
|
148
|
+
className: "crm-class-dropdown-item " + (language.code === selectedLanguage.code ? 'selected' : ''),
|
|
112
149
|
onClick: function onClick() {
|
|
113
150
|
return handleLanguageChange(language);
|
|
114
151
|
}
|
|
@@ -119,32 +156,48 @@ function LanguageDropdown(props) {
|
|
|
119
156
|
}
|
|
120
157
|
|
|
121
158
|
function TopNavBarComponent(props) {
|
|
122
|
-
var _props$logoSrc, _props$onClickLogo, _props$user$name;
|
|
159
|
+
var _props$logoSrc, _props$onClickLogo, _props$logoSrc2, _props$onClickLogo2, _props$user$name;
|
|
123
160
|
return React.createElement("div", {
|
|
124
161
|
className: "crm-class-top-nav-bar"
|
|
125
162
|
}, React.createElement("div", {
|
|
126
163
|
className: "crm-class-flex-container"
|
|
127
|
-
}, React.createElement(
|
|
164
|
+
}, props.openSideBar && React.createElement("img", {
|
|
165
|
+
src: (_props$logoSrc = props.logoSrc) != null ? _props$logoSrc : 'https://via.placeholder.com/150',
|
|
166
|
+
style: {
|
|
167
|
+
height: '20px',
|
|
168
|
+
marginRight: '40px'
|
|
169
|
+
},
|
|
170
|
+
className: props.onClickLogo ? 'crm-pointer' : '',
|
|
171
|
+
alt: "",
|
|
172
|
+
onClick: (_props$onClickLogo = props.onClickLogo) != null ? _props$onClickLogo : undefined
|
|
173
|
+
}), React.createElement(FontAwesomeIcon, {
|
|
128
174
|
icon: faBars,
|
|
129
175
|
color: "#3f6ad8",
|
|
130
176
|
size: "1x",
|
|
131
|
-
className: "crm-class-mr-20 crm-class-cursor-pointer"
|
|
177
|
+
className: "crm-class-mr-20 crm-class-cursor-pointer",
|
|
178
|
+
onClick: function onClick() {
|
|
179
|
+
return props.setOpenSideBar(function (prevOpen) {
|
|
180
|
+
return !prevOpen;
|
|
181
|
+
});
|
|
182
|
+
}
|
|
132
183
|
}), React.createElement("div", {
|
|
133
184
|
className: "crm-class-flex-container"
|
|
134
|
-
}, React.createElement("img", {
|
|
135
|
-
src: (_props$
|
|
185
|
+
}, !props.openSideBar && React.createElement("img", {
|
|
186
|
+
src: (_props$logoSrc2 = props.logoSrc) != null ? _props$logoSrc2 : 'https://via.placeholder.com/150',
|
|
136
187
|
style: {
|
|
137
|
-
height: '
|
|
188
|
+
height: '40px'
|
|
138
189
|
},
|
|
139
190
|
className: props.onClickLogo ? 'crm-pointer' : '',
|
|
140
191
|
alt: "",
|
|
141
|
-
onClick: (_props$
|
|
192
|
+
onClick: (_props$onClickLogo2 = props.onClickLogo) != null ? _props$onClickLogo2 : undefined
|
|
142
193
|
}))), React.createElement("div", {
|
|
143
194
|
className: "crm-class-top-nav-bar-options"
|
|
144
195
|
}, React.createElement(LanguageDropdown, {
|
|
145
196
|
languages: props.languages
|
|
146
197
|
}), React.createElement(Dropdown, {
|
|
147
|
-
startNameWord: (_props$user$name = props.user.name) === null || _props$user$name === void 0 ? void 0 : _props$user$name[0]
|
|
198
|
+
startNameWord: (_props$user$name = props.user.name) === null || _props$user$name === void 0 ? void 0 : _props$user$name[0],
|
|
199
|
+
name: props.user.name,
|
|
200
|
+
email: props.user.email
|
|
148
201
|
}), React.createElement(UserInfo, {
|
|
149
202
|
name: props.user.name,
|
|
150
203
|
email: props.user.email
|
|
@@ -204,10 +257,9 @@ var SidebarItem = function SidebarItem(_ref) {
|
|
|
204
257
|
}
|
|
205
258
|
}
|
|
206
259
|
}, icon && React.createElement("span", {
|
|
207
|
-
className: 'crm-class-
|
|
260
|
+
className: 'crm-class-mr-10'
|
|
208
261
|
}, React.createElement(FontAwesomeIcon, {
|
|
209
|
-
icon: icon
|
|
210
|
-
className: 'crm-class-color-icon'
|
|
262
|
+
icon: icon
|
|
211
263
|
})), React.createElement("span", {
|
|
212
264
|
className: (route.selected ? 'crm-class-font-bold' : '') + " "
|
|
213
265
|
}, label), !!subRoutes.length && React.createElement("span", {
|
|
@@ -226,23 +278,60 @@ var SidebarItem = function SidebarItem(_ref) {
|
|
|
226
278
|
};
|
|
227
279
|
|
|
228
280
|
var SidebarComponent = function SidebarComponent(props) {
|
|
229
|
-
var routes = props.routes
|
|
281
|
+
var routes = props.routes,
|
|
282
|
+
openSideBar = props.openSideBar,
|
|
283
|
+
setOpenSideBar = props.setOpenSideBar;
|
|
284
|
+
function iconFa(iconName) {
|
|
285
|
+
var name = iconsPath[iconName != null ? iconName : ''];
|
|
286
|
+
return require("@fortawesome/free-regular-svg-icons")[name] || require("@fortawesome/free-solid-svg-icons")[name];
|
|
287
|
+
}
|
|
230
288
|
return React.createElement("div", {
|
|
231
289
|
style: {
|
|
232
290
|
display: 'flex'
|
|
233
291
|
}
|
|
234
292
|
}, React.createElement("div", {
|
|
235
|
-
|
|
293
|
+
style: !openSideBar ? {
|
|
294
|
+
width: '80px'
|
|
295
|
+
} : {},
|
|
296
|
+
className: 'crm-class-sidebar',
|
|
297
|
+
onMouseOver: function onMouseOver() {
|
|
298
|
+
return setOpenSideBar(true);
|
|
299
|
+
},
|
|
300
|
+
onMouseOut: function onMouseOut() {
|
|
301
|
+
return setOpenSideBar(false);
|
|
302
|
+
}
|
|
236
303
|
}, React.createElement("ul", {
|
|
237
304
|
className: 'crm-class-sidebar-list'
|
|
238
|
-
}, React.createElement("span", {
|
|
305
|
+
}, openSideBar ? React.createElement("span", {
|
|
239
306
|
className: 'crm-class-title'
|
|
240
|
-
}, "MENU")
|
|
307
|
+
}, "MENU") : React.createElement("div", {
|
|
308
|
+
style: {
|
|
309
|
+
backgroundColor: '#e0f3ff',
|
|
310
|
+
height: '2px',
|
|
311
|
+
borderRadius: '15px'
|
|
312
|
+
}
|
|
313
|
+
}), openSideBar ? routes.map(function (route, index) {
|
|
241
314
|
return React.createElement(SidebarItem, {
|
|
242
315
|
key: "route_" + index,
|
|
243
316
|
route: route
|
|
244
317
|
});
|
|
245
|
-
})
|
|
318
|
+
}) : React.createElement("ul", {
|
|
319
|
+
className: 'crm-class-sidebar-icons-content'
|
|
320
|
+
}, routes.map(function (route, index) {
|
|
321
|
+
var icon = iconFa(route.iconName);
|
|
322
|
+
if (icon) {
|
|
323
|
+
return React.createElement("li", {
|
|
324
|
+
key: "route_" + index
|
|
325
|
+
}, React.createElement("span", null, React.createElement(FontAwesomeIcon, {
|
|
326
|
+
style: {
|
|
327
|
+
fontSize: 13,
|
|
328
|
+
color: '#cacaca'
|
|
329
|
+
},
|
|
330
|
+
icon: icon
|
|
331
|
+
})));
|
|
332
|
+
}
|
|
333
|
+
return React.createElement(React.Fragment, null);
|
|
334
|
+
})))), React.createElement("div", {
|
|
246
335
|
className: 'crm-class-sidebar-content'
|
|
247
336
|
}, props.children));
|
|
248
337
|
};
|
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","../src/provider/TranslateProvider.tsx","../src/hooks/useTranslate.ts"],"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\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\nexport function getDataFromKey<T>(data: T, key: string): string {\n try {\n let val: any = data\n if (val[key]) return val[key]\n key.split('.').forEach((key) => {\n val = val[key]\n })\n return val as string\n } catch (e) {\n return ''\n }\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 } 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 onClickLogo?: () => void; \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 className={props.onClickLogo ? 'crm-pointer' : ''}\n alt=\"\"\n onClick={props.onClickLogo ?? undefined}\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, { useEffect, useMemo, useState } from 'react'\nimport {\n faChevronDown,\n faChevronUp,\n IconDefinition\n} from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { SidebarItemProps } from '../../../types/Common'\nimport { uuidV4 } from '../../../utils/utils'\n\nexport const iconsPath: Record<string, string> = {\n 'pe-7s-diamond': 'faGem',\n 'pe-7s-piggy': 'faPiggyBank',\n 'pe-7s-helm': 'faShip',\n 'pe-7s-hourglass': 'faHourglass',\n 'pe-7s-safe': 'faWallet',\n 'pe-7s-headphones': 'faHeadphones',\n 'pe-7s-next-2': 'faRectangleList',\n 'pe-7s-cloud-download': 'faCloudDownloadAlt',\n 'pe-7s-news-paper': 'faNewspaper',\n 'pe-7s-upload': 'faUpload',\n 'pe-7s-display1': 'faChartBar',\n 'pe-7s-settings': 'faCog'\n}\n\nconst SidebarItem = ({ route }: SidebarItemProps) => {\n const {\n iconName = '',\n label,\n subRoutes = [],\n className,\n visible = true\n } = route\n\n const [isSubMenuOpen, setIsSubMenuOpen] = useState(route.expanded || false)\n\n const toggleSubMenu = () => {\n setIsSubMenuOpen((prevState) => !prevState)\n }\n\n const icon: IconDefinition = useMemo(() => {\n const name = iconsPath[iconName] || iconName\n return (\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-regular-svg-icons`)[name] ||\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-solid-svg-icons`)[name]\n )\n }, [])\n\n useEffect(() => {\n setIsSubMenuOpen(route.expanded || false)\n }, [route.expanded])\n\n if (!visible) {\n return null\n }\n\n return (\n <React.Fragment>\n <li\n className={`crm-class-sidebar-li ${className ?? ''}`}\n onClick={() => {\n toggleSubMenu()\n if (!route.subRoutes?.length) {\n route.action?.()\n }\n }}\n >\n {icon && (\n <span className='crm-class-color-icon crm-class-mr-10'>\n <FontAwesomeIcon icon={icon} className='crm-class-color-icon' />\n </span>\n )}\n <span\n // onClick={route.subRoutes?.length ? undefined : route.action}\n className={`${route.selected ? 'crm-class-font-bold' : ''} `}\n >\n {label}\n </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'\n// import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { Route } from '../../../types/Common'\nimport SidebarItem from './SidebarItem'\nimport React from 'react'\n\nconst SidebarComponent = (props: {\n routes: Route[]\n children: React.ReactNode\n}) => {\n const { routes } = props\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 </ul>\n </div>\n <div className='crm-class-sidebar-content'>{props.children}</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 | string[]\n views?: View[]\n}\n\nexport const generateSubMenuData = (\n labels: View[],\n callBackPath: (v: View) => void,\n ruleSelection?: (v: View) => boolean\n): Route[] => {\n return labels.map((label) => ({\n label: label.name,\n className: 'crm-class-ml-20',\n action: () => callBackPath(label),\n path: label.path,\n selected: ruleSelection?.(label) || false,\n subRoutes: generateSubMenuData(\n label.views || [],\n callBackPath,\n ruleSelection\n )\n }))\n}\n\nexport const icons: Record<string, IconDefinition> = {\n diamond: faGem,\n default: faGem\n}\n","import React from 'react'\n\ninterface TranslateProviderProps<Config> {\n children: React.ReactNode\n locale: string\n translations: Config\n}\n\nexport const TranslateContext = React.createContext<{\n locale: string\n translations: Record<string, Record<string, string>>\n}>({\n locale: '',\n translations: {}\n})\n\nexport default function TranslateProvider<Config>(\n props: TranslateProviderProps<Config>\n) {\n const { children, ...value } = props\n\n return (\n <TranslateContext.Provider value={value as any}>\n {children}\n </TranslateContext.Provider>\n )\n}\n","import { useCallback, useContext } from 'react'\nimport { TranslateContext } from '../provider/TranslateProvider'\nimport { getDataFromKey } from '../utils/utils'\n\nconst useTranslate = (module: string) => {\n const { translations: language, locale } = useContext(TranslateContext)\n\n const t = useCallback(\n (field = ''): string => {\n return getDataFromKey(language[locale][module], field)\n },\n [language, locale]\n )\n return { t }\n}\n\nexport default useTranslate\n"],"names":["uuidV4","replace","c","crypto","getRandomValues","Uint8Array","toString","colors","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","getDataFromKey","data","key","val","split","forEach","e","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","code","TopNavBarComponent","faBars","color","size","src","_props$logoSrc","logoSrc","height","onClickLogo","alt","_props$onClickLogo","undefined","_props$user$name","user","iconsPath","SidebarItem","route","_route$iconName","iconName","label","_route$subRoutes","subRoutes","_route$visible","visible","expanded","isSubMenuOpen","setIsSubMenuOpen","toggleSubMenu","prevState","useMemo","require","useEffect","Fragment","_route$subRoutes2","length","_route$action","action","call","selected","item","SidebarComponent","routes","display","index","children","generateSubMenuData","labels","callBackPath","ruleSelection","path","views","icons","diamond","faGem","TranslateContext","createContext","locale","translations","TranslateProvider","value","_objectWithoutPropertiesLoose","_excluded","Provider","useTranslate","module","_useContext","useContext","t","useCallback","field"],"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","../src/provider/TranslateProvider.tsx","../src/hooks/useTranslate.ts"],"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\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\nexport function getDataFromKey<T>(data: T, key: string): string {\n try {\n let val: any = data\n if (val[key]) return val[key]\n key.split('.').forEach((key) => {\n val = val[key]\n })\n return val as string\n } catch (e) {\n return ''\n }\n}\n","import React, { useState } from 'react'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faChevronDown, faChevronUp, faUser, faPowerOff } from '@fortawesome/free-solid-svg-icons'\nimport { colors } from '../../utils/utils'\n\nexport default function Dropdown(props: { startNameWord: string, name: string, email: 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-15\">\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 <div className='crm-class-dropdown-header'>\n <div className='crm-class-dropdown-user-bg'>\n </div>\n <div className='crm-class-dropdown-user-content'>\n <p className='crm-class-dropdown-user-name'>{props.name}</p>\n <p className='crm-class-dropdown-user-email'>{props.email}</p>\n </div>\n </div>\n <div className='crm-class-dropdown-options'>\n <ul>\n <li className='crm-class-dropdown-first-option'>Options</li>\n <li>\n <a href=\"/en/auth/profile/proposal-profile\">\n <FontAwesomeIcon\n icon={faUser}\n />\n My Profile\n </a>\n </li>\n <li>\n <a href=\"\">\n <FontAwesomeIcon\n icon={faPowerOff}\n />\n Logout\n </a>\n </li>\n </ul>\n </div>\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\" style={{fontSize: 13}}>{name} </span>\n <span style={{fontSize: 10}}>{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 const [openLanguageDropdown, setOpenLanguageDropdown] = useState(false);\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\" onClick={() => setOpenLanguageDropdown(!openLanguageDropdown)} >\n <span \n style={{borderRadius: 30}} \n className={`crm-class-flag large ${selectedLanguage.flag}`}></span>\n </span>\n\n {\n openLanguageDropdown && (\n <div className=\"crm-class-dropdown-menu\">\n <div className=\"crm-class-dropdown-title\">\n Choose Language\n </div>\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 ${language.code === selectedLanguage.code ? 'selected' : ''}`}\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 )\n }\n </div>\n )\n}\n","import { faBars } 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 openSideBar: boolean,\n setOpenSideBar: React.Dispatch<React.SetStateAction<boolean>>,\n logoSrc?: string;\n onClickLogo?: () => void; \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 {\n props.openSideBar && (\n <img\n src={props.logoSrc ?? 'https://via.placeholder.com/150'}\n style={{ height: '20px', marginRight: '40px' }}\n className={props.onClickLogo ? 'crm-pointer' : ''}\n alt=\"\"\n onClick={props.onClickLogo ?? undefined}\n />\n )\n }\n <FontAwesomeIcon\n icon={faBars}\n color=\"#3f6ad8\"\n size=\"1x\"\n className=\"crm-class-mr-20 crm-class-cursor-pointer\"\n onClick={() => props.setOpenSideBar((prevOpen) => !prevOpen)}\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 !props.openSideBar && (\n <img\n src={props.logoSrc ?? 'https://via.placeholder.com/150'}\n style={{ height: '40px' }}\n className={props.onClickLogo ? 'crm-pointer' : ''}\n alt=\"\"\n onClick={props.onClickLogo ?? undefined}\n />\n )\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]} name={props.user.name} email={props.user.email} />\n <UserInfo name={props.user.name} email={props.user.email} />\n </div>\n </div>\n )\n}\n","import React, { useEffect, useMemo, useState } from 'react'\nimport {\n faChevronDown,\n faChevronUp,\n IconDefinition\n} from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { SidebarItemProps } from '../../../types/Common'\nimport { uuidV4 } from '../../../utils/utils'\n\nexport const iconsPath: Record<string, string> = {\n 'pe-7s-diamond': 'faGem',\n 'pe-7s-piggy': 'faPiggyBank',\n 'pe-7s-helm': 'faShip',\n 'pe-7s-hourglass': 'faHourglass',\n 'pe-7s-safe': 'faWallet',\n 'pe-7s-headphones': 'faHeadphones',\n 'pe-7s-next-2': 'faRectangleList',\n 'pe-7s-cloud-download': 'faCloudDownloadAlt',\n 'pe-7s-news-paper': 'faNewspaper',\n 'pe-7s-upload': 'faUpload',\n 'pe-7s-display1': 'faChartBar',\n 'pe-7s-settings': 'faCog'\n}\n\nconst SidebarItem = ({ route }: SidebarItemProps) => {\n const {\n iconName = '',\n label,\n subRoutes = [],\n className,\n visible = true\n } = route\n\n const [isSubMenuOpen, setIsSubMenuOpen] = useState(route.expanded || false)\n\n const toggleSubMenu = () => {\n setIsSubMenuOpen((prevState) => !prevState)\n }\n\n const icon: IconDefinition = useMemo(() => {\n const name = iconsPath[iconName] || iconName\n return (\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-regular-svg-icons`)[name] ||\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-solid-svg-icons`)[name]\n )\n }, [])\n\n useEffect(() => {\n setIsSubMenuOpen(route.expanded || false)\n }, [route.expanded])\n\n if (!visible) {\n return null\n }\n\n return (\n <React.Fragment>\n <li\n className={`crm-class-sidebar-li ${className ?? ''}`}\n onClick={() => {\n toggleSubMenu()\n if (!route.subRoutes?.length) {\n route.action?.()\n }\n }}\n >\n {icon && (\n <span className='crm-class-mr-10'>\n <FontAwesomeIcon icon={icon} />\n </span>\n )}\n <span\n // onClick={route.subRoutes?.length ? undefined : route.action}\n className={`${route.selected ? 'crm-class-font-bold' : ''} `}\n >\n {label}\n </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'\n// import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { Route } from '../../../types/Common'\nimport SidebarItem, { iconsPath } from './SidebarItem'\nimport React from 'react'\n\nconst SidebarComponent = (props: {\n routes: Route[],\n openSideBar: boolean,\n setOpenSideBar: React.Dispatch<React.SetStateAction<boolean>>,\n children: React.ReactNode\n}) => {\n const { routes, openSideBar, setOpenSideBar } = props;\n\n function iconFa (iconName: string | undefined) {\n const name = iconsPath[iconName ?? '']\n return (\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-regular-svg-icons`)[name] ||\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require(`@fortawesome/free-solid-svg-icons`)[name]\n )\n }\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={!openSideBar ? { width: '80px'} : {}} \n className='crm-class-sidebar' \n onMouseOver={() => setOpenSideBar(true)}\n onMouseOut={() => setOpenSideBar(false)}\n >\n <ul className='crm-class-sidebar-list'>\n\n {\n openSideBar\n ? <span className='crm-class-title'>MENU</span>\n : <div style={{backgroundColor: '#e0f3ff', height: '2px', borderRadius: '15px'}}></div>\n }\n\n {\n openSideBar\n ? routes.map((route, index) => (\n <SidebarItem key={`route_${index}`} route={route} />\n ))\n : (\n <ul className='crm-class-sidebar-icons-content'>\n {\n routes.map((route, index) => {\n const icon = iconFa(route.iconName);\n\n if(icon) {\n return (\n <li key={`route_${index}`}>\n <span>\n <FontAwesomeIcon style={{fontSize: 13, color: '#cacaca'}} icon={icon} />\n </span>\n </li>\n )\n }\n\n return <React.Fragment></React.Fragment>;\n })\n }\n </ul>\n )\n }\n \n\n {}\n </ul>\n </div>\n <div className='crm-class-sidebar-content'>{props.children}</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 | string[]\n views?: View[]\n}\n\nexport const generateSubMenuData = (\n labels: View[],\n callBackPath: (v: View) => void,\n ruleSelection?: (v: View) => boolean\n): Route[] => {\n return labels.map((label) => ({\n label: label.name,\n className: 'crm-class-ml-20',\n action: () => callBackPath(label),\n path: label.path,\n selected: ruleSelection?.(label) || false,\n subRoutes: generateSubMenuData(\n label.views || [],\n callBackPath,\n ruleSelection\n )\n }))\n}\n\nexport const icons: Record<string, IconDefinition> = {\n diamond: faGem,\n default: faGem\n}\n","import React from 'react'\n\ninterface TranslateProviderProps<Config> {\n children: React.ReactNode\n locale: string\n translations: Config\n}\n\nexport const TranslateContext = React.createContext<{\n locale: string\n translations: Record<string, Record<string, string>>\n}>({\n locale: '',\n translations: {}\n})\n\nexport default function TranslateProvider<Config>(\n props: TranslateProviderProps<Config>\n) {\n const { children, ...value } = props\n\n return (\n <TranslateContext.Provider value={value as any}>\n {children}\n </TranslateContext.Provider>\n )\n}\n","import { useCallback, useContext } from 'react'\nimport { TranslateContext } from '../provider/TranslateProvider'\nimport { getDataFromKey } from '../utils/utils'\n\nconst useTranslate = (module: string) => {\n const { translations: language, locale } = useContext(TranslateContext)\n\n const t = useCallback(\n (field = ''): string => {\n return getDataFromKey(language[locale][module], field)\n },\n [language, locale]\n )\n return { t }\n}\n\nexport default useTranslate\n"],"names":["uuidV4","replace","c","crypto","getRandomValues","Uint8Array","toString","colors","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","getDataFromKey","data","key","val","split","forEach","e","Dropdown","props","_useState","useState","isDropdownOpen","setIsDropdownOpen","toggleDropdown","React","className","onClick","style","background","startNameWord","toUpperCase","FontAwesomeIcon","icon","faChevronUp","faChevronDown","name","email","href","faUser","faPowerOff","UserInfo","_ref","fontSize","LanguageDropdown","languages","selectedLanguage","setSelectedLanguage","_useState2","openLanguageDropdown","setOpenLanguageDropdown","handleLanguageChange","language","borderRadius","flag","map","code","type","TopNavBarComponent","openSideBar","src","_props$logoSrc","logoSrc","height","marginRight","onClickLogo","alt","_props$onClickLogo","undefined","faBars","color","size","setOpenSideBar","prevOpen","_props$logoSrc2","_props$onClickLogo2","_props$user$name","user","iconsPath","SidebarItem","route","_route$iconName","iconName","label","_route$subRoutes","subRoutes","_route$visible","visible","expanded","isSubMenuOpen","setIsSubMenuOpen","toggleSubMenu","prevState","useMemo","require","useEffect","Fragment","_route$subRoutes2","length","_route$action","action","call","selected","item","SidebarComponent","routes","iconFa","display","width","onMouseOver","onMouseOut","backgroundColor","index","children","generateSubMenuData","labels","callBackPath","ruleSelection","path","views","icons","diamond","faGem","TranslateContext","createContext","locale","translations","TranslateProvider","value","_objectWithoutPropertiesLoose","_excluded","Provider","useTranslate","module","_useContext","useContext","t","useCallback","field"],"mappings":"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"}
|