labsense-ui-kit 1.3.74 → 1.3.76
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.js +192 -74
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +192 -74
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9,6 +9,28 @@ var reactHotToast = require('react-hot-toast');
|
|
|
9
9
|
var reactRouterDom = require('react-router-dom');
|
|
10
10
|
var reactI18next = require('react-i18next');
|
|
11
11
|
|
|
12
|
+
function _arrayLikeToArray(r, a) {
|
|
13
|
+
(null == a || a > r.length) && (a = r.length);
|
|
14
|
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
15
|
+
return n;
|
|
16
|
+
}
|
|
17
|
+
function _createForOfIteratorHelperLoose(r, e) {
|
|
18
|
+
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
19
|
+
if (t) return (t = t.call(r)).next.bind(t);
|
|
20
|
+
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
|
|
21
|
+
t && (r = t);
|
|
22
|
+
var o = 0;
|
|
23
|
+
return function () {
|
|
24
|
+
return o >= r.length ? {
|
|
25
|
+
done: !0
|
|
26
|
+
} : {
|
|
27
|
+
done: !1,
|
|
28
|
+
value: r[o++]
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
33
|
+
}
|
|
12
34
|
function _extends() {
|
|
13
35
|
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
14
36
|
for (var e = 1; e < arguments.length; e++) {
|
|
@@ -21,6 +43,13 @@ function _extends() {
|
|
|
21
43
|
function _taggedTemplateLiteralLoose(e, t) {
|
|
22
44
|
return t || (t = e.slice(0)), e.raw = t, e;
|
|
23
45
|
}
|
|
46
|
+
function _unsupportedIterableToArray(r, a) {
|
|
47
|
+
if (r) {
|
|
48
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
49
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
50
|
+
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
24
53
|
|
|
25
54
|
var Action = function Action(_ref) {
|
|
26
55
|
var size = _ref.size,
|
|
@@ -10739,48 +10768,49 @@ var ProgressBar = function ProgressBar(_ref3) {
|
|
|
10739
10768
|
}));
|
|
10740
10769
|
};
|
|
10741
10770
|
|
|
10742
|
-
var _templateObject$n, _templateObject2$j, _templateObject3$c, _templateObject4$9, _templateObject5$8, _templateObject6$8, _templateObject7$6;
|
|
10743
|
-
var
|
|
10744
|
-
|
|
10745
|
-
|
|
10771
|
+
var _templateObject$n, _templateObject2$j, _templateObject3$c, _templateObject4$9, _templateObject5$8, _templateObject6$8, _templateObject7$6, _templateObject8$5, _templateObject9$5;
|
|
10772
|
+
var MOBILE_BREAKPOINT = '768px';
|
|
10773
|
+
var Overlay = styled__default.div(_templateObject$n || (_templateObject$n = _taggedTemplateLiteralLoose(["\n display: none;\n \n @media (max-width: ", ") {\n display: block;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 997;\n opacity: ", ";\n visibility: ", ";\n transition: opacity 0.3s ease, visibility 0.3s ease;\n }\n"])), MOBILE_BREAKPOINT, function (_ref) {
|
|
10774
|
+
var $isOpen = _ref.$isOpen;
|
|
10775
|
+
return $isOpen ? 1 : 0;
|
|
10776
|
+
}, function (_ref2) {
|
|
10777
|
+
var $isOpen = _ref2.$isOpen;
|
|
10778
|
+
return $isOpen ? 'visible' : 'hidden';
|
|
10779
|
+
});
|
|
10780
|
+
var HamburgerButton = styled__default.button(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteralLoose(["\n display: none;\n \n @media (max-width: ", ") {\n display: flex;\n position: fixed;\n top: 20px;\n left: 20px;\n z-index: 999;\n background: ", ";\n border: none;\n border-radius: 8px;\n padding: 12px;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n transition: transform 0.2s ease;\n\n &:active {\n transform: scale(0.95);\n }\n }\n"])), MOBILE_BREAKPOINT, function (_ref3) {
|
|
10781
|
+
var $background = _ref3.$background,
|
|
10782
|
+
theme = _ref3.theme;
|
|
10746
10783
|
return $background || theme.vms.accent.softBlue;
|
|
10747
10784
|
});
|
|
10748
|
-
var
|
|
10749
|
-
var $
|
|
10750
|
-
|
|
10751
|
-
|
|
10752
|
-
|
|
10753
|
-
|
|
10754
|
-
|
|
10755
|
-
var theme = _ref4.theme;
|
|
10756
|
-
return theme.vms.text.white;
|
|
10757
|
-
}, function (_ref5) {
|
|
10758
|
-
var theme = _ref5.theme;
|
|
10759
|
-
return theme.vms["default"].primary;
|
|
10785
|
+
var SidebarContainer = styled__default.div(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteralLoose(["\n width: 68px;\n max-width: 68px;\n height: 100vh;\n background: ", ";\n transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.5s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n flex-direction: column;\n align-items: start;\n padding: 20px;\n position: fixed;\n left: 0;\n top: 0;\n overflow: hidden;\n z-index: 998;\n justify-content: space-between;\n gap: 24px;\n\n /* Expand on hover */\n &:hover {\n width: max-content;\n max-width: 400px;\n\n /* You can also add a class for children */\n span, .expandable {\n opacity: 1;\n visibility: visible;\n transform: translateX(0);\n }\n }\n\n /* Mobile styles */\n @media (max-width: ", ") {\n transform: translateX(", ");\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n width: 280px;\n max-width: 280px;\n box-shadow: ", ";\n\n /* Always show text on mobile when open */\n span, .expandable {\n opacity: ", ";\n visibility: ", ";\n transform: translateX(0);\n }\n\n /* Disable hover expansion on mobile */\n &:hover {\n width: 280px;\n max-width: 280px;\n }\n }\n"])), function (_ref4) {
|
|
10786
|
+
var $background = _ref4.$background,
|
|
10787
|
+
theme = _ref4.theme;
|
|
10788
|
+
return $background || theme.vms.accent.softBlue;
|
|
10789
|
+
}, MOBILE_BREAKPOINT, function (_ref5) {
|
|
10790
|
+
var $isMobileOpen = _ref5.$isMobileOpen;
|
|
10791
|
+
return $isMobileOpen ? '0' : '-100%';
|
|
10760
10792
|
}, function (_ref6) {
|
|
10761
|
-
var
|
|
10762
|
-
return
|
|
10793
|
+
var $isMobileOpen = _ref6.$isMobileOpen;
|
|
10794
|
+
return $isMobileOpen ? '2px 0 8px rgba(0, 0, 0, 0.15)' : 'none';
|
|
10763
10795
|
}, function (_ref7) {
|
|
10764
|
-
var
|
|
10765
|
-
return
|
|
10796
|
+
var $isMobileOpen = _ref7.$isMobileOpen;
|
|
10797
|
+
return $isMobileOpen ? 1 : 0;
|
|
10766
10798
|
}, function (_ref8) {
|
|
10767
|
-
var
|
|
10768
|
-
return
|
|
10769
|
-
}, function (_ref9) {
|
|
10770
|
-
var theme = _ref9.theme;
|
|
10771
|
-
return theme.vms.text.white;
|
|
10772
|
-
});
|
|
10773
|
-
var IconWrapper$2 = styled__default.div(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteralLoose(["\n background: ", ";\n transition: none;\n padding: 4px;\n border-radius: 4px;\n width: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n"])), function (_ref10) {
|
|
10774
|
-
var $selected = _ref10.$selected,
|
|
10775
|
-
theme = _ref10.theme;
|
|
10776
|
-
return $selected ? theme.vms["default"].primary : theme.vms["default"].tertiary;
|
|
10799
|
+
var $isMobileOpen = _ref8.$isMobileOpen;
|
|
10800
|
+
return $isMobileOpen ? 'visible' : 'hidden';
|
|
10777
10801
|
});
|
|
10778
|
-
var
|
|
10802
|
+
var SidebarLink = styled__default(reactRouterDom.NavLink)(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n height: 28px;\n width: 100%;\n gap: 10px;\n cursor: pointer;\n border-radius: 4px;\n text-decoration: none;\n transition: none;\n padding: ", ";\n color: ", ";\n\n /* Hover state */\n &:hover {\n color: ", ";\n background: ", ";\n \n /* Make icons white on hover */\n svg {\n color: ", " !important;\n transition: none;\n }\n }\n\n /* Active link state */\n &.active {\n color: ", ";\n background: ", ";\n \n /* Make icons white when active */\n svg {\n color: ", " !important;\n transition: none;\n }\n }\n"])), function (_ref9) {
|
|
10803
|
+
var $padding = _ref9.$padding;
|
|
10804
|
+
return $padding;
|
|
10805
|
+
}, function (_ref10) {
|
|
10806
|
+
var theme = _ref10.theme;
|
|
10807
|
+
return theme.vms.text.medium;
|
|
10808
|
+
}, function (_ref11) {
|
|
10779
10809
|
var theme = _ref11.theme;
|
|
10780
10810
|
return theme.vms.text.white;
|
|
10781
10811
|
}, function (_ref12) {
|
|
10782
10812
|
var theme = _ref12.theme;
|
|
10783
|
-
return theme.vms.
|
|
10813
|
+
return theme.vms["default"].primary;
|
|
10784
10814
|
}, function (_ref13) {
|
|
10785
10815
|
var theme = _ref13.theme;
|
|
10786
10816
|
return theme.vms.text.white;
|
|
@@ -10789,37 +10819,68 @@ var StyledContainer = styled__default(Container)(_templateObject4$9 || (_templat
|
|
|
10789
10819
|
return theme.vms.text.white;
|
|
10790
10820
|
}, function (_ref15) {
|
|
10791
10821
|
var theme = _ref15.theme;
|
|
10822
|
+
return theme.vms["default"].primary;
|
|
10823
|
+
}, function (_ref16) {
|
|
10824
|
+
var theme = _ref16.theme;
|
|
10825
|
+
return theme.vms.text.white;
|
|
10826
|
+
});
|
|
10827
|
+
var IconWrapper$2 = styled__default.div(_templateObject5$8 || (_templateObject5$8 = _taggedTemplateLiteralLoose(["\n background: ", ";\n transition: none;\n padding: 4px;\n border-radius: 4px;\n width: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n"])), function (_ref17) {
|
|
10828
|
+
var $selected = _ref17.$selected,
|
|
10829
|
+
theme = _ref17.theme;
|
|
10830
|
+
return $selected ? theme.vms["default"].primary : theme.vms["default"].tertiary;
|
|
10831
|
+
});
|
|
10832
|
+
var StyledContainer = styled__default(Container)(_templateObject6$8 || (_templateObject6$8 = _taggedTemplateLiteralLoose(["\n transition: none;\n\n svg {\n transition: none;\n }\n\n /* Parent hover / active */\n &:hover,\n &.active {\n svg {\n color: ", " !important;\n }\n }\n\n /* 2nd child reacts ONLY when parent is hovered */\n &:hover > div:nth-child(2) {\n svg {\n color: ", " !important;\n\n path {\n stroke: ", " !important;\n }\n }\n }\n\n /* Default state for 2nd child */\n > div:nth-child(2) {\n svg {\n color: ", " !important;\n\n path {\n stroke: ", " !important;\n }\n }\n }\n"])), function (_ref18) {
|
|
10833
|
+
var theme = _ref18.theme;
|
|
10834
|
+
return theme.vms.text.white;
|
|
10835
|
+
}, function (_ref19) {
|
|
10836
|
+
var theme = _ref19.theme;
|
|
10837
|
+
return theme.vms.text.white;
|
|
10838
|
+
}, function (_ref20) {
|
|
10839
|
+
var theme = _ref20.theme;
|
|
10840
|
+
return theme.vms.text.white;
|
|
10841
|
+
}, function (_ref21) {
|
|
10842
|
+
var theme = _ref21.theme;
|
|
10843
|
+
return theme.vms.text.white;
|
|
10844
|
+
}, function (_ref22) {
|
|
10845
|
+
var theme = _ref22.theme;
|
|
10792
10846
|
return theme.vms.text.medium;
|
|
10793
10847
|
});
|
|
10794
|
-
var Logo = styled__default.div(
|
|
10795
|
-
var TextContainer = styled__default.span(
|
|
10796
|
-
var $padding =
|
|
10848
|
+
var Logo = styled__default.div(_templateObject7$6 || (_templateObject7$6 = _taggedTemplateLiteralLoose(["\n transition: none;\n display: flex;\n width: 100%;\n min-width: max-content;\n height: 32px;\n align-items: center;\n justify-content: center;\n gap: 10px;\n"])));
|
|
10849
|
+
var TextContainer = styled__default.span(_templateObject8$5 || (_templateObject8$5 = _taggedTemplateLiteralLoose(["\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n transform: translateX(-10px);\n transition: all 0.3s ease;\n padding: ", ";\n font-size: ", ";\n font-weight: ", ";\n\n ", ":hover & {\n opacity: 1;\n visibility: visible;\n transform: translateX(0);\n }\n\n /* Mobile: Always visible when sidebar is open */\n @media (max-width: ", ") {\n opacity: 1;\n visibility: visible;\n transform: translateX(0);\n }\n"])), function (_ref23) {
|
|
10850
|
+
var $padding = _ref23.$padding;
|
|
10797
10851
|
return $padding;
|
|
10798
|
-
}, function (
|
|
10799
|
-
var $fontSize =
|
|
10852
|
+
}, function (_ref24) {
|
|
10853
|
+
var $fontSize = _ref24.$fontSize;
|
|
10800
10854
|
return $fontSize || '20px';
|
|
10801
|
-
}, function (
|
|
10802
|
-
var $fontWeight =
|
|
10855
|
+
}, function (_ref25) {
|
|
10856
|
+
var $fontWeight = _ref25.$fontWeight;
|
|
10803
10857
|
return $fontWeight || '500';
|
|
10804
|
-
}, SidebarContainer);
|
|
10805
|
-
var NotificationBadge = styled__default.div(
|
|
10806
|
-
var $position =
|
|
10858
|
+
}, SidebarContainer, MOBILE_BREAKPOINT);
|
|
10859
|
+
var NotificationBadge = styled__default.div(_templateObject9$5 || (_templateObject9$5 = _taggedTemplateLiteralLoose(["\n position: ", ";\n // top: -4px;\n // right: 4px;\n background: red;\n color: white;\n font-size: 10px;\n font-weight: bold;\n border-radius: 50%;\n padding: 2px 5px;\n min-width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n width: max-content;\n"])), function (_ref26) {
|
|
10860
|
+
var $position = _ref26.$position;
|
|
10807
10861
|
return $position || 'absolute';
|
|
10808
10862
|
});
|
|
10809
|
-
var Sidebar = function Sidebar(
|
|
10810
|
-
var logo =
|
|
10811
|
-
content =
|
|
10812
|
-
background =
|
|
10813
|
-
ProfileContent =
|
|
10814
|
-
|
|
10815
|
-
isExpanded =
|
|
10816
|
-
setIsExpanded =
|
|
10863
|
+
var Sidebar = function Sidebar(_ref27) {
|
|
10864
|
+
var logo = _ref27.logo,
|
|
10865
|
+
content = _ref27.content,
|
|
10866
|
+
background = _ref27.background,
|
|
10867
|
+
ProfileContent = _ref27.ProfileContent,
|
|
10868
|
+
_ref27$isExpanded = _ref27.isExpanded,
|
|
10869
|
+
isExpanded = _ref27$isExpanded === void 0 ? false : _ref27$isExpanded,
|
|
10870
|
+
setIsExpanded = _ref27.setIsExpanded;
|
|
10817
10871
|
var location = reactRouterDom.useLocation();
|
|
10818
10872
|
var _useState = React.useState({}),
|
|
10819
10873
|
openMenus = _useState[0],
|
|
10820
10874
|
setOpenMenus = _useState[1];
|
|
10875
|
+
var _useState2 = React.useState(false),
|
|
10876
|
+
isMobileOpen = _useState2[0],
|
|
10877
|
+
setIsMobileOpen = _useState2[1];
|
|
10878
|
+
var _useState3 = React.useState(false),
|
|
10879
|
+
isMobile = _useState3[0],
|
|
10880
|
+
setIsMobile = _useState3[1];
|
|
10821
10881
|
var isExpandedRef = React.useRef(isExpanded);
|
|
10822
|
-
var
|
|
10882
|
+
var sidebarRef = React.useRef(null);
|
|
10883
|
+
var _useState4 = React.useState(function () {
|
|
10823
10884
|
var container = document.getElementById('badge-portal-container');
|
|
10824
10885
|
if (!container) {
|
|
10825
10886
|
container = document.createElement('div');
|
|
@@ -10831,16 +10892,39 @@ var Sidebar = function Sidebar(_ref20) {
|
|
|
10831
10892
|
}
|
|
10832
10893
|
return container;
|
|
10833
10894
|
}),
|
|
10834
|
-
badgePortalContainer =
|
|
10895
|
+
badgePortalContainer = _useState4[0];
|
|
10896
|
+
React.useEffect(function () {
|
|
10897
|
+
var checkMobile = function checkMobile() {
|
|
10898
|
+
setIsMobile(window.innerWidth <= 768);
|
|
10899
|
+
};
|
|
10900
|
+
checkMobile();
|
|
10901
|
+
window.addEventListener('resize', checkMobile);
|
|
10902
|
+
return function () {
|
|
10903
|
+
window.removeEventListener('resize', checkMobile);
|
|
10904
|
+
};
|
|
10905
|
+
}, []);
|
|
10835
10906
|
React.useEffect(function () {
|
|
10836
10907
|
isExpandedRef.current = isExpanded;
|
|
10837
10908
|
if (!isExpanded) setOpenMenus({});
|
|
10838
10909
|
}, [isExpanded]);
|
|
10910
|
+
var toggleMobileMenu = React.useCallback(function () {
|
|
10911
|
+
setIsMobileOpen(function (prev) {
|
|
10912
|
+
return !prev;
|
|
10913
|
+
});
|
|
10914
|
+
}, []);
|
|
10915
|
+
var closeMobileMenu = React.useCallback(function () {
|
|
10916
|
+
if (isMobile) {
|
|
10917
|
+
setIsMobileOpen(false);
|
|
10918
|
+
}
|
|
10919
|
+
}, [isMobile]);
|
|
10920
|
+
var handleOverlayClick = React.useCallback(function () {
|
|
10921
|
+
setIsMobileOpen(false);
|
|
10922
|
+
}, []);
|
|
10839
10923
|
var toggleMenu = function toggleMenu(id) {
|
|
10840
10924
|
setOpenMenus(function (prev) {
|
|
10841
|
-
var
|
|
10925
|
+
var _ref28;
|
|
10842
10926
|
var isCurrentlyOpen = !!prev[id];
|
|
10843
|
-
return isCurrentlyOpen ? {} : (
|
|
10927
|
+
return isCurrentlyOpen ? {} : (_ref28 = {}, _ref28[id] = true, _ref28);
|
|
10844
10928
|
});
|
|
10845
10929
|
};
|
|
10846
10930
|
var getTotalNotifications = React.useCallback(function (item) {
|
|
@@ -10865,8 +10949,8 @@ var Sidebar = function Sidebar(_ref20) {
|
|
|
10865
10949
|
return currentBase === getBasePath(child.activeUrl) || currentBase === getBasePath(child.url);
|
|
10866
10950
|
}));
|
|
10867
10951
|
};
|
|
10868
|
-
var ChildLink = function ChildLink(
|
|
10869
|
-
var child =
|
|
10952
|
+
var ChildLink = function ChildLink(_ref29) {
|
|
10953
|
+
var child = _ref29.child;
|
|
10870
10954
|
var themeColors = styled.useTheme();
|
|
10871
10955
|
var location = reactRouterDom.useLocation();
|
|
10872
10956
|
var active = getBasePath(location.pathname) === getBasePath(child.activeUrl) || getBasePath(location.pathname) === getBasePath(child.url);
|
|
@@ -10874,6 +10958,7 @@ var Sidebar = function Sidebar(_ref20) {
|
|
|
10874
10958
|
if (child.url && child.url === location.pathname) {
|
|
10875
10959
|
e.preventDefault();
|
|
10876
10960
|
}
|
|
10961
|
+
closeMobileMenu();
|
|
10877
10962
|
}, [child.url, location.pathname]);
|
|
10878
10963
|
return React__default.createElement(SidebarLink, {
|
|
10879
10964
|
to: child.url || '#',
|
|
@@ -10912,14 +10997,14 @@ var Sidebar = function Sidebar(_ref20) {
|
|
|
10912
10997
|
});
|
|
10913
10998
|
}));
|
|
10914
10999
|
};
|
|
10915
|
-
var SidebarItem = function SidebarItem(
|
|
10916
|
-
var item =
|
|
10917
|
-
isActive =
|
|
10918
|
-
isOpen =
|
|
10919
|
-
hasChildren =
|
|
10920
|
-
isExpanded =
|
|
10921
|
-
onToggle =
|
|
10922
|
-
renderChildLinks =
|
|
11000
|
+
var SidebarItem = function SidebarItem(_ref30) {
|
|
11001
|
+
var item = _ref30.item,
|
|
11002
|
+
isActive = _ref30.isActive,
|
|
11003
|
+
isOpen = _ref30.isOpen,
|
|
11004
|
+
hasChildren = _ref30.hasChildren,
|
|
11005
|
+
isExpanded = _ref30.isExpanded,
|
|
11006
|
+
onToggle = _ref30.onToggle,
|
|
11007
|
+
renderChildLinks = _ref30.renderChildLinks;
|
|
10923
11008
|
var themeColors = styled.useTheme();
|
|
10924
11009
|
var activeClass = isActive ? 'active' : '';
|
|
10925
11010
|
var handleClick = React.useCallback(function () {
|
|
@@ -10984,6 +11069,7 @@ var Sidebar = function Sidebar(_ref20) {
|
|
|
10984
11069
|
if (item.url === location.pathname) {
|
|
10985
11070
|
e.preventDefault();
|
|
10986
11071
|
}
|
|
11072
|
+
closeMobileMenu();
|
|
10987
11073
|
}, [item.url]);
|
|
10988
11074
|
return item.url ? React__default.createElement(SidebarLink, {
|
|
10989
11075
|
to: item.url,
|
|
@@ -11009,8 +11095,30 @@ var Sidebar = function Sidebar(_ref20) {
|
|
|
11009
11095
|
var handleSidebarExpansion = React.useCallback(function (expanded) {
|
|
11010
11096
|
if (isExpandedRef.current !== expanded) {
|
|
11011
11097
|
setIsExpanded(expanded);
|
|
11098
|
+
isExpandedRef.current = expanded;
|
|
11012
11099
|
}
|
|
11013
11100
|
}, [setIsExpanded]);
|
|
11101
|
+
React.useEffect(function () {
|
|
11102
|
+
var sidebar = sidebarRef.current;
|
|
11103
|
+
if (!sidebar) return;
|
|
11104
|
+
if (typeof ResizeObserver === 'undefined') return;
|
|
11105
|
+
if (isMobile) return;
|
|
11106
|
+
var resizeObserver = new ResizeObserver(function (entries) {
|
|
11107
|
+
for (var _iterator = _createForOfIteratorHelperLoose(entries), _step; !(_step = _iterator()).done;) {
|
|
11108
|
+
var entry = _step.value;
|
|
11109
|
+
var width = entry.contentRect.width;
|
|
11110
|
+
if (width > 70) {
|
|
11111
|
+
handleSidebarExpansion(true);
|
|
11112
|
+
} else {
|
|
11113
|
+
handleSidebarExpansion(false);
|
|
11114
|
+
}
|
|
11115
|
+
}
|
|
11116
|
+
});
|
|
11117
|
+
resizeObserver.observe(sidebar);
|
|
11118
|
+
return function () {
|
|
11119
|
+
resizeObserver.disconnect();
|
|
11120
|
+
};
|
|
11121
|
+
}, [handleSidebarExpansion, isMobile]);
|
|
11014
11122
|
React.useEffect(function () {
|
|
11015
11123
|
var updateBadgePositions = function updateBadgePositions() {
|
|
11016
11124
|
content.forEach(function (item) {
|
|
@@ -11031,14 +11139,22 @@ var Sidebar = function Sidebar(_ref20) {
|
|
|
11031
11139
|
window.removeEventListener('resize', updateBadgePositions);
|
|
11032
11140
|
};
|
|
11033
11141
|
}, [content, isExpanded, getTotalNotifications]);
|
|
11034
|
-
|
|
11142
|
+
var themeColors = styled.useTheme();
|
|
11143
|
+
return React__default.createElement(React__default.Fragment, null, React__default.createElement(HamburgerButton, {
|
|
11035
11144
|
"$background": background,
|
|
11036
|
-
|
|
11037
|
-
|
|
11038
|
-
|
|
11039
|
-
|
|
11040
|
-
|
|
11041
|
-
|
|
11145
|
+
onClick: toggleMobileMenu,
|
|
11146
|
+
"aria-label": "Toggle menu"
|
|
11147
|
+
}, React__default.createElement(Icon, {
|
|
11148
|
+
icon: isMobileOpen ? 'X' : 'Hamburger',
|
|
11149
|
+
size: 24,
|
|
11150
|
+
color: themeColors.vms.text.white
|
|
11151
|
+
})), React__default.createElement(Overlay, {
|
|
11152
|
+
"$isOpen": isMobileOpen,
|
|
11153
|
+
onClick: handleOverlayClick
|
|
11154
|
+
}), React__default.createElement(SidebarContainer, {
|
|
11155
|
+
ref: sidebarRef,
|
|
11156
|
+
"$background": background,
|
|
11157
|
+
"$isMobileOpen": isMobileOpen
|
|
11042
11158
|
}, React__default.createElement(Container, {
|
|
11043
11159
|
"$flexDirection": 'column',
|
|
11044
11160
|
"$gap": '28px',
|
|
@@ -11055,7 +11171,9 @@ var Sidebar = function Sidebar(_ref20) {
|
|
|
11055
11171
|
}))), React__default.createElement(Container, {
|
|
11056
11172
|
"$flexDirection": 'column',
|
|
11057
11173
|
"$gap": '16px',
|
|
11058
|
-
"$width": '100%'
|
|
11174
|
+
"$width": '100%',
|
|
11175
|
+
"$overflow": 'auto',
|
|
11176
|
+
"$scrollbarWidth": 'none'
|
|
11059
11177
|
}, content.map(function (item) {
|
|
11060
11178
|
var _item$children3;
|
|
11061
11179
|
var active = isRouteActive(item) || false;
|
|
@@ -11067,13 +11185,13 @@ var Sidebar = function Sidebar(_ref20) {
|
|
|
11067
11185
|
isActive: active,
|
|
11068
11186
|
isOpen: isOpen,
|
|
11069
11187
|
hasChildren: hasChildren,
|
|
11070
|
-
isExpanded: isExpanded,
|
|
11188
|
+
isExpanded: isMobile ? isMobileOpen : isExpanded,
|
|
11071
11189
|
onToggle: function onToggle() {
|
|
11072
11190
|
return toggleMenu(item.id);
|
|
11073
11191
|
},
|
|
11074
11192
|
renderChildLinks: renderChildLinks
|
|
11075
11193
|
});
|
|
11076
|
-
}))), ProfileContent);
|
|
11194
|
+
}))), ProfileContent));
|
|
11077
11195
|
};
|
|
11078
11196
|
|
|
11079
11197
|
var _templateObject$o, _templateObject2$k, _templateObject3$d, _templateObject4$a;
|