@skbkontur/side-menu 0.2.0 → 0.2.2
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 +20 -0
- package/README.md +131 -135
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/package.json +2 -2
- package/src/InnerSubMenu.d.ts +9 -0
- package/src/InnerSubMenu.js +18 -0
- package/src/RightBorder.d.ts +8 -0
- package/src/RightBorder.js +71 -0
- package/src/SeparatedSubMenu.d.ts +8 -0
- package/src/SeparatedSubMenu.js +42 -0
- package/src/SideMenu.d.ts +23 -50
- package/src/SideMenu.js +81 -143
- package/src/SideMenu.styles.d.ts +8 -4
- package/src/SideMenu.styles.js +52 -44
- package/src/SideMenuAvatar.d.ts +6 -22
- package/src/SideMenuAvatar.js +10 -41
- package/src/SideMenuBody.d.ts +5 -7
- package/src/SideMenuBody.js +22 -15
- package/src/SideMenuBodyChildren.d.ts +6 -0
- package/src/SideMenuBodyChildren.js +26 -0
- package/src/SideMenuContext.d.ts +7 -6
- package/src/SideMenuContext.js +1 -1
- package/src/SideMenuDivider.d.ts +5 -10
- package/src/SideMenuDivider.js +11 -19
- package/src/SideMenuDropdown.d.ts +13 -0
- package/src/SideMenuDropdown.js +29 -0
- package/src/SideMenuFooter.d.ts +5 -7
- package/src/SideMenuFooter.js +19 -6
- package/src/SideMenuHeader.d.ts +4 -26
- package/src/SideMenuHeader.js +32 -76
- package/src/SideMenuItem.d.ts +9 -35
- package/src/SideMenuItem.js +134 -165
- package/src/SideMenuLogotype.d.ts +6 -0
- package/src/SideMenuLogotype.js +65 -0
- package/src/SideMenuOrganisations.d.ts +4 -16
- package/src/SideMenuOrganisations.js +12 -35
- package/src/SideMenuSubItem.d.ts +3 -17
- package/src/SideMenuSubItem.js +27 -42
- package/src/SideMenuSubItemHeader.d.ts +5 -12
- package/src/SideMenuSubItemHeader.js +13 -21
- package/src/SideMenuDropdownMenuSeparator.d.ts +0 -11
- package/src/SideMenuDropdownMenuSeparator.js +0 -25
- package/src/SideMenuSubItemButtons.d.ts +0 -15
- package/src/SideMenuSubItemButtons.js +0 -25
package/src/SideMenuBody.js
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
|
-
import React, { useContext, useState } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React, { forwardRef, useContext, useState } from 'react';
|
|
3
|
+
import { cx } from '@skbkontur/react-ui/lib/theming/Emotion';
|
|
4
|
+
import { SideMenuContext } from './SideMenuContext';
|
|
5
5
|
import { jsStyles } from './SideMenu.styles';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
import { SideMenuBodyChildren } from './SideMenuBodyChildren';
|
|
7
|
+
/**
|
|
8
|
+
* Основной контейнер для меню
|
|
9
|
+
*
|
|
10
|
+
* @visibleName SideMenu.Body
|
|
11
|
+
*/
|
|
12
|
+
var SideMenuBody = forwardRef(function (_a, ref) {
|
|
13
|
+
var _b;
|
|
14
|
+
var className = _a.className, children = _a.children, rest = __rest(_a, ["className", "children"]);
|
|
15
|
+
var _c = useState(false), hasIcons = _c[0], setHasIcons = _c[1];
|
|
16
|
+
var context = useContext(SideMenuContext);
|
|
17
|
+
return (React.createElement(SideMenuContext.Provider, { value: __assign({ hasIcons: hasIcons, setHasIcons: function () { return setHasIcons(true); } }, context) },
|
|
18
|
+
React.createElement("div", __assign({ className: cx((_b = {}, _b[jsStyles.body()] = true, _b), className), ref: ref }, rest),
|
|
19
|
+
React.createElement(SideMenuBodyChildren, null, children))));
|
|
20
|
+
});
|
|
21
|
+
SideMenuBody.displayName = 'SideMenuBody';
|
|
22
|
+
var SideMenuBodyWithStaticFields = Object.assign(SideMenuBody, { __KONTUR_REACT_UI__: 'SideMenuBody' });
|
|
23
|
+
export { SideMenuBodyWithStaticFields as SideMenuBody };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CommonProps } from '@skbkontur/react-ui/internal/CommonWrapper';
|
|
3
|
+
declare const SideMenuBodyChildrenWithStaticFields: React.FC<CommonProps> & {
|
|
4
|
+
__KONTUR_REACT_UI__: string;
|
|
5
|
+
};
|
|
6
|
+
export { SideMenuBodyChildrenWithStaticFields as SideMenuBodyChildren };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { jsStyles } from './SideMenu.styles';
|
|
3
|
+
/**
|
|
4
|
+
* Внутренняя часть SideMenuBody
|
|
5
|
+
*
|
|
6
|
+
* @visibleName SideMenuBodyChildren
|
|
7
|
+
*/
|
|
8
|
+
var SideMenuBodyChildren = function (_a) {
|
|
9
|
+
var children = _a.children;
|
|
10
|
+
return (React.createElement(React.Fragment, null, React.Children.map(children, function (child) {
|
|
11
|
+
if (React.isValidElement(child)) {
|
|
12
|
+
// @ts-expect-error: accessing private property
|
|
13
|
+
if ((child === null || child === void 0 ? void 0 : child.type.__KONTUR_REACT_UI__) === 'SideMenuDivider') {
|
|
14
|
+
return React.cloneElement(child, {
|
|
15
|
+
className: jsStyles.dividerInSideMenu(),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return child;
|
|
19
|
+
}
|
|
20
|
+
})));
|
|
21
|
+
};
|
|
22
|
+
SideMenuBodyChildren.displayName = 'SideMenuBodyChildren';
|
|
23
|
+
var SideMenuBodyChildrenWithStaticFields = Object.assign(SideMenuBodyChildren, {
|
|
24
|
+
__KONTUR_REACT_UI__: 'SideMenuBodyChildren',
|
|
25
|
+
});
|
|
26
|
+
export { SideMenuBodyChildrenWithStaticFields as SideMenuBodyChildren };
|
package/src/SideMenuContext.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
export interface SideMenuContextType {
|
|
3
2
|
isMinimised?: boolean;
|
|
4
3
|
isTransitioned?: boolean;
|
|
@@ -6,10 +5,12 @@ export interface SideMenuContextType {
|
|
|
6
5
|
size?: 'small' | 'large';
|
|
7
6
|
hasIcons?: boolean;
|
|
8
7
|
setHasIcons?: () => void;
|
|
9
|
-
activeItem?:
|
|
10
|
-
setActiveItem?: (item:
|
|
11
|
-
activeSubItem?:
|
|
12
|
-
setActiveSubItem?: (item:
|
|
8
|
+
activeItem?: string | null;
|
|
9
|
+
setActiveItem?: (item: string | null) => void;
|
|
10
|
+
activeSubItem?: string | null;
|
|
11
|
+
setActiveSubItem?: (item: string | null) => void;
|
|
13
12
|
hasSubIcons?: boolean;
|
|
13
|
+
productColor?: string;
|
|
14
|
+
setProductColor?: (color: string) => void;
|
|
14
15
|
}
|
|
15
|
-
export declare const
|
|
16
|
+
export declare const SideMenuContext: import("react").Context<SideMenuContextType>;
|
package/src/SideMenuContext.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createContext } from 'react';
|
|
2
|
-
export var
|
|
2
|
+
export var SideMenuContext = createContext({});
|
package/src/SideMenuDivider.d.ts
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export declare class SideMenuDivider extends React.Component {
|
|
8
|
-
static __KONTUR_REACT_UI__: string;
|
|
9
|
-
render(): JSX.Element;
|
|
10
|
-
renderMain(): JSX.Element;
|
|
11
|
-
}
|
|
2
|
+
import { CommonProps } from '@skbkontur/react-ui/internal/CommonWrapper';
|
|
3
|
+
declare const SideMenuDividerWithStaticFields: React.ForwardRefExoticComponent<CommonProps & React.RefAttributes<HTMLHRElement>> & {
|
|
4
|
+
__KONTUR_REACT_UI__: string;
|
|
5
|
+
};
|
|
6
|
+
export { SideMenuDividerWithStaticFields as SideMenuDivider };
|
package/src/SideMenuDivider.js
CHANGED
|
@@ -1,25 +1,17 @@
|
|
|
1
|
-
import { __assign,
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import {
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
|
+
import { cx } from '@skbkontur/react-ui/lib/theming/Emotion';
|
|
4
4
|
import { jsStyles } from './SideMenu.styles';
|
|
5
5
|
/**
|
|
6
6
|
* Разделитель в главном меню
|
|
7
7
|
*
|
|
8
8
|
* @visibleName SideMenu.Divider
|
|
9
9
|
*/
|
|
10
|
-
var SideMenuDivider =
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
SideMenuDivider.prototype.renderMain = function () {
|
|
19
|
-
return (React.createElement(CommonWrapper, __assign({}, this.props),
|
|
20
|
-
React.createElement("hr", { className: jsStyles.divider() })));
|
|
21
|
-
};
|
|
22
|
-
SideMenuDivider.__KONTUR_REACT_UI__ = 'SideMenuDivider';
|
|
23
|
-
return SideMenuDivider;
|
|
24
|
-
}(React.Component));
|
|
25
|
-
export { SideMenuDivider };
|
|
10
|
+
var SideMenuDivider = forwardRef(function (_a, ref) {
|
|
11
|
+
var _b;
|
|
12
|
+
var className = _a.className, rest = __rest(_a, ["className"]);
|
|
13
|
+
return React.createElement("hr", __assign({ className: cx((_b = {}, _b[jsStyles.dividerInDropdown()] = true, _b), className), ref: ref }, rest));
|
|
14
|
+
});
|
|
15
|
+
SideMenuDivider.displayName = 'SideMenuDivider';
|
|
16
|
+
var SideMenuDividerWithStaticFields = Object.assign(SideMenuDivider, { __KONTUR_REACT_UI__: 'SideMenuDivider' });
|
|
17
|
+
export { SideMenuDividerWithStaticFields as SideMenuDivider };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DropdownMenuProps } from '@skbkontur/react-ui';
|
|
3
|
+
import { CommonProps } from '@skbkontur/react-ui/internal/CommonWrapper';
|
|
4
|
+
export interface SideMenuDropdownProps extends CommonProps, Omit<DropdownMenuProps, 'caption' | 'disableAnimations'> {
|
|
5
|
+
icon?: React.ReactElement;
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
caption?: string;
|
|
8
|
+
disableAnimations?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const SideMenuDropdownWithStaticFields: React.ForwardRefExoticComponent<SideMenuDropdownProps & React.RefAttributes<HTMLDivElement>> & {
|
|
11
|
+
__KONTUR_REACT_UI__: string;
|
|
12
|
+
};
|
|
13
|
+
export { SideMenuDropdownWithStaticFields as SideMenuDropdown };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
|
+
import { ThemeContext } from '@skbkontur/react-ui/lib/theming/ThemeContext';
|
|
4
|
+
import { DEFAULT_THEME, DropdownMenu, ThemeFactory } from '@skbkontur/react-ui';
|
|
5
|
+
import { cx } from '@skbkontur/react-ui/lib/theming/Emotion';
|
|
6
|
+
import { jsStyles } from './SideMenu.styles';
|
|
7
|
+
import { SideMenuItem } from './SideMenuItem';
|
|
8
|
+
/**
|
|
9
|
+
* Элемент списка с выпадающим меню
|
|
10
|
+
*
|
|
11
|
+
* @visibleName SideMenu.Dropdown
|
|
12
|
+
*/
|
|
13
|
+
var SideMenuDropdown = forwardRef(function (_a, ref) {
|
|
14
|
+
var _b;
|
|
15
|
+
var icon = _a.icon, children = _a.children, _c = _a.caption, caption = _c === void 0 ? 'СКБ Контур' : _c, className = _a.className, _d = _a.disableAnimations, disableAnimations = _d === void 0 ? false : _d, menuWidth = _a.menuWidth, rest = __rest(_a, ["icon", "children", "caption", "className", "disableAnimations", "menuWidth"]);
|
|
16
|
+
var label = (React.createElement("div", { className: jsStyles.dropdownLabel() },
|
|
17
|
+
React.createElement(SideMenuItem, { icon: icon, caption: caption })));
|
|
18
|
+
return (React.createElement(ThemeContext.Provider, { value: ThemeFactory.create({
|
|
19
|
+
menuItemHoverBg: '#f6f6f6',
|
|
20
|
+
menuItemHoverColor: '#222',
|
|
21
|
+
popupBorderRadius: '8px',
|
|
22
|
+
menuItemPaddingX: '32px',
|
|
23
|
+
}, DEFAULT_THEME) },
|
|
24
|
+
React.createElement("div", __assign({ className: cx((_b = {}, _b[jsStyles.dropdownWrapper()] = true, _b), className), ref: ref }, rest),
|
|
25
|
+
React.createElement(DropdownMenu, __assign({ caption: label, positions: ['top left'], disableAnimations: true, menuWidth: menuWidth }, rest), children))));
|
|
26
|
+
});
|
|
27
|
+
SideMenuDropdown.displayName = 'SideMenuDropdown';
|
|
28
|
+
var SideMenuDropdownWithStaticFields = Object.assign(SideMenuDropdown, { __KONTUR_REACT_UI__: 'SideMenuDropdown' });
|
|
29
|
+
export { SideMenuDropdownWithStaticFields as SideMenuDropdown };
|
package/src/SideMenuFooter.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CommonProps } from '@skbkontur/react-ui/internal/CommonWrapper';
|
|
3
|
-
|
|
4
|
-
* Нижняя часть меню
|
|
5
|
-
*
|
|
6
|
-
* @visibleName SideMenu.Footer
|
|
7
|
-
*/
|
|
8
|
-
export declare type SideMenuFooterProps = CommonProps & {
|
|
3
|
+
export interface SideMenuFooterProps extends CommonProps {
|
|
9
4
|
children?: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
declare const SideMenuFooterWithStaticFields: React.FC<SideMenuFooterProps> & {
|
|
7
|
+
__KONTUR_REACT_UI__: string;
|
|
10
8
|
};
|
|
11
|
-
export
|
|
9
|
+
export { SideMenuFooterWithStaticFields as SideMenuFooter };
|
package/src/SideMenuFooter.js
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import {
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React, { forwardRef, useContext } from 'react';
|
|
3
|
+
import { cx } from '@skbkontur/react-ui/lib/theming/Emotion';
|
|
4
4
|
import { jsStyles } from './SideMenu.styles';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { SideMenuContext } from './SideMenuContext';
|
|
6
|
+
/**
|
|
7
|
+
* Нижняя часть меню
|
|
8
|
+
*
|
|
9
|
+
* @visibleName SideMenu.Footer
|
|
10
|
+
*/
|
|
11
|
+
var SideMenuFooter = forwardRef(function (_a, ref) {
|
|
12
|
+
var _b;
|
|
13
|
+
var className = _a.className, children = _a.children, rest = __rest(_a, ["className", "children"]);
|
|
14
|
+
var context = useContext(SideMenuContext);
|
|
15
|
+
return (React.createElement(SideMenuContext.Provider, { value: __assign({ hasIcons: true }, context) },
|
|
16
|
+
React.createElement("footer", __assign({ className: cx((_b = {}, _b[jsStyles.footer()] = true, _b), className), ref: ref }, rest), children)));
|
|
17
|
+
});
|
|
18
|
+
SideMenuFooter.displayName = 'SideMenuFooter';
|
|
19
|
+
var SideMenuFooterWithStaticFields = Object.assign(SideMenuFooter, { __KONTUR_REACT_UI__: 'SideMenuFooter' });
|
|
20
|
+
export { SideMenuFooterWithStaticFields as SideMenuFooter };
|
package/src/SideMenuHeader.d.ts
CHANGED
|
@@ -1,31 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { LogotypeProps } from '@skbkontur/react-ui-addons/components/Logotype';
|
|
3
|
-
declare type SideMenuHeaderState = {
|
|
4
|
-
withWidget: boolean;
|
|
5
|
-
fixed: boolean;
|
|
6
|
-
size: number;
|
|
7
|
-
};
|
|
8
3
|
export interface SideMenuHeaderProps extends Partial<LogotypeProps> {
|
|
9
4
|
iconUrl?: string;
|
|
10
5
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*/
|
|
16
|
-
export declare class SideMenuHeader extends React.Component<SideMenuHeaderProps, SideMenuHeaderState> {
|
|
17
|
-
static __KONTUR_REACT_UI__: string;
|
|
18
|
-
static contextType: React.Context<import("./SideMenuContext").SideMenuContextType>;
|
|
19
|
-
private widgetTimer;
|
|
20
|
-
private readonly headerWrapperRef;
|
|
21
|
-
constructor(props: SideMenuHeaderProps);
|
|
22
|
-
componentDidMount: () => void;
|
|
23
|
-
componentWillUnmount(): void;
|
|
24
|
-
private checkFixed;
|
|
25
|
-
render(): JSX.Element;
|
|
26
|
-
renderMain(): JSX.Element;
|
|
27
|
-
private handleMouseEnter;
|
|
28
|
-
private handleMouseLeave;
|
|
29
|
-
private static changeCamelCaseToKebabCase;
|
|
30
|
-
}
|
|
31
|
-
export {};
|
|
6
|
+
declare const SideMenuHeaderWithStaticFields: React.ForwardRefExoticComponent<SideMenuHeaderProps & React.RefAttributes<HTMLDivElement>> & {
|
|
7
|
+
__KONTUR_REACT_UI__: string;
|
|
8
|
+
};
|
|
9
|
+
export { SideMenuHeaderWithStaticFields as SideMenuHeader };
|
package/src/SideMenuHeader.js
CHANGED
|
@@ -1,86 +1,42 @@
|
|
|
1
|
-
import { __assign,
|
|
2
|
-
import React from 'react';
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React, { forwardRef, useContext, useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { cx } from '@skbkontur/react-ui/lib/theming/Emotion';
|
|
4
|
-
import {
|
|
5
|
-
import { Logotype } from '@skbkontur/react-ui-addons/components/Logotype';
|
|
4
|
+
import { mergeRefs } from '@skbkontur/react-ui/lib/utils';
|
|
6
5
|
import { jsStyles } from './SideMenu.styles';
|
|
7
|
-
import {
|
|
6
|
+
import { SideMenuContext } from './SideMenuContext';
|
|
7
|
+
import { SideMenuLogotype } from './SideMenuLogotype';
|
|
8
8
|
/**
|
|
9
9
|
* Контейнер для логотипа
|
|
10
10
|
*
|
|
11
11
|
* @visibleName SideMenu.Header
|
|
12
12
|
*/
|
|
13
|
-
var SideMenuHeader =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
_this.checkFixed = function () {
|
|
25
|
-
if (_this.headerWrapperRef.current && _this.headerWrapperRef.current.offsetTop > 0) {
|
|
26
|
-
_this.setState({ fixed: true });
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
_this.setState({ fixed: false });
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
_this.handleMouseEnter = function () {
|
|
33
|
-
_this.widgetTimer = setTimeout(function () {
|
|
34
|
-
_this.setState({ withWidget: true });
|
|
35
|
-
}, 500);
|
|
36
|
-
};
|
|
37
|
-
_this.handleMouseLeave = function () {
|
|
38
|
-
if (_this.widgetTimer) {
|
|
39
|
-
clearTimeout(_this.widgetTimer);
|
|
40
|
-
}
|
|
41
|
-
_this.setState({ withWidget: false });
|
|
42
|
-
};
|
|
43
|
-
_this.state = {
|
|
44
|
-
withWidget: false,
|
|
45
|
-
fixed: false,
|
|
46
|
-
size: 28,
|
|
47
|
-
};
|
|
48
|
-
_this.headerWrapperRef = React.createRef();
|
|
49
|
-
return _this;
|
|
50
|
-
}
|
|
51
|
-
SideMenuHeader.prototype.componentWillUnmount = function () {
|
|
52
|
-
if (this.widgetTimer) {
|
|
53
|
-
clearTimeout(this.widgetTimer);
|
|
13
|
+
var SideMenuHeader = forwardRef(function (_a, ref) {
|
|
14
|
+
var _b;
|
|
15
|
+
var className = _a.className, productLogo = _a.productLogo, konturLogo = _a.konturLogo, iconUrl = _a.iconUrl, rest = __rest(_a, ["className", "productLogo", "konturLogo", "iconUrl"]);
|
|
16
|
+
var context = useContext(SideMenuContext);
|
|
17
|
+
var headerWrapperRef = useRef(null);
|
|
18
|
+
var _c = useState(false), fixed = _c[0], setFixed = _c[1];
|
|
19
|
+
var checkFixed = function () {
|
|
20
|
+
if (headerWrapperRef.current && headerWrapperRef.current.offsetTop > 0) {
|
|
21
|
+
setFixed(true);
|
|
54
22
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
SideMenuHeader.prototype.render = function () {
|
|
58
|
-
return this.renderMain();
|
|
59
|
-
};
|
|
60
|
-
SideMenuHeader.prototype.renderMain = function () {
|
|
61
|
-
var _a;
|
|
62
|
-
var name = 'kontur';
|
|
63
|
-
if (this.props.productLogo && typeof this.props.productLogo.type === 'function') {
|
|
64
|
-
name = this.props.productLogo.type.name;
|
|
65
|
-
var capitalLetters = name.match(/[A-Z]/g);
|
|
66
|
-
if (capitalLetters && capitalLetters.length > 1) {
|
|
67
|
-
name = SideMenuHeader.changeCamelCaseToKebabCase(name, capitalLetters[1]);
|
|
68
|
-
}
|
|
23
|
+
else {
|
|
24
|
+
setFixed(false);
|
|
69
25
|
}
|
|
70
|
-
return (React.createElement(CommonWrapper, __assign({}, this.props),
|
|
71
|
-
React.createElement("header", { className: cx((_a = {},
|
|
72
|
-
_a[jsStyles.headerWrapper()] = true,
|
|
73
|
-
_a[jsStyles.headerFixedWrapper()] = this.state.fixed,
|
|
74
|
-
_a[jsStyles.headerMinimisedWrapper()] = this.context.isMinimised || this.context.isTransitioned,
|
|
75
|
-
_a)), ref: this.headerWrapperRef }, this.context.isMinimised || this.context.isTransitioned ? (React.createElement("img", { className: jsStyles.headerIcon(), src: this.props.iconUrl || "https://s.kontur.ru/common-v2/icons-products/" + name + "/" + name + "-32.png", alt: name })) : (React.createElement("div", { onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave },
|
|
76
|
-
React.createElement(Logotype, __assign({ size: this.state.size }, this.props, { withWidget: this.state.withWidget })))))));
|
|
77
26
|
};
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return
|
|
85
|
-
|
|
86
|
-
|
|
27
|
+
useEffect(function () {
|
|
28
|
+
window.addEventListener('scroll', checkFixed, true);
|
|
29
|
+
return function () {
|
|
30
|
+
window.removeEventListener('scroll', checkFixed, true);
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
return (React.createElement("header", __assign({ className: cx((_b = {},
|
|
34
|
+
_b[jsStyles.headerWrapper()] = true,
|
|
35
|
+
_b[jsStyles.headerFixedWrapper()] = fixed,
|
|
36
|
+
_b[jsStyles.headerMinimisedWrapper()] = context.isMinimised || context.isTransitioned,
|
|
37
|
+
_b), className), ref: mergeRefs([headerWrapperRef, ref]) }, rest),
|
|
38
|
+
React.createElement(SideMenuLogotype, __assign({ productLogo: productLogo, konturLogo: konturLogo, iconUrl: iconUrl }, rest))));
|
|
39
|
+
});
|
|
40
|
+
SideMenuHeader.displayName = 'SideMenuHeader';
|
|
41
|
+
var SideMenuHeaderWithStaticFields = Object.assign(SideMenuHeader, { __KONTUR_REACT_UI__: 'SideMenuHeader' });
|
|
42
|
+
export { SideMenuHeaderWithStaticFields as SideMenuHeader };
|
package/src/SideMenuItem.d.ts
CHANGED
|
@@ -1,42 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
export
|
|
4
|
-
onClick?: (event: React.MouseEvent
|
|
5
|
-
onKeyDown?: (event: React.KeyboardEvent
|
|
2
|
+
import { CommonProps } from '@skbkontur/react-ui/internal/CommonWrapper';
|
|
3
|
+
export interface SideMenuItemProps extends CommonProps {
|
|
4
|
+
onClick?: (event: React.MouseEvent) => void;
|
|
5
|
+
onKeyDown?: (event: React.KeyboardEvent) => void;
|
|
6
6
|
children?: React.ReactNode;
|
|
7
7
|
icon?: React.ReactElement;
|
|
8
8
|
marker?: string;
|
|
9
9
|
caption?: string;
|
|
10
10
|
isSubMenu?: boolean;
|
|
11
|
-
parent?:
|
|
12
|
-
};
|
|
13
|
-
declare type SideMenuItemState = {
|
|
14
|
-
isOpened: boolean;
|
|
15
|
-
focusedByTab: boolean;
|
|
16
|
-
isMultiline: boolean;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Элемент списка
|
|
20
|
-
*
|
|
21
|
-
* @visibleName SideMenu.Item
|
|
22
|
-
*/
|
|
23
|
-
export declare class SideMenuItem extends React.Component<SideMenuItemProps, SideMenuItemState> {
|
|
24
|
-
static __KONTUR_REACT_UI__: string;
|
|
25
|
-
static contextType: React.Context<SideMenuContextType>;
|
|
26
|
-
private previousContext;
|
|
27
|
-
private readonly textRef;
|
|
28
|
-
private separatedMenu;
|
|
29
|
-
constructor(props: SideMenuItemProps);
|
|
30
|
-
componentDidMount(): void;
|
|
31
|
-
componentDidUpdate(): void;
|
|
32
|
-
render(): JSX.Element;
|
|
33
|
-
renderMain(): JSX.Element;
|
|
34
|
-
private renderInnerSubMenu;
|
|
35
|
-
private renderSeparatedSubMenu;
|
|
36
|
-
private handleClick;
|
|
37
|
-
private handleFocus;
|
|
38
|
-
private handleBlur;
|
|
39
|
-
private handleKeyDown;
|
|
40
|
-
private setActive;
|
|
11
|
+
parent?: string;
|
|
41
12
|
}
|
|
42
|
-
|
|
13
|
+
declare const SideMenuItemWithStaticFields: React.ForwardRefExoticComponent<SideMenuItemProps & React.RefAttributes<HTMLButtonElement>> & {
|
|
14
|
+
__KONTUR_REACT_UI__: string;
|
|
15
|
+
};
|
|
16
|
+
export { SideMenuItemWithStaticFields as SideMenuItem };
|