sevago-sso-fe 1.0.8 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -5,6 +5,7 @@ const toolkit = require("@reduxjs/toolkit");
5
5
  const reactRedux = require("react-redux");
6
6
  const React = require("react");
7
7
  const reactRouterDom = require("react-router-dom");
8
+ const jsxRuntime = require("react/jsx-runtime");
8
9
  const material = require("@mui/material");
9
10
  const system = require("@mui/system");
10
11
  const emStyled = require("@emotion/styled");
@@ -12805,8 +12806,10 @@ const truncateText = (text, maxLength = 27) => {
12805
12806
  return `${text.substring(0, maxLength)}...`;
12806
12807
  };
12807
12808
  const timeUtils = timeUtilsMethods;
12808
- const useApps = (tab) => {
12809
- const userType = reactRedux.useSelector((state) => state.account.user?.type);
12809
+ const useApps = (tab = AppCategory.ALL) => {
12810
+ const userType = reactRedux.useSelector(
12811
+ (state) => state.account.user?.type
12812
+ );
12810
12813
  const listApp = React.useMemo(() => {
12811
12814
  let filteredApps = SYSTEM_MODULES.filter((app2) => {
12812
12815
  return app2.allowUserTypes.includes(userType);
@@ -12823,8 +12826,21 @@ const useIsSystemMonitor = () => {
12823
12826
  const normalize = (p) => p.replace(/\/+$/, "");
12824
12827
  return normalize(location2.pathname) === normalize(PAGE.DASHBOARD.path);
12825
12828
  };
12829
+ const useAllApps = () => {
12830
+ const userType = reactRedux.useSelector(
12831
+ (state) => state.account.user?.type
12832
+ );
12833
+ const allApps = React.useMemo(() => {
12834
+ return SYSTEM_MODULES.filter((app2) => {
12835
+ return app2.allowUserTypes.includes(userType);
12836
+ });
12837
+ }, [userType]);
12838
+ return allApps;
12839
+ };
12826
12840
  const useActiveSidebar = () => {
12827
- const { user, current_access } = reactRedux.useSelector((state) => state.account);
12841
+ const { user, current_access } = reactRedux.useSelector(
12842
+ (state) => state.account
12843
+ );
12828
12844
  const activeSidebar = React.useMemo(() => {
12829
12845
  return SYSTEM_MODULES.find(
12830
12846
  (it) => it.key === current_access && user && (it.allowUserTypes ? it.allowUserTypes.includes(user?.type) : true)
@@ -12832,323 +12848,18 @@ const useActiveSidebar = () => {
12832
12848
  }, [current_access, user]);
12833
12849
  return activeSidebar;
12834
12850
  };
12835
- var jsxRuntime = { exports: {} };
12836
- var reactJsxRuntime_production = {};
12837
- /**
12838
- * @license React
12839
- * react-jsx-runtime.production.js
12840
- *
12841
- * Copyright (c) Meta Platforms, Inc. and affiliates.
12842
- *
12843
- * This source code is licensed under the MIT license found in the
12844
- * LICENSE file in the root directory of this source tree.
12845
- */
12846
- var hasRequiredReactJsxRuntime_production;
12847
- function requireReactJsxRuntime_production() {
12848
- if (hasRequiredReactJsxRuntime_production) return reactJsxRuntime_production;
12849
- hasRequiredReactJsxRuntime_production = 1;
12850
- var REACT_ELEMENT_TYPE2 = Symbol.for("react.transitional.element"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
12851
- function jsxProd(type, config, maybeKey) {
12852
- var key = null;
12853
- void 0 !== maybeKey && (key = "" + maybeKey);
12854
- void 0 !== config.key && (key = "" + config.key);
12855
- if ("key" in config) {
12856
- maybeKey = {};
12857
- for (var propName in config)
12858
- "key" !== propName && (maybeKey[propName] = config[propName]);
12859
- } else maybeKey = config;
12860
- config = maybeKey.ref;
12861
- return {
12862
- $$typeof: REACT_ELEMENT_TYPE2,
12863
- type,
12864
- key,
12865
- ref: void 0 !== config ? config : null,
12866
- props: maybeKey
12867
- };
12868
- }
12869
- reactJsxRuntime_production.Fragment = REACT_FRAGMENT_TYPE;
12870
- reactJsxRuntime_production.jsx = jsxProd;
12871
- reactJsxRuntime_production.jsxs = jsxProd;
12872
- return reactJsxRuntime_production;
12873
- }
12874
- var reactJsxRuntime_development = {};
12875
- /**
12876
- * @license React
12877
- * react-jsx-runtime.development.js
12878
- *
12879
- * Copyright (c) Meta Platforms, Inc. and affiliates.
12880
- *
12881
- * This source code is licensed under the MIT license found in the
12882
- * LICENSE file in the root directory of this source tree.
12883
- */
12884
- var hasRequiredReactJsxRuntime_development;
12885
- function requireReactJsxRuntime_development() {
12886
- if (hasRequiredReactJsxRuntime_development) return reactJsxRuntime_development;
12887
- hasRequiredReactJsxRuntime_development = 1;
12888
- "production" !== process.env.NODE_ENV && (function() {
12889
- function getComponentNameFromType(type) {
12890
- if (null == type) return null;
12891
- if ("function" === typeof type)
12892
- return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;
12893
- if ("string" === typeof type) return type;
12894
- switch (type) {
12895
- case REACT_FRAGMENT_TYPE:
12896
- return "Fragment";
12897
- case REACT_PROFILER_TYPE:
12898
- return "Profiler";
12899
- case REACT_STRICT_MODE_TYPE:
12900
- return "StrictMode";
12901
- case REACT_SUSPENSE_TYPE:
12902
- return "Suspense";
12903
- case REACT_SUSPENSE_LIST_TYPE:
12904
- return "SuspenseList";
12905
- case REACT_ACTIVITY_TYPE:
12906
- return "Activity";
12907
- }
12908
- if ("object" === typeof type)
12909
- switch ("number" === typeof type.tag && console.error(
12910
- "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
12911
- ), type.$$typeof) {
12912
- case REACT_PORTAL_TYPE:
12913
- return "Portal";
12914
- case REACT_CONTEXT_TYPE:
12915
- return type.displayName || "Context";
12916
- case REACT_CONSUMER_TYPE:
12917
- return (type._context.displayName || "Context") + ".Consumer";
12918
- case REACT_FORWARD_REF_TYPE:
12919
- var innerType = type.render;
12920
- type = type.displayName;
12921
- type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef");
12922
- return type;
12923
- case REACT_MEMO_TYPE:
12924
- return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo";
12925
- case REACT_LAZY_TYPE:
12926
- innerType = type._payload;
12927
- type = type._init;
12928
- try {
12929
- return getComponentNameFromType(type(innerType));
12930
- } catch (x) {
12931
- }
12932
- }
12933
- return null;
12934
- }
12935
- function testStringCoercion(value2) {
12936
- return "" + value2;
12937
- }
12938
- function checkKeyStringCoercion(value2) {
12939
- try {
12940
- testStringCoercion(value2);
12941
- var JSCompiler_inline_result = false;
12942
- } catch (e) {
12943
- JSCompiler_inline_result = true;
12944
- }
12945
- if (JSCompiler_inline_result) {
12946
- JSCompiler_inline_result = console;
12947
- var JSCompiler_temp_const = JSCompiler_inline_result.error;
12948
- var JSCompiler_inline_result$jscomp$0 = "function" === typeof Symbol && Symbol.toStringTag && value2[Symbol.toStringTag] || value2.constructor.name || "Object";
12949
- JSCompiler_temp_const.call(
12950
- JSCompiler_inline_result,
12951
- "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
12952
- JSCompiler_inline_result$jscomp$0
12953
- );
12954
- return testStringCoercion(value2);
12955
- }
12956
- }
12957
- function getTaskName(type) {
12958
- if (type === REACT_FRAGMENT_TYPE) return "<>";
12959
- if ("object" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE)
12960
- return "<...>";
12961
- try {
12962
- var name2 = getComponentNameFromType(type);
12963
- return name2 ? "<" + name2 + ">" : "<...>";
12964
- } catch (x) {
12965
- return "<...>";
12966
- }
12967
- }
12968
- function getOwner() {
12969
- var dispatcher = ReactSharedInternals.A;
12970
- return null === dispatcher ? null : dispatcher.getOwner();
12971
- }
12972
- function UnknownOwner() {
12973
- return Error("react-stack-top-frame");
12974
- }
12975
- function hasValidKey(config) {
12976
- if (hasOwnProperty2.call(config, "key")) {
12977
- var getter = Object.getOwnPropertyDescriptor(config, "key").get;
12978
- if (getter && getter.isReactWarning) return false;
12979
- }
12980
- return void 0 !== config.key;
12981
- }
12982
- function defineKeyPropWarningGetter(props, displayName) {
12983
- function warnAboutAccessingKey() {
12984
- specialPropKeyWarningShown || (specialPropKeyWarningShown = true, console.error(
12985
- "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
12986
- displayName
12987
- ));
12988
- }
12989
- warnAboutAccessingKey.isReactWarning = true;
12990
- Object.defineProperty(props, "key", {
12991
- get: warnAboutAccessingKey,
12992
- configurable: true
12993
- });
12994
- }
12995
- function elementRefGetterWithDeprecationWarning() {
12996
- var componentName = getComponentNameFromType(this.type);
12997
- didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = true, console.error(
12998
- "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
12999
- ));
13000
- componentName = this.props.ref;
13001
- return void 0 !== componentName ? componentName : null;
13002
- }
13003
- function ReactElement(type, key, props, owner, debugStack, debugTask) {
13004
- var refProp = props.ref;
13005
- type = {
13006
- $$typeof: REACT_ELEMENT_TYPE2,
13007
- type,
13008
- key,
13009
- props,
13010
- _owner: owner
13011
- };
13012
- null !== (void 0 !== refProp ? refProp : null) ? Object.defineProperty(type, "ref", {
13013
- enumerable: false,
13014
- get: elementRefGetterWithDeprecationWarning
13015
- }) : Object.defineProperty(type, "ref", { enumerable: false, value: null });
13016
- type._store = {};
13017
- Object.defineProperty(type._store, "validated", {
13018
- configurable: false,
13019
- enumerable: false,
13020
- writable: true,
13021
- value: 0
13022
- });
13023
- Object.defineProperty(type, "_debugInfo", {
13024
- configurable: false,
13025
- enumerable: false,
13026
- writable: true,
13027
- value: null
13028
- });
13029
- Object.defineProperty(type, "_debugStack", {
13030
- configurable: false,
13031
- enumerable: false,
13032
- writable: true,
13033
- value: debugStack
13034
- });
13035
- Object.defineProperty(type, "_debugTask", {
13036
- configurable: false,
13037
- enumerable: false,
13038
- writable: true,
13039
- value: debugTask
13040
- });
13041
- Object.freeze && (Object.freeze(type.props), Object.freeze(type));
13042
- return type;
13043
- }
13044
- function jsxDEVImpl(type, config, maybeKey, isStaticChildren, debugStack, debugTask) {
13045
- var children = config.children;
13046
- if (void 0 !== children)
13047
- if (isStaticChildren)
13048
- if (isArrayImpl(children)) {
13049
- for (isStaticChildren = 0; isStaticChildren < children.length; isStaticChildren++)
13050
- validateChildKeys(children[isStaticChildren]);
13051
- Object.freeze && Object.freeze(children);
13052
- } else
13053
- console.error(
13054
- "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
13055
- );
13056
- else validateChildKeys(children);
13057
- if (hasOwnProperty2.call(config, "key")) {
13058
- children = getComponentNameFromType(type);
13059
- var keys2 = Object.keys(config).filter(function(k) {
13060
- return "key" !== k;
13061
- });
13062
- isStaticChildren = 0 < keys2.length ? "{key: someKey, " + keys2.join(": ..., ") + ": ...}" : "{key: someKey}";
13063
- didWarnAboutKeySpread[children + isStaticChildren] || (keys2 = 0 < keys2.length ? "{" + keys2.join(": ..., ") + ": ...}" : "{}", console.error(
13064
- 'A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',
13065
- isStaticChildren,
13066
- children,
13067
- keys2,
13068
- children
13069
- ), didWarnAboutKeySpread[children + isStaticChildren] = true);
13070
- }
13071
- children = null;
13072
- void 0 !== maybeKey && (checkKeyStringCoercion(maybeKey), children = "" + maybeKey);
13073
- hasValidKey(config) && (checkKeyStringCoercion(config.key), children = "" + config.key);
13074
- if ("key" in config) {
13075
- maybeKey = {};
13076
- for (var propName in config)
13077
- "key" !== propName && (maybeKey[propName] = config[propName]);
13078
- } else maybeKey = config;
13079
- children && defineKeyPropWarningGetter(
13080
- maybeKey,
13081
- "function" === typeof type ? type.displayName || type.name || "Unknown" : type
13082
- );
13083
- return ReactElement(
13084
- type,
13085
- children,
13086
- maybeKey,
13087
- getOwner(),
13088
- debugStack,
13089
- debugTask
13090
- );
13091
- }
13092
- function validateChildKeys(node) {
13093
- isValidElement(node) ? node._store && (node._store.validated = 1) : "object" === typeof node && null !== node && node.$$typeof === REACT_LAZY_TYPE && ("fulfilled" === node._payload.status ? isValidElement(node._payload.value) && node._payload.value._store && (node._payload.value._store.validated = 1) : node._store && (node._store.validated = 1));
13094
- }
13095
- function isValidElement(object2) {
13096
- return "object" === typeof object2 && null !== object2 && object2.$$typeof === REACT_ELEMENT_TYPE2;
13097
- }
13098
- var React$1 = React, REACT_ELEMENT_TYPE2 = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), ReactSharedInternals = React$1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, hasOwnProperty2 = Object.prototype.hasOwnProperty, isArrayImpl = Array.isArray, createTask = console.createTask ? console.createTask : function() {
13099
- return null;
13100
- };
13101
- React$1 = {
13102
- react_stack_bottom_frame: function(callStackForError) {
13103
- return callStackForError();
13104
- }
13105
- };
13106
- var specialPropKeyWarningShown;
13107
- var didWarnAboutElementRef = {};
13108
- var unknownOwnerDebugStack = React$1.react_stack_bottom_frame.bind(
13109
- React$1,
13110
- UnknownOwner
13111
- )();
13112
- var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
13113
- var didWarnAboutKeySpread = {};
13114
- reactJsxRuntime_development.Fragment = REACT_FRAGMENT_TYPE;
13115
- reactJsxRuntime_development.jsx = function(type, config, maybeKey) {
13116
- var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
13117
- return jsxDEVImpl(
13118
- type,
13119
- config,
13120
- maybeKey,
13121
- false,
13122
- trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
13123
- trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
13124
- );
13125
- };
13126
- reactJsxRuntime_development.jsxs = function(type, config, maybeKey) {
13127
- var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
13128
- return jsxDEVImpl(
13129
- type,
13130
- config,
13131
- maybeKey,
13132
- true,
13133
- trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
13134
- trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
13135
- );
13136
- };
13137
- })();
13138
- return reactJsxRuntime_development;
13139
- }
13140
- var hasRequiredJsxRuntime;
13141
- function requireJsxRuntime() {
13142
- if (hasRequiredJsxRuntime) return jsxRuntime.exports;
13143
- hasRequiredJsxRuntime = 1;
13144
- if (process.env.NODE_ENV === "production") {
13145
- jsxRuntime.exports = requireReactJsxRuntime_production();
13146
- } else {
13147
- jsxRuntime.exports = requireReactJsxRuntime_development();
13148
- }
13149
- return jsxRuntime.exports;
13150
- }
13151
- var jsxRuntimeExports = requireJsxRuntime();
12851
+ const useSidebarState = () => {
12852
+ const [isSidebarOpen, setIsSidebarOpen] = React.useState(false);
12853
+ const openSidebar = () => setIsSidebarOpen(true);
12854
+ const closeSidebar = () => setIsSidebarOpen(false);
12855
+ const toggleSidebar = () => setIsSidebarOpen((prev) => !prev);
12856
+ return {
12857
+ isSidebarOpen,
12858
+ openSidebar,
12859
+ closeSidebar,
12860
+ toggleSidebar
12861
+ };
12862
+ };
13152
12863
  var propTypes = { exports: {} };
13153
12864
  var reactIs$2 = { exports: {} };
13154
12865
  var reactIs_production_min$1 = {};
@@ -18227,7 +17938,7 @@ const useVersionCheck = (options) => {
18227
17938
  }, [options?.interval]);
18228
17939
  };
18229
17940
  const AuthLayout = ({ children }) => {
18230
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
17941
+ return /* @__PURE__ */ jsxRuntime.jsx(
18231
17942
  material.Stack,
18232
17943
  {
18233
17944
  sx: {
@@ -18379,7 +18090,7 @@ var StatusAvatar = /* @__PURE__ */ ((StatusAvatar2) => {
18379
18090
  return StatusAvatar2;
18380
18091
  })(StatusAvatar || {});
18381
18092
  const ImageWrapper = ({ isWrap = false, children }) => {
18382
- return isWrap ? /* @__PURE__ */ jsxRuntimeExports.jsx(StackRow, { alignItems: "center", className: "jsdsdj", children }) : /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children });
18093
+ return isWrap ? /* @__PURE__ */ jsxRuntime.jsx(StackRow, { alignItems: "center", className: "jsdsdj", children }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
18383
18094
  };
18384
18095
  const ImageElement = ({
18385
18096
  url: url2,
@@ -18395,8 +18106,8 @@ const ImageElement = ({
18395
18106
  const [loaded, setLoaded] = React.useState(false);
18396
18107
  if (onClick) sx = { ...sx, cursor: "pointer" };
18397
18108
  const borderRadius2 = sizeType === ImageSizeType.CIRCLE ? "50%" : sizeType === ImageSizeType.SQUARE ? STYLE.BORDER_RADIUS_ELEMENT_SMALL : 0;
18398
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(ImageWrapper, { isWrap, children: [
18399
- !loaded && /* @__PURE__ */ jsxRuntimeExports.jsx(
18109
+ return /* @__PURE__ */ jsxRuntime.jsxs(ImageWrapper, { isWrap, children: [
18110
+ !loaded && /* @__PURE__ */ jsxRuntime.jsx(
18400
18111
  material.Skeleton,
18401
18112
  {
18402
18113
  variant: "rectangular",
@@ -18406,7 +18117,7 @@ const ImageElement = ({
18406
18117
  }
18407
18118
  }
18408
18119
  ),
18409
- /* @__PURE__ */ jsxRuntimeExports.jsx(
18120
+ /* @__PURE__ */ jsxRuntime.jsx(
18410
18121
  material.Box,
18411
18122
  {
18412
18123
  ...rest,
@@ -18437,7 +18148,7 @@ const LogoComponent = ({
18437
18148
  }) => {
18438
18149
  const navigate = reactRouterDom.useNavigate();
18439
18150
  const toHome = () => navigate(PAGE.DASHBOARD.path);
18440
- return /* @__PURE__ */ jsxRuntimeExports.jsx(material.Box, { onClick: toHome, sx: { cursor: "pointer", height: height2, ...sx }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
18151
+ return /* @__PURE__ */ jsxRuntime.jsx(material.Box, { onClick: toHome, sx: { cursor: "pointer", height: height2, ...sx }, children: /* @__PURE__ */ jsxRuntime.jsx(
18441
18152
  ImageElement,
18442
18153
  {
18443
18154
  url: url2,
@@ -18473,7 +18184,7 @@ const IconElement = ({
18473
18184
  },
18474
18185
  ...sx
18475
18186
  };
18476
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
18187
+ return /* @__PURE__ */ jsxRuntime.jsx(
18477
18188
  material.Icon,
18478
18189
  {
18479
18190
  onClick,
@@ -18490,7 +18201,7 @@ const IconElement = ({
18490
18201
  }
18491
18202
  );
18492
18203
  };
18493
- const ArrowTooltip = emStyled(({ className, ...props }) => /* @__PURE__ */ jsxRuntimeExports.jsx(material.Tooltip, { ...props, arrow: true, classes: { popper: className } }))(() => ({
18204
+ const ArrowTooltip = emStyled(({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(material.Tooltip, { ...props, arrow: true, classes: { popper: className } }))(() => ({
18494
18205
  [`& .${material.tooltipClasses.arrow}`]: {
18495
18206
  color: "white"
18496
18207
  }
@@ -18503,7 +18214,7 @@ const AvatarElement = ({
18503
18214
  ...rest
18504
18215
  }) => {
18505
18216
  if (tooltipContent) {
18506
- return /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowTooltip, { title: tooltipContent, arrow: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
18217
+ return /* @__PURE__ */ jsxRuntime.jsx(ArrowTooltip, { title: tooltipContent, arrow: true, children: /* @__PURE__ */ jsxRuntime.jsx(
18507
18218
  material.Avatar,
18508
18219
  {
18509
18220
  ...rest,
@@ -18512,13 +18223,13 @@ const AvatarElement = ({
18512
18223
  }
18513
18224
  ) });
18514
18225
  }
18515
- return /* @__PURE__ */ jsxRuntimeExports.jsx(material.Avatar, { ...rest, src: url2 || "", sx: { ...MAP_SIZE[size], bgcolor: "primary.main", ...sx, cursor: "pointer" } });
18226
+ return /* @__PURE__ */ jsxRuntime.jsx(material.Avatar, { ...rest, src: url2 || "", sx: { ...MAP_SIZE[size], bgcolor: "primary.main", ...sx, cursor: "pointer" } });
18516
18227
  };
18517
18228
  const TimeAgoComponent = ({
18518
18229
  time: time2,
18519
18230
  hasText
18520
18231
  }) => {
18521
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
18232
+ return /* @__PURE__ */ jsxRuntime.jsx(
18522
18233
  material.Typography,
18523
18234
  {
18524
18235
  variant: "caption",
@@ -18528,7 +18239,7 @@ const TimeAgoComponent = ({
18528
18239
  );
18529
18240
  };
18530
18241
  const TimeAgoContentComponent = ({ time: time2, content, height: height2 = STYLE.HEIGHT_IMAGE_DEFAULT }) => {
18531
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
18242
+ return /* @__PURE__ */ jsxRuntime.jsxs(
18532
18243
  system.Stack,
18533
18244
  {
18534
18245
  sx: {
@@ -18538,7 +18249,7 @@ const TimeAgoContentComponent = ({ time: time2, content, height: height2 = STYLE
18538
18249
  alignItems: "flex-start"
18539
18250
  },
18540
18251
  children: [
18541
- /* @__PURE__ */ jsxRuntimeExports.jsx(
18252
+ /* @__PURE__ */ jsxRuntime.jsx(
18542
18253
  material.Typography,
18543
18254
  {
18544
18255
  sx: {
@@ -18547,7 +18258,7 @@ const TimeAgoContentComponent = ({ time: time2, content, height: height2 = STYLE
18547
18258
  children: content
18548
18259
  }
18549
18260
  ),
18550
- /* @__PURE__ */ jsxRuntimeExports.jsx(TimeAgoComponent, { time: time2 })
18261
+ /* @__PURE__ */ jsxRuntime.jsx(TimeAgoComponent, { time: time2 })
18551
18262
  ]
18552
18263
  }
18553
18264
  );
@@ -18558,9 +18269,9 @@ const ImageContentTimeComponent = ({
18558
18269
  time: time2,
18559
18270
  sizeType = "medium"
18560
18271
  }) => {
18561
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(StackRow, { alignItems: "center", children: [
18562
- /* @__PURE__ */ jsxRuntimeExports.jsx(AvatarElement, { url: url2, size: sizeType }),
18563
- /* @__PURE__ */ jsxRuntimeExports.jsx(TimeAgoContentComponent, { content, time: time2 })
18272
+ return /* @__PURE__ */ jsxRuntime.jsxs(StackRow, { alignItems: "center", children: [
18273
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarElement, { url: url2, size: sizeType }),
18274
+ /* @__PURE__ */ jsxRuntime.jsx(TimeAgoContentComponent, { content, time: time2 })
18564
18275
  ] });
18565
18276
  };
18566
18277
  const TooltipOnClickElement = ({
@@ -18575,7 +18286,7 @@ const TooltipOnClickElement = ({
18575
18286
  }) => {
18576
18287
  return (
18577
18288
  // Chỗ này có thể là bug, onClickAway apply ngay cả khi component chưa được render
18578
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.ClickAwayListener, { onClickAway, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
18289
+ /* @__PURE__ */ jsxRuntime.jsx(material.ClickAwayListener, { onClickAway, children: /* @__PURE__ */ jsxRuntime.jsx(
18579
18290
  material.Tooltip,
18580
18291
  {
18581
18292
  PopperProps: { disablePortal: true },
@@ -18588,13 +18299,13 @@ const TooltipOnClickElement = ({
18588
18299
  placement,
18589
18300
  title: content,
18590
18301
  ...rest,
18591
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children })
18302
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { children })
18592
18303
  }
18593
18304
  ) })
18594
18305
  );
18595
18306
  };
18596
18307
  const EmptyComponent = ({}) => {
18597
- return /* @__PURE__ */ jsxRuntimeExports.jsx(material.Fade, { in: true, timeout: STYLE.ANIMATION_TIME, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
18308
+ return /* @__PURE__ */ jsxRuntime.jsx(material.Fade, { in: true, timeout: STYLE.ANIMATION_TIME, children: /* @__PURE__ */ jsxRuntime.jsx(
18598
18309
  material.Stack,
18599
18310
  {
18600
18311
  direction: "column",
@@ -18605,7 +18316,7 @@ const EmptyComponent = ({}) => {
18605
18316
  justifyContent: "center",
18606
18317
  padding: STYLE.PADDING_GAP_ITEM
18607
18318
  },
18608
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(material.Box, { component: "img", sx: { width: 70 }, src: "/images/empty.svg" })
18319
+ children: /* @__PURE__ */ jsxRuntime.jsx(material.Box, { component: "img", sx: { width: 70 }, src: "/images/empty.svg" })
18609
18320
  }
18610
18321
  ) });
18611
18322
  };
@@ -18807,7 +18518,7 @@ const CircularProgress = /* @__PURE__ */ React__namespace.forwardRef(function Ci
18807
18518
  circleStyle.strokeDashoffset = `${((100 - value2) / 100 * circumference).toFixed(3)}px`;
18808
18519
  rootStyle.transform = "rotate(-90deg)";
18809
18520
  }
18810
- return /* @__PURE__ */ jsxRuntimeExports.jsx(CircularProgressRoot, {
18521
+ return /* @__PURE__ */ jsxRuntime.jsx(CircularProgressRoot, {
18811
18522
  className: clsx(classes.root, className),
18812
18523
  style: {
18813
18524
  width: size,
@@ -18820,11 +18531,11 @@ const CircularProgress = /* @__PURE__ */ React__namespace.forwardRef(function Ci
18820
18531
  role: "progressbar",
18821
18532
  ...rootProps,
18822
18533
  ...other,
18823
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs(CircularProgressSVG, {
18534
+ children: /* @__PURE__ */ jsxRuntime.jsxs(CircularProgressSVG, {
18824
18535
  className: classes.svg,
18825
18536
  ownerState,
18826
18537
  viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,
18827
- children: [enableTrackSlot ? /* @__PURE__ */ jsxRuntimeExports.jsx(CircularProgressTrack, {
18538
+ children: [enableTrackSlot ? /* @__PURE__ */ jsxRuntime.jsx(CircularProgressTrack, {
18828
18539
  className: classes.track,
18829
18540
  ownerState,
18830
18541
  cx: SIZE,
@@ -18833,7 +18544,7 @@ const CircularProgress = /* @__PURE__ */ React__namespace.forwardRef(function Ci
18833
18544
  fill: "none",
18834
18545
  strokeWidth: thickness,
18835
18546
  "aria-hidden": "true"
18836
- }) : null, /* @__PURE__ */ jsxRuntimeExports.jsx(CircularProgressCircle, {
18547
+ }) : null, /* @__PURE__ */ jsxRuntime.jsx(CircularProgressCircle, {
18837
18548
  className: classes.circle,
18838
18549
  style: circleStyle,
18839
18550
  ownerState,
@@ -18917,7 +18628,7 @@ process.env.NODE_ENV !== "production" ? CircularProgress.propTypes = {
18917
18628
  variant: PropTypes.oneOf(["determinate", "indeterminate"])
18918
18629
  } : void 0;
18919
18630
  const LoadingComponent = ({ color: color2, size = "medium", sx = {} }) => {
18920
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
18631
+ return /* @__PURE__ */ jsxRuntime.jsx(
18921
18632
  material.Stack,
18922
18633
  {
18923
18634
  sx: {
@@ -18926,7 +18637,7 @@ const LoadingComponent = ({ color: color2, size = "medium", sx = {} }) => {
18926
18637
  alignItems: "center",
18927
18638
  justifyContent: "center"
18928
18639
  },
18929
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(CircularProgress, { size: STYLE.FONT_SIZE_LOADING[size], sx: { color: color2 } })
18640
+ children: /* @__PURE__ */ jsxRuntime.jsx(CircularProgress, { size: STYLE.FONT_SIZE_LOADING[size], sx: { color: color2 } })
18930
18641
  }
18931
18642
  );
18932
18643
  };
@@ -18978,13 +18689,13 @@ const BellComponent = ({}) => {
18978
18689
  showSnackbar({ message: getErrorMessage(error), type: SnackbarType.ERROR });
18979
18690
  }
18980
18691
  };
18981
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
18692
+ return /* @__PURE__ */ jsxRuntime.jsx(
18982
18693
  TooltipOnClickElement,
18983
18694
  {
18984
18695
  open,
18985
18696
  onClickAway: () => setOpen(false),
18986
18697
  placement: "bottom-end",
18987
- content: /* @__PURE__ */ jsxRuntimeExports.jsxs(
18698
+ content: /* @__PURE__ */ jsxRuntime.jsxs(
18988
18699
  material.List,
18989
18700
  {
18990
18701
  sx: {
@@ -18997,7 +18708,7 @@ const BellComponent = ({}) => {
18997
18708
  width: "300px"
18998
18709
  },
18999
18710
  children: [
19000
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
18711
+ /* @__PURE__ */ jsxRuntime.jsxs(
19001
18712
  material.ListItem,
19002
18713
  {
19003
18714
  sx: {
@@ -19012,9 +18723,9 @@ const BellComponent = ({}) => {
19012
18723
  zIndex: 1
19013
18724
  },
19014
18725
  children: [
19015
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { variant: "subtitle1", children: "Thông báo" }),
19016
- /* @__PURE__ */ jsxRuntimeExports.jsxs(StackRow, { children: [
19017
- /* @__PURE__ */ jsxRuntimeExports.jsx(
18726
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "subtitle1", children: "Thông báo" }),
18727
+ /* @__PURE__ */ jsxRuntime.jsxs(StackRow, { children: [
18728
+ /* @__PURE__ */ jsxRuntime.jsx(
19018
18729
  IconElement,
19019
18730
  {
19020
18731
  sx: { cursor: "pointer" },
@@ -19032,7 +18743,7 @@ const BellComponent = ({}) => {
19032
18743
  }
19033
18744
  }
19034
18745
  ),
19035
- /* @__PURE__ */ jsxRuntimeExports.jsx(
18746
+ /* @__PURE__ */ jsxRuntime.jsx(
19036
18747
  IconElement,
19037
18748
  {
19038
18749
  icon: "settings",
@@ -19045,7 +18756,7 @@ const BellComponent = ({}) => {
19045
18756
  ]
19046
18757
  }
19047
18758
  ),
19048
- loading ? /* @__PURE__ */ jsxRuntimeExports.jsx(StackRowAlignCenter, { sx: { height: 50 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(LoadingComponent, {}) }) : list.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx(EmptyComponent, {}) : list.map((notification) => /* @__PURE__ */ jsxRuntimeExports.jsx(
18759
+ loading ? /* @__PURE__ */ jsxRuntime.jsx(StackRowAlignCenter, { sx: { height: 50 }, children: /* @__PURE__ */ jsxRuntime.jsx(LoadingComponent, {}) }) : list.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(EmptyComponent, {}) : list.map((notification) => /* @__PURE__ */ jsxRuntime.jsx(
19049
18760
  material.ListItem,
19050
18761
  {
19051
18762
  onClick: () => clickNotification(notification),
@@ -19063,8 +18774,8 @@ const BellComponent = ({}) => {
19063
18774
  color: palette.primary.main
19064
18775
  }
19065
18776
  },
19066
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs(material.Stack, { gap: 1, children: [
19067
- /* @__PURE__ */ jsxRuntimeExports.jsx(
18777
+ children: /* @__PURE__ */ jsxRuntime.jsxs(material.Stack, { gap: 1, children: [
18778
+ /* @__PURE__ */ jsxRuntime.jsx(
19068
18779
  ImageContentTimeComponent,
19069
18780
  {
19070
18781
  url: notification.createdBy?.url || "",
@@ -19072,7 +18783,7 @@ const BellComponent = ({}) => {
19072
18783
  time: notification.createdAt
19073
18784
  }
19074
18785
  ),
19075
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { variant: "caption", sx: { ...getLimitLineCss(2) }, children: notification.content })
18786
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "caption", sx: { ...getLimitLineCss(2) }, children: notification.content })
19076
18787
  ] })
19077
18788
  },
19078
18789
  notification.id
@@ -19080,7 +18791,7 @@ const BellComponent = ({}) => {
19080
18791
  ]
19081
18792
  }
19082
18793
  ),
19083
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
18794
+ children: /* @__PURE__ */ jsxRuntime.jsx(
19084
18795
  material.Badge,
19085
18796
  {
19086
18797
  onClick: async () => {
@@ -19090,7 +18801,7 @@ const BellComponent = ({}) => {
19090
18801
  badgeContent: notificationCount,
19091
18802
  color: "error",
19092
18803
  sx: { cursor: "pointer" },
19093
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
18804
+ children: /* @__PURE__ */ jsxRuntime.jsx(
19094
18805
  IconElement,
19095
18806
  {
19096
18807
  icon: "notifications",
@@ -19119,10 +18830,10 @@ const AvatarUserInfo = ({
19119
18830
  }) => {
19120
18831
  const { palette } = material.useTheme();
19121
18832
  const isSystemMonitor = useIsSystemMonitor();
19122
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(StackRow, { sx: { alignItems: "center", gap: STYLE.PADDING_GAP_ITEM }, children: [
19123
- /* @__PURE__ */ jsxRuntimeExports.jsx(AvatarElement, { url: url2, size: sizeAvatar }),
19124
- positions.length > 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs(material.Stack, { sx: { gap: 0 }, children: [
19125
- /* @__PURE__ */ jsxRuntimeExports.jsx(
18833
+ return /* @__PURE__ */ jsxRuntime.jsxs(StackRow, { sx: { alignItems: "center", gap: STYLE.PADDING_GAP_ITEM }, children: [
18834
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarElement, { url: url2, size: sizeAvatar }),
18835
+ positions.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(material.Stack, { sx: { gap: 0 }, children: [
18836
+ /* @__PURE__ */ jsxRuntime.jsx(
19126
18837
  material.Typography,
19127
18838
  {
19128
18839
  sx: {
@@ -19136,7 +18847,7 @@ const AvatarUserInfo = ({
19136
18847
  children: name2
19137
18848
  }
19138
18849
  ),
19139
- /* @__PURE__ */ jsxRuntimeExports.jsx(
18850
+ /* @__PURE__ */ jsxRuntime.jsx(
19140
18851
  material.Typography,
19141
18852
  {
19142
18853
  variant: "caption",
@@ -19160,7 +18871,7 @@ const AvatarUserInfo = ({
19160
18871
  children: positions.join(" / ")
19161
18872
  }
19162
18873
  )
19163
- ] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { sx: { ...TYPOGRAPHY_STYLES.textSm.semiBold, ...getLimitLineCss(1), ...sxName }, children: name2 })
18874
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { sx: { ...TYPOGRAPHY_STYLES.textSm.semiBold, ...getLimitLineCss(1), ...sxName }, children: name2 })
19164
18875
  ] });
19165
18876
  };
19166
18877
  const IconContentElement = ({
@@ -19182,15 +18893,15 @@ const IconContentElement = ({
19182
18893
  ...sx,
19183
18894
  cursor: "pointer"
19184
18895
  };
19185
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
18896
+ return /* @__PURE__ */ jsxRuntime.jsxs(
19186
18897
  StackRowAlignCenter,
19187
18898
  {
19188
18899
  onClick,
19189
18900
  sx: { gap: STYLE.GAP_ICON_CONTENT_BY_SIZE[size || "medium"], ...sx },
19190
18901
  id: id2,
19191
18902
  children: [
19192
- icon && /* @__PURE__ */ jsxRuntimeExports.jsx(IconElement, { icon, sx: sxIcon, color: color2, fill }),
19193
- content && /* @__PURE__ */ jsxRuntimeExports.jsx(
18903
+ icon && /* @__PURE__ */ jsxRuntime.jsx(IconElement, { icon, sx: sxIcon, color: color2, fill }),
18904
+ content && /* @__PURE__ */ jsxRuntime.jsx(
19194
18905
  material.Typography,
19195
18906
  {
19196
18907
  color: color2,
@@ -19223,8 +18934,8 @@ const RadioGroupElement = ({
19223
18934
  const change = (event) => {
19224
18935
  onChange && onChange({ target: { name: name2, value: event.target.value || void 0 } });
19225
18936
  };
19226
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(material.FormControl, { disabled, sx: { gap: STYLE.PADDING_GAP_ITEM }, onChange: change, children: [
19227
- label && /* @__PURE__ */ jsxRuntimeExports.jsx(
18937
+ return /* @__PURE__ */ jsxRuntime.jsxs(material.FormControl, { disabled, sx: { gap: STYLE.PADDING_GAP_ITEM }, onChange: change, children: [
18938
+ label && /* @__PURE__ */ jsxRuntime.jsx(
19228
18939
  material.InputLabel,
19229
18940
  {
19230
18941
  shrink: true,
@@ -19234,13 +18945,13 @@ const RadioGroupElement = ({
19234
18945
  zIndex: 2,
19235
18946
  display: "flex"
19236
18947
  },
19237
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs(StackLabel, { children: [
19238
- /* @__PURE__ */ jsxRuntimeExports.jsx(IconElement, { icon: iconLabel, sx: { fontSize: STYLE.TEXT_FIELD.FONT_SIZE_LABEL } }),
18948
+ children: /* @__PURE__ */ jsxRuntime.jsxs(StackLabel, { children: [
18949
+ /* @__PURE__ */ jsxRuntime.jsx(IconElement, { icon: iconLabel, sx: { fontSize: STYLE.TEXT_FIELD.FONT_SIZE_LABEL } }),
19239
18950
  label
19240
18951
  ] })
19241
18952
  }
19242
18953
  ),
19243
- /* @__PURE__ */ jsxRuntimeExports.jsx(
18954
+ /* @__PURE__ */ jsxRuntime.jsx(
19244
18955
  material.RadioGroup,
19245
18956
  {
19246
18957
  name: name2,
@@ -19259,13 +18970,13 @@ const RadioGroupElement = ({
19259
18970
  ] });
19260
18971
  };
19261
18972
  const RadioElement = ({ name: name2, label, ...rest }) => {
19262
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
18973
+ return /* @__PURE__ */ jsxRuntime.jsx(
19263
18974
  material.FormControlLabel,
19264
18975
  {
19265
18976
  name: name2,
19266
18977
  label,
19267
18978
  sx: { alignItems: "center", mr: 0 },
19268
- control: /* @__PURE__ */ jsxRuntimeExports.jsx(
18979
+ control: /* @__PURE__ */ jsxRuntime.jsx(
19269
18980
  material.Radio,
19270
18981
  {
19271
18982
  ...rest,
@@ -19338,10 +19049,10 @@ const AvatarUserComponent = ({}) => {
19338
19049
  const handleClose = () => {
19339
19050
  setAnchorEl(null);
19340
19051
  };
19341
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
19342
- /* @__PURE__ */ jsxRuntimeExports.jsxs(material.Box, { onClick: handleClick, sx: { cursor: "pointer", display: "flex", alignItems: "center", gap: 1 }, children: [
19343
- /* @__PURE__ */ jsxRuntimeExports.jsx(AvatarUserInfo, { url: account.user?.url, name: account.user?.name ?? "", positions, isTag: true }),
19344
- /* @__PURE__ */ jsxRuntimeExports.jsx(
19052
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
19053
+ /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { onClick: handleClick, sx: { cursor: "pointer", display: "flex", alignItems: "center", gap: 1 }, children: [
19054
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarUserInfo, { url: account.user?.url, name: account.user?.name ?? "", positions, isTag: true }),
19055
+ /* @__PURE__ */ jsxRuntime.jsx(
19345
19056
  IconElement,
19346
19057
  {
19347
19058
  icon: "arrow_drop_down",
@@ -19357,7 +19068,7 @@ const AvatarUserComponent = ({}) => {
19357
19068
  }
19358
19069
  )
19359
19070
  ] }),
19360
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
19071
+ /* @__PURE__ */ jsxRuntime.jsxs(
19361
19072
  material.Menu,
19362
19073
  {
19363
19074
  anchorEl,
@@ -19396,10 +19107,10 @@ const AvatarUserComponent = ({}) => {
19396
19107
  transformOrigin: { horizontal: "right", vertical: "top" },
19397
19108
  anchorOrigin: { horizontal: "right", vertical: "bottom" },
19398
19109
  children: [
19399
- /* @__PURE__ */ jsxRuntimeExports.jsxs(material.Box, { sx: { p: 2 }, children: [
19400
- /* @__PURE__ */ jsxRuntimeExports.jsxs(StackRowAlignStartJustBetween, { children: [
19401
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { variant: "subtitle1", sx: { lineHeight: 1 }, children: account.user?.name }),
19402
- /* @__PURE__ */ jsxRuntimeExports.jsx(
19110
+ /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { p: 2 }, children: [
19111
+ /* @__PURE__ */ jsxRuntime.jsxs(StackRowAlignStartJustBetween, { children: [
19112
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "subtitle1", sx: { lineHeight: 1 }, children: account.user?.name }),
19113
+ /* @__PURE__ */ jsxRuntime.jsx(
19403
19114
  IconElement,
19404
19115
  {
19405
19116
  icon: "settings",
@@ -19407,9 +19118,9 @@ const AvatarUserComponent = ({}) => {
19407
19118
  }
19408
19119
  )
19409
19120
  ] }),
19410
- account.user?.userOrgUnitPositions && account.user.userOrgUnitPositions.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(React.Fragment, { children: [
19411
- /* @__PURE__ */ jsxRuntimeExports.jsx(IconContentElement, { icon: "admin_panel_settings", content: "Vai trò" }),
19412
- /* @__PURE__ */ jsxRuntimeExports.jsx(
19121
+ account.user?.userOrgUnitPositions && account.user.userOrgUnitPositions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
19122
+ /* @__PURE__ */ jsxRuntime.jsx(IconContentElement, { icon: "admin_panel_settings", content: "Vai trò" }),
19123
+ /* @__PURE__ */ jsxRuntime.jsx(
19413
19124
  RadioGroupElement,
19414
19125
  {
19415
19126
  direction: "column",
@@ -19419,14 +19130,14 @@ const AvatarUserComponent = ({}) => {
19419
19130
  dispatch(ACTION_ACCOUNT.updatePositionOrgUnit(event.target.value));
19420
19131
  window.location.reload();
19421
19132
  },
19422
- children: account.user.userOrgUnitPositions.map((e) => /* @__PURE__ */ jsxRuntimeExports.jsx(
19133
+ children: account.user.userOrgUnitPositions.map((e) => /* @__PURE__ */ jsxRuntime.jsx(
19423
19134
  RadioElement,
19424
19135
  {
19425
19136
  value: e.id,
19426
19137
  size: "small",
19427
- label: /* @__PURE__ */ jsxRuntimeExports.jsxs(system.Stack, { gap: 0, children: [
19428
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { children: e.orgUnit.name }),
19429
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { variant: "caption", sx: { ...getLimitLineCss(1), color: "text.disabled" }, children: e.position.name })
19138
+ label: /* @__PURE__ */ jsxRuntime.jsxs(system.Stack, { gap: 0, children: [
19139
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { children: e.orgUnit.name }),
19140
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "caption", sx: { ...getLimitLineCss(1), color: "text.disabled" }, children: e.position.name })
19430
19141
  ] })
19431
19142
  },
19432
19143
  e.id
@@ -19435,10 +19146,10 @@ const AvatarUserComponent = ({}) => {
19435
19146
  )
19436
19147
  ] })
19437
19148
  ] }),
19438
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Divider, {}),
19439
- menu.map((item, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(material.MenuItem, { onClick: item.onClick, children: [
19440
- /* @__PURE__ */ jsxRuntimeExports.jsx(IconElement, { icon: item.icon, size: "small", sx: { mr: 1 } }),
19441
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { children: item.content })
19149
+ /* @__PURE__ */ jsxRuntime.jsx(material.Divider, {}),
19150
+ menu.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(material.MenuItem, { onClick: item.onClick, children: [
19151
+ /* @__PURE__ */ jsxRuntime.jsx(IconElement, { icon: item.icon, size: "small", sx: { mr: 1 } }),
19152
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { children: item.content })
19442
19153
  ] }, index))
19443
19154
  ]
19444
19155
  }
@@ -19448,7 +19159,7 @@ const AvatarUserComponent = ({}) => {
19448
19159
  const MonitorPart = ({
19449
19160
  children
19450
19161
  }) => {
19451
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
19162
+ return /* @__PURE__ */ jsxRuntime.jsx(
19452
19163
  system.Stack,
19453
19164
  {
19454
19165
  sx: {
@@ -19460,18 +19171,18 @@ const MonitorPart = ({
19460
19171
  backgroundPosition: "top",
19461
19172
  backgroundRepeat: "no-repeat"
19462
19173
  },
19463
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs(system.Stack, { p: { padding: STYLE.PADDING_GAP_LAYOUT }, children: [
19464
- /* @__PURE__ */ jsxRuntimeExports.jsxs(StackRowJustBetween, { children: [
19465
- /* @__PURE__ */ jsxRuntimeExports.jsx(StackRowAlignCenter, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
19174
+ children: /* @__PURE__ */ jsxRuntime.jsxs(system.Stack, { p: { padding: STYLE.PADDING_GAP_LAYOUT }, children: [
19175
+ /* @__PURE__ */ jsxRuntime.jsxs(StackRowJustBetween, { children: [
19176
+ /* @__PURE__ */ jsxRuntime.jsx(StackRowAlignCenter, { children: /* @__PURE__ */ jsxRuntime.jsx(
19466
19177
  LogoComponent,
19467
19178
  {
19468
19179
  url: "/images/logo/logo-sub-3.svg",
19469
19180
  fillColor: "white"
19470
19181
  }
19471
19182
  ) }),
19472
- /* @__PURE__ */ jsxRuntimeExports.jsxs(StackRowAlignCenter, { children: [
19473
- /* @__PURE__ */ jsxRuntimeExports.jsx(BellComponent, {}),
19474
- /* @__PURE__ */ jsxRuntimeExports.jsx(AvatarUserComponent, {})
19183
+ /* @__PURE__ */ jsxRuntime.jsxs(StackRowAlignCenter, { children: [
19184
+ /* @__PURE__ */ jsxRuntime.jsx(BellComponent, {}),
19185
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarUserComponent, {})
19475
19186
  ] })
19476
19187
  ] }),
19477
19188
  children
@@ -19479,12 +19190,14 @@ const MonitorPart = ({
19479
19190
  }
19480
19191
  );
19481
19192
  };
19482
- const DashboardLayout = ({ children }) => {
19193
+ const DashboardLayout = ({
19194
+ children
19195
+ }) => {
19483
19196
  useUpdateCurrentAccess();
19484
- return /* @__PURE__ */ jsxRuntimeExports.jsx(MonitorPart, { children });
19197
+ return /* @__PURE__ */ jsxRuntime.jsx(MonitorPart, { children });
19485
19198
  };
19486
19199
  const DefaultLayout = ({ children }) => {
19487
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
19200
+ return /* @__PURE__ */ jsxRuntime.jsx(
19488
19201
  material.Stack,
19489
19202
  {
19490
19203
  sx: {
@@ -19493,7 +19206,7 @@ const DefaultLayout = ({ children }) => {
19493
19206
  width: "100%",
19494
19207
  overflowY: "auto"
19495
19208
  },
19496
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
19209
+ children: /* @__PURE__ */ jsxRuntime.jsx(
19497
19210
  material.Stack,
19498
19211
  {
19499
19212
  sx: {
@@ -21836,13 +21549,13 @@ const ButtonElement = ({
21836
21549
  ...rest
21837
21550
  }) => {
21838
21551
  const { palette } = material.useTheme();
21839
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
21552
+ return /* @__PURE__ */ jsxRuntime.jsx(
21840
21553
  material.Button,
21841
21554
  {
21842
21555
  ...rest,
21843
21556
  variant,
21844
- startIcon: !loading && startIcon ? typeof startIcon === "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(IconElement, { icon: startIcon, sx: { cursor: "pointer" } }) : startIcon : void 0,
21845
- endIcon: !loading && endIcon ? typeof endIcon === "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(IconElement, { icon: endIcon, sx: { cursor: "pointer" } }) : endIcon : void 0,
21557
+ startIcon: !loading && startIcon ? typeof startIcon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(IconElement, { icon: startIcon, sx: { cursor: "pointer" } }) : startIcon : void 0,
21558
+ endIcon: !loading && endIcon ? typeof endIcon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(IconElement, { icon: endIcon, sx: { cursor: "pointer" } }) : endIcon : void 0,
21846
21559
  sx: {
21847
21560
  minWidth: 100,
21848
21561
  textTransform: "none",
@@ -21850,14 +21563,14 @@ const ButtonElement = ({
21850
21563
  ...sx
21851
21564
  },
21852
21565
  disabled,
21853
- children: loading ? /* @__PURE__ */ jsxRuntimeExports.jsx(
21566
+ children: loading ? /* @__PURE__ */ jsxRuntime.jsx(
21854
21567
  LoadingComponent,
21855
21568
  {
21856
21569
  color: palette.primary.contrastText,
21857
21570
  size: "small",
21858
21571
  sx: { minHeight: "24.5px" }
21859
21572
  }
21860
- ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
21573
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
21861
21574
  material.Typography,
21862
21575
  {
21863
21576
  sx: { ...TYPOGRAPHY_STYLES.textSm.regular, whiteSpace: "nowrap" },
@@ -21875,7 +21588,7 @@ const TextFieldLabelElement = ({
21875
21588
  }) => {
21876
21589
  const { palette } = material.useTheme();
21877
21590
  if (!label) return null;
21878
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
21591
+ return /* @__PURE__ */ jsxRuntime.jsxs(
21879
21592
  material.Typography,
21880
21593
  {
21881
21594
  variant: "subtitle1",
@@ -21886,15 +21599,15 @@ const TextFieldLabelElement = ({
21886
21599
  gap: PADDING_GAP_ITEM_SMALL
21887
21600
  },
21888
21601
  children: [
21889
- iconLabel && /* @__PURE__ */ jsxRuntimeExports.jsx(IconElement, { icon: iconLabel, sx: { fontSize: STYLE.TEXT_FIELD.FONT_SIZE_LABEL } }),
21602
+ iconLabel && /* @__PURE__ */ jsxRuntime.jsx(IconElement, { icon: iconLabel, sx: { fontSize: STYLE.TEXT_FIELD.FONT_SIZE_LABEL } }),
21890
21603
  label,
21891
- required && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { color: "red" }, children: "*" })
21604
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { color: "red" }, children: "*" })
21892
21605
  ]
21893
21606
  }
21894
21607
  );
21895
21608
  };
21896
21609
  const IconButtonElement = ({ icon, onClick, sx, size = 16 }) => {
21897
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
21610
+ return /* @__PURE__ */ jsxRuntime.jsx(
21898
21611
  material.IconButton,
21899
21612
  {
21900
21613
  onClick,
@@ -21910,7 +21623,7 @@ const IconButtonElement = ({ icon, onClick, sx, size = 16 }) => {
21910
21623
  },
21911
21624
  ...sx
21912
21625
  },
21913
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconElement, { icon, sx: { fontSize: size } })
21626
+ children: /* @__PURE__ */ jsxRuntime.jsx(IconElement, { icon, sx: { fontSize: size } })
21914
21627
  }
21915
21628
  );
21916
21629
  };
@@ -21939,8 +21652,8 @@ const TextFieldElement = ({
21939
21652
  onChange({ target: { name: name2, value: event.target.value || null } });
21940
21653
  };
21941
21654
  const { palette, typography } = material.useTheme();
21942
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(material.Box, { sx: { position: "relative", width: "100%" }, children: [
21943
- /* @__PURE__ */ jsxRuntimeExports.jsx(
21655
+ return /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { position: "relative", width: "100%" }, children: [
21656
+ /* @__PURE__ */ jsxRuntime.jsx(
21944
21657
  TextFieldLabelElement,
21945
21658
  {
21946
21659
  label,
@@ -21949,7 +21662,7 @@ const TextFieldElement = ({
21949
21662
  required: rest.required
21950
21663
  }
21951
21664
  ),
21952
- /* @__PURE__ */ jsxRuntimeExports.jsx(
21665
+ /* @__PURE__ */ jsxRuntime.jsx(
21953
21666
  material.TextField,
21954
21667
  {
21955
21668
  error: Boolean(error),
@@ -21960,7 +21673,7 @@ const TextFieldElement = ({
21960
21673
  name: name2,
21961
21674
  InputProps: {
21962
21675
  ...InputProps,
21963
- endAdornment: showResetButton && value2 && onReset ? /* @__PURE__ */ jsxRuntimeExports.jsx(IconButtonElement, { icon: "close", onClick: onReset }) : InputProps?.endAdornment,
21676
+ endAdornment: showResetButton && value2 && onReset ? /* @__PURE__ */ jsxRuntime.jsx(IconButtonElement, { icon: "close", onClick: onReset }) : InputProps?.endAdornment,
21964
21677
  sx: {
21965
21678
  ...InputProps?.sx
21966
21679
  }
@@ -21972,7 +21685,7 @@ const TextFieldElement = ({
21972
21685
  ...rest
21973
21686
  }
21974
21687
  ),
21975
- description && /* @__PURE__ */ jsxRuntimeExports.jsxs(
21688
+ description && /* @__PURE__ */ jsxRuntime.jsxs(
21976
21689
  material.Typography,
21977
21690
  {
21978
21691
  variant: "body2",
@@ -21988,7 +21701,7 @@ const TextFieldElement = ({
21988
21701
  gap: GAP_ICON_CONTENT_BY_SIZE.small
21989
21702
  },
21990
21703
  children: [
21991
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Box, { sx: { fontWeight: typography.h2.fontWeight }, children: "Ghi chú:" }),
21704
+ /* @__PURE__ */ jsxRuntime.jsx(material.Box, { sx: { fontWeight: typography.h2.fontWeight }, children: "Ghi chú:" }),
21992
21705
  " ",
21993
21706
  description
21994
21707
  ]
@@ -24125,15 +23838,15 @@ const OtpPart = ({ setAuthProcess }) => {
24125
23838
  const timer = setTimeout(() => setSecond(second - 1), 1e3);
24126
23839
  return () => clearTimeout(timer);
24127
23840
  }, [second]);
24128
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(material.Stack, { flex: 1, children: [
24129
- /* @__PURE__ */ jsxRuntimeExports.jsx(
23841
+ return /* @__PURE__ */ jsxRuntime.jsxs(material.Stack, { flex: 1, children: [
23842
+ /* @__PURE__ */ jsxRuntime.jsx(
24130
23843
  material.Typography,
24131
23844
  {
24132
23845
  sx: { textAlign: "center" },
24133
23846
  children: `Mã OTP đã gửi đến ${formik.values.phone}. Mã có giá trị trong vòng ${second}s`
24134
23847
  }
24135
23848
  ),
24136
- /* @__PURE__ */ jsxRuntimeExports.jsx(StackRow, { children: Array.from({ length: lengthOtp }, (_, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(
23849
+ /* @__PURE__ */ jsxRuntime.jsx(StackRow, { children: Array.from({ length: lengthOtp }, (_, index) => /* @__PURE__ */ jsxRuntime.jsx(
24137
23850
  material.Stack,
24138
23851
  {
24139
23852
  component: "input",
@@ -24156,7 +23869,7 @@ const OtpPart = ({ setAuthProcess }) => {
24156
23869
  },
24157
23870
  index
24158
23871
  )) }),
24159
- /* @__PURE__ */ jsxRuntimeExports.jsx(
23872
+ /* @__PURE__ */ jsxRuntime.jsx(
24160
23873
  IconContentElement,
24161
23874
  {
24162
23875
  icon: "send",
@@ -24222,7 +23935,7 @@ const AuthPage = ({}) => {
24222
23935
  }
24223
23936
  };
24224
23937
  const [showPassword, setShowPassword] = React.useState(false);
24225
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
23938
+ return /* @__PURE__ */ jsxRuntime.jsx(
24226
23939
  material.Stack,
24227
23940
  {
24228
23941
  sx: {
@@ -24233,7 +23946,7 @@ const AuthPage = ({}) => {
24233
23946
  width: "100%",
24234
23947
  height: "100%"
24235
23948
  },
24236
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
23949
+ children: /* @__PURE__ */ jsxRuntime.jsx(
24237
23950
  Formik,
24238
23951
  {
24239
23952
  initialValues: {
@@ -24248,7 +23961,7 @@ const AuthPage = ({}) => {
24248
23961
  validateOnChange: false,
24249
23962
  enableReinitialize: true,
24250
23963
  children: (formik) => {
24251
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Form, { noValidate: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
23964
+ return /* @__PURE__ */ jsxRuntime.jsx(Form, { noValidate: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
24252
23965
  material.Stack,
24253
23966
  {
24254
23967
  sx: {
@@ -24262,9 +23975,9 @@ const AuthPage = ({}) => {
24262
23975
  },
24263
23976
  gap: 3,
24264
23977
  children: [
24265
- /* @__PURE__ */ jsxRuntimeExports.jsx(LogoComponent, { url: "/images/logo/logo-sub-4.svg" }),
24266
- authProcess === AuthProcess.LOGIN && /* @__PURE__ */ jsxRuntimeExports.jsxs(React.Fragment, { children: [
24267
- /* @__PURE__ */ jsxRuntimeExports.jsx(
23978
+ /* @__PURE__ */ jsxRuntime.jsx(LogoComponent, { url: "/images/logo/logo-sub-4.svg" }),
23979
+ authProcess === AuthProcess.LOGIN && /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
23980
+ /* @__PURE__ */ jsxRuntime.jsx(
24268
23981
  TextFieldElement,
24269
23982
  {
24270
23983
  iconLabel: "mail",
@@ -24280,7 +23993,7 @@ const AuthPage = ({}) => {
24280
23993
  required: true
24281
23994
  }
24282
23995
  ),
24283
- /* @__PURE__ */ jsxRuntimeExports.jsx(
23996
+ /* @__PURE__ */ jsxRuntime.jsx(
24284
23997
  TextFieldElement,
24285
23998
  {
24286
23999
  iconLabel: "vpn_key",
@@ -24296,7 +24009,7 @@ const AuthPage = ({}) => {
24296
24009
  "& fieldset": { borderColor: palette.primary.light }
24297
24010
  },
24298
24011
  InputProps: {
24299
- endAdornment: /* @__PURE__ */ jsxRuntimeExports.jsx(material.InputAdornment, { position: "end", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
24012
+ endAdornment: /* @__PURE__ */ jsxRuntime.jsx(material.InputAdornment, { position: "end", children: /* @__PURE__ */ jsxRuntime.jsx(
24300
24013
  IconElement,
24301
24014
  {
24302
24015
  icon: showPassword ? "visibility" : "visibility_off",
@@ -24308,7 +24021,7 @@ const AuthPage = ({}) => {
24308
24021
  }
24309
24022
  )
24310
24023
  ] }),
24311
- authProcess === AuthProcess.FORGOT_PASSWORD && /* @__PURE__ */ jsxRuntimeExports.jsx(
24024
+ authProcess === AuthProcess.FORGOT_PASSWORD && /* @__PURE__ */ jsxRuntime.jsx(
24312
24025
  TextFieldElement,
24313
24026
  {
24314
24027
  iconLabel: "mail",
@@ -24324,8 +24037,8 @@ const AuthPage = ({}) => {
24324
24037
  required: true
24325
24038
  }
24326
24039
  ),
24327
- authProcess === AuthProcess.VERIFY_OTP && /* @__PURE__ */ jsxRuntimeExports.jsx(OtpPart, { setAuthProcess }),
24328
- authProcess === AuthProcess.RESET_PASSWORD && /* @__PURE__ */ jsxRuntimeExports.jsx(
24040
+ authProcess === AuthProcess.VERIFY_OTP && /* @__PURE__ */ jsxRuntime.jsx(OtpPart, { setAuthProcess }),
24041
+ authProcess === AuthProcess.RESET_PASSWORD && /* @__PURE__ */ jsxRuntime.jsx(
24329
24042
  TextFieldElement,
24330
24043
  {
24331
24044
  label: "Mật khẩu",
@@ -24340,7 +24053,7 @@ const AuthPage = ({}) => {
24340
24053
  },
24341
24054
  type: showPassword ? "text" : "password",
24342
24055
  InputProps: {
24343
- endAdornment: /* @__PURE__ */ jsxRuntimeExports.jsx(material.InputAdornment, { position: "end", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
24056
+ endAdornment: /* @__PURE__ */ jsxRuntime.jsx(material.InputAdornment, { position: "end", children: /* @__PURE__ */ jsxRuntime.jsx(
24344
24057
  IconElement,
24345
24058
  {
24346
24059
  icon: showPassword ? "visibility" : "visibility_off",
@@ -24350,7 +24063,7 @@ const AuthPage = ({}) => {
24350
24063
  }
24351
24064
  }
24352
24065
  ),
24353
- /* @__PURE__ */ jsxRuntimeExports.jsx(
24066
+ /* @__PURE__ */ jsxRuntime.jsx(
24354
24067
  IconContentElement,
24355
24068
  {
24356
24069
  icon: BUTTON_BACK_ICON_CONTENT[authProcess].backIcon,
@@ -24359,7 +24072,7 @@ const AuthPage = ({}) => {
24359
24072
  onClick: () => authProcess === AuthProcess.LOGIN ? setAuthProcess(AuthProcess.FORGOT_PASSWORD) : setAuthProcess(AuthProcess.LOGIN)
24360
24073
  }
24361
24074
  ),
24362
- /* @__PURE__ */ jsxRuntimeExports.jsx(
24075
+ /* @__PURE__ */ jsxRuntime.jsx(
24363
24076
  ButtonElement,
24364
24077
  {
24365
24078
  loading,
@@ -24378,17 +24091,17 @@ const AuthPage = ({}) => {
24378
24091
  );
24379
24092
  };
24380
24093
  const DashboardPage = () => {
24381
- return /* @__PURE__ */ jsxRuntimeExports.jsx(reactRouterDom.Outlet, {});
24094
+ return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Outlet, {});
24382
24095
  };
24383
24096
  const ErrorPage = ({}) => {
24384
24097
  const dispatch = useAppDispatch();
24385
24098
  const navigate = reactRouterDom.useNavigate();
24386
24099
  const account = reactRedux.useSelector((state) => state.account);
24387
24100
  const [loading, setLoading] = React.useState(false);
24388
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(React.Fragment, { children: [
24389
- /* @__PURE__ */ jsxRuntimeExports.jsxs(StackRowAlignCenter, { children: [
24390
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { color: "primary", variant: "h1", fontSize: 90, children: "5" }),
24391
- /* @__PURE__ */ jsxRuntimeExports.jsx(
24101
+ return /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
24102
+ /* @__PURE__ */ jsxRuntime.jsxs(StackRowAlignCenter, { children: [
24103
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { color: "primary", variant: "h1", fontSize: 90, children: "5" }),
24104
+ /* @__PURE__ */ jsxRuntime.jsx(
24392
24105
  material.Stack,
24393
24106
  {
24394
24107
  component: "img",
@@ -24399,7 +24112,7 @@ const ErrorPage = ({}) => {
24399
24112
  loading: "lazy"
24400
24113
  }
24401
24114
  ),
24402
- /* @__PURE__ */ jsxRuntimeExports.jsx(
24115
+ /* @__PURE__ */ jsxRuntime.jsx(
24403
24116
  material.Stack,
24404
24117
  {
24405
24118
  component: "img",
@@ -24411,8 +24124,8 @@ const ErrorPage = ({}) => {
24411
24124
  }
24412
24125
  )
24413
24126
  ] }),
24414
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { sx: { width: 450, textAlign: "center", lineHeight: 2 }, children: "TÀI KHOẢN CỦA BẠN KHÔNG ĐỦ QUYỀN TRUY CẬP HOẶC HỆ THỐNG ĐÃ GẶP SỰ CỐ!" }),
24415
- /* @__PURE__ */ jsxRuntimeExports.jsx(
24127
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { sx: { width: 450, textAlign: "center", lineHeight: 2 }, children: "TÀI KHOẢN CỦA BẠN KHÔNG ĐỦ QUYỀN TRUY CẬP HOẶC HỆ THỐNG ĐÃ GẶP SỰ CỐ!" }),
24128
+ /* @__PURE__ */ jsxRuntime.jsx(
24416
24129
  ButtonElement,
24417
24130
  {
24418
24131
  content: "Đăng nhập lại",
@@ -24438,10 +24151,10 @@ const ErrorPage = ({}) => {
24438
24151
  };
24439
24152
  const NotFoundPage = ({}) => {
24440
24153
  const navigate = reactRouterDom.useNavigate();
24441
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(React.Fragment, { children: [
24442
- /* @__PURE__ */ jsxRuntimeExports.jsxs(StackRowAlignCenter, { children: [
24443
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { color: "primary", variant: "h1", fontSize: 90, children: "4" }),
24444
- /* @__PURE__ */ jsxRuntimeExports.jsx(
24154
+ return /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
24155
+ /* @__PURE__ */ jsxRuntime.jsxs(StackRowAlignCenter, { children: [
24156
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { color: "primary", variant: "h1", fontSize: 90, children: "4" }),
24157
+ /* @__PURE__ */ jsxRuntime.jsx(
24445
24158
  material.Stack,
24446
24159
  {
24447
24160
  component: "img",
@@ -24452,10 +24165,10 @@ const NotFoundPage = ({}) => {
24452
24165
  loading: "lazy"
24453
24166
  }
24454
24167
  ),
24455
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { color: "primary", variant: "h1", fontSize: 90, children: "4" })
24168
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { color: "primary", variant: "h1", fontSize: 90, children: "4" })
24456
24169
  ] }),
24457
- /* @__PURE__ */ jsxRuntimeExports.jsx(material.Typography, { sx: { width: 450, textAlign: "center", lineHeight: 2 }, children: "XIN LỖI, TRANG BẠN TÌM KIẾM KHÔNG TỒN TẠI!" }),
24458
- /* @__PURE__ */ jsxRuntimeExports.jsx(ButtonElement, { content: "Quay lại trang chủ", fullWidth: false, onClick: () => navigate(PAGE.AUTH.path) })
24170
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { sx: { width: 450, textAlign: "center", lineHeight: 2 }, children: "XIN LỖI, TRANG BẠN TÌM KIẾM KHÔNG TỒN TẠI!" }),
24171
+ /* @__PURE__ */ jsxRuntime.jsx(ButtonElement, { content: "Quay lại trang chủ", fullWidth: false, onClick: () => navigate(PAGE.AUTH.path) })
24459
24172
  ] });
24460
24173
  };
24461
24174
  const LayoutGroupContext = React.createContext({});
@@ -27955,7 +27668,7 @@ function createMotionComponent(Component2, { forwardMotionProps = false } = {},
27955
27668
  MeasureLayout2 = layoutProjection.MeasureLayout;
27956
27669
  context.visualElement = useVisualElement(Component2, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);
27957
27670
  }
27958
- return jsxRuntimeExports.jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout2 && context.visualElement ? jsxRuntimeExports.jsx(MeasureLayout2, { visualElement: context.visualElement, ...configAndProps }) : null, useRender(Component2, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps)] });
27671
+ return jsxRuntime.jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout2 && context.visualElement ? jsxRuntime.jsx(MeasureLayout2, { visualElement: context.visualElement, ...configAndProps }) : null, useRender(Component2, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps)] });
27959
27672
  }
27960
27673
  MotionDOMComponent.displayName = `motion.${typeof Component2 === "string" ? Component2 : `create(${Component2.displayName ?? Component2.name ?? ""})`}`;
27961
27674
  const ForwardRefMotionComponent = React.forwardRef(MotionDOMComponent);
@@ -30074,7 +29787,7 @@ class MeasureLayoutWithContext extends React.Component {
30074
29787
  function MeasureLayout(props) {
30075
29788
  const [isPresent, safeToRemove] = usePresence();
30076
29789
  const layoutGroup = React.useContext(LayoutGroupContext);
30077
- return jsxRuntimeExports.jsx(MeasureLayoutWithContext, { ...props, layoutGroup, switchLayoutGroup: React.useContext(SwitchLayoutGroupContext), isPresent, safeToRemove });
29790
+ return jsxRuntime.jsx(MeasureLayoutWithContext, { ...props, layoutGroup, switchLayoutGroup: React.useContext(SwitchLayoutGroupContext), isPresent, safeToRemove });
30078
29791
  }
30079
29792
  const defaultScaleCorrectors = {
30080
29793
  borderRadius: {
@@ -31731,9 +31444,9 @@ const MotionBox = ({
31731
31444
  transition: { duration: 0.2 }
31732
31445
  }
31733
31446
  } : {};
31734
- return /* @__PURE__ */ jsxRuntimeExports.jsx(motion.div, { ...motionProps, ...getAnimationProps(), ...hoverProps, onClick, style: { ...sx }, children });
31447
+ return /* @__PURE__ */ jsxRuntime.jsx(motion.div, { ...motionProps, ...getAnimationProps(), ...hoverProps, onClick, style: { ...sx }, children });
31735
31448
  };
31736
- const IconRight = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
31449
+ const IconRight = (props) => /* @__PURE__ */ jsxRuntime.jsx(
31737
31450
  "svg",
31738
31451
  {
31739
31452
  width: "20",
@@ -31742,7 +31455,7 @@ const IconRight = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
31742
31455
  fill: "none",
31743
31456
  xmlns: "http://www.w3.org/2000/svg",
31744
31457
  ...props,
31745
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
31458
+ children: /* @__PURE__ */ jsxRuntime.jsx(
31746
31459
  "path",
31747
31460
  {
31748
31461
  d: "M12 1L19 8M19 8L12 15M19 8L1 8",
@@ -31754,7 +31467,7 @@ const IconRight = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
31754
31467
  )
31755
31468
  }
31756
31469
  );
31757
- const IconLeft = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
31470
+ const IconLeft = (props) => /* @__PURE__ */ jsxRuntime.jsx(
31758
31471
  "svg",
31759
31472
  {
31760
31473
  width: "20",
@@ -31763,7 +31476,7 @@ const IconLeft = (props) => /* @__PURE__ */ jsxRuntimeExports.jsx(
31763
31476
  fill: "none",
31764
31477
  xmlns: "http://www.w3.org/2000/svg",
31765
31478
  ...props,
31766
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
31479
+ children: /* @__PURE__ */ jsxRuntime.jsx(
31767
31480
  "path",
31768
31481
  {
31769
31482
  d: "M8 15L1 8M1 8L8 1M1 8L19 8",
@@ -31801,8 +31514,8 @@ const AppGrid = ({
31801
31514
  const start = page * pageSize;
31802
31515
  const end = start + pageSize;
31803
31516
  const visibleApps = totalPages > 1 ? apps.slice(start, end) : apps;
31804
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(material.Box, { sx: { position: "relative" }, children: [
31805
- /* @__PURE__ */ jsxRuntimeExports.jsx(
31517
+ return /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { position: "relative" }, children: [
31518
+ /* @__PURE__ */ jsxRuntime.jsx(
31806
31519
  material.Box,
31807
31520
  {
31808
31521
  sx: {
@@ -31812,7 +31525,7 @@ const AppGrid = ({
31812
31525
  },
31813
31526
  children: visibleApps.map((app2, index) => {
31814
31527
  const isSelected = selectedAppId === app2.key;
31815
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
31528
+ return /* @__PURE__ */ jsxRuntime.jsxs(
31816
31529
  MotionBox,
31817
31530
  {
31818
31531
  preset: "staggerItem",
@@ -31827,7 +31540,7 @@ const AppGrid = ({
31827
31540
  flexDirection: "column"
31828
31541
  },
31829
31542
  children: [
31830
- /* @__PURE__ */ jsxRuntimeExports.jsx(
31543
+ /* @__PURE__ */ jsxRuntime.jsx(
31831
31544
  material.Box,
31832
31545
  {
31833
31546
  sx: {
@@ -31841,7 +31554,7 @@ const AppGrid = ({
31841
31554
  background: getAppColor(app2.category),
31842
31555
  boxShadow: isSelected ? `0 0 0 1px ${theme.palette.primary.main}, ${iconShadow}` : iconShadow
31843
31556
  },
31844
- children: app2.icon.startsWith("/") && /* @__PURE__ */ jsxRuntimeExports.jsx(
31557
+ children: app2.icon.startsWith("/") && /* @__PURE__ */ jsxRuntime.jsx(
31845
31558
  ImageElement,
31846
31559
  {
31847
31560
  sx: { width: iconSize * 0.56, height: iconSize * 0.56 },
@@ -31851,7 +31564,7 @@ const AppGrid = ({
31851
31564
  )
31852
31565
  }
31853
31566
  ),
31854
- /* @__PURE__ */ jsxRuntimeExports.jsx(
31567
+ /* @__PURE__ */ jsxRuntime.jsx(
31855
31568
  material.Typography,
31856
31569
  {
31857
31570
  variant: titleVariant,
@@ -31859,7 +31572,7 @@ const AppGrid = ({
31859
31572
  children: app2.title
31860
31573
  }
31861
31574
  ),
31862
- /* @__PURE__ */ jsxRuntimeExports.jsx(
31575
+ /* @__PURE__ */ jsxRuntime.jsx(
31863
31576
  material.Typography,
31864
31577
  {
31865
31578
  variant: captionVariant,
@@ -31874,8 +31587,8 @@ const AppGrid = ({
31874
31587
  })
31875
31588
  }
31876
31589
  ),
31877
- showPagination && totalPages > 1 && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
31878
- page === totalPages - 1 && /* @__PURE__ */ jsxRuntimeExports.jsx(
31590
+ showPagination && totalPages > 1 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
31591
+ page === totalPages - 1 && /* @__PURE__ */ jsxRuntime.jsx(
31879
31592
  material.IconButton,
31880
31593
  {
31881
31594
  size: "small",
@@ -31888,10 +31601,10 @@ const AppGrid = ({
31888
31601
  transform: "translateY(-120%)",
31889
31602
  color: theme.palette.divider
31890
31603
  },
31891
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconLeft, {})
31604
+ children: /* @__PURE__ */ jsxRuntime.jsx(IconLeft, {})
31892
31605
  }
31893
31606
  ),
31894
- page !== totalPages - 1 && /* @__PURE__ */ jsxRuntimeExports.jsx(
31607
+ page !== totalPages - 1 && /* @__PURE__ */ jsxRuntime.jsx(
31895
31608
  material.IconButton,
31896
31609
  {
31897
31610
  size: "small",
@@ -31904,10 +31617,10 @@ const AppGrid = ({
31904
31617
  transform: "translateY(-120%)",
31905
31618
  color: theme.palette.divider
31906
31619
  },
31907
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(IconRight, {})
31620
+ children: /* @__PURE__ */ jsxRuntime.jsx(IconRight, {})
31908
31621
  }
31909
31622
  ),
31910
- /* @__PURE__ */ jsxRuntimeExports.jsx(
31623
+ /* @__PURE__ */ jsxRuntime.jsx(
31911
31624
  material.Box,
31912
31625
  {
31913
31626
  sx: {
@@ -31916,7 +31629,7 @@ const AppGrid = ({
31916
31629
  alignItems: "center",
31917
31630
  justifyContent: "center"
31918
31631
  },
31919
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
31632
+ children: /* @__PURE__ */ jsxRuntime.jsx(
31920
31633
  material.Box,
31921
31634
  {
31922
31635
  sx: {
@@ -31928,7 +31641,7 @@ const AppGrid = ({
31928
31641
  borderRadius: BORDER_RADIUS_ELEMENT_WRAPPER,
31929
31642
  backgroundColor: "rgba(255,255,255,0.15)"
31930
31643
  },
31931
- children: Array.from({ length: totalPages }).map((_, i) => /* @__PURE__ */ jsxRuntimeExports.jsx(
31644
+ children: Array.from({ length: totalPages }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(
31932
31645
  material.Box,
31933
31646
  {
31934
31647
  onClick: () => setPage(i),
@@ -31957,7 +31670,7 @@ const SystemMonitorScreen = () => {
31957
31670
  const [tab, setTab] = React.useState(AppCategory.ALL);
31958
31671
  const listApp = useApps(tab);
31959
31672
  const currentApp = useActiveSidebar();
31960
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
31673
+ return /* @__PURE__ */ jsxRuntime.jsx(
31961
31674
  MotionBox,
31962
31675
  {
31963
31676
  preset: "fadeInUp",
@@ -31968,7 +31681,7 @@ const SystemMonitorScreen = () => {
31968
31681
  position: "relative",
31969
31682
  top: 150
31970
31683
  },
31971
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
31684
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
31972
31685
  material.Box,
31973
31686
  {
31974
31687
  sx: {
@@ -31979,7 +31692,7 @@ const SystemMonitorScreen = () => {
31979
31692
  justifyContent: "flex-start"
31980
31693
  },
31981
31694
  children: [
31982
- /* @__PURE__ */ jsxRuntimeExports.jsx(
31695
+ /* @__PURE__ */ jsxRuntime.jsx(
31983
31696
  material.Box,
31984
31697
  {
31985
31698
  sx: {
@@ -31993,13 +31706,13 @@ const SystemMonitorScreen = () => {
31993
31706
  { key: AppCategory.HRM, label: "HRM" },
31994
31707
  { key: AppCategory.WORKFLOW, label: "Workflow Engine" },
31995
31708
  { key: AppCategory.PLATFORM_INFO, label: "Platform & Info" }
31996
- ].map((t) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
31709
+ ].map((t) => /* @__PURE__ */ jsxRuntime.jsxs(
31997
31710
  MotionBox,
31998
31711
  {
31999
31712
  sx: { position: "relative" },
32000
31713
  preset: "tabUnderline",
32001
31714
  children: [
32002
- /* @__PURE__ */ jsxRuntimeExports.jsx(
31715
+ /* @__PURE__ */ jsxRuntime.jsx(
32003
31716
  material.Typography,
32004
31717
  {
32005
31718
  onClick: () => setTab(t.key),
@@ -32010,7 +31723,7 @@ const SystemMonitorScreen = () => {
32010
31723
  children: t.label
32011
31724
  }
32012
31725
  ),
32013
- tab === t.key && /* @__PURE__ */ jsxRuntimeExports.jsx(
31726
+ tab === t.key && /* @__PURE__ */ jsxRuntime.jsx(
32014
31727
  MotionBox,
32015
31728
  {
32016
31729
  preset: "tabUnderline",
@@ -32022,7 +31735,7 @@ const SystemMonitorScreen = () => {
32022
31735
  backgroundColor: theme.palette.common.white,
32023
31736
  transformOrigin: "left"
32024
31737
  },
32025
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", {})
31738
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {})
32026
31739
  }
32027
31740
  )
32028
31741
  ]
@@ -32031,7 +31744,7 @@ const SystemMonitorScreen = () => {
32031
31744
  ))
32032
31745
  }
32033
31746
  ),
32034
- /* @__PURE__ */ jsxRuntimeExports.jsx(MotionBox, { preset: "tabContent", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
31747
+ /* @__PURE__ */ jsxRuntime.jsx(MotionBox, { preset: "tabContent", children: /* @__PURE__ */ jsxRuntime.jsx(
32035
31748
  AppGrid,
32036
31749
  {
32037
31750
  apps: listApp,
@@ -32057,17 +31770,17 @@ const renderRoutes = (routes2, account) => routes2.map((route) => {
32057
31770
  const { path, layout: layout2, element, type, allowUserTypes = [], children } = route;
32058
31771
  const Layout = layout2 || React.Fragment;
32059
31772
  let Element2 = element;
32060
- if (path === PAGE.AUTH.path && account.isLogin) Element2 = () => /* @__PURE__ */ jsxRuntimeExports.jsx(reactRouterDom.Navigate, { to: PAGE.DASHBOARD.path });
31773
+ if (path === PAGE.AUTH.path && account.isLogin) Element2 = () => /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: PAGE.DASHBOARD.path });
32061
31774
  if (type === RouteType.PROTECTED) {
32062
- if (!account.isLogin) Element2 = () => /* @__PURE__ */ jsxRuntimeExports.jsx(reactRouterDom.Navigate, { to: PAGE.AUTH.path });
31775
+ if (!account.isLogin) Element2 = () => /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: PAGE.AUTH.path });
32063
31776
  else if (allowUserTypes.length && !allowUserTypes.includes(account.user.type) && account.user.type !== UserType.ROOT)
32064
- Element2 = () => /* @__PURE__ */ jsxRuntimeExports.jsx(reactRouterDom.Navigate, { to: PAGE.ERROR.path });
31777
+ Element2 = () => /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: PAGE.ERROR.path });
32065
31778
  }
32066
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
31779
+ return /* @__PURE__ */ jsxRuntime.jsx(
32067
31780
  reactRouterDom.Route,
32068
31781
  {
32069
31782
  path,
32070
- element: /* @__PURE__ */ jsxRuntimeExports.jsx(Layout, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Element2, {}) }),
31783
+ element: /* @__PURE__ */ jsxRuntime.jsx(Layout, { children: /* @__PURE__ */ jsxRuntime.jsx(Element2, {}) }),
32071
31784
  children: children && renderRoutes(children, account)
32072
31785
  },
32073
31786
  path
@@ -32087,6 +31800,217 @@ const routes = [
32087
31800
  ]
32088
31801
  }
32089
31802
  ];
31803
+ const SidebarContext = React.createContext(
31804
+ void 0
31805
+ );
31806
+ const useSidebar = () => {
31807
+ const context = React.useContext(SidebarContext);
31808
+ if (context === void 0) {
31809
+ throw new Error("useSidebar must be used within a SidebarProvider");
31810
+ }
31811
+ return context;
31812
+ };
31813
+ const AppsSidebar = ({
31814
+ isOpen,
31815
+ onClose
31816
+ }) => {
31817
+ const theme = useTheme();
31818
+ const navigate = reactRouterDom.useNavigate();
31819
+ const allApps = useApps();
31820
+ const dispatch = useAppDispatch();
31821
+ const currentApp = useActiveSidebar();
31822
+ const { setActiveExpandMenu } = useSidebar();
31823
+ const { palette } = useTheme();
31824
+ if (!isOpen) return null;
31825
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
31826
+ /* @__PURE__ */ jsxRuntime.jsx(
31827
+ material.Box,
31828
+ {
31829
+ onClick: onClose,
31830
+ sx: {
31831
+ position: "fixed",
31832
+ top: 0,
31833
+ left: 0,
31834
+ right: 0,
31835
+ bottom: 0,
31836
+ backgroundColor: palette.action.selected,
31837
+ zIndex: 100
31838
+ }
31839
+ }
31840
+ ),
31841
+ /* @__PURE__ */ jsxRuntime.jsxs(
31842
+ MotionBox,
31843
+ {
31844
+ preset: "fadeInLeft",
31845
+ sx: {
31846
+ position: "fixed",
31847
+ top: 0,
31848
+ left: 0,
31849
+ height: "100vh",
31850
+ backgroundColor: theme.palette.common.white,
31851
+ zIndex: 100,
31852
+ padding: PADDING_GAP_LAYOUT,
31853
+ gap: PADDING_GAP_ITEM,
31854
+ display: "flex",
31855
+ flexDirection: "column"
31856
+ },
31857
+ children: [
31858
+ /* @__PURE__ */ jsxRuntime.jsxs(
31859
+ material.Box,
31860
+ {
31861
+ sx: {
31862
+ display: "flex",
31863
+ justifyContent: "space-between",
31864
+ alignItems: "center"
31865
+ },
31866
+ children: [
31867
+ /* @__PURE__ */ jsxRuntime.jsx(
31868
+ material.IconButton,
31869
+ {
31870
+ onClick: onClose,
31871
+ sx: {
31872
+ color: theme.palette.grey[600],
31873
+ "&:hover": { backgroundColor: theme.palette.grey[100] }
31874
+ },
31875
+ children: /* @__PURE__ */ jsxRuntime.jsx(IconElement, { icon: "close" })
31876
+ }
31877
+ ),
31878
+ /* @__PURE__ */ jsxRuntime.jsx(
31879
+ material.IconButton,
31880
+ {
31881
+ sx: {
31882
+ color: theme.palette.grey[600],
31883
+ "&:hover": { backgroundColor: theme.palette.grey[100] }
31884
+ },
31885
+ children: /* @__PURE__ */ jsxRuntime.jsx(
31886
+ IconElement,
31887
+ {
31888
+ icon: "home",
31889
+ onClick: () => {
31890
+ onClose();
31891
+ navigate(PAGE.DASHBOARD.path);
31892
+ }
31893
+ }
31894
+ )
31895
+ }
31896
+ )
31897
+ ]
31898
+ }
31899
+ ),
31900
+ /* @__PURE__ */ jsxRuntime.jsxs(
31901
+ material.Box,
31902
+ {
31903
+ sx: {
31904
+ gap: PADDING_GAP_ITEM,
31905
+ display: "flex",
31906
+ flexDirection: "column"
31907
+ },
31908
+ children: [
31909
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "subtitle2", children: "Workflow Engine" }),
31910
+ /* @__PURE__ */ jsxRuntime.jsx(
31911
+ AppGrid,
31912
+ {
31913
+ apps: allApps.filter(
31914
+ (app2) => app2.category === AppCategory.WORKFLOW
31915
+ ),
31916
+ columns: 4,
31917
+ iconSize: 60,
31918
+ iconRadius: 5.5,
31919
+ gap: PADDING_GAP_ITEM,
31920
+ titleVariant: "body1",
31921
+ captionVariant: "caption",
31922
+ titleColor: theme.palette.grey[800],
31923
+ captionColor: theme.palette.grey[600],
31924
+ selectedAppId: currentApp?.key,
31925
+ onClickItem: async (app2) => {
31926
+ await dispatch(
31927
+ ACTION_ACCOUNT.updateCurrentAccess(app2.key)
31928
+ ).unwrap();
31929
+ setActiveExpandMenu(null);
31930
+ onClose();
31931
+ }
31932
+ }
31933
+ )
31934
+ ]
31935
+ }
31936
+ ),
31937
+ /* @__PURE__ */ jsxRuntime.jsxs(
31938
+ material.Box,
31939
+ {
31940
+ sx: {
31941
+ gap: PADDING_GAP_ITEM,
31942
+ display: "flex",
31943
+ flexDirection: "column"
31944
+ },
31945
+ children: [
31946
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "subtitle2", children: "HRM" }),
31947
+ /* @__PURE__ */ jsxRuntime.jsx(
31948
+ AppGrid,
31949
+ {
31950
+ apps: allApps.filter((app2) => app2.category === AppCategory.HRM),
31951
+ columns: 4,
31952
+ iconSize: 60,
31953
+ iconRadius: 5.5,
31954
+ gap: PADDING_GAP_ITEM,
31955
+ titleVariant: "body1",
31956
+ captionVariant: "caption",
31957
+ titleColor: theme.palette.grey[800],
31958
+ captionColor: theme.palette.grey[600],
31959
+ selectedAppId: currentApp?.key,
31960
+ onClickItem: async (app2) => {
31961
+ await dispatch(
31962
+ ACTION_ACCOUNT.updateCurrentAccess(app2.key)
31963
+ ).unwrap();
31964
+ setActiveExpandMenu(null);
31965
+ onClose();
31966
+ }
31967
+ }
31968
+ )
31969
+ ]
31970
+ }
31971
+ ),
31972
+ /* @__PURE__ */ jsxRuntime.jsxs(
31973
+ material.Box,
31974
+ {
31975
+ sx: {
31976
+ gap: PADDING_GAP_ITEM,
31977
+ display: "flex",
31978
+ flexDirection: "column"
31979
+ },
31980
+ children: [
31981
+ /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "subtitle2", children: "Platform Info" }),
31982
+ /* @__PURE__ */ jsxRuntime.jsx(
31983
+ AppGrid,
31984
+ {
31985
+ apps: allApps.filter(
31986
+ (app2) => app2.category === AppCategory.PLATFORM_INFO
31987
+ ),
31988
+ columns: 4,
31989
+ iconSize: 60,
31990
+ iconRadius: 5.5,
31991
+ gap: PADDING_GAP_ITEM,
31992
+ titleVariant: "body1",
31993
+ captionVariant: "caption",
31994
+ titleColor: theme.palette.grey[800],
31995
+ captionColor: theme.palette.grey[600],
31996
+ selectedAppId: currentApp?.key,
31997
+ onClickItem: async (app2) => {
31998
+ await dispatch(
31999
+ ACTION_ACCOUNT.updateCurrentAccess(app2.key)
32000
+ ).unwrap();
32001
+ setActiveExpandMenu(null);
32002
+ onClose();
32003
+ }
32004
+ }
32005
+ )
32006
+ ]
32007
+ }
32008
+ )
32009
+ ]
32010
+ }
32011
+ )
32012
+ ] });
32013
+ };
32090
32014
  const TypographyContentCaption = ({
32091
32015
  content,
32092
32016
  caption,
@@ -32094,8 +32018,8 @@ const TypographyContentCaption = ({
32094
32018
  sxContent,
32095
32019
  sxCaption
32096
32020
  }) => {
32097
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(material.Stack, { gap: 0, sx: { ...sx }, children: [
32098
- /* @__PURE__ */ jsxRuntimeExports.jsx(
32021
+ return /* @__PURE__ */ jsxRuntime.jsxs(material.Stack, { gap: 0, sx: { ...sx }, children: [
32022
+ /* @__PURE__ */ jsxRuntime.jsx(
32099
32023
  material.Typography,
32100
32024
  {
32101
32025
  sx: {
@@ -32105,7 +32029,7 @@ const TypographyContentCaption = ({
32105
32029
  children: content || "#"
32106
32030
  }
32107
32031
  ),
32108
- caption && /* @__PURE__ */ jsxRuntimeExports.jsx(
32032
+ caption && /* @__PURE__ */ jsxRuntime.jsx(
32109
32033
  material.Typography,
32110
32034
  {
32111
32035
  sx: {
@@ -32133,6 +32057,7 @@ exports.ANIMATION_TIME = ANIMATION_TIME;
32133
32057
  exports.AppCategory = AppCategory;
32134
32058
  exports.AppGrid = AppGrid;
32135
32059
  exports.AppType = AppType;
32060
+ exports.AppsSidebar = AppsSidebar;
32136
32061
  exports.AuthLayout = AuthLayout;
32137
32062
  exports.AuthPage = AuthPage;
32138
32063
  exports.AuthProcess = AuthProcess;
@@ -32336,7 +32261,11 @@ exports.updateAccount = updateAccount$1;
32336
32261
  exports.updateNotification = updateNotification;
32337
32262
  exports.updateNotificationSetting = updateNotificationSetting;
32338
32263
  exports.updateUser = updateUser;
32264
+ exports.useActiveSidebar = useActiveSidebar;
32265
+ exports.useAllApps = useAllApps;
32339
32266
  exports.useApps = useApps;
32267
+ exports.useIsSystemMonitor = useIsSystemMonitor;
32268
+ exports.useSidebarState = useSidebarState;
32340
32269
  exports.useSnackbar = useSnackbar;
32341
32270
  exports.useTagSelector = useTagSelector;
32342
32271
  exports.useUpdateCurrentAccess = useUpdateCurrentAccess;