@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.
Files changed (79) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +25 -6
  3. package/SideMenuDataTids.d.ts +3 -0
  4. package/SideMenuDataTids.js +7 -1
  5. package/hooks/useAnimateOnMount.js +9 -6
  6. package/hooks/useMemoIcon.js +18 -12
  7. package/index.js +17 -14
  8. package/internal/themes/SideMenuTheme.d.ts +5 -0
  9. package/internal/themes/SideMenuTheme.js +22 -10
  10. package/lib/theming/ThemeHelpers.js +20 -14
  11. package/lib/theming/ThemeTypes.js +2 -1
  12. package/lib/utils/memo.js +5 -1
  13. package/lib/utils/scripts.js +11 -5
  14. package/package.json +8 -4
  15. package/src/Navigation.js +21 -18
  16. package/src/SideMenu/SideMenu.d.ts +2 -0
  17. package/src/SideMenu/SideMenu.js +147 -113
  18. package/src/SideMenu/SideMenu.styles.js +31 -28
  19. package/src/SideMenuAvatar/SideMenuAvatar.js +14 -11
  20. package/src/SideMenuBody/SideMenuBody.js +21 -18
  21. package/src/SideMenuBody/SideMenuBody.styles.js +9 -6
  22. package/src/SideMenuContext.d.ts +3 -0
  23. package/src/SideMenuContext.js +5 -2
  24. package/src/SideMenuDivider/SideMenuDivider.js +14 -11
  25. package/src/SideMenuDivider/SideMenuDivider.styles.js +8 -5
  26. package/src/SideMenuDropdown/SideMenuDropdown.js +34 -21
  27. package/src/SideMenuDropdown/SideMenuDropdown.styles.js +12 -9
  28. package/src/SideMenuFooter/SideMenuFooter.js +24 -21
  29. package/src/SideMenuFooter/SideMenuFooter.styles.js +10 -7
  30. package/src/SideMenuHeader/SideMenuHeader.js +29 -26
  31. package/src/SideMenuHeader/SideMenuHeader.styles.js +12 -9
  32. package/src/SideMenuItem/SideMenuItem.js +10 -7
  33. package/src/SideMenuLink/SideMenuLink.js +12 -9
  34. package/src/SideMenuLink/SideMenuLink.styles.js +7 -4
  35. package/src/SideMenuNotifications/BellWidget.d.ts +11 -0
  36. package/src/SideMenuNotifications/BellWidget.js +87 -0
  37. package/src/SideMenuNotifications/BellWidgetError.d.ts +9 -0
  38. package/src/SideMenuNotifications/BellWidgetError.js +26 -0
  39. package/src/SideMenuNotifications/BellWidgetView.styles.d.ts +10 -0
  40. package/src/SideMenuNotifications/BellWidgetView.styles.js +31 -0
  41. package/src/SideMenuNotifications/SideMenuNotifications.d.ts +41 -0
  42. package/src/SideMenuNotifications/SideMenuNotifications.js +49 -0
  43. package/src/SideMenuNotifications/SideMenuNotifications.md +75 -0
  44. package/src/SideMenuNotifications/utils/getMarker.d.ts +1 -0
  45. package/src/SideMenuNotifications/utils/getMarker.js +12 -0
  46. package/src/SideMenuNotifications/utils/getNotificationsErrorMessages.d.ts +6 -0
  47. package/src/SideMenuNotifications/utils/getNotificationsErrorMessages.js +19 -0
  48. package/src/SideMenuOrganisations/SideMenuOrganisations.js +10 -7
  49. package/src/SideMenuSubItem/SideMenuSubItem.js +11 -8
  50. package/src/SideMenuSubItemHeader/SideMenuSubItemHeader.js +18 -15
  51. package/src/SideMenuSubItemHeader/SideMenuSubItemHeader.styles.js +9 -6
  52. package/src/SideMenuSubLink/SideMenuSubLink.js +10 -7
  53. package/src/Tree.js +12 -9
  54. package/src/internal/BackButton.js +14 -11
  55. package/src/internal/Backdrop.js +15 -11
  56. package/src/internal/Backdrop.styles.js +8 -5
  57. package/src/internal/Burger.js +17 -12
  58. package/src/internal/Burger.styles.js +9 -6
  59. package/src/internal/ClickableElement.js +47 -44
  60. package/src/internal/ClickableElement.styles.js +15 -12
  61. package/src/internal/InnerSubMenu.js +14 -10
  62. package/src/internal/ItemContent/Caption.js +34 -31
  63. package/src/internal/ItemContent/Caption.styles.js +23 -20
  64. package/src/internal/ItemContent/Icon.js +25 -20
  65. package/src/internal/ItemContent/Icon.styles.js +14 -11
  66. package/src/internal/ItemContent/ItemContent.d.ts +1 -1
  67. package/src/internal/ItemContent/ItemContent.js +36 -33
  68. package/src/internal/ItemContent/ItemContent.styles.js +18 -15
  69. package/src/internal/ItemContent/Marker.js +21 -16
  70. package/src/internal/ItemContent/Marker.styles.js +15 -12
  71. package/src/internal/NestedMenu.js +19 -15
  72. package/src/internal/NestedMenu.styles.js +8 -5
  73. package/src/internal/RightBorder.js +22 -18
  74. package/src/internal/RightBorder.styles.js +9 -6
  75. package/src/internal/SeparatedSubMenu.js +40 -37
  76. package/src/internal/SeparatedSubMenu.styles.js +16 -13
  77. package/src/internal/SideMenuLogotype.js +34 -31
  78. package/src/internal/SideMenuLogotype.styles.js +17 -14
  79. package/src/internal/SubMenu.js +15 -11
@@ -1,73 +1,77 @@
1
- import { __assign, __read, __rest } from "tslib";
2
- import React, { forwardRef, useContext, useEffect, useRef, useState } from 'react';
3
- import { cx } from '@skbkontur/react-ui/lib/theming/Emotion';
4
- import { isIE11 } from '@skbkontur/react-ui/lib/client';
5
- import { ThemeContext } from '@skbkontur/react-ui/lib/theming/ThemeContext';
6
- import { LIGHT_THEME, ScrollContainer, useResponsiveLayout } from '@skbkontur/react-ui';
7
- import { RenderLayer } from '@skbkontur/react-ui/internal/RenderLayer';
8
- import { ZIndex } from '@skbkontur/react-ui/internal/ZIndex';
9
- import { mergeRefs } from '@skbkontur/react-ui/lib/utils';
10
- import { SideMenuOrganisations } from '../SideMenuOrganisations/SideMenuOrganisations';
11
- import { SideMenuContext } from '../SideMenuContext';
12
- import { SideMenuBody } from '../SideMenuBody/SideMenuBody';
13
- import { SideMenuFooter } from '../SideMenuFooter/SideMenuFooter';
14
- import { SideMenuHeader } from '../SideMenuHeader/SideMenuHeader';
15
- import { SideMenuItem } from '../SideMenuItem/SideMenuItem';
16
- import { SideMenuAvatar } from '../SideMenuAvatar/SideMenuAvatar';
17
- import { SideMenuSubItem } from '../SideMenuSubItem/SideMenuSubItem';
18
- import { SideMenuDivider } from '../SideMenuDivider/SideMenuDivider';
19
- import { SideMenuSubItemHeader } from '../SideMenuSubItemHeader/SideMenuSubItemHeader';
20
- import { RightBorder } from '../internal/RightBorder';
21
- import { SideMenuDropdown } from '../SideMenuDropdown/SideMenuDropdown';
22
- import { SideMenuLink } from '../SideMenuLink/SideMenuLink';
23
- import { SideMenuSubLink } from '../SideMenuSubLink/SideMenuSubLink';
24
- import { Backdrop } from '../internal/Backdrop';
25
- import { isTouchDevice } from '../../lib/utils/scripts';
26
- import { SideMenuDataTids } from '../../SideMenuDataTids';
27
- import { useAnimateOnMount } from '../../hooks/useAnimateOnMount';
28
- import { getSideMenuTheme } from '../../lib/theming/ThemeHelpers';
29
- import { MenuNavigation } from '../Navigation';
30
- import { jsStylesForSideMenu, customStyles } from './SideMenu.styles';
31
- export var transitionDuration = 300; //ms
32
- export var burgerTransitionDuration = (transitionDuration * 2) / 3;
33
- var SideMenuInner = forwardRef(function (_a, ref) {
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
- return (React.createElement(SideMenuContext.Provider, { value: {
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 && React.createElement("div", { style: { height: headerHeight } }),
273
- React.createElement(ZIndex, { priority: isSideMenuOverflowing ? 8 : 0, className: cx((_b = {},
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
- React.createElement(React.Fragment, null,
285
- shouldShowBackdrop && React.createElement(Backdrop, { style: backdropStyle }),
286
- React.createElement(RenderLayer, { onClickOutside: function () { return showMenu(false); } },
287
- React.createElement("aside", __assign({ className: cx((_c = {},
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
- React.createElement("div", { className: cx((_d = {},
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
- React.createElement(ScrollContainer, { onScrollStateChangeY: function (state) {
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
- React.createElement("div", { className: cx((_e = {},
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 && (React.createElement(RightBorder, { onClick: handleRightBorderClick, showButton: isHovered }))))))));
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
- Divider: SideMenuDivider,
320
- Link: SideMenuLink,
321
- SubLink: SideMenuSubLink,
322
- Dropdown: SideMenuDropdown,
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
- export var SideMenu = Object.assign(SideMenuInner, STATIC_PROPS);
359
+ exports.SideMenu = Object.assign(SideMenuInner, STATIC_PROPS);
@@ -1,77 +1,80 @@
1
- import { __makeTemplateObject } from "tslib";
2
- import { css } from '@skbkontur/react-ui/lib/theming/Emotion';
3
- import { memoizeStyle } from '../../lib/theming/ThemeHelpers';
4
- import { burgerTransitionDuration, transitionDuration } from './SideMenu';
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
- export var customStyles = {
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
- export var jsStylesForSideMenu = memoizeStyle(styles);
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
- import { __assign, __rest } from "tslib";
2
- import React, { forwardRef, useContext } from 'react';
3
- import { UserAvatar } from '@skbkontur/react-ui-addons/';
4
- import { ThemeContext } from '@skbkontur/react-ui';
5
- import { SideMenuDropdown } from '../SideMenuDropdown/SideMenuDropdown';
6
- import { getSideMenuTheme } from '../../lib/theming/ThemeHelpers';
7
- var SideMenuAvatarInner = forwardRef(function (_a, ref) {
8
- var userName = _a.userName, avatarUrl = _a.avatarUrl, children = _a.children, icon = _a.icon, caption = _a.caption, rest = __rest(_a, ["userName", "avatarUrl", "children", "icon", "caption"]);
9
- var theme = getSideMenuTheme(useContext(ThemeContext));
10
- return (React.createElement(SideMenuDropdown, __assign({ icon: React.createElement(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));
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
- export var SideMenuAvatar = Object.assign(SideMenuAvatarInner, { __KONTUR_REACT_UI__: 'SideMenuAvatar' });
21
+ exports.SideMenuAvatar = Object.assign(SideMenuAvatarInner, { __KONTUR_REACT_UI__: 'SideMenuAvatar' });
@@ -1,22 +1,25 @@
1
- import { __assign, __rest } from "tslib";
2
- import React, { forwardRef, useContext } from 'react';
3
- import { cx } from '@skbkontur/react-ui/lib/theming/Emotion';
4
- import { ThemeContext } from '@skbkontur/react-ui/lib/theming/ThemeContext';
5
- import { SideMenuContext } from '../SideMenuContext';
6
- import { getSideMenuTheme } from '../../lib/theming/ThemeHelpers';
7
- import { jsStylesForSideMenu } from '../SideMenu/SideMenu.styles';
8
- import { jsStyles } from './SideMenuBody.styles';
9
- var SideMenuBodyInner = forwardRef(function (_a, ref) {
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 (React.createElement("div", { ref: ref, className: cx((_b = {},
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
- React.createElement("nav", null,
19
- React.createElement("ul", __assign({ className: cx((_c = {}, _c[jsStylesForSideMenu.list()] = true, _c[jsStyles.wrapper(theme)] = true, _c)) }, rest), children))));
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
- export var SideMenuBody = Object.assign(SideMenuBodyInner, { __KONTUR_REACT_UI__: 'SideMenuBody' });
30
+ exports.SideMenuBody = Object.assign(SideMenuBodyInner, { __KONTUR_REACT_UI__: 'SideMenuBody' });