sevago-sso-fe 1.0.56 → 1.0.57

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.
Files changed (46) hide show
  1. package/dist/common/constant/apps.data.d.ts +19 -0
  2. package/dist/common/constant/hierarchical.constant.d.ts +8 -0
  3. package/dist/common/utils/index.d.ts +0 -2
  4. package/dist/common/utils/other/hierarchical.utils.d.ts +1 -0
  5. package/dist/components/app-grid/app-grid.component.d.ts +1 -3
  6. package/dist/components/elements/pagination/index.d.ts +1 -0
  7. package/dist/components/elements/pagination/pagination.element.d.ts +14 -0
  8. package/dist/components/elements/radio/index.d.ts +1 -0
  9. package/dist/components/elements/radio/radio-group.element.d.ts +16 -0
  10. package/dist/components/elements/switch/index.d.ts +2 -0
  11. package/dist/components/elements/switch/switch-content.element.d.ts +10 -0
  12. package/dist/components/elements/switch/switch.element.d.ts +7 -0
  13. package/dist/components/elements/tag/index.d.ts +2 -0
  14. package/dist/components/elements/tag/tag-on-click.element.d.ts +8 -0
  15. package/dist/components/elements/tag/tag.element.d.ts +18 -0
  16. package/dist/components/elements/text-field/index.d.ts +1 -0
  17. package/dist/components/elements/text-field/text-field-date.element.d.ts +0 -0
  18. package/dist/components/elements/text-field/text-field-label.element.d.ts +9 -0
  19. package/dist/components/elements/text-field/text-field-month-year.element.d.ts +0 -0
  20. package/dist/components/elements/text-field/text-field-number.element.d.ts +0 -0
  21. package/dist/components/elements/text-field/text-field-search-custom.element.d.ts +9 -0
  22. package/dist/components/elements/text-field/text-field-search.element.d.ts +9 -0
  23. package/dist/components/elements/text-field/text-field-select-search-object.element.d.ts +0 -0
  24. package/dist/components/elements/text-field/text-field-select-search.element.d.ts +0 -0
  25. package/dist/components/elements/text-field/text-field.element.d.ts +13 -0
  26. package/dist/components/elements/text-field/text-highlight.element.d.ts +3 -0
  27. package/dist/components/elements/tooltip/index.d.ts +2 -0
  28. package/dist/components/elements/tooltip/tooltip-on-click.element.d.ts +7 -0
  29. package/dist/components/elements/tooltip/tooltip-on-hover.element.d.ts +9 -0
  30. package/dist/components/elements/typography/typography-grid-info-row.component.d.ts +14 -0
  31. package/dist/components/elements/typography/typography-info-row.component.d.ts +11 -0
  32. package/dist/components/elements/typography/typography-info-user.component.d.ts +19 -0
  33. package/dist/components/elements/wrapper/index.d.ts +3 -0
  34. package/dist/components/elements/wrapper/wrapper-chart.element.d.ts +9 -0
  35. package/dist/components/elements/wrapper/wrapper-content.element.d.ts +18 -0
  36. package/dist/components/elements/wrapper/wrapper.element.d.ts +23 -0
  37. package/dist/components/sidebar/apps-sidebar.component.d.ts +2 -0
  38. package/dist/components/sidebar/system-monitor-sidebar.part.d.ts +2 -0
  39. package/dist/components/system-monitor/system-monitor.screen.d.ts +2 -0
  40. package/dist/index.cjs.js +159 -161
  41. package/dist/index.cjs.js.map +1 -1
  42. package/dist/index.esm.js +160 -162
  43. package/dist/index.esm.js.map +1 -1
  44. package/package.json +1 -1
  45. package/dist/common/utils/delay.utils.d.ts +0 -1
  46. package/dist/common/utils/string.utils.d.ts +0 -10
package/dist/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { styled as styled$3, Stack, TableCell, tableCellClasses, LinearProgress, linearProgressClasses, Typography, useTheme as useTheme$2, Skeleton, Box, IconButton, Fade, Icon, Tooltip, tooltipClasses, Avatar, Badge, Link, Tabs, Tab, CircularProgress, Button, FormControlLabel, Checkbox, Dialog, DialogTitle, DialogContent, DialogActions, Collapse, Radio } from "@mui/material";
2
+ import { styled as styled$3, Stack, TableCell, tableCellClasses, LinearProgress, linearProgressClasses, Typography, useTheme as useTheme$2, Skeleton, Box, IconButton, Fade, Icon, Tooltip, tooltipClasses, Avatar, Badge, Link, Tabs, Tab, CircularProgress, Button, FormControlLabel, Checkbox, Dialog, DialogTitle, DialogContent, DialogActions, Collapse, Radio, FormControl, InputLabel, RadioGroup } from "@mui/material";
3
3
  import * as React from "react";
4
4
  import React__default, { useState, createContext, useRef, useLayoutEffect, useEffect, useId, useContext, useInsertionEffect, useMemo, useCallback, Children, isValidElement, Fragment as Fragment$1, createElement, forwardRef, Component } from "react";
5
5
  import { unstable_createGetCssVar, createSpacing as createSpacing$1, useTheme as useTheme$1, Stack as Stack$1, Box as Box$1 } from "@mui/system";
@@ -71,6 +71,7 @@ const APP_GROUP_COLOR = {
71
71
  ]: "#EB6262"
72
72
  };
73
73
  const SSO = {
74
+ local: "http://localhost:6000",
74
75
  develop: "https://dev.account.sevago.local",
75
76
  staging: "https://sta.account.sevago.local",
76
77
  production: "https://account.sevago.com.vn"
@@ -79,9 +80,10 @@ const APP_OBJ = {
79
80
  // GREEN
80
81
  E_HIRING: {
81
82
  path: {
83
+ local: "http://localhost:6004/e-hiring",
82
84
  develop: "https://dev.admin.office.sevago.local/e-hiring",
83
85
  staging: "https://sta.admin.office.sevago.local/e-hiring",
84
- production: "https://admin.office.sevago.local/e-hiring"
86
+ production: "https://admin.office.sevago.com.vn/e-hiring"
85
87
  },
86
88
  icon: sevagoEHiringIcon,
87
89
  content: "Sevago - Tuyển dụng",
@@ -93,9 +95,10 @@ const APP_OBJ = {
93
95
  },
94
96
  HR: {
95
97
  path: {
98
+ local: "http://localhost:6004/hr",
96
99
  develop: "https://dev.admin.office.sevago.local/hr",
97
100
  staging: "https://sta.admin.office.sevago.local/hr",
98
- production: "https://admin.office.sevago.local/hr"
101
+ production: "https://admin.office.sevago.com.vn/hr"
99
102
  },
100
103
  icon: sevagoHrmIcon,
101
104
  content: "Sevago - Nhân sự",
@@ -107,9 +110,10 @@ const APP_OBJ = {
107
110
  },
108
111
  PAYROLL: {
109
112
  path: {
113
+ local: "http://localhost:6004/payroll",
110
114
  develop: "https://dev.admin.office.sevago.local/payroll",
111
115
  staging: "https://sta.admin.office.sevago.local/payroll",
112
- production: "https://admin.office.sevago.local/payroll"
116
+ production: "https://admin.office.sevago.com.vn/payroll"
113
117
  },
114
118
  icon: sevagoPayrollIcon,
115
119
  content: "Sevago - Lương",
@@ -121,9 +125,10 @@ const APP_OBJ = {
121
125
  },
122
126
  ORG: {
123
127
  path: {
128
+ local: "http://localhost:6004/org",
124
129
  develop: "https://dev.admin.office.sevago.local/org",
125
130
  staging: "https://sta.admin.office.sevago.local/org",
126
- production: "https://admin.office.sevago.local/org"
131
+ production: "https://admin.office.sevago.com.vn/org"
127
132
  },
128
133
  icon: sevagoChartIcon,
129
134
  content: "Sevago - Tổ chức",
@@ -135,9 +140,10 @@ const APP_OBJ = {
135
140
  },
136
141
  CHECKIN: {
137
142
  path: {
143
+ local: "http://localhost:6004/checkin",
138
144
  develop: "https://dev.admin.office.sevago.local/checkin",
139
145
  staging: "https://sta.admin.office.sevago.local/checkin",
140
- production: "https://admin.office.sevago.local/checkin"
146
+ production: "https://admin.office.sevago.com.vn/checkin"
141
147
  },
142
148
  icon: sevagoCheckinIcon,
143
149
  content: "Sevago - Chấm công",
@@ -150,9 +156,10 @@ const APP_OBJ = {
150
156
  // YELLOW
151
157
  CHAT: {
152
158
  path: {
159
+ local: "http://localhost:6004/chat",
153
160
  develop: "https://dev.admin.office.sevago.local/chat",
154
161
  staging: "https://sta.admin.office.sevago.local/chat",
155
- production: "https://admin.office.sevago.local/chat"
162
+ production: "https://admin.office.sevago.com.vn/chat"
156
163
  },
157
164
  // Chat
158
165
  icon: sevagoMessageIcon,
@@ -165,9 +172,10 @@ const APP_OBJ = {
165
172
  },
166
173
  TRAINING: {
167
174
  path: {
175
+ local: "http://localhost:6004/training",
168
176
  develop: "https://dev.admin.office.sevago.local/training",
169
177
  staging: "https://sta.admin.office.sevago.local/training",
170
- production: "https://admin.office.sevago.local/training"
178
+ production: "https://admin.office.sevago.com.vn/training"
171
179
  },
172
180
  // Đào tạo
173
181
  icon: sevagoTrainingIcon,
@@ -180,9 +188,10 @@ const APP_OBJ = {
180
188
  },
181
189
  FORM: {
182
190
  path: {
191
+ local: "http://localhost:6004/form",
183
192
  develop: "https://dev.admin.office.sevago.local/form",
184
193
  staging: "https://sta.admin.office.sevago.local/form",
185
- production: "https://admin.office.sevago.local/form"
194
+ production: "https://admin.office.sevago.com.vn/form"
186
195
  },
187
196
  // Mẫu
188
197
  icon: sevagoFormIcon,
@@ -195,9 +204,10 @@ const APP_OBJ = {
195
204
  },
196
205
  INSIDE: {
197
206
  path: {
207
+ local: "http://localhost:6004/inside",
198
208
  develop: "https://dev.admin.office.sevago.local/inside",
199
209
  staging: "https://sta.admin.office.sevago.local/inside",
200
- production: "https://admin.office.sevago.local/inside"
210
+ production: "https://admin.office.sevago.com.vn/inside"
201
211
  },
202
212
  // Truyền Thông và CSNV
203
213
  icon: sevagoInsideIcon,
@@ -210,9 +220,10 @@ const APP_OBJ = {
210
220
  },
211
221
  BOOKING: {
212
222
  path: {
223
+ local: "http://localhost:6004/booking",
213
224
  develop: "https://dev.admin.office.sevago.local/booking",
214
225
  staging: "https://sta.admin.office.sevago.local/booking",
215
- production: "https://admin.office.sevago.local/booking"
226
+ production: "https://admin.office.sevago.com.vn/booking"
216
227
  },
217
228
  icon: sevagoInsideIcon,
218
229
  content: "Sevago - Booking",
@@ -225,9 +236,10 @@ const APP_OBJ = {
225
236
  // BLUE
226
237
  PROJECT: {
227
238
  path: {
239
+ local: "http://localhost:6004/project",
228
240
  develop: "https://dev.admin.office.sevago.local/project",
229
241
  staging: "https://sta.admin.office.sevago.local/project",
230
- production: "https://admin.office.sevago.local/project"
242
+ production: "https://admin.office.sevago.com.vn/project"
231
243
  },
232
244
  icon: sevagoProjectIcon,
233
245
  content: "Sevago - Dự án",
@@ -239,9 +251,10 @@ const APP_OBJ = {
239
251
  },
240
252
  REQUEST: {
241
253
  path: {
254
+ local: "http://localhost:6004/request",
242
255
  develop: "https://dev.admin.office.sevago.local/request",
243
256
  staging: "https://sta.admin.office.sevago.local/request",
244
- production: "https://admin.office.sevago.local/request"
257
+ production: "https://admin.office.sevago.com.vn/request"
245
258
  },
246
259
  icon: sevagoRequestIcon,
247
260
  content: "Sevago - Đề xuất",
@@ -253,9 +266,10 @@ const APP_OBJ = {
253
266
  },
254
267
  TRACKING: {
255
268
  path: {
269
+ local: "http://localhost:6004/process",
256
270
  develop: "https://dev.admin.office.sevago.local/process",
257
271
  staging: "https://sta.admin.office.sevago.local/process",
258
- production: "https://admin.office.sevago.local/process"
272
+ production: "https://admin.office.sevago.com.vn/process"
259
273
  },
260
274
  //
261
275
  icon: sevagoIcon,
@@ -271,9 +285,10 @@ const APP_OBJ = {
271
285
  },
272
286
  PROCESS: {
273
287
  path: {
288
+ local: "http://localhost:6004/workflow",
274
289
  develop: "https://dev.admin.office.sevago.local/workflow",
275
290
  staging: "https://sta.admin.office.sevago.local/workflow",
276
- production: "https://admin.office.sevago.local/workflow"
291
+ production: "https://admin.office.sevago.com.vn/workflow"
277
292
  },
278
293
  // Quy trình
279
294
  icon: sevagoIcon,
@@ -287,6 +302,7 @@ const APP_OBJ = {
287
302
  // RED
288
303
  FORMULA_PRICE: {
289
304
  path: {
305
+ local: "http://localhost:6005",
290
306
  develop: "https://dev.formula-price.sevago.local",
291
307
  staging: "https://sta.formula-price.sevago.local",
292
308
  production: "https://formula-price.sevago.local"
@@ -301,9 +317,10 @@ const APP_OBJ = {
301
317
  },
302
318
  E_CATALOGUE: {
303
319
  path: {
320
+ local: "http://localhost:6002",
304
321
  develop: "https://dev.admin.e-catalogue.sevago.local",
305
322
  staging: "https://sta.admin.e-catalogue.sevago.local",
306
- production: "https://admin.e-catalogue.sevago.local"
323
+ production: "https://admin.e-catalogue.sevago.com.vn"
307
324
  },
308
325
  // E-Catalogue
309
326
  icon: sevagoIcon,
@@ -317,6 +334,7 @@ const APP_OBJ = {
317
334
  // PINK
318
335
  LANDING_PAGE: {
319
336
  path: {
337
+ local: "http://localhost:6006",
320
338
  develop: "https://dev.admin.landing-page.sevago.local",
321
339
  staging: "https://sta.admin.landing-page.sevago.local",
322
340
  production: "https://admin.landing-page.sevago.com.vn"
@@ -1409,54 +1427,6 @@ const getCurrentEnvironment = () => {
1409
1427
  if (hostname.includes("sta.")) return "staging";
1410
1428
  return "production";
1411
1429
  };
1412
- const throttle = (func, limit) => {
1413
- let lastFunc;
1414
- let lastRan;
1415
- return (...args) => {
1416
- if (!lastRan) {
1417
- func(...args);
1418
- lastRan = Date.now();
1419
- } else {
1420
- clearTimeout(lastFunc);
1421
- lastFunc = setTimeout(() => {
1422
- if (Date.now() - lastRan >= limit) {
1423
- func(...args);
1424
- lastRan = Date.now();
1425
- }
1426
- }, limit - (Date.now() - lastRan));
1427
- }
1428
- };
1429
- };
1430
- const stringToColor = (string) => {
1431
- let hash = 0;
1432
- let i;
1433
- for (i = 0; i < string.length; i += 1) {
1434
- hash = string.charCodeAt(i) + ((hash << 5) - hash);
1435
- }
1436
- let color2 = "#";
1437
- for (i = 0; i < 3; i += 1) {
1438
- const value = hash >> i * 8 & 255;
1439
- color2 += `00${value.toString(16)}`.slice(-2);
1440
- }
1441
- return color2;
1442
- };
1443
- const lightenColor = (color2, percentage) => {
1444
- const amt = Math.round(2.55 * percentage);
1445
- const R = parseInt(color2.substring(1, 3), 16) + amt;
1446
- const G = parseInt(color2.substring(3, 5), 16) + amt;
1447
- const B = parseInt(color2.substring(5, 7), 16) + amt;
1448
- return "#" + (16777216 + (R < 255 ? R < 0 ? 0 : R : 255) * 65536 + (G < 255 ? G < 0 ? 0 : G : 255) * 256 + (B < 255 ? B < 0 ? 0 : B : 255)).toString(16).slice(1);
1449
- };
1450
- const extractNumberAtStartString = (string) => {
1451
- const match = string.match(/^\d+(\.\d+)?/);
1452
- return match ? parseFloat(match[0]) : 0;
1453
- };
1454
- const stripHtml = (html) => {
1455
- const tempDiv = document.createElement("div");
1456
- tempDiv.innerHTML = html;
1457
- return tempDiv.textContent || tempDiv.innerText || "";
1458
- };
1459
- const getErrorMessage = (e) => e?.message ?? "Đã xảy ra lỗi không xác định!";
1460
1430
  function getDefaultExportFromCjs(x) {
1461
1431
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
1462
1432
  }
@@ -14662,12 +14632,11 @@ const AppGrid = ({
14662
14632
  rows = 3,
14663
14633
  iconSize = 80,
14664
14634
  iconRadius = 7,
14665
- iconShadow = `0 ${PADDING_GAP_ITEM_SMALL} ${PADDING_GAP_LAYOUT} ${BORDER_COLOR_CARD}`,
14666
14635
  gap: gap2 = PADDING_GAP_ITEM,
14667
14636
  titleVariant = "subtitle1",
14668
14637
  titleColor,
14669
14638
  showPagination = true,
14670
- env
14639
+ onClickApp
14671
14640
  }) => {
14672
14641
  const theme = useTheme();
14673
14642
  const pageSize = Math.max(1, columns * Math.max(1, rows));
@@ -14679,12 +14648,6 @@ const AppGrid = ({
14679
14648
  const start = page * pageSize;
14680
14649
  const end = start + pageSize;
14681
14650
  const visibleApps = totalPages > 1 ? apps.slice(start, end) : apps;
14682
- const getPath2 = (url) => {
14683
- if (url.startsWith("http")) {
14684
- return new URL(url).pathname;
14685
- }
14686
- return url.startsWith("/") ? url : `/${url}`;
14687
- };
14688
14651
  return /* @__PURE__ */ jsxs(Box, { sx: { position: "relative" }, children: [
14689
14652
  /* @__PURE__ */ jsx(
14690
14653
  Box,
@@ -14695,79 +14658,51 @@ const AppGrid = ({
14695
14658
  gap: gap2
14696
14659
  },
14697
14660
  children: visibleApps.map((app, index) => {
14698
- const appUrl = [
14699
- env,
14700
- Environment.PRODUCTION,
14701
- Environment.STAGING,
14702
- Environment.DEVELOP
14703
- ].map((e) => app.path?.[e]).find((url) => url) || "";
14704
- const isEnvValid = Object.values(Environment).includes(
14705
- env
14706
- );
14707
- const absoluteUrl = appUrl && typeof appUrl === "string" ? !isEnvValid ? `${window.location.origin}${getPath2(appUrl)}` : appUrl.startsWith("http") ? appUrl : `${window.location.origin}${getPath2(appUrl)}` : "#";
14708
- return /* @__PURE__ */ jsx(
14709
- "a",
14661
+ return /* @__PURE__ */ jsxs(
14662
+ MotionBox,
14710
14663
  {
14711
- href: absoluteUrl,
14712
- target: "_blank",
14713
- rel: "noopener noreferrer",
14714
- style: {
14715
- textDecoration: "none",
14716
- color: "inherit",
14717
- width: "100%",
14718
- display: "block"
14664
+ preset: "staggerItem",
14665
+ index,
14666
+ hover: true,
14667
+ sx: {
14668
+ cursor: "pointer",
14669
+ display: "flex",
14670
+ flex: 1,
14671
+ alignItems: "center",
14672
+ flexDirection: "column"
14719
14673
  },
14720
- children: /* @__PURE__ */ jsxs(
14721
- MotionBox,
14722
- {
14723
- preset: "staggerItem",
14724
- index,
14725
- hover: true,
14726
- sx: {
14727
- cursor: "pointer",
14728
- display: "flex",
14729
- flex: 1,
14730
- alignItems: "center",
14731
- flexDirection: "column"
14732
- },
14733
- children: [
14734
- /* @__PURE__ */ jsx(
14735
- Box,
14736
- {
14737
- sx: {
14738
- width: iconSize,
14739
- height: iconSize,
14740
- borderRadius: iconRadius,
14741
- mb: 1.5,
14742
- display: "flex",
14743
- alignItems: "center",
14744
- justifyContent: "center",
14745
- background: app.color,
14746
- boxShadow: appUrl === window.location.origin ? `0 0 0 1px ${theme.palette.primary.main}, ${iconShadow}` : iconShadow
14747
- },
14748
- children: typeof app.icon === "string" && app.icon && /* @__PURE__ */ jsx(
14749
- ImageElement,
14750
- {
14751
- sx: { width: iconSize * 0.56, height: iconSize * 0.56 },
14752
- url: app.icon,
14753
- sizeType: ImageSizeType.SQUARE
14754
- }
14755
- )
14756
- }
14757
- ),
14758
- /* @__PURE__ */ jsx(
14759
- Typography,
14674
+ onClick: () => onClickApp(app),
14675
+ children: [
14676
+ /* @__PURE__ */ jsx(
14677
+ StackRowAlignJustCenter,
14678
+ {
14679
+ sx: {
14680
+ width: iconSize,
14681
+ height: iconSize,
14682
+ borderRadius: iconRadius,
14683
+ mb: 1.5,
14684
+ background: app.color
14685
+ },
14686
+ children: /* @__PURE__ */ jsx(
14687
+ ImageElement,
14760
14688
  {
14761
- variant: titleVariant,
14762
- sx: { color: titleColor ?? theme.palette.common.white },
14763
- children: app.content
14689
+ sx: { width: iconSize * 0.56, height: iconSize * 0.56 },
14690
+ url: app.icon,
14691
+ sizeType: ImageSizeType.SQUARE
14764
14692
  }
14765
14693
  )
14766
- ]
14767
- }
14768
- )
14769
- },
14770
- app.content
14694
+ }
14695
+ ),
14696
+ /* @__PURE__ */ jsx(
14697
+ Typography,
14698
+ {
14699
+ variant: titleVariant,
14700
+ sx: { color: titleColor ?? theme.palette.common.white },
14701
+ children: app.content
14702
+ }
14703
+ )
14704
+ ]
14705
+ }
14771
14706
  );
14772
14707
  })
14773
14708
  }
@@ -16055,14 +15990,11 @@ const TimeAgoComponent = ({
16055
15990
  time: time2,
16056
15991
  hasText
16057
15992
  }) => {
16058
- function getLimitLineCss2(arg0) {
16059
- throw new Error("Function not implemented.");
16060
- }
16061
15993
  return /* @__PURE__ */ jsx(
16062
15994
  Typography,
16063
15995
  {
16064
15996
  variant: "caption",
16065
- sx: { ...getLimitLineCss2(), color: "text.disabled", lineHeight: 1.2 },
15997
+ sx: { ...getLimitLineCss(1), color: "text.disabled", lineHeight: 1.2 },
16066
15998
  children: (hasText ? "Cập nhật lúc " : "") + getTimeAgo(time2)
16067
15999
  }
16068
16000
  );
@@ -16994,21 +16926,90 @@ const RadioElement = ({
16994
16926
  }
16995
16927
  );
16996
16928
  };
16929
+ const RadioGroupElement = ({
16930
+ name,
16931
+ direction = "row",
16932
+ label,
16933
+ disabled,
16934
+ iconLabel = "event_list",
16935
+ defaultValue,
16936
+ value,
16937
+ onChange,
16938
+ children,
16939
+ required = false,
16940
+ sx = {}
16941
+ }) => {
16942
+ const change = (event) => {
16943
+ onChange && onChange({ target: { name, value: event.target.value || void 0 } });
16944
+ };
16945
+ return /* @__PURE__ */ jsxs(
16946
+ FormControl,
16947
+ {
16948
+ disabled,
16949
+ sx: { gap: PADDING_GAP_ITEM },
16950
+ onChange: change,
16951
+ children: [
16952
+ label && /* @__PURE__ */ jsx(
16953
+ InputLabel,
16954
+ {
16955
+ shrink: true,
16956
+ required,
16957
+ sx: {
16958
+ transform: "translate(0px , -9px) scale(0.75)",
16959
+ zIndex: 2,
16960
+ display: "flex"
16961
+ },
16962
+ children: /* @__PURE__ */ jsxs(StackLabel, { children: [
16963
+ /* @__PURE__ */ jsx(
16964
+ IconElement,
16965
+ {
16966
+ icon: iconLabel,
16967
+ sx: { fontSize: TEXT_FIELD.FONT_SIZE_LABEL }
16968
+ }
16969
+ ),
16970
+ label
16971
+ ] })
16972
+ }
16973
+ ),
16974
+ /* @__PURE__ */ jsx(
16975
+ RadioGroup,
16976
+ {
16977
+ name,
16978
+ defaultValue,
16979
+ value,
16980
+ sx: {
16981
+ flexDirection: direction,
16982
+ paddingTop: label ? "calc(8.5px + 1.5px)" : 0,
16983
+ // 8.5 lấy từ default theme không phải tự nhiên mà có
16984
+ gap: PADDING_GAP_LAYOUT,
16985
+ ...sx
16986
+ },
16987
+ children
16988
+ }
16989
+ )
16990
+ ]
16991
+ }
16992
+ );
16993
+ };
16997
16994
  const AppsSidebar = ({
16998
16995
  isOpen,
16999
16996
  onClose,
17000
16997
  position = "left",
17001
16998
  blacklist = [],
17002
- env
16999
+ env,
17000
+ onClickApp
17003
17001
  }) => {
17004
17002
  if (!isOpen) return null;
17005
17003
  const theme = useTheme();
17006
- const appsGroupObj = Object.values(APP_OBJ).reduce((r, e) => {
17007
- if (blacklist.includes(e.path[env])) return r;
17008
- if (r[e.group]) r[e.group].push(e);
17009
- else r[e.group] = [e];
17010
- return r;
17011
- }, {});
17004
+ const appsGroupObj = Object.values(APP_OBJ).reduce(
17005
+ (r, e) => {
17006
+ if (blacklist.includes(e.path[env])) return r;
17007
+ if (r[e.group]) r[e.group].push(e);
17008
+ else r[e.group] = [e];
17009
+ return r;
17010
+ },
17011
+ {}
17012
+ );
17012
17013
  return /* @__PURE__ */ jsxs(Fragment, { children: [
17013
17014
  /* @__PURE__ */ jsx(
17014
17015
  Box,
@@ -17103,7 +17104,7 @@ const AppsSidebar = ({
17103
17104
  captionVariant: "caption",
17104
17105
  titleColor: theme.palette.grey[800],
17105
17106
  captionColor: theme.palette.grey[600],
17106
- env: Environment.DEVELOP
17107
+ onClickApp
17107
17108
  }
17108
17109
  )
17109
17110
  ]
@@ -17115,7 +17116,7 @@ const AppsSidebar = ({
17115
17116
  )
17116
17117
  ] });
17117
17118
  };
17118
- const SystemMonitorSidebarPart = ({ position, blacklist, env }) => {
17119
+ const SystemMonitorSidebarPart = ({ position, blacklist, env, onClickApp }) => {
17119
17120
  const [open, setOpen] = useState(false);
17120
17121
  return /* @__PURE__ */ jsxs(Fragment, { children: [
17121
17122
  /* @__PURE__ */ jsx(
@@ -17133,14 +17134,16 @@ const SystemMonitorSidebarPart = ({ position, blacklist, env }) => {
17133
17134
  onClose: () => setOpen(false),
17134
17135
  position,
17135
17136
  blacklist,
17136
- env
17137
+ env,
17138
+ onClickApp
17137
17139
  }
17138
17140
  )
17139
17141
  ] });
17140
17142
  };
17141
17143
  const SystemMonitorScreen = ({
17142
17144
  blacklist,
17143
- env
17145
+ env,
17146
+ onClickApp
17144
17147
  }) => {
17145
17148
  const theme = useTheme();
17146
17149
  const [tab, setTab] = useState(AppGroup.ALL);
@@ -17207,7 +17210,7 @@ const SystemMonitorScreen = ({
17207
17210
  iconSize: 80,
17208
17211
  iconRadius: 7,
17209
17212
  gap: PADDING_GAP_TAB,
17210
- env
17213
+ onClickApp
17211
17214
  }
17212
17215
  ) }, tab)
17213
17216
  ]
@@ -17266,6 +17269,7 @@ export {
17266
17269
  OTHER,
17267
17270
  OrderType,
17268
17271
  RadioElement,
17272
+ RadioGroupElement,
17269
17273
  SIZE_EXTRA_LARGE,
17270
17274
  SSO,
17271
17275
  style_constant as STYLE,
@@ -17306,12 +17310,10 @@ export {
17306
17310
  checkNowYear,
17307
17311
  colorMap,
17308
17312
  dark$1 as dark,
17309
- extractNumberAtStartString,
17310
17313
  getCurrentEnvironment,
17311
17314
  getDate,
17312
17315
  getDateTime,
17313
17316
  getDayOffsetPx,
17314
- getErrorMessage,
17315
17317
  getLimitLineCss,
17316
17318
  getMonthRangeForYear,
17317
17319
  getTimeAgo,
@@ -17320,7 +17322,6 @@ export {
17320
17322
  isEmpty,
17321
17323
  isSameDateTime,
17322
17324
  light$1 as light,
17323
- lightenColor,
17324
17325
  phoneRegExp,
17325
17326
  sevagoChartIcon,
17326
17327
  sevagoCheckinIcon,
@@ -17334,9 +17335,6 @@ export {
17334
17335
  sevagoProjectIcon,
17335
17336
  sevagoRequestIcon,
17336
17337
  sevagoTrainingIcon,
17337
- stringToColor,
17338
- stripHtml,
17339
- throttle,
17340
17338
  truncateText
17341
17339
  };
17342
17340
  //# sourceMappingURL=index.esm.js.map