@skbkontur/side-menu 3.2.5 → 3.3.0-beta.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 (80) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +18 -0
  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 +3 -1
  17. package/src/SideMenu/SideMenu.js +146 -112
  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 +23 -20
  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.d.ts +2 -2
  60. package/src/internal/ClickableElement.js +47 -44
  61. package/src/internal/ClickableElement.styles.js +15 -12
  62. package/src/internal/InnerSubMenu.js +14 -10
  63. package/src/internal/ItemContent/Caption.js +34 -31
  64. package/src/internal/ItemContent/Caption.styles.js +23 -20
  65. package/src/internal/ItemContent/Icon.js +25 -20
  66. package/src/internal/ItemContent/Icon.styles.js +14 -11
  67. package/src/internal/ItemContent/ItemContent.d.ts +1 -1
  68. package/src/internal/ItemContent/ItemContent.js +36 -33
  69. package/src/internal/ItemContent/ItemContent.styles.js +18 -15
  70. package/src/internal/ItemContent/Marker.js +21 -16
  71. package/src/internal/ItemContent/Marker.styles.js +15 -12
  72. package/src/internal/NestedMenu.js +19 -15
  73. package/src/internal/NestedMenu.styles.js +8 -5
  74. package/src/internal/RightBorder.js +22 -18
  75. package/src/internal/RightBorder.styles.js +9 -6
  76. package/src/internal/SeparatedSubMenu.js +40 -37
  77. package/src/internal/SeparatedSubMenu.styles.js +16 -13
  78. package/src/internal/SideMenuLogotype.js +34 -31
  79. package/src/internal/SideMenuLogotype.styles.js +17 -14
  80. package/src/internal/SubMenu.js +15 -11
@@ -1,72 +1,76 @@
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 sideMenuRef = useRef(null);
39
- var contentWrapperRef = useRef(null);
40
- var scrollContainerRef = useRef(null);
41
- var navigation = useRef(null);
42
- 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 sideMenuRef = (0, react_1.useRef)(null);
43
+ var contentWrapperRef = (0, react_1.useRef)(null);
44
+ var scrollContainerRef = (0, react_1.useRef)(null);
45
+ var navigation = (0, react_1.useRef)(null);
46
+ var theme = (0, ThemeHelpers_1.getSideMenuTheme)((0, react_1.useContext)(ThemeContext_1.ThemeContext));
43
47
  var customMediaQueries = {
44
48
  isMobileQuery: mobileMediaQuery || theme.sideMenuMobileMediaQuery,
45
49
  isTabletQuery: tabletMediaQuery || theme.sideMenuTabletMediaQuery,
46
50
  isNarrowDesktopQuery: narrowDesktopMediaQuery || theme.sideMenuNarrowDesktopMediaQuery,
47
51
  isDesktopQuery: desktopMediaQuery || theme.sideMenuDesktopMediaQuery,
48
52
  };
49
- var _o = useResponsiveLayout({
53
+ var _o = (0, react_ui_1.useResponsiveLayout)({
50
54
  customMediaQueries: customMediaQueries,
51
55
  }), isMobileQuery = _o.isMobileQuery, isTabletQuery = _o.isTabletQuery, isNarrowDesktopQuery = _o.isNarrowDesktopQuery, isDesktopQuery = _o.isDesktopQuery;
52
56
  var isNarrowDesktop = isNarrowDesktopQuery && !isDesktopQuery;
53
57
  var isTablet = isTabletQuery && !isNarrowDesktopQuery;
54
58
  var isMobile = isMobileQuery && !isTabletQuery;
55
59
  var isTabletOrMobile = isTablet || isMobile;
56
- var isTouchScreen = isTouchDevice() || isMobile || isTablet;
60
+ var isTouchScreen = (0, scripts_1.isTouchDevice)() || isMobile || isTablet;
57
61
  var manual = isOpen !== undefined;
58
- var _p = __read(useState(isDesktopQuery && !isPinned), 2), isOpened = _p[0], setIsOpened = _p[1];
59
- var _q = __read(useState(false), 2), isBeingTransitioned = _q[0], setIsBeingTransitioned = _q[1];
60
- var _r = __read(useState(value !== null && value !== void 0 ? value : activeItem), 2), activeMenuItem = _r[0], setActiveMenuItem = _r[1];
61
- var _s = __read(useState(false), 2), isSeparatedMenuShown = _s[0], setIsSeparatedMenuShown = _s[1];
62
- var _t = __read(useState(true), 2), isMouseOutside = _t[0], setIsMouseOutside = _t[1];
63
- var _u = __read(useState('top'), 2), scrollState = _u[0], setScrollState = _u[1];
64
- var _v = __read(useState(false), 2), hasScrollBar = _v[0], setHasScrollBar = _v[1];
65
- var _w = __read(useState(0), 2), mousePositionX = _w[0], setMousePositionX = _w[1];
66
- var _x = __read(useState(0), 2), headerHeight = _x[0], setHeaderHeight = _x[1];
67
- var _y = __read(useState(isNarrowDesktop || (isDesktopQuery && isPinned)), 2), isCollapsable = _y[0], setIsCollapsable = _y[1];
68
- var _z = __read(useState(0), 2), leftPosition = _z[0], setLeftPosition = _z[1];
69
- var _0 = __read(useState(false), 2), isHovered = _0[0], setIsHovered = _0[1];
62
+ var _p = tslib_1.__read((0, react_1.useState)(isDesktopQuery && !isPinned), 2), isOpened = _p[0], setIsOpened = _p[1];
63
+ var _q = tslib_1.__read((0, react_1.useState)(false), 2), isBeingTransitioned = _q[0], setIsBeingTransitioned = _q[1];
64
+ var _r = tslib_1.__read((0, react_1.useState)(value !== null && value !== void 0 ? value : activeItem), 2), activeMenuItem = _r[0], setActiveMenuItem = _r[1];
65
+ var _s = tslib_1.__read((0, react_1.useState)(false), 2), isSeparatedMenuShown = _s[0], setIsSeparatedMenuShown = _s[1];
66
+ var _t = tslib_1.__read((0, react_1.useState)(true), 2), isMouseOutside = _t[0], setIsMouseOutside = _t[1];
67
+ var _u = tslib_1.__read((0, react_1.useState)('top'), 2), scrollState = _u[0], setScrollState = _u[1];
68
+ var _v = tslib_1.__read((0, react_1.useState)(false), 2), hasScrollBar = _v[0], setHasScrollBar = _v[1];
69
+ var _w = tslib_1.__read((0, react_1.useState)(0), 2), mousePositionX = _w[0], setMousePositionX = _w[1];
70
+ var _x = tslib_1.__read((0, react_1.useState)(0), 2), headerHeight = _x[0], setHeaderHeight = _x[1];
71
+ var _y = tslib_1.__read((0, react_1.useState)(isNarrowDesktop || (isDesktopQuery && isPinned)), 2), isCollapsable = _y[0], setIsCollapsable = _y[1];
72
+ var _z = tslib_1.__read((0, react_1.useState)(0), 2), leftPosition = _z[0], setLeftPosition = _z[1];
73
+ var _0 = tslib_1.__read((0, react_1.useState)(false), 2), isHovered = _0[0], setIsHovered = _0[1];
70
74
  var switchActiveMenuItem = function (id) {
71
75
  if (id !== value && id !== activeItem) {
72
76
  onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(id);
@@ -74,10 +78,10 @@ var SideMenuInner = forwardRef(function (_a, ref) {
74
78
  setActiveMenuItem(id);
75
79
  }
76
80
  };
77
- useEffect(function () {
81
+ (0, react_1.useEffect)(function () {
78
82
  var _a;
79
83
  setLeftPosition(((_a = sideMenuRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().left) || 0);
80
- navigation.current = new MenuNavigation({
84
+ navigation.current = new Navigation_1.MenuNavigation({
81
85
  rootRef: sideMenuRef,
82
86
  activeMenuItem: activeMenuItem,
83
87
  setActiveMenuItem: switchActiveMenuItem,
@@ -95,7 +99,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
95
99
  }
96
100
  };
97
101
  }, []);
98
- useEffect(function () {
102
+ (0, react_1.useEffect)(function () {
99
103
  if (isMobile && isSeparatedMenuShown) {
100
104
  return;
101
105
  }
@@ -109,7 +113,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
109
113
  setHasScrollBar(scrollContainer.clientHeight < contentWrapper.scrollHeight);
110
114
  }, 50);
111
115
  }, [activeMenuItem, isOpened, isBeingTransitioned]);
112
- useEffect(function () {
116
+ (0, react_1.useEffect)(function () {
113
117
  isDesktopQuery && setIsOpened(!isPinned);
114
118
  }, [isPinned, isDesktopQuery]);
115
119
  var handleIsOpened = function (newIsOpened, shouldSetState) {
@@ -124,7 +128,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
124
128
  onClose === null || onClose === void 0 ? void 0 : onClose();
125
129
  }
126
130
  };
127
- useEffect(function () {
131
+ (0, react_1.useEffect)(function () {
128
132
  if (isDesktopQuery && !isPinned) {
129
133
  setIsOpened(true);
130
134
  setIsCollapsable(false);
@@ -140,19 +144,19 @@ var SideMenuInner = forwardRef(function (_a, ref) {
140
144
  }
141
145
  }
142
146
  }, [isNarrowDesktop, isDesktopQuery, isTablet, isMobile, isPinned]);
143
- useEffect(function () {
147
+ (0, react_1.useEffect)(function () {
144
148
  var _a;
145
149
  !activeItem && ((_a = navigation.current) === null || _a === void 0 ? void 0 : _a.switchActiveMenuItem(value));
146
150
  }, [value, (_f = navigation.current) === null || _f === void 0 ? void 0 : _f.navigationTree]);
147
- useEffect(function () {
151
+ (0, react_1.useEffect)(function () {
148
152
  var _a;
149
153
  !value && ((_a = navigation.current) === null || _a === void 0 ? void 0 : _a.switchActiveMenuItem(activeItem));
150
154
  }, [activeItem, (_g = navigation.current) === null || _g === void 0 ? void 0 : _g.navigationTree]);
151
- useEffect(function () {
155
+ (0, react_1.useEffect)(function () {
152
156
  var _a;
153
157
  (_a = navigation.current) === null || _a === void 0 ? void 0 : _a.switchIsSeparatedMenu(isSeparatedMenu);
154
158
  }, [isSeparatedMenu]);
155
- useEffect(function () {
159
+ (0, react_1.useEffect)(function () {
156
160
  handleIsOpened(isOpen, manual);
157
161
  }, [isOpen]);
158
162
  var showMinimizedRoot = function (newIsMinimized) {
@@ -164,10 +168,18 @@ var SideMenuInner = forwardRef(function (_a, ref) {
164
168
  }
165
169
  transitionTimer.current = setTimeout(function () {
166
170
  setIsBeingTransitioned(false);
167
- }, transitionDuration + 200);
171
+ }, exports.transitionDuration + 200);
168
172
  }
169
173
  };
170
174
  var shouldNotOpenOnHover = (isSeparatedMenu && isSeparatedMenuShown && isNarrowDesktop && manual) || isTouchScreen;
175
+ var forceUpdatePositionPopups = (0, react_1.useCallback)(function () {
176
+ // дикие костыли для перерисовки попапов, которые не обновляются автоматически при перерисовке меню
177
+ var fixPopupsPosition = function () { return window.dispatchEvent(new CustomEvent('scroll')); }; // чтобы вызвался LayoutEvent.emit() и перерисовались попапы
178
+ window.setTimeout(function () {
179
+ fixPopupsPosition(); // перерисовка попапов и следом еще раз, чтобы после анимации SideMenu попапы вновь встали на свои места
180
+ window.setTimeout(function () { return fixPopupsPosition(); }, exports.transitionDuration + 100);
181
+ }, 0);
182
+ }, []);
171
183
  var handleMouseEnter = function () {
172
184
  if (shouldNotOpenOnHover) {
173
185
  return;
@@ -177,6 +189,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
177
189
  isMouseOutside && showMinimizedRoot(false);
178
190
  setIsMouseOutside(false);
179
191
  }
192
+ forceUpdatePositionPopups();
180
193
  };
181
194
  var handleMouseLeave = function () {
182
195
  if (shouldNotOpenOnHover) {
@@ -189,6 +202,7 @@ var SideMenuInner = forwardRef(function (_a, ref) {
189
202
  setIsMouseOutside(true);
190
203
  }
191
204
  }
205
+ forceUpdatePositionPopups();
192
206
  };
193
207
  var showMinimizedRootForNarrowDesktop = function (e) {
194
208
  if (!isSeparatedMenuShown || !isCollapsable || isTouchScreen) {
@@ -216,12 +230,12 @@ var SideMenuInner = forwardRef(function (_a, ref) {
216
230
  }
217
231
  transitionTimer.current = setTimeout(function () {
218
232
  setIsBeingTransitioned(false);
219
- }, burgerTransitionDuration);
233
+ }, exports.burgerTransitionDuration);
220
234
  }
221
235
  };
222
236
  var isSideMenuOverContent = (isCollapsable || isMobile || (isTablet && !isSeparatedMenuShown)) && isOpened;
223
- var _1 = __read(useAnimateOnMount(!!isTabletOrMobile && !!isOpened, burgerTransitionDuration, {
224
- opacity: LIGHT_THEME.sidePageBackingBgOpacity,
237
+ var _1 = tslib_1.__read((0, useAnimateOnMount_1.useAnimateOnMount)(!!isTabletOrMobile && !!isOpened, exports.burgerTransitionDuration, {
238
+ opacity: react_ui_1.LIGHT_THEME.sidePageBackingBgOpacity,
225
239
  }, {
226
240
  opacity: 0,
227
241
  }), 2), shouldShowBackdrop = _1[0], backdropStyle = _1[1];
@@ -240,7 +254,24 @@ var SideMenuInner = forwardRef(function (_a, ref) {
240
254
  onPinnedValueChange === null || onPinnedValueChange === void 0 ? void 0 : onPinnedValueChange(!isCollapsable);
241
255
  setIsCollapsable(!isCollapsable);
242
256
  };
243
- return (React.createElement(SideMenuContext.Provider, { value: {
257
+ var handleDropDownClose = function () {
258
+ if (!isNarrowDesktop) {
259
+ return;
260
+ }
261
+ var shouldCloseSideMenu = !manual && document.hasFocus();
262
+ setIsMouseOutside(true);
263
+ shouldCloseSideMenu && handleIsOpened(false, !manual);
264
+ setIsCollapsable(true);
265
+ };
266
+ var handleDropDownOpen = function () {
267
+ if (!isNarrowDesktop) {
268
+ return;
269
+ }
270
+ setIsCollapsable(false);
271
+ handleIsOpened(true, !manual);
272
+ forceUpdatePositionPopups();
273
+ };
274
+ return (react_1.default.createElement(SideMenuContext_1.SideMenuContext.Provider, { value: {
244
275
  isOpened: isOpened,
245
276
  isCollapsable: isCollapsable,
246
277
  toggleIsOpened: function () { return showMenu(!isOpened); },
@@ -263,58 +294,61 @@ var SideMenuInner = forwardRef(function (_a, ref) {
263
294
  showScrollBar: showScrollBar,
264
295
  sideMenuRef: sideMenuRef,
265
296
  navigation: navigation.current,
297
+ handleDropDownOpen: handleDropDownOpen,
298
+ handleDropDownClose: handleDropDownClose,
266
299
  } },
267
- (isOpened || isBeingTransitioned) && isTabletOrMobile && React.createElement("div", { style: { height: headerHeight } }),
268
- React.createElement(ZIndex, { priority: isSideMenuOverflowing ? 8 : 0, className: cx((_b = {},
269
- _b[jsStylesForSideMenu.root()] = true,
270
- _b[customStyles.rootForTabletsOrMobiles(headerHeight)] = isTabletOrMobile,
271
- _b[jsStylesForSideMenu.shownRootForTabletsOrMobiles()] = isOpened && isTabletOrMobile,
272
- _b[jsStylesForSideMenu.transitionedRootForTabletsOrMobiles()] = isBeingTransitioned && isTabletOrMobile,
273
- _b[jsStylesForSideMenu.rootForNarrowDesktops(theme)] = isCollapsable,
274
- _b[jsStylesForSideMenu.separatedRootForNarrowDesktops(theme)] = isSeparatedMenuShown && isCollapsable,
275
- _b[jsStylesForSideMenu.separatedRootForTouchScreens(theme)] = isSeparatedMenuShown && isTouchScreen && isCollapsable,
276
- _b[jsStylesForSideMenu.separatedRootForDesktops(theme)] = isSeparatedMenuShown && isDesktopQuery && !isCollapsable,
277
- _b[jsStylesForSideMenu.separatedRootForTouchScreensForDesktops(theme)] = isDesktopQuery && isSeparatedMenuShown && isTouchScreen,
300
+ (isOpened || isBeingTransitioned) && isTabletOrMobile && react_1.default.createElement("div", { style: { height: headerHeight } }),
301
+ react_1.default.createElement(ZIndex_1.ZIndex, { priority: isSideMenuOverflowing ? 8 : 0, className: (0, Emotion_1.cx)((_b = {},
302
+ _b[SideMenu_styles_1.jsStylesForSideMenu.root()] = true,
303
+ _b[SideMenu_styles_1.customStyles.rootForTabletsOrMobiles(headerHeight)] = isTabletOrMobile,
304
+ _b[SideMenu_styles_1.jsStylesForSideMenu.shownRootForTabletsOrMobiles()] = isOpened && isTabletOrMobile,
305
+ _b[SideMenu_styles_1.jsStylesForSideMenu.transitionedRootForTabletsOrMobiles()] = isBeingTransitioned && isTabletOrMobile,
306
+ _b[SideMenu_styles_1.jsStylesForSideMenu.rootForNarrowDesktops(theme)] = isCollapsable,
307
+ _b[SideMenu_styles_1.jsStylesForSideMenu.separatedRootForNarrowDesktops(theme)] = isSeparatedMenuShown && isCollapsable,
308
+ _b[SideMenu_styles_1.jsStylesForSideMenu.separatedRootForTouchScreens(theme)] = isSeparatedMenuShown && isTouchScreen && isCollapsable,
309
+ _b[SideMenu_styles_1.jsStylesForSideMenu.separatedRootForDesktops(theme)] = isSeparatedMenuShown && isDesktopQuery && !isCollapsable,
310
+ _b[SideMenu_styles_1.jsStylesForSideMenu.separatedRootForTouchScreensForDesktops(theme)] = isDesktopQuery && isSeparatedMenuShown && isTouchScreen,
278
311
  _b)) },
279
- React.createElement(React.Fragment, null,
280
- shouldShowBackdrop && React.createElement(Backdrop, { style: backdropStyle }),
281
- React.createElement(RenderLayer, { onClickOutside: function () { return showMenu(false); } },
282
- React.createElement("aside", __assign({ className: cx((_c = {},
283
- _c[jsStylesForSideMenu.wrapper()] = true,
284
- _c[jsStylesForSideMenu.wrapperIE()] = isIE11,
285
- _c[jsStylesForSideMenu.wrapperWithShadow(theme)] = isSideMenuOverContent,
286
- _c), className), "data-tid": SideMenuDataTids.root, ref: mergeRefs([sideMenuRef, ref]) }, rest, { onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onMouseMove: showMinimizedRootForNarrowDesktop }),
287
- React.createElement("div", { className: cx((_d = {},
288
- _d[jsStylesForSideMenu.container(theme)] = true,
289
- _d[jsStylesForSideMenu.collapsedContainerForTabletsOrMobiles()] = !isOpened && isTabletOrMobile && !isBeingTransitioned,
290
- _d[jsStylesForSideMenu.minimizedContainer(theme)] = !isOpened && !isTabletOrMobile,
291
- _d[jsStylesForSideMenu.containerForTouchScreens(theme)] = isTouchScreen,
292
- _d[jsStylesForSideMenu.separatedContainerForMobiles(theme)] = isMobile && isSeparatedMenuShown && (isOpened || isBeingTransitioned),
312
+ react_1.default.createElement(react_1.default.Fragment, null,
313
+ shouldShowBackdrop && react_1.default.createElement(Backdrop_1.Backdrop, { style: backdropStyle }),
314
+ react_1.default.createElement(RenderLayer_1.RenderLayer, { onClickOutside: function () { return showMenu(false); } },
315
+ react_1.default.createElement("aside", tslib_1.__assign({ className: (0, Emotion_1.cx)((_c = {},
316
+ _c[SideMenu_styles_1.jsStylesForSideMenu.wrapper()] = true,
317
+ _c[SideMenu_styles_1.jsStylesForSideMenu.wrapperIE()] = client_1.isIE11,
318
+ _c[SideMenu_styles_1.jsStylesForSideMenu.wrapperWithShadow(theme)] = isSideMenuOverContent,
319
+ _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 }),
320
+ react_1.default.createElement("div", { className: (0, Emotion_1.cx)((_d = {},
321
+ _d[SideMenu_styles_1.jsStylesForSideMenu.container(theme)] = true,
322
+ _d[SideMenu_styles_1.jsStylesForSideMenu.collapsedContainerForTabletsOrMobiles()] = !isOpened && isTabletOrMobile && !isBeingTransitioned,
323
+ _d[SideMenu_styles_1.jsStylesForSideMenu.minimizedContainer(theme)] = !isOpened && !isTabletOrMobile,
324
+ _d[SideMenu_styles_1.jsStylesForSideMenu.containerForTouchScreens(theme)] = isTouchScreen,
325
+ _d[SideMenu_styles_1.jsStylesForSideMenu.separatedContainerForMobiles(theme)] = isMobile && isSeparatedMenuShown && (isOpened || isBeingTransitioned),
293
326
  _d)) },
294
- React.createElement(ScrollContainer, { onScrollStateChangeY: function (state) {
327
+ react_1.default.createElement(react_ui_1.ScrollContainer, { onScrollStateChangeY: function (state) {
295
328
  setScrollState === null || setScrollState === void 0 ? void 0 : setScrollState(state);
296
329
  }, showScrollBar: setScrollBar(), ref: scrollContainerRef },
297
- React.createElement("div", { className: cx((_e = {},
298
- _e[jsStylesForSideMenu.contentWrapper(theme)] = true,
299
- _e[jsStylesForSideMenu.contentWrapperForTouchScreens(theme)] = isTouchScreen,
300
- _e[jsStylesForSideMenu.minimizedContentWrapper()] = !isOpened && !isTabletOrMobile,
330
+ react_1.default.createElement("div", { className: (0, Emotion_1.cx)((_e = {},
331
+ _e[SideMenu_styles_1.jsStylesForSideMenu.contentWrapper(theme)] = true,
332
+ _e[SideMenu_styles_1.jsStylesForSideMenu.contentWrapperForTouchScreens(theme)] = isTouchScreen,
333
+ _e[SideMenu_styles_1.jsStylesForSideMenu.minimizedContentWrapper()] = !isOpened && !isTabletOrMobile,
301
334
  _e)), ref: contentWrapperRef }, children))),
302
- !disableSwipe && !disableCollapsing && isDesktopQuery && isOpened && (React.createElement(RightBorder, { onClick: handleRightBorderClick, showButton: isHovered }))))))));
335
+ !disableSwipe && !disableCollapsing && isDesktopQuery && isOpened && (react_1.default.createElement(RightBorder_1.RightBorder, { onClick: handleRightBorderClick, showButton: isHovered }))))))));
303
336
  });
304
337
  SideMenuInner.displayName = 'SideMenu';
305
338
  var STATIC_PROPS = {
306
- Body: SideMenuBody,
307
- Footer: SideMenuFooter,
308
- Header: SideMenuHeader,
309
- Item: SideMenuItem,
310
- SubItem: SideMenuSubItem,
311
- SubItemHeader: SideMenuSubItemHeader,
312
- Avatar: SideMenuAvatar,
313
- Organisations: SideMenuOrganisations,
314
- Divider: SideMenuDivider,
315
- Link: SideMenuLink,
316
- SubLink: SideMenuSubLink,
317
- Dropdown: SideMenuDropdown,
339
+ Body: SideMenuBody_1.SideMenuBody,
340
+ Footer: SideMenuFooter_1.SideMenuFooter,
341
+ Header: SideMenuHeader_1.SideMenuHeader,
342
+ Item: SideMenuItem_1.SideMenuItem,
343
+ SubItem: SideMenuSubItem_1.SideMenuSubItem,
344
+ SubItemHeader: SideMenuSubItemHeader_1.SideMenuSubItemHeader,
345
+ Avatar: SideMenuAvatar_1.SideMenuAvatar,
346
+ Organisations: SideMenuOrganisations_1.SideMenuOrganisations,
347
+ Notifications: SideMenuNotifications_1.SideMenuNotifications,
348
+ Divider: SideMenuDivider_1.SideMenuDivider,
349
+ Link: SideMenuLink_1.SideMenuLink,
350
+ SubLink: SideMenuSubLink_1.SideMenuSubLink,
351
+ Dropdown: SideMenuDropdown_1.SideMenuDropdown,
318
352
  __KONTUR_REACT_UI__: 'SideMenu',
319
353
  };
320
- export var SideMenu = Object.assign(SideMenuInner, STATIC_PROPS);
354
+ 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' });