@skbkontur/side-menu 3.3.3 → 3.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/SideMenuDataTids.js +1 -4
- package/hooks/useAnimateOnMount.js +6 -9
- package/hooks/useMemoIcon.js +12 -18
- package/index.js +14 -17
- package/internal/themes/SideMenuTheme.js +10 -15
- package/lib/theming/ThemeHelpers.js +14 -20
- package/lib/theming/ThemeTypes.js +1 -2
- package/lib/utils/memo.js +1 -5
- package/lib/utils/scripts.js +5 -11
- package/package.json +3 -3
- package/src/Navigation.js +18 -21
- package/src/SideMenu/SideMenu.js +119 -120
- package/src/SideMenu/SideMenu.styles.js +28 -31
- package/src/SideMenuAvatar/SideMenuAvatar.d.ts +1 -1
- package/src/SideMenuAvatar/SideMenuAvatar.js +11 -14
- package/src/SideMenuBody/SideMenuBody.js +18 -21
- package/src/SideMenuBody/SideMenuBody.styles.js +6 -9
- package/src/SideMenuContext.d.ts +1 -1
- package/src/SideMenuContext.js +2 -5
- package/src/SideMenuDivider/SideMenuDivider.js +11 -14
- package/src/SideMenuDivider/SideMenuDivider.styles.js +5 -8
- package/src/SideMenuDropdown/SideMenuDropdown.d.ts +1 -1
- package/src/SideMenuDropdown/SideMenuDropdown.js +22 -24
- package/src/SideMenuDropdown/SideMenuDropdown.styles.js +9 -12
- package/src/SideMenuFooter/SideMenuFooter.js +21 -24
- package/src/SideMenuFooter/SideMenuFooter.styles.js +7 -10
- package/src/SideMenuHeader/SideMenuHeader.js +26 -29
- package/src/SideMenuHeader/SideMenuHeader.styles.js +9 -12
- package/src/SideMenuItem/SideMenuItem.js +7 -10
- package/src/SideMenuLink/SideMenuLink.js +9 -12
- package/src/SideMenuLink/SideMenuLink.styles.js +4 -7
- package/src/SideMenuNotifications/BellWidget.js +41 -45
- package/src/SideMenuNotifications/BellWidgetError.js +15 -20
- package/src/SideMenuNotifications/BellWidgetView.styles.js +11 -14
- package/src/SideMenuNotifications/SideMenuNotifications.js +23 -26
- package/src/SideMenuNotifications/utils/getMarker.js +1 -4
- package/src/SideMenuNotifications/utils/getNotificationsErrorMessages.js +1 -5
- package/src/SideMenuOrganisations/SideMenuOrganisations.js +7 -10
- package/src/SideMenuSubItem/SideMenuSubItem.js +8 -11
- package/src/SideMenuSubItemHeader/SideMenuSubItemHeader.js +15 -18
- package/src/SideMenuSubItemHeader/SideMenuSubItemHeader.styles.js +6 -9
- package/src/SideMenuSubLink/SideMenuSubLink.js +7 -10
- package/src/Tree.js +9 -12
- package/src/internal/BackButton.js +10 -14
- package/src/internal/Backdrop.js +11 -15
- package/src/internal/Backdrop.styles.js +5 -8
- package/src/internal/Burger.js +12 -17
- package/src/internal/Burger.styles.js +6 -9
- package/src/internal/ClickableElement.js +44 -47
- package/src/internal/ClickableElement.styles.js +12 -15
- package/src/internal/InnerSubMenu.js +10 -14
- package/src/internal/ItemContent/Caption.js +31 -34
- package/src/internal/ItemContent/Caption.styles.js +20 -23
- package/src/internal/ItemContent/Icon.js +20 -25
- package/src/internal/ItemContent/Icon.styles.js +11 -14
- package/src/internal/ItemContent/ItemContent.js +33 -36
- package/src/internal/ItemContent/ItemContent.styles.js +15 -18
- package/src/internal/ItemContent/Marker.js +16 -21
- package/src/internal/ItemContent/Marker.styles.js +12 -15
- package/src/internal/NestedMenu.js +15 -19
- package/src/internal/NestedMenu.styles.js +5 -8
- package/src/internal/RightBorder.js +19 -22
- package/src/internal/RightBorder.styles.js +6 -9
- package/src/internal/SeparatedSubMenu.js +36 -40
- package/src/internal/SeparatedSubMenu.styles.js +13 -16
- package/src/internal/SideMenuLogotype.js +31 -34
- package/src/internal/SideMenuLogotype.styles.js +14 -17
- package/src/internal/SubMenu.js +11 -15
|
@@ -1,36 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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");
|
|
1
|
+
import { __makeTemplateObject } from "tslib";
|
|
2
|
+
import { css } from '@skbkontur/react-ui/lib/theming/Emotion';
|
|
3
|
+
import { memoizeStyle } from '../../lib/theming/ThemeHelpers';
|
|
7
4
|
var styles = {
|
|
8
5
|
root: function (t) {
|
|
9
|
-
return
|
|
6
|
+
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n background: ", ";\n left: 100%;\n justify-content: flex-start;\n border-right: 1px solid ", ";\n z-index: 8000;\n "], ["\n position: absolute;\n top: 0;\n background: ", ";\n left: 100%;\n justify-content: flex-start;\n border-right: 1px solid ", ";\n z-index: 8000;\n "])), t.sideMenuSeparatedSubMenuBgColor, t.sideMenuSeparatedSubMenuBorderRightColor);
|
|
10
7
|
},
|
|
11
8
|
rootForTouchScreens: function (t) {
|
|
12
|
-
return
|
|
9
|
+
return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n left: ", ";\n z-index: -1;\n "], ["\n left: ", ";\n z-index: -1;\n "])), t.sideMenuWidthForTouchScreens);
|
|
13
10
|
},
|
|
14
11
|
rootForNarrowDesktop: function (t) {
|
|
15
|
-
return
|
|
12
|
+
return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n left: ", ";\n z-index: -1;\n "], ["\n left: ", ";\n z-index: -1;\n "])), t.sideMenuMinimizedWidth);
|
|
16
13
|
},
|
|
17
14
|
rootForDesktop: function () {
|
|
18
|
-
return
|
|
15
|
+
return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n z-index: -1;\n "], ["\n z-index: -1;\n "])));
|
|
19
16
|
},
|
|
20
17
|
rootWithShadow: function (t) {
|
|
21
|
-
return
|
|
18
|
+
return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n box-shadow: ", ";\n clip-path: inset(0 -", " 0 0);\n border-right: none;\n "], ["\n box-shadow: ", ";\n clip-path: inset(0 -", " 0 0);\n border-right: none;\n "])), t.sideMenuBoxShadow, t.sideMenuBoxShadowBlurRadius);
|
|
22
19
|
},
|
|
23
20
|
contentWrapper: function (t) {
|
|
24
|
-
return
|
|
21
|
+
return css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n padding: ", " ", ";\n "], ["\n padding: ", " ", ";\n "])), t.sideMenuSeparatedSubMenuPaddingY, t.sideMenuSeparatedSubMenuPaddingX);
|
|
25
22
|
},
|
|
26
23
|
contentWrapperForMobiles: function () {
|
|
27
|
-
return
|
|
24
|
+
return css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n padding-top: 0;\n "], ["\n padding-top: 0;\n "])));
|
|
28
25
|
},
|
|
29
26
|
};
|
|
30
|
-
|
|
27
|
+
export var customStyles = {
|
|
31
28
|
rootForMobiles: function (headerHeight) {
|
|
32
|
-
return
|
|
29
|
+
return css(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n height: calc(100vh - ", "px);\n left: 0;\n top: ", "px;\n "], ["\n height: calc(100vh - ", "px);\n left: 0;\n top: ", "px;\n "])), headerHeight, headerHeight);
|
|
33
30
|
},
|
|
34
31
|
};
|
|
35
|
-
|
|
32
|
+
export var jsStyles = memoizeStyle(styles);
|
|
36
33
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8;
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
11
|
-
var SideMenuLogotype_styles_1 = require("./SideMenuLogotype.styles");
|
|
12
|
-
var Burger_1 = require("./Burger");
|
|
1
|
+
import { __assign, __read, __rest } from "tslib";
|
|
2
|
+
import React, { forwardRef, useContext, useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { Logotype } from '@skbkontur/react-ui-addons/components/Logotype';
|
|
4
|
+
import { cx } from '@skbkontur/react-ui/lib/theming/Emotion';
|
|
5
|
+
import { ThemeContext } from '@skbkontur/react-ui/lib/theming/ThemeContext';
|
|
6
|
+
import { SideMenuContext } from '../SideMenuContext';
|
|
7
|
+
import { getSideMenuTheme } from '../../lib/theming/ThemeHelpers';
|
|
8
|
+
import { jsStyles, sideMenuLogotypeIconSize } from './SideMenuLogotype.styles';
|
|
9
|
+
import { Burger } from './Burger';
|
|
13
10
|
var changeCamelCaseToKebabCase = function (str) {
|
|
14
11
|
return str
|
|
15
12
|
.split('')
|
|
@@ -27,23 +24,23 @@ var getProductName = function (productLogo) {
|
|
|
27
24
|
: 'kontur';
|
|
28
25
|
};
|
|
29
26
|
var getStaticIconPath = function (productName) {
|
|
30
|
-
return "https://s.kontur.ru/common-v2/icons-products/".concat(productName, "/").concat(productName, "-").concat(parseInt(
|
|
27
|
+
return "https://s.kontur.ru/common-v2/icons-products/".concat(productName, "/").concat(productName, "-").concat(parseInt(sideMenuLogotypeIconSize), ".svg");
|
|
31
28
|
};
|
|
32
29
|
/**
|
|
33
30
|
* Логотип
|
|
34
31
|
*
|
|
35
32
|
* @visibleName SideMenu.Logotype
|
|
36
33
|
*/
|
|
37
|
-
var SideMenuLogotype =
|
|
34
|
+
var SideMenuLogotype = forwardRef(function (_a, ref) {
|
|
38
35
|
var _b, _c, _d;
|
|
39
|
-
var productLogo = _a.productLogo, withWidget = _a.withWidget, konturLogo = _a.konturLogo, iconUrl = _a.iconUrl, rest =
|
|
40
|
-
var context =
|
|
41
|
-
var theme =
|
|
36
|
+
var productLogo = _a.productLogo, withWidget = _a.withWidget, konturLogo = _a.konturLogo, iconUrl = _a.iconUrl, rest = __rest(_a, ["productLogo", "withWidget", "konturLogo", "iconUrl"]);
|
|
37
|
+
var context = useContext(SideMenuContext);
|
|
38
|
+
var theme = getSideMenuTheme(useContext(ThemeContext));
|
|
42
39
|
var productName = getProductName(productLogo);
|
|
43
|
-
var refLogotype =
|
|
44
|
-
var _e =
|
|
45
|
-
var _f =
|
|
46
|
-
|
|
40
|
+
var refLogotype = useRef(null);
|
|
41
|
+
var _e = __read(useState(28), 2), size = _e[0], setSize = _e[1];
|
|
42
|
+
var _f = __read(useState(getStaticIconPath(productName)), 2), productIconUrl = _f[0], setProductIconUrl = _f[1];
|
|
43
|
+
useEffect(function () {
|
|
47
44
|
var _a, _b;
|
|
48
45
|
var logotypeWidth = (_b = (_a = refLogotype.current) === null || _a === void 0 ? void 0 : _a.logotypeRef) === null || _b === void 0 ? void 0 : _b.clientWidth;
|
|
49
46
|
var maxWidth = parseInt(theme.sideMenuWidth) -
|
|
@@ -62,22 +59,22 @@ var SideMenuLogotype = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
62
59
|
var handleError = function () {
|
|
63
60
|
setProductIconUrl(getStaticIconPath('kontur'));
|
|
64
61
|
};
|
|
65
|
-
return (
|
|
66
|
-
_b[
|
|
67
|
-
_b[
|
|
62
|
+
return (React.createElement("div", { className: cx((_b = {},
|
|
63
|
+
_b[jsStyles.root()] = true,
|
|
64
|
+
_b[jsStyles.rootForTabletsOrMobiles()] = context.isMobile || context.isTablet,
|
|
68
65
|
_b)), ref: ref },
|
|
69
|
-
!context.isMobile && !context.isTablet && (
|
|
70
|
-
_c[
|
|
71
|
-
_c[
|
|
66
|
+
!context.isMobile && !context.isTablet && (React.createElement("img", { className: cx((_c = {},
|
|
67
|
+
_c[jsStyles.iconHidden(theme)] = true,
|
|
68
|
+
_c[jsStyles.icon()] = !context.isOpened && !(context.isMobile || context.isTablet),
|
|
72
69
|
_c)), src: iconUrl || productIconUrl, alt: productName, onError: handleError })),
|
|
73
|
-
|
|
74
|
-
_d[
|
|
75
|
-
_d[
|
|
76
|
-
_d[
|
|
70
|
+
React.createElement("div", { className: cx((_d = {},
|
|
71
|
+
_d[jsStyles.logoWrapper(theme)] = true,
|
|
72
|
+
_d[jsStyles.logoWrapperForTabletsOrMobiles(theme)] = context.isMobile || context.isTablet,
|
|
73
|
+
_d[jsStyles.logoWrapperHidden()] = !context.isOpened && !(context.isMobile || context.isTablet),
|
|
77
74
|
_d)) },
|
|
78
|
-
(context.isTablet || context.isMobile) &&
|
|
79
|
-
|
|
75
|
+
(context.isTablet || context.isMobile) && React.createElement(Burger, null),
|
|
76
|
+
React.createElement(Logotype, __assign({ ref: refLogotype, size: size, productLogo: productLogo, konturLogo: konturLogo, withWidget: getWidget(withWidget, !context.isOpened && context.isCollapsable) }, rest)))));
|
|
80
77
|
});
|
|
81
78
|
SideMenuLogotype.displayName = 'SideMenuLogotype';
|
|
82
79
|
var SideMenuLogotypeWithStaticFields = Object.assign(SideMenuLogotype, { __KONTUR_REACT_UI__: 'SideMenuLogotype' });
|
|
83
|
-
|
|
80
|
+
export { SideMenuLogotypeWithStaticFields as SideMenuLogotype };
|
|
@@ -1,34 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
8
|
-
exports.sideMenuLogotypeIconSize = '32px';
|
|
9
|
-
exports.sideMenuLogotypeGapBetweenIconAndLogo = '50px';
|
|
1
|
+
import { __makeTemplateObject } from "tslib";
|
|
2
|
+
import { css } from '@skbkontur/react-ui/lib/theming/Emotion';
|
|
3
|
+
import { transitionDuration } from '../SideMenu/SideMenu';
|
|
4
|
+
import { memoizeStyle } from '../../lib/theming/ThemeHelpers';
|
|
5
|
+
export var sideMenuLogotypeIconSize = '32px';
|
|
6
|
+
export var sideMenuLogotypeGapBetweenIconAndLogo = '50px';
|
|
10
7
|
var styles = {
|
|
11
8
|
root: function () {
|
|
12
|
-
return
|
|
9
|
+
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n padding-left: 4px;\n "], ["\n display: flex;\n padding-left: 4px;\n "])));
|
|
13
10
|
},
|
|
14
11
|
rootForTabletsOrMobiles: function () {
|
|
15
|
-
return
|
|
12
|
+
return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding-left: 0;\n "], ["\n padding-left: 0;\n "])));
|
|
16
13
|
},
|
|
17
14
|
icon: function () {
|
|
18
|
-
return
|
|
15
|
+
return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n opacity: 1;\n width: auto;\n "], ["\n opacity: 1;\n width: auto;\n "])));
|
|
19
16
|
},
|
|
20
17
|
iconHidden: function (t) {
|
|
21
|
-
return
|
|
18
|
+
return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: block;\n width: 0;\n padding-left: ", ";\n opacity: 0;\n transition: all ", "ms ease-out;\n "], ["\n display: block;\n width: 0;\n padding-left: ", ";\n opacity: 0;\n transition: all ", "ms ease-out;\n "])), t.sideMenuLogotypeHiddenIconPaddingLeft, transitionDuration);
|
|
22
19
|
},
|
|
23
20
|
logoWrapper: function (t) {
|
|
24
|
-
return
|
|
21
|
+
return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n display: flex;\n opacity: 1;\n transition: all ", "ms ease-out;\n "], ["\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n display: flex;\n opacity: 1;\n transition: all ", "ms ease-out;\n "])), t.sideMenuLogotypePaddingTop, t.sideMenuLogotypePaddingBottom, t.sideMenuLogotypePaddingLeft, transitionDuration);
|
|
25
22
|
},
|
|
26
23
|
logoWrapperForTabletsOrMobiles: function (t) {
|
|
27
|
-
return
|
|
24
|
+
return css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n padding-top: ", ";\n padding-bottom: ", ";\n "], ["\n padding-top: ", ";\n padding-bottom: ", ";\n "])), t.sideMenuLogotypePaddingYForTouchScreens, t.sideMenuLogotypePaddingYForTouchScreens);
|
|
28
25
|
},
|
|
29
26
|
logoWrapperHidden: function () {
|
|
30
|
-
return
|
|
27
|
+
return css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n opacity: 0;\n "], ["\n opacity: 0;\n "])));
|
|
31
28
|
},
|
|
32
29
|
};
|
|
33
|
-
|
|
30
|
+
export var jsStyles = memoizeStyle(styles);
|
|
34
31
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
|
package/src/internal/SubMenu.js
CHANGED
|
@@ -1,29 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var SideMenuContext_1 = require("../SideMenuContext");
|
|
7
|
-
var SeparatedSubMenu_1 = require("./SeparatedSubMenu");
|
|
8
|
-
var InnerSubMenu_1 = require("./InnerSubMenu");
|
|
9
|
-
var NestedMenu_1 = require("./NestedMenu");
|
|
1
|
+
import React, { forwardRef, useContext } from 'react';
|
|
2
|
+
import { SideMenuContext } from '../SideMenuContext';
|
|
3
|
+
import { SeparatedSubMenu } from './SeparatedSubMenu';
|
|
4
|
+
import { InnerSubMenu } from './InnerSubMenu';
|
|
5
|
+
import { NestedMenu } from './NestedMenu';
|
|
10
6
|
/**
|
|
11
7
|
* Подменю
|
|
12
8
|
*
|
|
13
9
|
* @visibleName InnerSubMenu
|
|
14
10
|
*/
|
|
15
|
-
var SubMenu =
|
|
11
|
+
var SubMenu = forwardRef(function (_a, ref) {
|
|
16
12
|
var _b;
|
|
17
13
|
var children = _a.children, isOpened = _a.isOpened, isSubMenu = _a.isSubMenu, isSeparatedMenu = _a.isSeparatedMenu, caption = _a.caption, htmlId = _a.htmlId;
|
|
18
|
-
var context =
|
|
14
|
+
var context = useContext(SideMenuContext);
|
|
19
15
|
if (isSubMenu) {
|
|
20
|
-
return (
|
|
16
|
+
return (React.createElement(NestedMenu, { ref: ref, htmlId: htmlId, isOpened: isOpened }, children));
|
|
21
17
|
}
|
|
22
18
|
if (isSeparatedMenu) {
|
|
23
|
-
return (
|
|
19
|
+
return (React.createElement(SeparatedSubMenu, { ref: ref, caption: caption, htmlId: htmlId, isOpened: isOpened && ((_b = context.navigation) === null || _b === void 0 ? void 0 : _b.isSeparatedMenuShown) }, children));
|
|
24
20
|
}
|
|
25
|
-
return (
|
|
21
|
+
return (React.createElement(InnerSubMenu, { ref: ref, htmlId: htmlId, isOpened: isOpened }, children));
|
|
26
22
|
});
|
|
27
23
|
SubMenu.displayName = 'SubMenu';
|
|
28
24
|
var SubMenuWithStaticFields = Object.assign(SubMenu, { __KONTUR_REACT_UI__: 'SubMenu' });
|
|
29
|
-
|
|
25
|
+
export { SubMenuWithStaticFields as SubMenu };
|