@skbkontur/side-menu 3.2.7 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +25 -6
- package/SideMenuDataTids.d.ts +3 -0
- package/SideMenuDataTids.js +7 -1
- package/hooks/useAnimateOnMount.js +9 -6
- package/hooks/useMemoIcon.js +18 -12
- package/index.js +17 -14
- package/internal/themes/SideMenuTheme.d.ts +5 -0
- package/internal/themes/SideMenuTheme.js +22 -10
- package/lib/theming/ThemeHelpers.js +20 -14
- package/lib/theming/ThemeTypes.js +2 -1
- package/lib/utils/memo.js +5 -1
- package/lib/utils/scripts.js +11 -5
- package/package.json +8 -4
- package/src/Navigation.js +21 -18
- package/src/SideMenu/SideMenu.d.ts +2 -0
- package/src/SideMenu/SideMenu.js +147 -113
- package/src/SideMenu/SideMenu.styles.js +31 -28
- package/src/SideMenuAvatar/SideMenuAvatar.js +14 -11
- package/src/SideMenuBody/SideMenuBody.js +21 -18
- package/src/SideMenuBody/SideMenuBody.styles.js +9 -6
- package/src/SideMenuContext.d.ts +3 -0
- package/src/SideMenuContext.js +5 -2
- package/src/SideMenuDivider/SideMenuDivider.js +14 -11
- package/src/SideMenuDivider/SideMenuDivider.styles.js +8 -5
- package/src/SideMenuDropdown/SideMenuDropdown.js +34 -21
- package/src/SideMenuDropdown/SideMenuDropdown.styles.js +12 -9
- package/src/SideMenuFooter/SideMenuFooter.js +24 -21
- package/src/SideMenuFooter/SideMenuFooter.styles.js +10 -7
- package/src/SideMenuHeader/SideMenuHeader.js +29 -26
- package/src/SideMenuHeader/SideMenuHeader.styles.js +12 -9
- package/src/SideMenuItem/SideMenuItem.js +10 -7
- package/src/SideMenuLink/SideMenuLink.js +12 -9
- package/src/SideMenuLink/SideMenuLink.styles.js +7 -4
- package/src/SideMenuNotifications/BellWidget.d.ts +11 -0
- package/src/SideMenuNotifications/BellWidget.js +87 -0
- package/src/SideMenuNotifications/BellWidgetError.d.ts +9 -0
- package/src/SideMenuNotifications/BellWidgetError.js +26 -0
- package/src/SideMenuNotifications/BellWidgetView.styles.d.ts +10 -0
- package/src/SideMenuNotifications/BellWidgetView.styles.js +31 -0
- package/src/SideMenuNotifications/SideMenuNotifications.d.ts +41 -0
- package/src/SideMenuNotifications/SideMenuNotifications.js +49 -0
- package/src/SideMenuNotifications/SideMenuNotifications.md +75 -0
- package/src/SideMenuNotifications/utils/getMarker.d.ts +1 -0
- package/src/SideMenuNotifications/utils/getMarker.js +12 -0
- package/src/SideMenuNotifications/utils/getNotificationsErrorMessages.d.ts +6 -0
- package/src/SideMenuNotifications/utils/getNotificationsErrorMessages.js +19 -0
- package/src/SideMenuOrganisations/SideMenuOrganisations.js +10 -7
- package/src/SideMenuSubItem/SideMenuSubItem.js +11 -8
- package/src/SideMenuSubItemHeader/SideMenuSubItemHeader.js +18 -15
- package/src/SideMenuSubItemHeader/SideMenuSubItemHeader.styles.js +9 -6
- package/src/SideMenuSubLink/SideMenuSubLink.js +10 -7
- package/src/Tree.js +12 -9
- package/src/internal/BackButton.js +14 -11
- package/src/internal/Backdrop.js +15 -11
- package/src/internal/Backdrop.styles.js +8 -5
- package/src/internal/Burger.js +17 -12
- package/src/internal/Burger.styles.js +9 -6
- package/src/internal/ClickableElement.js +47 -44
- package/src/internal/ClickableElement.styles.js +15 -12
- package/src/internal/InnerSubMenu.js +14 -10
- package/src/internal/ItemContent/Caption.js +34 -31
- package/src/internal/ItemContent/Caption.styles.js +23 -20
- package/src/internal/ItemContent/Icon.js +25 -20
- package/src/internal/ItemContent/Icon.styles.js +14 -11
- package/src/internal/ItemContent/ItemContent.d.ts +1 -1
- package/src/internal/ItemContent/ItemContent.js +36 -33
- package/src/internal/ItemContent/ItemContent.styles.js +18 -15
- package/src/internal/ItemContent/Marker.js +21 -16
- package/src/internal/ItemContent/Marker.styles.js +15 -12
- package/src/internal/NestedMenu.js +19 -15
- package/src/internal/NestedMenu.styles.js +8 -5
- package/src/internal/RightBorder.js +22 -18
- package/src/internal/RightBorder.styles.js +9 -6
- package/src/internal/SeparatedSubMenu.js +40 -37
- package/src/internal/SeparatedSubMenu.styles.js +16 -13
- package/src/internal/SideMenuLogotype.js +34 -31
- package/src/internal/SideMenuLogotype.styles.js +17 -14
- package/src/internal/SubMenu.js +15 -11
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsStyles = 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");
|
|
4
7
|
var styles = {
|
|
5
8
|
root: function (t) {
|
|
6
|
-
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n flex-grow: 1;\n margin: 0 ", ";\n min-height: 100%;\n "], ["\n flex-grow: 1;\n margin: 0 ", ";\n min-height: 100%;\n "])), t.sideMenuMarginX);
|
|
9
|
+
return (0, Emotion_1.css)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n flex-grow: 1;\n margin: 0 ", ";\n min-height: 100%;\n "], ["\n flex-grow: 1;\n margin: 0 ", ";\n min-height: 100%;\n "])), t.sideMenuMarginX);
|
|
7
10
|
},
|
|
8
11
|
wrapper: function (t) {
|
|
9
|
-
return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding-bottom: ", ";\n "], ["\n padding-bottom: ", ";\n "])), t.sideMenuBodyPaddingBottom);
|
|
12
|
+
return (0, Emotion_1.css)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n padding-bottom: ", ";\n "], ["\n padding-bottom: ", ";\n "])), t.sideMenuBodyPaddingBottom);
|
|
10
13
|
},
|
|
11
14
|
};
|
|
12
|
-
|
|
15
|
+
exports.jsStyles = (0, ThemeHelpers_1.memoizeStyle)(styles);
|
|
13
16
|
var templateObject_1, templateObject_2;
|
package/src/SideMenuContext.d.ts
CHANGED
|
@@ -26,5 +26,8 @@ export interface SideMenuContextType {
|
|
|
26
26
|
showScrollBar?: showScrollBarType;
|
|
27
27
|
sideMenuRef?: RefObject<HTMLDivElement>;
|
|
28
28
|
navigation?: MenuNavigation | null;
|
|
29
|
+
openDropdownCount?: number;
|
|
30
|
+
handleDropDownOpen?: () => void;
|
|
31
|
+
handleDropDownClose?: () => void;
|
|
29
32
|
}
|
|
30
33
|
export declare const SideMenuContext: import("react").Context<SideMenuContextType>;
|
package/src/SideMenuContext.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SideMenuContext = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
exports.SideMenuContext = (0, react_1.createContext)({});
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SideMenuDivider = 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 react_ui_1 = require("@skbkontur/react-ui");
|
|
8
|
+
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
9
|
+
var SideMenuDivider_styles_1 = require("./SideMenuDivider.styles");
|
|
10
|
+
var SideMenuDividerInner = (0, react_1.forwardRef)(function (_a, ref) {
|
|
8
11
|
var _b;
|
|
9
|
-
var className = _a.className, rest = __rest(_a, ["className"]);
|
|
10
|
-
var theme = getSideMenuTheme(useContext(ThemeContext));
|
|
11
|
-
return
|
|
12
|
+
var className = _a.className, rest = tslib_1.__rest(_a, ["className"]);
|
|
13
|
+
var theme = (0, ThemeHelpers_1.getSideMenuTheme)((0, react_1.useContext)(react_ui_1.ThemeContext));
|
|
14
|
+
return react_1.default.createElement("hr", tslib_1.__assign({ className: (0, Emotion_1.cx)((_b = {}, _b[SideMenuDivider_styles_1.jsStyles.root(theme)] = true, _b), className), ref: ref }, rest));
|
|
12
15
|
});
|
|
13
16
|
SideMenuDividerInner.displayName = 'SideMenuDivider';
|
|
14
17
|
/**
|
|
@@ -16,4 +19,4 @@ SideMenuDividerInner.displayName = 'SideMenuDivider';
|
|
|
16
19
|
*
|
|
17
20
|
* @visibleName SideMenu.Divider
|
|
18
21
|
*/
|
|
19
|
-
|
|
22
|
+
exports.SideMenuDivider = Object.assign(SideMenuDividerInner, { __KONTUR_REACT_UI__: 'SideMenuDivider' });
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsStyles = 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");
|
|
4
7
|
var styles = {
|
|
5
8
|
root: function (t) {
|
|
6
|
-
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 1px;\n border: none;\n background: ", ";\n margin: ", " ", ";\n "], ["\n height: 1px;\n border: none;\n background: ", ";\n margin: ", " ", ";\n "])), t.sideMenuDividerBgColor, t.sideMenuDividerMarginY, t.sideMenuDividerMarginX);
|
|
9
|
+
return (0, Emotion_1.css)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n height: 1px;\n border: none;\n background: ", ";\n margin: ", " ", ";\n "], ["\n height: 1px;\n border: none;\n background: ", ";\n margin: ", " ", ";\n "])), t.sideMenuDividerBgColor, t.sideMenuDividerMarginY, t.sideMenuDividerMarginX);
|
|
7
10
|
},
|
|
8
11
|
};
|
|
9
|
-
|
|
12
|
+
exports.jsStyles = (0, ThemeHelpers_1.memoizeStyle)(styles);
|
|
10
13
|
var templateObject_1;
|
|
@@ -1,26 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SideMenuDropdown = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var react_ui_1 = require("@skbkontur/react-ui");
|
|
7
|
+
var Emotion_1 = require("@skbkontur/react-ui/lib/theming/Emotion");
|
|
8
|
+
var SideMenuItem_1 = require("../SideMenuItem/SideMenuItem");
|
|
9
|
+
var SideMenuContext_1 = require("../SideMenuContext");
|
|
10
|
+
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
11
|
+
var SideMenuDropdown_styles_1 = require("./SideMenuDropdown.styles");
|
|
12
|
+
var SideMenuDropdownInner = (0, react_1.forwardRef)(function (_a, ref) {
|
|
10
13
|
var _b, _c;
|
|
11
|
-
var icon = _a.icon, id = _a.id, children = _a.children, caption = _a.caption, marker = _a.marker, subCaption = _a.subCaption, className = _a.className, menuWidth = _a.menuWidth, _isAvatar = _a._isAvatar, rest = __rest(_a, ["icon", "id", "children", "caption", "marker", "subCaption", "className", "menuWidth", "_isAvatar"]);
|
|
12
|
-
var context = useContext(SideMenuContext);
|
|
13
|
-
var theme = getSideMenuTheme(useContext(ThemeContext));
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
var icon = _a.icon, id = _a.id, children = _a.children, caption = _a.caption, marker = _a.marker, subCaption = _a.subCaption, className = _a.className, menuWidth = _a.menuWidth, _isAvatar = _a._isAvatar, onClose = _a.onClose, onOpen = _a.onOpen, rest = tslib_1.__rest(_a, ["icon", "id", "children", "caption", "marker", "subCaption", "className", "menuWidth", "_isAvatar", "onClose", "onOpen"]);
|
|
15
|
+
var context = (0, react_1.useContext)(SideMenuContext_1.SideMenuContext);
|
|
16
|
+
var theme = (0, ThemeHelpers_1.getSideMenuTheme)((0, react_1.useContext)(react_ui_1.ThemeContext));
|
|
17
|
+
var handleOpen = function () {
|
|
18
|
+
var _a;
|
|
19
|
+
(_a = context.handleDropDownOpen) === null || _a === void 0 ? void 0 : _a.call(context);
|
|
20
|
+
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
21
|
+
};
|
|
22
|
+
var handleClose = function () {
|
|
23
|
+
var _a;
|
|
24
|
+
(_a = context.handleDropDownClose) === null || _a === void 0 ? void 0 : _a.call(context);
|
|
25
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
26
|
+
};
|
|
27
|
+
return (react_1.default.createElement("li", { className: (0, Emotion_1.cx)((_b = {}, _b[SideMenuDropdown_styles_1.jsStyles.wrapper()] = true, _b), className), ref: ref },
|
|
28
|
+
react_1.default.createElement(react_ui_1.DropdownMenu, tslib_1.__assign({ caption: react_1.default.createElement("div", { className: (0, Emotion_1.cx)((_c = {},
|
|
29
|
+
_c[SideMenuDropdown_styles_1.jsStyles.label(theme)] = true,
|
|
30
|
+
_c[SideMenuDropdown_styles_1.jsStyles.labelForTouchScreens(theme)] = context.isTouchScreen,
|
|
31
|
+
_c[SideMenuDropdown_styles_1.jsStyles.minimizedLabel()] = !context.isOpened,
|
|
19
32
|
_c)) },
|
|
20
|
-
|
|
33
|
+
react_1.default.createElement(SideMenuItem_1.SideMenuItem, { icon: icon, caption: caption, subCaption: subCaption, marker: marker, id: id, _isDropdown: true, _isAvatar: _isAvatar })), positions: ['top left'], disableAnimations: true, menuWidth: menuWidth, onOpen: handleOpen, onClose: handleClose }, rest), react_1.default.Children.map(children, function (child) {
|
|
21
34
|
// @ts-expect-error: accessing private property
|
|
22
|
-
if (
|
|
23
|
-
return
|
|
35
|
+
if (react_1.default.isValidElement(child) && (child === null || child === void 0 ? void 0 : child.type.__KONTUR_REACT_UI__) === 'MenuItem') {
|
|
36
|
+
return react_1.default.cloneElement(child, {
|
|
24
37
|
onClick: function () {
|
|
25
38
|
var _a, _b, _c;
|
|
26
39
|
(_a = context.toggleIsOpened) === null || _a === void 0 ? void 0 : _a.call(context);
|
|
@@ -37,4 +50,4 @@ SideMenuDropdownInner.displayName = 'SideMenuDropdown';
|
|
|
37
50
|
*
|
|
38
51
|
* @visibleName SideMenu.Dropdown
|
|
39
52
|
*/
|
|
40
|
-
|
|
53
|
+
exports.SideMenuDropdown = Object.assign(SideMenuDropdownInner, { __KONTUR_REACT_UI__: 'SideMenuDropdown' });
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsStyles = 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/SideMenu");
|
|
5
8
|
var styles = {
|
|
6
9
|
label: function (t) {
|
|
7
|
-
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: calc(", " - 2 * ", ");\n transition: width ", "ms ease-out;\n "], ["\n width: calc(", " - 2 * ", ");\n transition: width ", "ms ease-out;\n "])), t.sideMenuWidth, t.sideMenuMarginX, transitionDuration);
|
|
10
|
+
return (0, Emotion_1.css)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n width: calc(", " - 2 * ", ");\n transition: width ", "ms ease-out;\n "], ["\n width: calc(", " - 2 * ", ");\n transition: width ", "ms ease-out;\n "])), t.sideMenuWidth, t.sideMenuMarginX, SideMenu_1.transitionDuration);
|
|
8
11
|
},
|
|
9
12
|
labelForTouchScreens: function (t) {
|
|
10
|
-
return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: calc(", " - 2 * ", ");\n "], ["\n width: calc(", " - 2 * ", ");\n "])), t.sideMenuWidthForTouchScreens, t.sideMenuMarginX);
|
|
13
|
+
return (0, Emotion_1.css)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n width: calc(", " - 2 * ", ");\n "], ["\n width: calc(", " - 2 * ", ");\n "])), t.sideMenuWidthForTouchScreens, t.sideMenuMarginX);
|
|
11
14
|
},
|
|
12
15
|
minimizedLabel: function () {
|
|
13
|
-
return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: 100%;\n "], ["\n width: 100%;\n "])));
|
|
16
|
+
return (0, Emotion_1.css)(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n width: 100%;\n "], ["\n width: 100%;\n "])));
|
|
14
17
|
},
|
|
15
18
|
wrapper: function () {
|
|
16
|
-
return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n overflow-x: hidden;\n "], ["\n overflow-x: hidden;\n "])));
|
|
19
|
+
return (0, Emotion_1.css)(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n overflow-x: hidden;\n "], ["\n overflow-x: hidden;\n "])));
|
|
17
20
|
},
|
|
18
21
|
};
|
|
19
|
-
|
|
22
|
+
exports.jsStyles = (0, ThemeHelpers_1.memoizeStyle)(styles);
|
|
20
23
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
@@ -1,28 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SideMenuFooter = 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 SideMenu_styles_1 = require("../SideMenu/SideMenu.styles");
|
|
10
|
+
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
11
|
+
var SideMenuDataTids_1 = require("../../SideMenuDataTids");
|
|
12
|
+
var SideMenuFooter_styles_1 = require("./SideMenuFooter.styles");
|
|
13
|
+
var SideMenuFooterInner = (0, react_1.forwardRef)(function (_a, ref) {
|
|
11
14
|
var _b;
|
|
12
|
-
var className = _a.className, children = _a.children, rest = __rest(_a, ["className", "children"]);
|
|
13
|
-
var context = useContext(SideMenuContext);
|
|
14
|
-
var theme = getSideMenuTheme(useContext(ThemeContext));
|
|
15
|
-
var _c = __read(useState(false), 2), isFixed = _c[0], setIsFixed = _c[1];
|
|
16
|
-
useEffect(function () {
|
|
15
|
+
var className = _a.className, children = _a.children, rest = tslib_1.__rest(_a, ["className", "children"]);
|
|
16
|
+
var context = (0, react_1.useContext)(SideMenuContext_1.SideMenuContext);
|
|
17
|
+
var theme = (0, ThemeHelpers_1.getSideMenuTheme)((0, react_1.useContext)(ThemeContext_1.ThemeContext));
|
|
18
|
+
var _c = tslib_1.__read((0, react_1.useState)(false), 2), isFixed = _c[0], setIsFixed = _c[1];
|
|
19
|
+
(0, react_1.useEffect)(function () {
|
|
17
20
|
setIsFixed(!!context.hasScrollBar && !(context.scrollState === 'bottom'));
|
|
18
21
|
}, [context.hasScrollBar, context.scrollState]);
|
|
19
22
|
if (!(context.isMobile || context.isTablet) || (context.isOpened && (context.isMobile || context.isTablet))) {
|
|
20
|
-
return (
|
|
21
|
-
_b[jsStyles.root(theme)] = true,
|
|
22
|
-
_b[jsStyles.rootFixed(theme)] = isFixed,
|
|
23
|
-
_b[jsStyles.rootTransitionedForTabletsOrMobiles()] = context.isBeingTransitioned && (context.isMobile || context.isTablet),
|
|
23
|
+
return (react_1.default.createElement("footer", tslib_1.__assign({ "data-tid": SideMenuDataTids_1.SideMenuDataTids.footer, "data-visual-state-fixed": isFixed, className: (0, Emotion_1.cx)((_b = {},
|
|
24
|
+
_b[SideMenuFooter_styles_1.jsStyles.root(theme)] = true,
|
|
25
|
+
_b[SideMenuFooter_styles_1.jsStyles.rootFixed(theme)] = isFixed,
|
|
26
|
+
_b[SideMenuFooter_styles_1.jsStyles.rootTransitionedForTabletsOrMobiles()] = context.isBeingTransitioned && (context.isMobile || context.isTablet),
|
|
24
27
|
_b), className), ref: ref }, rest),
|
|
25
|
-
|
|
28
|
+
react_1.default.createElement("ul", { className: SideMenu_styles_1.jsStylesForSideMenu.list() }, children)));
|
|
26
29
|
}
|
|
27
30
|
return null;
|
|
28
31
|
});
|
|
@@ -32,4 +35,4 @@ SideMenuFooterInner.displayName = 'SideMenuFooter';
|
|
|
32
35
|
*
|
|
33
36
|
* @visibleName SideMenu.Footer
|
|
34
37
|
*/
|
|
35
|
-
|
|
38
|
+
exports.SideMenuFooter = Object.assign(SideMenuFooterInner, { __KONTUR_REACT_UI__: 'SideMenuFooter' });
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsStyles = 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");
|
|
4
7
|
var styles = {
|
|
5
8
|
root: function (t) {
|
|
6
|
-
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n flex-grow: 0;\n position: sticky;\n bottom: 0;\n padding-bottom: ", ";\n padding-top: ", ";\n margin: 0 ", ";\n background-color: ", ";\n "], ["\n flex-grow: 0;\n position: sticky;\n bottom: 0;\n padding-bottom: ", ";\n padding-top: ", ";\n margin: 0 ", ";\n background-color: ", ";\n "])), t.sideMenuFooterPaddingBottom, t.sideMenuFooterPaddingTop, t.sideMenuMarginX, t.sideMenuBgColor);
|
|
9
|
+
return (0, Emotion_1.css)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n flex-grow: 0;\n position: sticky;\n bottom: 0;\n padding-bottom: ", ";\n padding-top: ", ";\n margin: 0 ", ";\n background-color: ", ";\n "], ["\n flex-grow: 0;\n position: sticky;\n bottom: 0;\n padding-bottom: ", ";\n padding-top: ", ";\n margin: 0 ", ";\n background-color: ", ";\n "])), t.sideMenuFooterPaddingBottom, t.sideMenuFooterPaddingTop, t.sideMenuMarginX, t.sideMenuBgColor);
|
|
7
10
|
},
|
|
8
11
|
rootFixed: function (t) {
|
|
9
|
-
return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n box-shadow: 0 -1px 0 ", ";\n "], ["\n box-shadow: 0 -1px 0 ", ";\n "])), t.sideMenuFooterDividerColor);
|
|
12
|
+
return (0, Emotion_1.css)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n box-shadow: 0 -1px 0 ", ";\n "], ["\n box-shadow: 0 -1px 0 ", ";\n "])), t.sideMenuFooterDividerColor);
|
|
10
13
|
},
|
|
11
14
|
rootTransitionedForTabletsOrMobiles: function () {
|
|
12
|
-
return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: static;\n "], ["\n position: static;\n "])));
|
|
15
|
+
return (0, Emotion_1.css)(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n position: static;\n "], ["\n position: static;\n "])));
|
|
13
16
|
},
|
|
14
17
|
};
|
|
15
|
-
|
|
18
|
+
exports.jsStyles = (0, ThemeHelpers_1.memoizeStyle)(styles);
|
|
16
19
|
var templateObject_1, templateObject_2, templateObject_3;
|
|
@@ -1,34 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SideMenuHeader = 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 utils_1 = require("@skbkontur/react-ui/lib/utils");
|
|
8
|
+
var ThemeContext_1 = require("@skbkontur/react-ui/lib/theming/ThemeContext");
|
|
9
|
+
var getDOMRect_1 = require("@skbkontur/react-ui/lib/dom/getDOMRect");
|
|
10
|
+
var SideMenuContext_1 = require("../SideMenuContext");
|
|
11
|
+
var SideMenuLogotype_1 = require("../internal/SideMenuLogotype");
|
|
12
|
+
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
13
|
+
var SideMenuHeader_styles_1 = require("./SideMenuHeader.styles");
|
|
14
|
+
var SideMenuHeaderInner = (0, react_1.forwardRef)(function (_a, ref) {
|
|
12
15
|
var _b;
|
|
13
16
|
var _c;
|
|
14
|
-
var className = _a.className, productLogo = _a.productLogo, konturLogo = _a.konturLogo, iconUrl = _a.iconUrl, style = _a.style, _d = _a.withWidget, withWidget = _d === void 0 ? true : _d, dataTid = _a["data-tid"], rest = __rest(_a, ["className", "productLogo", "konturLogo", "iconUrl", "style", "withWidget", 'data-tid']);
|
|
15
|
-
var context = useContext(SideMenuContext);
|
|
16
|
-
var theme = getSideMenuTheme(useContext(ThemeContext));
|
|
17
|
-
var headerWrapperRef = useRef(null);
|
|
18
|
-
useEffect(function () {
|
|
17
|
+
var className = _a.className, productLogo = _a.productLogo, konturLogo = _a.konturLogo, iconUrl = _a.iconUrl, style = _a.style, _d = _a.withWidget, withWidget = _d === void 0 ? true : _d, dataTid = _a["data-tid"], rest = tslib_1.__rest(_a, ["className", "productLogo", "konturLogo", "iconUrl", "style", "withWidget", 'data-tid']);
|
|
18
|
+
var context = (0, react_1.useContext)(SideMenuContext_1.SideMenuContext);
|
|
19
|
+
var theme = (0, ThemeHelpers_1.getSideMenuTheme)((0, react_1.useContext)(ThemeContext_1.ThemeContext));
|
|
20
|
+
var headerWrapperRef = (0, react_1.useRef)(null);
|
|
21
|
+
(0, react_1.useEffect)(function () {
|
|
19
22
|
var _a;
|
|
20
23
|
if (headerWrapperRef.current) {
|
|
21
|
-
(_a = context.setHeaderHeight) === null || _a === void 0 ? void 0 : _a.call(context, getDOMRect(headerWrapperRef.current).height);
|
|
24
|
+
(_a = context.setHeaderHeight) === null || _a === void 0 ? void 0 : _a.call(context, (0, getDOMRect_1.getDOMRect)(headerWrapperRef.current).height);
|
|
22
25
|
}
|
|
23
26
|
}, []);
|
|
24
|
-
return (
|
|
25
|
-
_b[jsStyles.root(theme)] = true,
|
|
26
|
-
_b[jsStyles.rootForTabletsOrMobiles(theme)] = context.isMobile || context.isTablet,
|
|
27
|
-
_b[jsStyles.fixedRoot(theme)] = context.isOpened && !!context.hasScrollBar && !(context.scrollState === 'top'),
|
|
28
|
-
_b[jsStyles.collapsedRootForTabletsOrMobiles()] = !context.isOpened && (context.isMobile || context.isTablet),
|
|
29
|
-
_b[jsStyles.rootWithSeparatedMenuShown(theme)] = context.isOpened && context.isMobile && ((_c = context.navigation) === null || _c === void 0 ? void 0 : _c.isSeparatedMenuShown),
|
|
30
|
-
_b), className), ref: mergeRefs([headerWrapperRef, ref]), style: style, "data-tid": dataTid },
|
|
31
|
-
|
|
27
|
+
return (react_1.default.createElement("header", { className: (0, Emotion_1.cx)((_b = {},
|
|
28
|
+
_b[SideMenuHeader_styles_1.jsStyles.root(theme)] = true,
|
|
29
|
+
_b[SideMenuHeader_styles_1.jsStyles.rootForTabletsOrMobiles(theme)] = context.isMobile || context.isTablet,
|
|
30
|
+
_b[SideMenuHeader_styles_1.jsStyles.fixedRoot(theme)] = context.isOpened && !!context.hasScrollBar && !(context.scrollState === 'top'),
|
|
31
|
+
_b[SideMenuHeader_styles_1.jsStyles.collapsedRootForTabletsOrMobiles()] = !context.isOpened && (context.isMobile || context.isTablet),
|
|
32
|
+
_b[SideMenuHeader_styles_1.jsStyles.rootWithSeparatedMenuShown(theme)] = context.isOpened && context.isMobile && ((_c = context.navigation) === null || _c === void 0 ? void 0 : _c.isSeparatedMenuShown),
|
|
33
|
+
_b), className), ref: (0, utils_1.mergeRefs)([headerWrapperRef, ref]), style: style, "data-tid": dataTid },
|
|
34
|
+
react_1.default.createElement(SideMenuLogotype_1.SideMenuLogotype, tslib_1.__assign({ productLogo: productLogo, konturLogo: konturLogo, iconUrl: iconUrl, withWidget: withWidget }, rest))));
|
|
32
35
|
});
|
|
33
36
|
SideMenuHeaderInner.displayName = 'SideMenuHeader';
|
|
34
37
|
/**
|
|
@@ -36,4 +39,4 @@ SideMenuHeaderInner.displayName = 'SideMenuHeader';
|
|
|
36
39
|
*
|
|
37
40
|
* @visibleName SideMenu.Header
|
|
38
41
|
*/
|
|
39
|
-
|
|
42
|
+
exports.SideMenuHeader = Object.assign(SideMenuHeaderInner, { __KONTUR_REACT_UI__: 'SideMenuHeader' });
|
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsStyles = 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");
|
|
4
7
|
var styles = {
|
|
5
8
|
root: function (t) {
|
|
6
|
-
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: sticky;\n width: calc(100% - 2 * ", ");\n top: 0;\n z-index: 1;\n padding: ", " 0 ", ";\n margin: 0 ", ";\n background-color: ", ";\n "], ["\n position: sticky;\n width: calc(100% - 2 * ", ");\n top: 0;\n z-index: 1;\n padding: ", " 0 ", ";\n margin: 0 ", ";\n background-color: ", ";\n "])), t.sideMenuMarginX, t.sideMenuHeaderPaddingTop, t.sideMenuHeaderPaddingBottom, t.sideMenuMarginX, t.sideMenuBgColor);
|
|
9
|
+
return (0, Emotion_1.css)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n position: sticky;\n width: calc(100% - 2 * ", ");\n top: 0;\n z-index: 1;\n padding: ", " 0 ", ";\n margin: 0 ", ";\n background-color: ", ";\n "], ["\n position: sticky;\n width: calc(100% - 2 * ", ");\n top: 0;\n z-index: 1;\n padding: ", " 0 ", ";\n margin: 0 ", ";\n background-color: ", ";\n "])), t.sideMenuMarginX, t.sideMenuHeaderPaddingTop, t.sideMenuHeaderPaddingBottom, t.sideMenuMarginX, t.sideMenuBgColor);
|
|
7
10
|
},
|
|
8
11
|
rootForTabletsOrMobiles: function (t) {
|
|
9
|
-
return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding-top: ", ";\n "], ["\n padding-top: ", ";\n "])), t.sideMenuHeaderPaddingTopForTouchScreens);
|
|
12
|
+
return (0, Emotion_1.css)(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n padding-top: ", ";\n "], ["\n padding-top: ", ";\n "])), t.sideMenuHeaderPaddingTopForTouchScreens);
|
|
10
13
|
},
|
|
11
14
|
collapsedRootForTabletsOrMobiles: function () {
|
|
12
|
-
return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: transparent;\n "], ["\n background: transparent;\n "])));
|
|
15
|
+
return (0, Emotion_1.css)(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n background: transparent;\n "], ["\n background: transparent;\n "])));
|
|
13
16
|
},
|
|
14
17
|
rootWithSeparatedMenuShown: function (t) {
|
|
15
|
-
return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n background: ", ";\n z-index: 9000;\n "], ["\n background: ", ";\n z-index: 9000;\n "])), t.sideMenuSeparatedSubMenuBgColor);
|
|
18
|
+
return (0, Emotion_1.css)(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n background: ", ";\n z-index: 9000;\n "], ["\n background: ", ";\n z-index: 9000;\n "])), t.sideMenuSeparatedSubMenuBgColor);
|
|
16
19
|
},
|
|
17
20
|
fixedRoot: function (t) {
|
|
18
|
-
return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n box-shadow: 0 1px 0 ", ";\n "], ["\n box-shadow: 0 1px 0 ", ";\n "])), t.sideMenuHeaderDividerColor);
|
|
21
|
+
return (0, Emotion_1.css)(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n box-shadow: 0 1px 0 ", ";\n "], ["\n box-shadow: 0 1px 0 ", ";\n "])), t.sideMenuHeaderDividerColor);
|
|
19
22
|
},
|
|
20
23
|
};
|
|
21
|
-
|
|
24
|
+
exports.jsStyles = (0, ThemeHelpers_1.memoizeStyle)(styles);
|
|
22
25
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SideMenuItem = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var ClickableElement_1 = require("../internal/ClickableElement");
|
|
7
|
+
var SideMenuItemInner = (0, react_1.forwardRef)(function (_a, ref) {
|
|
8
|
+
var component = _a.component, rest = tslib_1.__rest(_a, ["component"]);
|
|
9
|
+
return react_1.default.createElement(ClickableElement_1.ClickableElement, tslib_1.__assign({}, rest, { ref: ref, element: component !== null && component !== void 0 ? component : 'button' }));
|
|
7
10
|
});
|
|
8
11
|
SideMenuItemInner.displayName = 'SideMenuItem';
|
|
9
12
|
/**
|
|
@@ -13,4 +16,4 @@ SideMenuItemInner.displayName = 'SideMenuItem';
|
|
|
13
16
|
*
|
|
14
17
|
* @visibleName SideMenu.Item
|
|
15
18
|
*/
|
|
16
|
-
|
|
19
|
+
exports.SideMenuItem = Object.assign(SideMenuItemInner, { __KONTUR_REACT_UI__: 'SideMenuItem' });
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SideMenuLink = 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 ClickableElement_1 = require("../internal/ClickableElement");
|
|
8
|
+
var SideMenuLink_styles_1 = require("./SideMenuLink.styles");
|
|
9
|
+
var SideMenuLinkInner = (0, react_1.forwardRef)(function (_a, ref) {
|
|
7
10
|
var _b;
|
|
8
|
-
var className = _a.className, component = _a.component, rest = __rest(_a, ["className", "component"]);
|
|
9
|
-
return (
|
|
11
|
+
var className = _a.className, component = _a.component, rest = tslib_1.__rest(_a, ["className", "component"]);
|
|
12
|
+
return (react_1.default.createElement(ClickableElement_1.ClickableElement, tslib_1.__assign({}, rest, { ref: ref, element: component !== null && component !== void 0 ? component : 'a', className: (0, Emotion_1.cx)((_b = {}, _b[SideMenuLink_styles_1.jsStyles.link()] = true, _b), className) })));
|
|
10
13
|
});
|
|
11
14
|
SideMenuLinkInner.displayName = 'SideMenuLink';
|
|
12
15
|
/**
|
|
@@ -18,4 +21,4 @@ SideMenuLinkInner.displayName = 'SideMenuLink';
|
|
|
18
21
|
*
|
|
19
22
|
* @visibleName SideMenu.Link
|
|
20
23
|
*/
|
|
21
|
-
|
|
24
|
+
exports.SideMenuLink = Object.assign(SideMenuLinkInner, { __KONTUR_REACT_UI__: 'SideMenuLink' });
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsStyles = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var Emotion_1 = require("@skbkontur/react-ui/lib/theming/Emotion");
|
|
3
6
|
var styles = {
|
|
4
7
|
link: function () {
|
|
5
|
-
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n text-decoration: none;\n display: inline-block;\n "], ["\n text-decoration: none;\n display: inline-block;\n "])));
|
|
8
|
+
return (0, Emotion_1.css)(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n text-decoration: none;\n display: inline-block;\n "], ["\n text-decoration: none;\n display: inline-block;\n "])));
|
|
6
9
|
},
|
|
7
10
|
};
|
|
8
|
-
|
|
11
|
+
exports.jsStyles = (0, Emotion_1.memoizeStyle)(styles);
|
|
9
12
|
var templateObject_1;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { OperationResult } from '@skbkontur/operation-result';
|
|
3
|
+
import type { ImportFaults, WidgetApi, RenderFault, RenderDisposeFault } from '@skbkontur/bell-widget-npm-loader' assert { 'resolution-mode': 'import' };
|
|
4
|
+
export interface BellWidgetProps {
|
|
5
|
+
widgetApi: Promise<OperationResult<ImportFaults, WidgetApi>>;
|
|
6
|
+
onClose(): void;
|
|
7
|
+
onError?: (error: ImportFaults | RenderFault | RenderDisposeFault) => void;
|
|
8
|
+
renderErrorButton?: (error: ImportFaults | RenderFault, retryRender: () => void) => React.ReactNode;
|
|
9
|
+
renderErrorMessage?: (error: ImportFaults | RenderFault, retryRender: () => void) => React.ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export declare const BellWidget: React.FC<BellWidgetProps>;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BellWidget = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var XIcon20Regular_1 = require("@skbkontur/icons/icons/XIcon/XIcon20Regular");
|
|
7
|
+
var Center_1 = require("@skbkontur/react-ui/components/Center/Center");
|
|
8
|
+
var Spinner_1 = require("@skbkontur/react-ui/components/Spinner/Spinner");
|
|
9
|
+
var Button_1 = require("@skbkontur/react-ui/components/Button/Button");
|
|
10
|
+
var ThemeContext_1 = require("@skbkontur/react-ui/lib/theming/ThemeContext");
|
|
11
|
+
var Emotion_1 = require("@skbkontur/react-ui/lib/theming/Emotion");
|
|
12
|
+
var operation_result_1 = require("@skbkontur/operation-result");
|
|
13
|
+
var widget_consumer_react_utils_1 = require("@skbkontur/widget-consumer-react-utils");
|
|
14
|
+
var SideMenuDataTids_1 = require("../../SideMenuDataTids");
|
|
15
|
+
var ThemeHelpers_1 = require("../../lib/theming/ThemeHelpers");
|
|
16
|
+
var SideMenuTheme_1 = require("../../internal/themes/SideMenuTheme");
|
|
17
|
+
var BellWidgetView_styles_1 = require("./BellWidgetView.styles");
|
|
18
|
+
var SideMenuNotifications_1 = require("./SideMenuNotifications");
|
|
19
|
+
var BellWidgetError_1 = require("./BellWidgetError");
|
|
20
|
+
var getBtnTopPosition = function () {
|
|
21
|
+
var _a;
|
|
22
|
+
var bellDropDownItem = document.querySelector("[data-item=\"".concat(SideMenuNotifications_1.BELL_SIDE_MENU_DATA_ITEM, "\"]"));
|
|
23
|
+
return (_a = bellDropDownItem === null || bellDropDownItem === void 0 ? void 0 : bellDropDownItem.offsetTop) !== null && _a !== void 0 ? _a : 0;
|
|
24
|
+
};
|
|
25
|
+
var BellWidget = function (props) {
|
|
26
|
+
var widgetApi = props.widgetApi, onClose = props.onClose, renderErrorButton = props.renderErrorButton, renderErrorMessage = props.renderErrorMessage, onError = props.onError;
|
|
27
|
+
var btnTopPosition = getBtnTopPosition();
|
|
28
|
+
var theme = (0, ThemeHelpers_1.getSideMenuTheme)((0, react_1.useContext)(ThemeContext_1.ThemeContext));
|
|
29
|
+
var hasCustomWrapperHeight = theme.sideMenuNotificationsWrapperHeight !== SideMenuTheme_1.SideMenuTheme.sideMenuNotificationsWrapperHeight;
|
|
30
|
+
var renderWidget = (0, widget_consumer_react_utils_1.usePersistentCallback)(function (container) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
31
|
+
var api, wrapper, renderResult;
|
|
32
|
+
return tslib_1.__generator(this, function (_a) {
|
|
33
|
+
switch (_a.label) {
|
|
34
|
+
case 0: return [4 /*yield*/, widgetApi];
|
|
35
|
+
case 1:
|
|
36
|
+
api = _a.sent();
|
|
37
|
+
if ((0, operation_result_1.isFailure)(api)) {
|
|
38
|
+
return [2 /*return*/, (0, operation_result_1.createFailure)(api.fault)];
|
|
39
|
+
}
|
|
40
|
+
wrapper = container.parentElement;
|
|
41
|
+
if (wrapper) {
|
|
42
|
+
wrapper.classList.add(BellWidgetView_styles_1.jsStyles.widgetWrapper());
|
|
43
|
+
}
|
|
44
|
+
container.style.height = '100%';
|
|
45
|
+
return [4 /*yield*/, api.value.render({ container: container })];
|
|
46
|
+
case 2:
|
|
47
|
+
renderResult = _a.sent();
|
|
48
|
+
if ((0, operation_result_1.isFailure)(renderResult)) {
|
|
49
|
+
onError === null || onError === void 0 ? void 0 : onError(renderResult.fault);
|
|
50
|
+
return [2 /*return*/, (0, operation_result_1.createFailure)(renderResult.fault)];
|
|
51
|
+
}
|
|
52
|
+
return [2 /*return*/, (0, operation_result_1.createSuccess)({
|
|
53
|
+
dispose: function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
54
|
+
var disposeResult;
|
|
55
|
+
return tslib_1.__generator(this, function (_a) {
|
|
56
|
+
switch (_a.label) {
|
|
57
|
+
case 0: return [4 /*yield*/, renderResult.value.dispose()];
|
|
58
|
+
case 1:
|
|
59
|
+
disposeResult = _a.sent();
|
|
60
|
+
if ((0, operation_result_1.isFailure)(disposeResult)) {
|
|
61
|
+
onError === null || onError === void 0 ? void 0 : onError(disposeResult.fault);
|
|
62
|
+
}
|
|
63
|
+
return [2 /*return*/];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}); },
|
|
67
|
+
})];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}); }, []);
|
|
71
|
+
var buttonCloseTheme = {
|
|
72
|
+
btnBorderRadiusMedium: '20px',
|
|
73
|
+
};
|
|
74
|
+
var wrapperHeightClass = hasCustomWrapperHeight
|
|
75
|
+
? BellWidgetView_styles_1.customStyles.customHeight(theme.sideMenuNotificationsWrapperHeight)
|
|
76
|
+
: BellWidgetView_styles_1.customStyles.defaultHeight(btnTopPosition);
|
|
77
|
+
return (react_1.default.createElement("div", { className: (0, Emotion_1.cx)(BellWidgetView_styles_1.jsStyles.root(), wrapperHeightClass) },
|
|
78
|
+
react_1.default.createElement("div", { className: BellWidgetView_styles_1.jsStyles.header(), "data-tid": SideMenuDataTids_1.SideMenuDataTids.bellHeader },
|
|
79
|
+
react_1.default.createElement("span", { className: BellWidgetView_styles_1.jsStyles.headerText() }, "\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F"),
|
|
80
|
+
react_1.default.createElement(Button_1.Button, { use: "text", size: "medium", width: 40, icon: react_1.default.createElement(XIcon20Regular_1.XIcon20Regular, null), onClick: onClose, theme: buttonCloseTheme, "data-tid": SideMenuDataTids_1.SideMenuDataTids.bellCloseButton, "aria-label": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F" })),
|
|
81
|
+
react_1.default.createElement(widget_consumer_react_utils_1.WidgetRenderer, { renderWidget: renderWidget, renderFault: function (_a) {
|
|
82
|
+
var fault = _a.fault, retryRender = _a.retryRender;
|
|
83
|
+
return (react_1.default.createElement(BellWidgetError_1.BellWidgetError, { renderErrorButton: renderErrorButton, error: fault, renderErrorMessage: renderErrorMessage, retryRender: retryRender }));
|
|
84
|
+
}, loader: react_1.default.createElement(Center_1.Center, null,
|
|
85
|
+
react_1.default.createElement(Spinner_1.Spinner, { caption: "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F..." })) })));
|
|
86
|
+
};
|
|
87
|
+
exports.BellWidget = BellWidget;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ImportFaults, RenderFault } from '@skbkontur/bell-widget-npm-loader' assert { 'resolution-mode': 'import' };
|
|
3
|
+
export interface BellWidgetErrorProps {
|
|
4
|
+
error: ImportFaults | RenderFault;
|
|
5
|
+
renderErrorButton?: (error: ImportFaults | RenderFault, retryRender: () => void) => React.ReactNode;
|
|
6
|
+
renderErrorMessage?: (error: ImportFaults | RenderFault, retryRender: () => void) => React.ReactNode;
|
|
7
|
+
retryRender: VoidFunction;
|
|
8
|
+
}
|
|
9
|
+
export declare const BellWidgetError: React.FC<BellWidgetErrorProps>;
|