@skbkontur/side-menu 3.2.7 → 3.3.0
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/CHANGELOG.md +11 -0
- package/README.md +25 -6
- package/SideMenuDataTids.d.ts +3 -0
- package/SideMenuDataTids.js +7 -1
- package/hooks/useAnimateOnMount.js +9 -6
- package/hooks/useMemoIcon.js +18 -12
- package/index.js +17 -14
- package/internal/themes/SideMenuTheme.d.ts +5 -0
- package/internal/themes/SideMenuTheme.js +22 -10
- package/lib/theming/ThemeHelpers.js +20 -14
- package/lib/theming/ThemeTypes.js +2 -1
- package/lib/utils/memo.js +5 -1
- package/lib/utils/scripts.js +11 -5
- package/package.json +8 -4
- package/src/Navigation.js +21 -18
- package/src/SideMenu/SideMenu.d.ts +2 -0
- package/src/SideMenu/SideMenu.js +147 -113
- package/src/SideMenu/SideMenu.styles.js +31 -28
- package/src/SideMenuAvatar/SideMenuAvatar.js +14 -11
- package/src/SideMenuBody/SideMenuBody.js +21 -18
- package/src/SideMenuBody/SideMenuBody.styles.js +9 -6
- package/src/SideMenuContext.d.ts +3 -0
- package/src/SideMenuContext.js +5 -2
- package/src/SideMenuDivider/SideMenuDivider.js +14 -11
- package/src/SideMenuDivider/SideMenuDivider.styles.js +8 -5
- package/src/SideMenuDropdown/SideMenuDropdown.js +34 -21
- package/src/SideMenuDropdown/SideMenuDropdown.styles.js +12 -9
- package/src/SideMenuFooter/SideMenuFooter.js +24 -21
- package/src/SideMenuFooter/SideMenuFooter.styles.js +10 -7
- package/src/SideMenuHeader/SideMenuHeader.js +29 -26
- package/src/SideMenuHeader/SideMenuHeader.styles.js +12 -9
- package/src/SideMenuItem/SideMenuItem.js +10 -7
- package/src/SideMenuLink/SideMenuLink.js +12 -9
- package/src/SideMenuLink/SideMenuLink.styles.js +7 -4
- package/src/SideMenuNotifications/BellWidget.d.ts +11 -0
- package/src/SideMenuNotifications/BellWidget.js +87 -0
- package/src/SideMenuNotifications/BellWidgetError.d.ts +9 -0
- package/src/SideMenuNotifications/BellWidgetError.js +26 -0
- package/src/SideMenuNotifications/BellWidgetView.styles.d.ts +10 -0
- package/src/SideMenuNotifications/BellWidgetView.styles.js +31 -0
- package/src/SideMenuNotifications/SideMenuNotifications.d.ts +41 -0
- package/src/SideMenuNotifications/SideMenuNotifications.js +49 -0
- package/src/SideMenuNotifications/SideMenuNotifications.md +75 -0
- package/src/SideMenuNotifications/utils/getMarker.d.ts +1 -0
- package/src/SideMenuNotifications/utils/getMarker.js +12 -0
- package/src/SideMenuNotifications/utils/getNotificationsErrorMessages.d.ts +6 -0
- package/src/SideMenuNotifications/utils/getNotificationsErrorMessages.js +19 -0
- package/src/SideMenuOrganisations/SideMenuOrganisations.js +10 -7
- package/src/SideMenuSubItem/SideMenuSubItem.js +11 -8
- package/src/SideMenuSubItemHeader/SideMenuSubItemHeader.js +18 -15
- package/src/SideMenuSubItemHeader/SideMenuSubItemHeader.styles.js +9 -6
- package/src/SideMenuSubLink/SideMenuSubLink.js +10 -7
- package/src/Tree.js +12 -9
- package/src/internal/BackButton.js +14 -11
- package/src/internal/Backdrop.js +15 -11
- package/src/internal/Backdrop.styles.js +8 -5
- package/src/internal/Burger.js +17 -12
- package/src/internal/Burger.styles.js +9 -6
- package/src/internal/ClickableElement.js +47 -44
- package/src/internal/ClickableElement.styles.js +15 -12
- package/src/internal/InnerSubMenu.js +14 -10
- package/src/internal/ItemContent/Caption.js +34 -31
- package/src/internal/ItemContent/Caption.styles.js +23 -20
- package/src/internal/ItemContent/Icon.js +25 -20
- package/src/internal/ItemContent/Icon.styles.js +14 -11
- package/src/internal/ItemContent/ItemContent.d.ts +1 -1
- package/src/internal/ItemContent/ItemContent.js +36 -33
- package/src/internal/ItemContent/ItemContent.styles.js +18 -15
- package/src/internal/ItemContent/Marker.js +21 -16
- package/src/internal/ItemContent/Marker.styles.js +15 -12
- package/src/internal/NestedMenu.js +19 -15
- package/src/internal/NestedMenu.styles.js +8 -5
- package/src/internal/RightBorder.js +22 -18
- package/src/internal/RightBorder.styles.js +9 -6
- package/src/internal/SeparatedSubMenu.js +40 -37
- package/src/internal/SeparatedSubMenu.styles.js +16 -13
- package/src/internal/SideMenuLogotype.js +34 -31
- package/src/internal/SideMenuLogotype.styles.js +17 -14
- package/src/internal/SubMenu.js +15 -11
package/src/SideMenu/SideMenu.js
CHANGED
|
@@ -1,73 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
var
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SideMenu = exports.burgerTransitionDuration = exports.transitionDuration = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var Emotion_1 = require("@skbkontur/react-ui/lib/theming/Emotion");
|
|
7
|
+
var client_1 = require("@skbkontur/react-ui/lib/client");
|
|
8
|
+
var ThemeContext_1 = require("@skbkontur/react-ui/lib/theming/ThemeContext");
|
|
9
|
+
var react_ui_1 = require("@skbkontur/react-ui");
|
|
10
|
+
var RenderLayer_1 = require("@skbkontur/react-ui/internal/RenderLayer");
|
|
11
|
+
var ZIndex_1 = require("@skbkontur/react-ui/internal/ZIndex");
|
|
12
|
+
var utils_1 = require("@skbkontur/react-ui/lib/utils");
|
|
13
|
+
var SideMenuOrganisations_1 = require("../SideMenuOrganisations/SideMenuOrganisations");
|
|
14
|
+
var SideMenuNotifications_1 = require("../SideMenuNotifications/SideMenuNotifications");
|
|
15
|
+
var SideMenuContext_1 = require("../SideMenuContext");
|
|
16
|
+
var SideMenuBody_1 = require("../SideMenuBody/SideMenuBody");
|
|
17
|
+
var SideMenuFooter_1 = require("../SideMenuFooter/SideMenuFooter");
|
|
18
|
+
var SideMenuHeader_1 = require("../SideMenuHeader/SideMenuHeader");
|
|
19
|
+
var SideMenuItem_1 = require("../SideMenuItem/SideMenuItem");
|
|
20
|
+
var SideMenuAvatar_1 = require("../SideMenuAvatar/SideMenuAvatar");
|
|
21
|
+
var SideMenuSubItem_1 = require("../SideMenuSubItem/SideMenuSubItem");
|
|
22
|
+
var SideMenuDivider_1 = require("../SideMenuDivider/SideMenuDivider");
|
|
23
|
+
var SideMenuSubItemHeader_1 = require("../SideMenuSubItemHeader/SideMenuSubItemHeader");
|
|
24
|
+
var RightBorder_1 = require("../internal/RightBorder");
|
|
25
|
+
var SideMenuDropdown_1 = require("../SideMenuDropdown/SideMenuDropdown");
|
|
26
|
+
var SideMenuLink_1 = require("../SideMenuLink/SideMenuLink");
|
|
27
|
+
var SideMenuSubLink_1 = require("../SideMenuSubLink/SideMenuSubLink");
|
|
28
|
+
var Backdrop_1 = require("../internal/Backdrop");
|
|
29
|
+
var scripts_1 = require("../../lib/utils/scripts");
|
|
30
|
+
var SideMenuDataTids_1 = require("../../SideMenuDataTids");
|
|
31
|
+
var useAnimateOnMount_1 = require("../../hooks/useAnimateOnMount");
|
|
32
|
+
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
33
|
+
var Navigation_1 = require("../Navigation");
|
|
34
|
+
var SideMenu_styles_1 = require("./SideMenu.styles");
|
|
35
|
+
exports.transitionDuration = 300; //ms
|
|
36
|
+
exports.burgerTransitionDuration = (exports.transitionDuration * 2) / 3;
|
|
37
|
+
var SideMenuInner = (0, react_1.forwardRef)(function (_a, ref) {
|
|
34
38
|
var _b, _c, _d, _e;
|
|
35
39
|
var _f, _g;
|
|
36
|
-
var children = _a.children, value = _a.value, activeItem = _a.activeItem, _h = _a.size, size = _h === void 0 ? 'small' : _h, _j = _a.isSeparatedMenu, isSeparatedMenu = _j === void 0 ? false : _j, className = _a.className, _k = _a.disableSwipe, disableSwipe = _k === void 0 ? false : _k, _l = _a.disableCollapsing, disableCollapsing = _l === void 0 ? false : _l, desktopMediaQuery = _a.desktopMediaQuery, narrowDesktopMediaQuery = _a.narrowDesktopMediaQuery, tabletMediaQuery = _a.tabletMediaQuery, mobileMediaQuery = _a.mobileMediaQuery, _m = _a.showScrollBar, showScrollBar = _m === void 0 ? 'hover' : _m, isOpen = _a.isOpen, isPinned = _a.isPinned, onValueChange = _a.onValueChange, onActiveItemChange = _a.onActiveItemChange, onOpen = _a.onOpen, onClose = _a.onClose, onPinnedValueChange = _a.onPinnedValueChange, rest = __rest(_a, ["children", "value", "activeItem", "size", "isSeparatedMenu", "className", "disableSwipe", "disableCollapsing", "desktopMediaQuery", "narrowDesktopMediaQuery", "tabletMediaQuery", "mobileMediaQuery", "showScrollBar", "isOpen", "isPinned", "onValueChange", "onActiveItemChange", "onOpen", "onClose", "onPinnedValueChange"]);
|
|
37
|
-
var transitionTimer = useRef(null);
|
|
38
|
-
var timerScrollbar = useRef(null);
|
|
39
|
-
var sideMenuRef = useRef(null);
|
|
40
|
-
var contentWrapperRef = useRef(null);
|
|
41
|
-
var scrollContainerRef = useRef(null);
|
|
42
|
-
var navigation = useRef(null);
|
|
43
|
-
var theme = getSideMenuTheme(useContext(ThemeContext));
|
|
40
|
+
var children = _a.children, value = _a.value, activeItem = _a.activeItem, _h = _a.size, size = _h === void 0 ? 'small' : _h, _j = _a.isSeparatedMenu, isSeparatedMenu = _j === void 0 ? false : _j, className = _a.className, _k = _a.disableSwipe, disableSwipe = _k === void 0 ? false : _k, _l = _a.disableCollapsing, disableCollapsing = _l === void 0 ? false : _l, desktopMediaQuery = _a.desktopMediaQuery, narrowDesktopMediaQuery = _a.narrowDesktopMediaQuery, tabletMediaQuery = _a.tabletMediaQuery, mobileMediaQuery = _a.mobileMediaQuery, _m = _a.showScrollBar, showScrollBar = _m === void 0 ? 'hover' : _m, isOpen = _a.isOpen, isPinned = _a.isPinned, onValueChange = _a.onValueChange, onActiveItemChange = _a.onActiveItemChange, onOpen = _a.onOpen, onClose = _a.onClose, onPinnedValueChange = _a.onPinnedValueChange, rest = tslib_1.__rest(_a, ["children", "value", "activeItem", "size", "isSeparatedMenu", "className", "disableSwipe", "disableCollapsing", "desktopMediaQuery", "narrowDesktopMediaQuery", "tabletMediaQuery", "mobileMediaQuery", "showScrollBar", "isOpen", "isPinned", "onValueChange", "onActiveItemChange", "onOpen", "onClose", "onPinnedValueChange"]);
|
|
41
|
+
var transitionTimer = (0, react_1.useRef)(null);
|
|
42
|
+
var timerScrollbar = (0, react_1.useRef)(null);
|
|
43
|
+
var sideMenuRef = (0, react_1.useRef)(null);
|
|
44
|
+
var contentWrapperRef = (0, react_1.useRef)(null);
|
|
45
|
+
var scrollContainerRef = (0, react_1.useRef)(null);
|
|
46
|
+
var navigation = (0, react_1.useRef)(null);
|
|
47
|
+
var theme = (0, ThemeHelpers_1.getSideMenuTheme)((0, react_1.useContext)(ThemeContext_1.ThemeContext));
|
|
44
48
|
var customMediaQueries = {
|
|
45
49
|
isMobileQuery: mobileMediaQuery || theme.sideMenuMobileMediaQuery,
|
|
46
50
|
isTabletQuery: tabletMediaQuery || theme.sideMenuTabletMediaQuery,
|
|
47
51
|
isNarrowDesktopQuery: narrowDesktopMediaQuery || theme.sideMenuNarrowDesktopMediaQuery,
|
|
48
52
|
isDesktopQuery: desktopMediaQuery || theme.sideMenuDesktopMediaQuery,
|
|
49
53
|
};
|
|
50
|
-
var _o = useResponsiveLayout({
|
|
54
|
+
var _o = (0, react_ui_1.useResponsiveLayout)({
|
|
51
55
|
customMediaQueries: customMediaQueries,
|
|
52
56
|
}), isMobileQuery = _o.isMobileQuery, isTabletQuery = _o.isTabletQuery, isNarrowDesktopQuery = _o.isNarrowDesktopQuery, isDesktopQuery = _o.isDesktopQuery;
|
|
53
57
|
var isNarrowDesktop = isNarrowDesktopQuery && !isDesktopQuery;
|
|
54
58
|
var isTablet = isTabletQuery && !isNarrowDesktopQuery;
|
|
55
59
|
var isMobile = isMobileQuery && !isTabletQuery;
|
|
56
60
|
var isTabletOrMobile = isTablet || isMobile;
|
|
57
|
-
var isTouchScreen = isTouchDevice() || isMobile || isTablet;
|
|
61
|
+
var isTouchScreen = (0, scripts_1.isTouchDevice)() || isMobile || isTablet;
|
|
58
62
|
var manual = isOpen !== undefined;
|
|
59
|
-
var _p = __read(useState(isDesktopQuery && !isPinned), 2), isOpened = _p[0], setIsOpened = _p[1];
|
|
60
|
-
var _q = __read(useState(false), 2), isBeingTransitioned = _q[0], setIsBeingTransitioned = _q[1];
|
|
61
|
-
var _r = __read(useState(value !== null && value !== void 0 ? value : activeItem), 2), activeMenuItem = _r[0], setActiveMenuItem = _r[1];
|
|
62
|
-
var _s = __read(useState(false), 2), isSeparatedMenuShown = _s[0], setIsSeparatedMenuShown = _s[1];
|
|
63
|
-
var _t = __read(useState(true), 2), isMouseOutside = _t[0], setIsMouseOutside = _t[1];
|
|
64
|
-
var _u = __read(useState('top'), 2), scrollState = _u[0], setScrollState = _u[1];
|
|
65
|
-
var _v = __read(useState(false), 2), hasScrollBar = _v[0], setHasScrollBar = _v[1];
|
|
66
|
-
var _w = __read(useState(0), 2), mousePositionX = _w[0], setMousePositionX = _w[1];
|
|
67
|
-
var _x = __read(useState(0), 2), headerHeight = _x[0], setHeaderHeight = _x[1];
|
|
68
|
-
var _y = __read(useState(isNarrowDesktop || (isDesktopQuery && isPinned)), 2), isCollapsable = _y[0], setIsCollapsable = _y[1];
|
|
69
|
-
var _z = __read(useState(0), 2), leftPosition = _z[0], setLeftPosition = _z[1];
|
|
70
|
-
var _0 = __read(useState(false), 2), isHovered = _0[0], setIsHovered = _0[1];
|
|
63
|
+
var _p = tslib_1.__read((0, react_1.useState)(isDesktopQuery && !isPinned), 2), isOpened = _p[0], setIsOpened = _p[1];
|
|
64
|
+
var _q = tslib_1.__read((0, react_1.useState)(false), 2), isBeingTransitioned = _q[0], setIsBeingTransitioned = _q[1];
|
|
65
|
+
var _r = tslib_1.__read((0, react_1.useState)(value !== null && value !== void 0 ? value : activeItem), 2), activeMenuItem = _r[0], setActiveMenuItem = _r[1];
|
|
66
|
+
var _s = tslib_1.__read((0, react_1.useState)(false), 2), isSeparatedMenuShown = _s[0], setIsSeparatedMenuShown = _s[1];
|
|
67
|
+
var _t = tslib_1.__read((0, react_1.useState)(true), 2), isMouseOutside = _t[0], setIsMouseOutside = _t[1];
|
|
68
|
+
var _u = tslib_1.__read((0, react_1.useState)('top'), 2), scrollState = _u[0], setScrollState = _u[1];
|
|
69
|
+
var _v = tslib_1.__read((0, react_1.useState)(false), 2), hasScrollBar = _v[0], setHasScrollBar = _v[1];
|
|
70
|
+
var _w = tslib_1.__read((0, react_1.useState)(0), 2), mousePositionX = _w[0], setMousePositionX = _w[1];
|
|
71
|
+
var _x = tslib_1.__read((0, react_1.useState)(0), 2), headerHeight = _x[0], setHeaderHeight = _x[1];
|
|
72
|
+
var _y = tslib_1.__read((0, react_1.useState)(isNarrowDesktop || (isDesktopQuery && isPinned)), 2), isCollapsable = _y[0], setIsCollapsable = _y[1];
|
|
73
|
+
var _z = tslib_1.__read((0, react_1.useState)(0), 2), leftPosition = _z[0], setLeftPosition = _z[1];
|
|
74
|
+
var _0 = tslib_1.__read((0, react_1.useState)(false), 2), isHovered = _0[0], setIsHovered = _0[1];
|
|
71
75
|
var switchActiveMenuItem = function (id) {
|
|
72
76
|
if (id !== value && id !== activeItem) {
|
|
73
77
|
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(id);
|
|
@@ -75,10 +79,10 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
75
79
|
setActiveMenuItem(id);
|
|
76
80
|
}
|
|
77
81
|
};
|
|
78
|
-
useEffect(function () {
|
|
82
|
+
(0, react_1.useEffect)(function () {
|
|
79
83
|
var _a;
|
|
80
84
|
setLeftPosition(((_a = sideMenuRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().left) || 0);
|
|
81
|
-
navigation.current = new MenuNavigation({
|
|
85
|
+
navigation.current = new Navigation_1.MenuNavigation({
|
|
82
86
|
rootRef: sideMenuRef,
|
|
83
87
|
activeMenuItem: activeMenuItem,
|
|
84
88
|
setActiveMenuItem: switchActiveMenuItem,
|
|
@@ -96,7 +100,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
96
100
|
}
|
|
97
101
|
};
|
|
98
102
|
}, []);
|
|
99
|
-
useEffect(function () {
|
|
103
|
+
(0, react_1.useEffect)(function () {
|
|
100
104
|
if (isMobile && isSeparatedMenuShown) {
|
|
101
105
|
return;
|
|
102
106
|
}
|
|
@@ -114,7 +118,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
114
118
|
clearTimeout(timerScrollbar.current);
|
|
115
119
|
};
|
|
116
120
|
});
|
|
117
|
-
useEffect(function () {
|
|
121
|
+
(0, react_1.useEffect)(function () {
|
|
118
122
|
isDesktopQuery && setIsOpened(!isPinned);
|
|
119
123
|
}, [isPinned, isDesktopQuery]);
|
|
120
124
|
var handleIsOpened = function (newIsOpened, shouldSetState) {
|
|
@@ -129,7 +133,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
129
133
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
130
134
|
}
|
|
131
135
|
};
|
|
132
|
-
useEffect(function () {
|
|
136
|
+
(0, react_1.useEffect)(function () {
|
|
133
137
|
if (isDesktopQuery && !isPinned) {
|
|
134
138
|
setIsOpened(true);
|
|
135
139
|
setIsCollapsable(false);
|
|
@@ -145,19 +149,19 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
145
149
|
}
|
|
146
150
|
}
|
|
147
151
|
}, [isNarrowDesktop, isDesktopQuery, isTablet, isMobile, isPinned]);
|
|
148
|
-
useEffect(function () {
|
|
152
|
+
(0, react_1.useEffect)(function () {
|
|
149
153
|
var _a;
|
|
150
154
|
!activeItem && ((_a = navigation.current) === null || _a === void 0 ? void 0 : _a.switchActiveMenuItem(value));
|
|
151
155
|
}, [value, (_f = navigation.current) === null || _f === void 0 ? void 0 : _f.navigationTree]);
|
|
152
|
-
useEffect(function () {
|
|
156
|
+
(0, react_1.useEffect)(function () {
|
|
153
157
|
var _a;
|
|
154
158
|
!value && ((_a = navigation.current) === null || _a === void 0 ? void 0 : _a.switchActiveMenuItem(activeItem));
|
|
155
159
|
}, [activeItem, (_g = navigation.current) === null || _g === void 0 ? void 0 : _g.navigationTree]);
|
|
156
|
-
useEffect(function () {
|
|
160
|
+
(0, react_1.useEffect)(function () {
|
|
157
161
|
var _a;
|
|
158
162
|
(_a = navigation.current) === null || _a === void 0 ? void 0 : _a.switchIsSeparatedMenu(isSeparatedMenu);
|
|
159
163
|
}, [isSeparatedMenu]);
|
|
160
|
-
useEffect(function () {
|
|
164
|
+
(0, react_1.useEffect)(function () {
|
|
161
165
|
handleIsOpened(isOpen, manual);
|
|
162
166
|
}, [isOpen]);
|
|
163
167
|
var showMinimizedRoot = function (newIsMinimized) {
|
|
@@ -169,10 +173,18 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
169
173
|
}
|
|
170
174
|
transitionTimer.current = setTimeout(function () {
|
|
171
175
|
setIsBeingTransitioned(false);
|
|
172
|
-
}, transitionDuration + 200);
|
|
176
|
+
}, exports.transitionDuration + 200);
|
|
173
177
|
}
|
|
174
178
|
};
|
|
175
179
|
var shouldNotOpenOnHover = (isSeparatedMenu && isSeparatedMenuShown && isNarrowDesktop && manual) || isTouchScreen;
|
|
180
|
+
var forceUpdatePositionPopups = (0, react_1.useCallback)(function () {
|
|
181
|
+
// дикие костыли для перерисовки попапов, которые не обновляются автоматически при перерисовке меню
|
|
182
|
+
var fixPopupsPosition = function () { return window.dispatchEvent(new CustomEvent('scroll')); }; // чтобы вызвался LayoutEvent.emit() и перерисовались попапы
|
|
183
|
+
window.setTimeout(function () {
|
|
184
|
+
fixPopupsPosition(); // перерисовка попапов и следом еще раз, чтобы после анимации SideMenu попапы вновь встали на свои места
|
|
185
|
+
window.setTimeout(function () { return fixPopupsPosition(); }, exports.transitionDuration + 100);
|
|
186
|
+
}, 0);
|
|
187
|
+
}, []);
|
|
176
188
|
var handleMouseEnter = function () {
|
|
177
189
|
if (shouldNotOpenOnHover) {
|
|
178
190
|
return;
|
|
@@ -182,6 +194,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
182
194
|
isMouseOutside && showMinimizedRoot(false);
|
|
183
195
|
setIsMouseOutside(false);
|
|
184
196
|
}
|
|
197
|
+
forceUpdatePositionPopups();
|
|
185
198
|
};
|
|
186
199
|
var handleMouseLeave = function () {
|
|
187
200
|
if (shouldNotOpenOnHover) {
|
|
@@ -194,6 +207,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
194
207
|
setIsMouseOutside(true);
|
|
195
208
|
}
|
|
196
209
|
}
|
|
210
|
+
forceUpdatePositionPopups();
|
|
197
211
|
};
|
|
198
212
|
var showMinimizedRootForNarrowDesktop = function (e) {
|
|
199
213
|
if (!isSeparatedMenuShown || !isCollapsable || isTouchScreen) {
|
|
@@ -221,12 +235,12 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
221
235
|
}
|
|
222
236
|
transitionTimer.current = setTimeout(function () {
|
|
223
237
|
setIsBeingTransitioned(false);
|
|
224
|
-
}, burgerTransitionDuration);
|
|
238
|
+
}, exports.burgerTransitionDuration);
|
|
225
239
|
}
|
|
226
240
|
};
|
|
227
241
|
var isSideMenuOverContent = (isCollapsable || isMobile || (isTablet && !isSeparatedMenuShown)) && isOpened;
|
|
228
|
-
var _1 = __read(useAnimateOnMount(!!isTabletOrMobile && !!isOpened, burgerTransitionDuration, {
|
|
229
|
-
opacity: LIGHT_THEME.sidePageBackingBgOpacity,
|
|
242
|
+
var _1 = tslib_1.__read((0, useAnimateOnMount_1.useAnimateOnMount)(!!isTabletOrMobile && !!isOpened, exports.burgerTransitionDuration, {
|
|
243
|
+
opacity: react_ui_1.LIGHT_THEME.sidePageBackingBgOpacity,
|
|
230
244
|
}, {
|
|
231
245
|
opacity: 0,
|
|
232
246
|
}), 2), shouldShowBackdrop = _1[0], backdropStyle = _1[1];
|
|
@@ -245,7 +259,24 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
245
259
|
onPinnedValueChange === null || onPinnedValueChange === void 0 ? void 0 : onPinnedValueChange(!isCollapsable);
|
|
246
260
|
setIsCollapsable(!isCollapsable);
|
|
247
261
|
};
|
|
248
|
-
|
|
262
|
+
var handleDropDownClose = function () {
|
|
263
|
+
if (!isNarrowDesktop) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
var shouldCloseSideMenu = !manual && document.hasFocus();
|
|
267
|
+
setIsMouseOutside(true);
|
|
268
|
+
shouldCloseSideMenu && handleIsOpened(false, !manual);
|
|
269
|
+
setIsCollapsable(true);
|
|
270
|
+
};
|
|
271
|
+
var handleDropDownOpen = function () {
|
|
272
|
+
if (!isNarrowDesktop) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
setIsCollapsable(false);
|
|
276
|
+
handleIsOpened(true, !manual);
|
|
277
|
+
forceUpdatePositionPopups();
|
|
278
|
+
};
|
|
279
|
+
return (react_1.default.createElement(SideMenuContext_1.SideMenuContext.Provider, { value: {
|
|
249
280
|
isOpened: isOpened,
|
|
250
281
|
isCollapsable: isCollapsable,
|
|
251
282
|
toggleIsOpened: function () { return showMenu(!isOpened); },
|
|
@@ -268,58 +299,61 @@ var SideMenuInner = forwardRef(function (_a, ref) {
|
|
|
268
299
|
showScrollBar: showScrollBar,
|
|
269
300
|
sideMenuRef: sideMenuRef,
|
|
270
301
|
navigation: navigation.current,
|
|
302
|
+
handleDropDownOpen: handleDropDownOpen,
|
|
303
|
+
handleDropDownClose: handleDropDownClose,
|
|
271
304
|
} },
|
|
272
|
-
(isOpened || isBeingTransitioned) && isTabletOrMobile &&
|
|
273
|
-
|
|
274
|
-
_b[jsStylesForSideMenu.root()] = true,
|
|
275
|
-
_b[customStyles.rootForTabletsOrMobiles(headerHeight)] = isTabletOrMobile,
|
|
276
|
-
_b[jsStylesForSideMenu.shownRootForTabletsOrMobiles()] = isOpened && isTabletOrMobile,
|
|
277
|
-
_b[jsStylesForSideMenu.transitionedRootForTabletsOrMobiles()] = isBeingTransitioned && isTabletOrMobile,
|
|
278
|
-
_b[jsStylesForSideMenu.rootForNarrowDesktops(theme)] = isCollapsable,
|
|
279
|
-
_b[jsStylesForSideMenu.separatedRootForNarrowDesktops(theme)] = isSeparatedMenuShown && isCollapsable,
|
|
280
|
-
_b[jsStylesForSideMenu.separatedRootForTouchScreens(theme)] = isSeparatedMenuShown && isTouchScreen && isCollapsable,
|
|
281
|
-
_b[jsStylesForSideMenu.separatedRootForDesktops(theme)] = isSeparatedMenuShown && isDesktopQuery && !isCollapsable,
|
|
282
|
-
_b[jsStylesForSideMenu.separatedRootForTouchScreensForDesktops(theme)] = isDesktopQuery && isSeparatedMenuShown && isTouchScreen,
|
|
305
|
+
(isOpened || isBeingTransitioned) && isTabletOrMobile && react_1.default.createElement("div", { style: { height: headerHeight } }),
|
|
306
|
+
react_1.default.createElement(ZIndex_1.ZIndex, { priority: isSideMenuOverflowing ? 8 : 0, className: (0, Emotion_1.cx)((_b = {},
|
|
307
|
+
_b[SideMenu_styles_1.jsStylesForSideMenu.root()] = true,
|
|
308
|
+
_b[SideMenu_styles_1.customStyles.rootForTabletsOrMobiles(headerHeight)] = isTabletOrMobile,
|
|
309
|
+
_b[SideMenu_styles_1.jsStylesForSideMenu.shownRootForTabletsOrMobiles()] = isOpened && isTabletOrMobile,
|
|
310
|
+
_b[SideMenu_styles_1.jsStylesForSideMenu.transitionedRootForTabletsOrMobiles()] = isBeingTransitioned && isTabletOrMobile,
|
|
311
|
+
_b[SideMenu_styles_1.jsStylesForSideMenu.rootForNarrowDesktops(theme)] = isCollapsable,
|
|
312
|
+
_b[SideMenu_styles_1.jsStylesForSideMenu.separatedRootForNarrowDesktops(theme)] = isSeparatedMenuShown && isCollapsable,
|
|
313
|
+
_b[SideMenu_styles_1.jsStylesForSideMenu.separatedRootForTouchScreens(theme)] = isSeparatedMenuShown && isTouchScreen && isCollapsable,
|
|
314
|
+
_b[SideMenu_styles_1.jsStylesForSideMenu.separatedRootForDesktops(theme)] = isSeparatedMenuShown && isDesktopQuery && !isCollapsable,
|
|
315
|
+
_b[SideMenu_styles_1.jsStylesForSideMenu.separatedRootForTouchScreensForDesktops(theme)] = isDesktopQuery && isSeparatedMenuShown && isTouchScreen,
|
|
283
316
|
_b)) },
|
|
284
|
-
|
|
285
|
-
shouldShowBackdrop &&
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
_c[jsStylesForSideMenu.wrapper()] = true,
|
|
289
|
-
_c[jsStylesForSideMenu.wrapperIE()] = isIE11,
|
|
290
|
-
_c[jsStylesForSideMenu.wrapperWithShadow(theme)] = isSideMenuOverContent,
|
|
291
|
-
_c), className), "data-tid": SideMenuDataTids.root, ref: mergeRefs([sideMenuRef, ref]) }, rest, { onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onMouseMove: showMinimizedRootForNarrowDesktop }),
|
|
292
|
-
|
|
293
|
-
_d[jsStylesForSideMenu.container(theme)] = true,
|
|
294
|
-
_d[jsStylesForSideMenu.collapsedContainerForTabletsOrMobiles()] = !isOpened && isTabletOrMobile && !isBeingTransitioned,
|
|
295
|
-
_d[jsStylesForSideMenu.minimizedContainer(theme)] = !isOpened && !isTabletOrMobile,
|
|
296
|
-
_d[jsStylesForSideMenu.containerForTouchScreens(theme)] = isTouchScreen,
|
|
297
|
-
_d[jsStylesForSideMenu.separatedContainerForMobiles(theme)] = isMobile && isSeparatedMenuShown && (isOpened || isBeingTransitioned),
|
|
317
|
+
react_1.default.createElement(react_1.default.Fragment, null,
|
|
318
|
+
shouldShowBackdrop && react_1.default.createElement(Backdrop_1.Backdrop, { style: backdropStyle }),
|
|
319
|
+
react_1.default.createElement(RenderLayer_1.RenderLayer, { onClickOutside: function () { return showMenu(false); } },
|
|
320
|
+
react_1.default.createElement("aside", tslib_1.__assign({ className: (0, Emotion_1.cx)((_c = {},
|
|
321
|
+
_c[SideMenu_styles_1.jsStylesForSideMenu.wrapper()] = true,
|
|
322
|
+
_c[SideMenu_styles_1.jsStylesForSideMenu.wrapperIE()] = client_1.isIE11,
|
|
323
|
+
_c[SideMenu_styles_1.jsStylesForSideMenu.wrapperWithShadow(theme)] = isSideMenuOverContent,
|
|
324
|
+
_c), className), "data-tid": SideMenuDataTids_1.SideMenuDataTids.root, ref: (0, utils_1.mergeRefs)([sideMenuRef, ref !== null && ref !== void 0 ? ref : null]) }, rest, { onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onMouseMove: showMinimizedRootForNarrowDesktop }),
|
|
325
|
+
react_1.default.createElement("div", { className: (0, Emotion_1.cx)((_d = {},
|
|
326
|
+
_d[SideMenu_styles_1.jsStylesForSideMenu.container(theme)] = true,
|
|
327
|
+
_d[SideMenu_styles_1.jsStylesForSideMenu.collapsedContainerForTabletsOrMobiles()] = !isOpened && isTabletOrMobile && !isBeingTransitioned,
|
|
328
|
+
_d[SideMenu_styles_1.jsStylesForSideMenu.minimizedContainer(theme)] = !isOpened && !isTabletOrMobile,
|
|
329
|
+
_d[SideMenu_styles_1.jsStylesForSideMenu.containerForTouchScreens(theme)] = isTouchScreen,
|
|
330
|
+
_d[SideMenu_styles_1.jsStylesForSideMenu.separatedContainerForMobiles(theme)] = isMobile && isSeparatedMenuShown && (isOpened || isBeingTransitioned),
|
|
298
331
|
_d)) },
|
|
299
|
-
|
|
332
|
+
react_1.default.createElement(react_ui_1.ScrollContainer, { onScrollStateChangeY: function (state) {
|
|
300
333
|
setScrollState === null || setScrollState === void 0 ? void 0 : setScrollState(state);
|
|
301
334
|
}, showScrollBar: setScrollBar(), ref: scrollContainerRef },
|
|
302
|
-
|
|
303
|
-
_e[jsStylesForSideMenu.contentWrapper(theme)] = true,
|
|
304
|
-
_e[jsStylesForSideMenu.contentWrapperForTouchScreens(theme)] = isTouchScreen,
|
|
305
|
-
_e[jsStylesForSideMenu.minimizedContentWrapper()] = !isOpened && !isTabletOrMobile,
|
|
335
|
+
react_1.default.createElement("div", { className: (0, Emotion_1.cx)((_e = {},
|
|
336
|
+
_e[SideMenu_styles_1.jsStylesForSideMenu.contentWrapper(theme)] = true,
|
|
337
|
+
_e[SideMenu_styles_1.jsStylesForSideMenu.contentWrapperForTouchScreens(theme)] = isTouchScreen,
|
|
338
|
+
_e[SideMenu_styles_1.jsStylesForSideMenu.minimizedContentWrapper()] = !isOpened && !isTabletOrMobile,
|
|
306
339
|
_e)), ref: contentWrapperRef }, children))),
|
|
307
|
-
!disableSwipe && !disableCollapsing && isDesktopQuery && isOpened && (
|
|
340
|
+
!disableSwipe && !disableCollapsing && isDesktopQuery && isOpened && (react_1.default.createElement(RightBorder_1.RightBorder, { onClick: handleRightBorderClick, showButton: isHovered }))))))));
|
|
308
341
|
});
|
|
309
342
|
SideMenuInner.displayName = 'SideMenu';
|
|
310
343
|
var STATIC_PROPS = {
|
|
311
|
-
Body: SideMenuBody,
|
|
312
|
-
Footer: SideMenuFooter,
|
|
313
|
-
Header: SideMenuHeader,
|
|
314
|
-
Item: SideMenuItem,
|
|
315
|
-
SubItem: SideMenuSubItem,
|
|
316
|
-
SubItemHeader: SideMenuSubItemHeader,
|
|
317
|
-
Avatar: SideMenuAvatar,
|
|
318
|
-
Organisations: SideMenuOrganisations,
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
344
|
+
Body: SideMenuBody_1.SideMenuBody,
|
|
345
|
+
Footer: SideMenuFooter_1.SideMenuFooter,
|
|
346
|
+
Header: SideMenuHeader_1.SideMenuHeader,
|
|
347
|
+
Item: SideMenuItem_1.SideMenuItem,
|
|
348
|
+
SubItem: SideMenuSubItem_1.SideMenuSubItem,
|
|
349
|
+
SubItemHeader: SideMenuSubItemHeader_1.SideMenuSubItemHeader,
|
|
350
|
+
Avatar: SideMenuAvatar_1.SideMenuAvatar,
|
|
351
|
+
Organisations: SideMenuOrganisations_1.SideMenuOrganisations,
|
|
352
|
+
Notifications: SideMenuNotifications_1.SideMenuNotifications,
|
|
353
|
+
Divider: SideMenuDivider_1.SideMenuDivider,
|
|
354
|
+
Link: SideMenuLink_1.SideMenuLink,
|
|
355
|
+
SubLink: SideMenuSubLink_1.SideMenuSubLink,
|
|
356
|
+
Dropdown: SideMenuDropdown_1.SideMenuDropdown,
|
|
323
357
|
__KONTUR_REACT_UI__: 'SideMenu',
|
|
324
358
|
};
|
|
325
|
-
|
|
359
|
+
exports.SideMenu = Object.assign(SideMenuInner, STATIC_PROPS);
|
|
@@ -1,77 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsStylesForSideMenu = exports.customStyles = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var Emotion_1 = require("@skbkontur/react-ui/lib/theming/Emotion");
|
|
6
|
+
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
7
|
+
var SideMenu_1 = require("./SideMenu");
|
|
5
8
|
var styles = {
|
|
6
9
|
root: function () {
|
|
7
|
-
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: relative;\n height: 100%;\n flex-shrink: 0;\n "], ["\n position: relative;\n height: 100%;\n flex-shrink: 0;\n "])));
|
|
10
|
+
return (0, Emotion_1.css)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n position: relative;\n height: 100%;\n flex-shrink: 0;\n "], ["\n position: relative;\n height: 100%;\n flex-shrink: 0;\n "])));
|
|
8
11
|
},
|
|
9
12
|
shownRootForTabletsOrMobiles: function () {
|
|
10
|
-
return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n @supports (height: 100dvh) {\n height: 100dvh;\n }\n position: absolute;\n height: 100%;\n "], ["\n @supports (height: 100dvh) {\n height: 100dvh;\n }\n position: absolute;\n height: 100%;\n "])));
|
|
13
|
+
return (0, Emotion_1.css)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n @supports (height: 100dvh) {\n height: 100dvh;\n }\n position: absolute;\n height: 100%;\n "], ["\n @supports (height: 100dvh) {\n height: 100dvh;\n }\n position: absolute;\n height: 100%;\n "])));
|
|
11
14
|
},
|
|
12
15
|
transitionedRootForTabletsOrMobiles: function () {
|
|
13
|
-
return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: absolute;\n "], ["\n position: absolute;\n "])));
|
|
16
|
+
return (0, Emotion_1.css)(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n position: absolute;\n "], ["\n position: absolute;\n "])));
|
|
14
17
|
},
|
|
15
18
|
rootForNarrowDesktops: function (t) {
|
|
16
|
-
return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n width: ", ";\n "], ["\n width: ", ";\n "])), t.sideMenuMinimizedWidth);
|
|
19
|
+
return (0, Emotion_1.css)(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n width: ", ";\n "], ["\n width: ", ";\n "])), t.sideMenuMinimizedWidth);
|
|
17
20
|
},
|
|
18
21
|
separatedRootForNarrowDesktops: function (t) {
|
|
19
|
-
return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: calc(", " + ", ");\n background: ", ";\n "], ["\n width: calc(", " + ", ");\n background: ", ";\n "])), t.sideMenuMinimizedWidth, t.sideMenuWidth, t.sideMenuSeparatedSubMenuBgColor);
|
|
22
|
+
return (0, Emotion_1.css)(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n width: calc(", " + ", ");\n background: ", ";\n "], ["\n width: calc(", " + ", ");\n background: ", ";\n "])), t.sideMenuMinimizedWidth, t.sideMenuWidth, t.sideMenuSeparatedSubMenuBgColor);
|
|
20
23
|
},
|
|
21
24
|
separatedRootForTouchScreens: function (t) {
|
|
22
|
-
return css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n width: calc(", " + ", ");\n background: ", ";\n "], ["\n width: calc(", " + ", ");\n background: ", ";\n "])), t.sideMenuMinimizedWidth, t.sideMenuWidthForTouchScreens, t.sideMenuSeparatedSubMenuBgColor);
|
|
25
|
+
return (0, Emotion_1.css)(templateObject_6 || (templateObject_6 = tslib_1.__makeTemplateObject(["\n width: calc(", " + ", ");\n background: ", ";\n "], ["\n width: calc(", " + ", ");\n background: ", ";\n "])), t.sideMenuMinimizedWidth, t.sideMenuWidthForTouchScreens, t.sideMenuSeparatedSubMenuBgColor);
|
|
23
26
|
},
|
|
24
27
|
separatedRootForTouchScreensForDesktops: function (t) {
|
|
25
|
-
return css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n width: calc(", " + ", ");\n background: ", ";\n "], ["\n width: calc(", " + ", ");\n background: ", ";\n "])), t.sideMenuWidthForTouchScreens, t.sideMenuWidthForTouchScreens, t.sideMenuSeparatedSubMenuBgColor);
|
|
28
|
+
return (0, Emotion_1.css)(templateObject_7 || (templateObject_7 = tslib_1.__makeTemplateObject(["\n width: calc(", " + ", ");\n background: ", ";\n "], ["\n width: calc(", " + ", ");\n background: ", ";\n "])), t.sideMenuWidthForTouchScreens, t.sideMenuWidthForTouchScreens, t.sideMenuSeparatedSubMenuBgColor);
|
|
26
29
|
},
|
|
27
30
|
separatedRootForDesktops: function (t) {
|
|
28
|
-
return css(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n width: calc(", " + ", ");\n background: ", ";\n "], ["\n width: calc(", " + ", ");\n background: ", ";\n "])), t.sideMenuWidth, t.sideMenuWidth, t.sideMenuSeparatedSubMenuBgColor);
|
|
31
|
+
return (0, Emotion_1.css)(templateObject_8 || (templateObject_8 = tslib_1.__makeTemplateObject(["\n width: calc(", " + ", ");\n background: ", ";\n "], ["\n width: calc(", " + ", ");\n background: ", ";\n "])), t.sideMenuWidth, t.sideMenuWidth, t.sideMenuSeparatedSubMenuBgColor);
|
|
29
32
|
},
|
|
30
33
|
container: function (t) {
|
|
31
|
-
return css(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n width: ", ";\n height: 100%;\n background: ", ";\n position: relative;\n box-sizing: border-box;\n transition: width ", "ms ease-out;\n "], ["\n width: ", ";\n height: 100%;\n background: ", ";\n position: relative;\n box-sizing: border-box;\n transition: width ", "ms ease-out;\n "])), t.sideMenuWidth, t.sideMenuBgColor, transitionDuration);
|
|
34
|
+
return (0, Emotion_1.css)(templateObject_9 || (templateObject_9 = tslib_1.__makeTemplateObject(["\n width: ", ";\n height: 100%;\n background: ", ";\n position: relative;\n box-sizing: border-box;\n transition: width ", "ms ease-out;\n "], ["\n width: ", ";\n height: 100%;\n background: ", ";\n position: relative;\n box-sizing: border-box;\n transition: width ", "ms ease-out;\n "])), t.sideMenuWidth, t.sideMenuBgColor, SideMenu_1.transitionDuration);
|
|
32
35
|
},
|
|
33
36
|
minimizedContainer: function (t) {
|
|
34
|
-
return css(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n width: ", " !important;\n "], ["\n width: ", " !important;\n "])), t.sideMenuMinimizedWidth);
|
|
37
|
+
return (0, Emotion_1.css)(templateObject_10 || (templateObject_10 = tslib_1.__makeTemplateObject(["\n width: ", " !important;\n "], ["\n width: ", " !important;\n "])), t.sideMenuMinimizedWidth);
|
|
35
38
|
},
|
|
36
39
|
containerForTouchScreens: function (t) {
|
|
37
|
-
return css(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n width: ", ";\n "], ["\n width: ", ";\n "])), t.sideMenuWidthForTouchScreens);
|
|
40
|
+
return (0, Emotion_1.css)(templateObject_11 || (templateObject_11 = tslib_1.__makeTemplateObject(["\n width: ", ";\n "], ["\n width: ", ";\n "])), t.sideMenuWidthForTouchScreens);
|
|
38
41
|
},
|
|
39
42
|
separatedContainerForMobiles: function (t) {
|
|
40
|
-
return css(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n background: ", ";\n "], ["\n background: ", ";\n "])), t.sideMenuSeparatedSubMenuBgColor);
|
|
43
|
+
return (0, Emotion_1.css)(templateObject_12 || (templateObject_12 = tslib_1.__makeTemplateObject(["\n background: ", ";\n "], ["\n background: ", ";\n "])), t.sideMenuSeparatedSubMenuBgColor);
|
|
41
44
|
},
|
|
42
45
|
contentWrapper: function (t) {
|
|
43
|
-
return css(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n min-height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: ", ";\n "], ["\n min-height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: ", ";\n "])), t.sideMenuWidth);
|
|
46
|
+
return (0, Emotion_1.css)(templateObject_13 || (templateObject_13 = tslib_1.__makeTemplateObject(["\n min-height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: ", ";\n "], ["\n min-height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: ", ";\n "])), t.sideMenuWidth);
|
|
44
47
|
},
|
|
45
48
|
contentWrapperForTouchScreens: function (t) {
|
|
46
|
-
return css(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n width: ", ";\n "], ["\n width: ", ";\n "])), t.sideMenuWidthForTouchScreens);
|
|
49
|
+
return (0, Emotion_1.css)(templateObject_14 || (templateObject_14 = tslib_1.__makeTemplateObject(["\n width: ", ";\n "], ["\n width: ", ";\n "])), t.sideMenuWidthForTouchScreens);
|
|
47
50
|
},
|
|
48
51
|
minimizedContentWrapper: function () {
|
|
49
|
-
return css(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n width: 100%;\n "], ["\n width: 100%;\n "])));
|
|
52
|
+
return (0, Emotion_1.css)(templateObject_15 || (templateObject_15 = tslib_1.__makeTemplateObject(["\n width: 100%;\n "], ["\n width: 100%;\n "])));
|
|
50
53
|
},
|
|
51
54
|
wrapper: function () {
|
|
52
|
-
return css(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n height: 100%;\n display: inline-flex;\n position: relative;\n "], ["\n height: 100%;\n display: inline-flex;\n position: relative;\n "])));
|
|
55
|
+
return (0, Emotion_1.css)(templateObject_16 || (templateObject_16 = tslib_1.__makeTemplateObject(["\n height: 100%;\n display: inline-flex;\n position: relative;\n "], ["\n height: 100%;\n display: inline-flex;\n position: relative;\n "])));
|
|
53
56
|
},
|
|
54
57
|
wrapperIE: function () {
|
|
55
58
|
var ieRootWrapperCorrection = 15;
|
|
56
|
-
return css(templateObject_17 || (templateObject_17 = __makeTemplateObject(["\n position: relative;\n top: -", ";\n height: calc(100% + ", ");\n "], ["\n position: relative;\n top: -", ";\n height: calc(100% + ", ");\n "])), ieRootWrapperCorrection, ieRootWrapperCorrection);
|
|
59
|
+
return (0, Emotion_1.css)(templateObject_17 || (templateObject_17 = tslib_1.__makeTemplateObject(["\n position: relative;\n top: -", ";\n height: calc(100% + ", ");\n "], ["\n position: relative;\n top: -", ";\n height: calc(100% + ", ");\n "])), ieRootWrapperCorrection, ieRootWrapperCorrection);
|
|
57
60
|
},
|
|
58
61
|
wrapperWithShadow: function (t) {
|
|
59
|
-
return css(templateObject_18 || (templateObject_18 = __makeTemplateObject(["\n box-shadow: ", ";\n "], ["\n box-shadow: ", ";\n "])), t.sideMenuBoxShadow);
|
|
62
|
+
return (0, Emotion_1.css)(templateObject_18 || (templateObject_18 = tslib_1.__makeTemplateObject(["\n box-shadow: ", ";\n "], ["\n box-shadow: ", ";\n "])), t.sideMenuBoxShadow);
|
|
60
63
|
},
|
|
61
64
|
collapsedContainerForTabletsOrMobiles: function () {
|
|
62
|
-
return css(templateObject_19 || (templateObject_19 = __makeTemplateObject(["\n background-color: transparent;\n "], ["\n background-color: transparent;\n "])));
|
|
65
|
+
return (0, Emotion_1.css)(templateObject_19 || (templateObject_19 = tslib_1.__makeTemplateObject(["\n background-color: transparent;\n "], ["\n background-color: transparent;\n "])));
|
|
63
66
|
},
|
|
64
67
|
list: function () {
|
|
65
|
-
return css(templateObject_20 || (templateObject_20 = __makeTemplateObject(["\n list-style: none;\n padding: 0;\n margin: 0;\n "], ["\n list-style: none;\n padding: 0;\n margin: 0;\n "])));
|
|
68
|
+
return (0, Emotion_1.css)(templateObject_20 || (templateObject_20 = tslib_1.__makeTemplateObject(["\n list-style: none;\n padding: 0;\n margin: 0;\n "], ["\n list-style: none;\n padding: 0;\n margin: 0;\n "])));
|
|
66
69
|
},
|
|
67
70
|
hidden: function () {
|
|
68
|
-
return css(templateObject_21 || (templateObject_21 = __makeTemplateObject(["\n display: none;\n "], ["\n display: none;\n "])));
|
|
71
|
+
return (0, Emotion_1.css)(templateObject_21 || (templateObject_21 = tslib_1.__makeTemplateObject(["\n display: none;\n "], ["\n display: none;\n "])));
|
|
69
72
|
},
|
|
70
73
|
};
|
|
71
|
-
|
|
74
|
+
exports.customStyles = {
|
|
72
75
|
rootForTabletsOrMobiles: function (headerHeight) {
|
|
73
|
-
return css(templateObject_22 || (templateObject_22 = __makeTemplateObject(["\n height: ", "px;\n top: 0;\n transition: height ", "ms ease-out;\n "], ["\n height: ", "px;\n top: 0;\n transition: height ", "ms ease-out;\n "])), headerHeight, burgerTransitionDuration);
|
|
76
|
+
return (0, Emotion_1.css)(templateObject_22 || (templateObject_22 = tslib_1.__makeTemplateObject(["\n height: ", "px;\n top: 0;\n transition: height ", "ms ease-out;\n "], ["\n height: ", "px;\n top: 0;\n transition: height ", "ms ease-out;\n "])), headerHeight, SideMenu_1.burgerTransitionDuration);
|
|
74
77
|
},
|
|
75
78
|
};
|
|
76
|
-
|
|
79
|
+
exports.jsStylesForSideMenu = (0, ThemeHelpers_1.memoizeStyle)(styles);
|
|
77
80
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SideMenuAvatar = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var react_ui_addons_1 = require("@skbkontur/react-ui-addons/");
|
|
7
|
+
var react_ui_1 = require("@skbkontur/react-ui");
|
|
8
|
+
var SideMenuDropdown_1 = require("../SideMenuDropdown/SideMenuDropdown");
|
|
9
|
+
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
10
|
+
var SideMenuAvatarInner = (0, react_1.forwardRef)(function (_a, ref) {
|
|
11
|
+
var userName = _a.userName, avatarUrl = _a.avatarUrl, children = _a.children, icon = _a.icon, caption = _a.caption, rest = tslib_1.__rest(_a, ["userName", "avatarUrl", "children", "icon", "caption"]);
|
|
12
|
+
var theme = (0, ThemeHelpers_1.getSideMenuTheme)((0, react_1.useContext)(react_ui_1.ThemeContext));
|
|
13
|
+
return (react_1.default.createElement(SideMenuDropdown_1.SideMenuDropdown, tslib_1.__assign({ icon: react_1.default.createElement(react_ui_addons_1.UserAvatar, { userName: userName, avatarUrl: avatarUrl, style: { width: theme.sideMenuAvatarSize, height: theme.sideMenuAvatarSize } }), caption: userName || caption, menuWidth: 200, positions: ['top left'], _isAvatar: true, ref: ref }, rest), children));
|
|
11
14
|
});
|
|
12
15
|
SideMenuAvatarInner.displayName = 'SideMenuAvatar';
|
|
13
16
|
/**
|
|
@@ -15,4 +18,4 @@ SideMenuAvatarInner.displayName = 'SideMenuAvatar';
|
|
|
15
18
|
*
|
|
16
19
|
* @visibleName SideMenu.Avatar
|
|
17
20
|
*/
|
|
18
|
-
|
|
21
|
+
exports.SideMenuAvatar = Object.assign(SideMenuAvatarInner, { __KONTUR_REACT_UI__: 'SideMenuAvatar' });
|
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SideMenuBody = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var Emotion_1 = require("@skbkontur/react-ui/lib/theming/Emotion");
|
|
7
|
+
var ThemeContext_1 = require("@skbkontur/react-ui/lib/theming/ThemeContext");
|
|
8
|
+
var SideMenuContext_1 = require("../SideMenuContext");
|
|
9
|
+
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
10
|
+
var SideMenu_styles_1 = require("../SideMenu/SideMenu.styles");
|
|
11
|
+
var SideMenuBody_styles_1 = require("./SideMenuBody.styles");
|
|
12
|
+
var SideMenuBodyInner = (0, react_1.forwardRef)(function (_a, ref) {
|
|
10
13
|
var _b, _c;
|
|
11
|
-
var className = _a.className, children = _a.children, rest = __rest(_a, ["className", "children"]);
|
|
12
|
-
var context = useContext(SideMenuContext);
|
|
13
|
-
var theme = getSideMenuTheme(useContext(ThemeContext));
|
|
14
|
-
return (
|
|
15
|
-
_b[jsStyles.root(theme)] = true,
|
|
16
|
-
_b[jsStylesForSideMenu.hidden()] = !context.isOpened && (context.isMobile || context.isTablet),
|
|
14
|
+
var className = _a.className, children = _a.children, rest = tslib_1.__rest(_a, ["className", "children"]);
|
|
15
|
+
var context = (0, react_1.useContext)(SideMenuContext_1.SideMenuContext);
|
|
16
|
+
var theme = (0, ThemeHelpers_1.getSideMenuTheme)((0, react_1.useContext)(ThemeContext_1.ThemeContext));
|
|
17
|
+
return (react_1.default.createElement("div", { ref: ref, className: (0, Emotion_1.cx)((_b = {},
|
|
18
|
+
_b[SideMenuBody_styles_1.jsStyles.root(theme)] = true,
|
|
19
|
+
_b[SideMenu_styles_1.jsStylesForSideMenu.hidden()] = !context.isOpened && (context.isMobile || context.isTablet),
|
|
17
20
|
_b)) },
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
react_1.default.createElement("nav", null,
|
|
22
|
+
react_1.default.createElement("ul", tslib_1.__assign({ className: (0, Emotion_1.cx)((_c = {}, _c[SideMenu_styles_1.jsStylesForSideMenu.list()] = true, _c[SideMenuBody_styles_1.jsStyles.wrapper(theme)] = true, _c)) }, rest), children))));
|
|
20
23
|
});
|
|
21
24
|
SideMenuBodyInner.displayName = 'SideMenuBody';
|
|
22
25
|
/**
|
|
@@ -24,4 +27,4 @@ SideMenuBodyInner.displayName = 'SideMenuBody';
|
|
|
24
27
|
*
|
|
25
28
|
* @visibleName SideMenu.Body
|
|
26
29
|
*/
|
|
27
|
-
|
|
30
|
+
exports.SideMenuBody = Object.assign(SideMenuBodyInner, { __KONTUR_REACT_UI__: 'SideMenuBody' });
|