sbx-crm-menu-ui 2.0.1-beta.9 → 2.0.2

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.
@@ -1,4 +1,6 @@
1
1
  import React from 'react';
2
2
  export default function Dropdown(props: {
3
3
  startNameWord: string;
4
+ name: string;
5
+ email: string;
4
6
  }): React.JSX.Element;
@@ -7,6 +7,8 @@ interface Props {
7
7
  name: string;
8
8
  email: string;
9
9
  };
10
+ openSideBar: boolean;
11
+ setOpenSideBar: React.Dispatch<React.SetStateAction<boolean>>;
10
12
  logoSrc?: string;
11
13
  onClickLogo?: () => void;
12
14
  }
@@ -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: 100px 10px;
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: 100px 20px;
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: 80px;
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: 40px;
124
- height: 40px;
125
- border: none;
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: 30px;
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: flex;
152
- flex-direction: column;
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
- min-width: 160px;
193
+ transform: translateX(-170px);
194
+ min-width: 230px;
160
195
  box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
161
- padding: 12px 16px;
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: 55px;
212
- height: 55px;
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: 30px;
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: 12px 16px;
402
+ padding-bottom: 10px;
268
403
  z-index: 1;
269
- min-width: 200px;
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
- .crm-class-dropdown-flag:hover .crm-class-dropdown-menu {
278
- display: block;
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 0;
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-20"
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("p", null, "Dropdown content here")));
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
- }, name, " "), React__default.createElement("span", null, email));
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("button", {
106
- className: "crm-class-dropdown-toggle",
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(reactFontawesome.FontAwesomeIcon, {
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$logoSrc = props.logoSrc) != null ? _props$logoSrc : 'https://via.placeholder.com/150',
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: '30px'
191
+ height: '40px'
141
192
  },
142
193
  className: props.onClickLogo ? 'crm-pointer' : '',
143
194
  alt: "",
144
- onClick: (_props$onClickLogo = props.onClickLogo) != null ? _props$onClickLogo : undefined
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-color-icon crm-class-mr-10'
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
- className: 'crm-class-sidebar'
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"), routes.map(function (route, index) {
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
- }))), React__default.createElement("div", {
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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"}
@@ -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-20"
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("p", null, "Dropdown content here")));
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
- }, name, " "), React.createElement("span", null, email));
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("button", {
103
- className: "crm-class-dropdown-toggle",
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(FontAwesomeIcon, {
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$logoSrc = props.logoSrc) != null ? _props$logoSrc : 'https://via.placeholder.com/150',
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: '30px'
188
+ height: '40px'
138
189
  },
139
190
  className: props.onClickLogo ? 'crm-pointer' : '',
140
191
  alt: "",
141
- onClick: (_props$onClickLogo = props.onClickLogo) != null ? _props$onClickLogo : undefined
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-color-icon crm-class-mr-10'
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
- className: 'crm-class-sidebar'
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"), routes.map(function (route, index) {
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
- }))), React.createElement("div", {
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
  };
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sbx-crm-menu-ui",
3
- "version": "2.0.1-beta.9",
3
+ "version": "2.0.2",
4
4
  "description": "Menu Created by SBX Company for CRM.",
5
5
  "author": "Frank Carpio",
6
6
  "license": "ISC",
@@ -9,7 +9,7 @@
9
9
  "module": "dist/index.modern.js",
10
10
  "source": "src/index.tsx",
11
11
  "engines": {
12
- "node": "18"
12
+ "node": ">=18"
13
13
  },
14
14
  "scripts": {
15
15
  "build": "microbundle-crl --no-compress --no-css-modules --format modern,cjs",