@skbkontur/side-menu 0.4.1 → 0.4.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 +8 -0
- package/README.md +13 -6
- package/hooks/UseMemoIcon.d.ts +2 -0
- package/hooks/UseMemoIcon.js +14 -0
- package/hooks/useActiveState.d.ts +1 -0
- package/hooks/useActiveState.js +12 -0
- package/hooks/useOpenedState.d.ts +2 -0
- package/hooks/useOpenedState.js +11 -0
- package/hooks/useOpenedSubElementState.d.ts +1 -0
- package/hooks/useOpenedSubElementState.js +12 -0
- package/index.d.ts +13 -11
- package/index.js +13 -11
- package/package.json +1 -1
- package/src/SideMenu/SideMenu.d.ts +42 -0
- package/src/{SideMenu.js → SideMenu/SideMenu.js} +33 -27
- package/src/SideMenu/SideMenu.md +0 -0
- package/src/SideMenu.styles.d.ts +3 -1
- package/src/SideMenu.styles.js +60 -54
- package/src/SideMenuAvatar/SideMenuAvatar.d.ts +13 -0
- package/src/{SideMenuAvatar.js → SideMenuAvatar/SideMenuAvatar.js} +9 -10
- package/src/SideMenuAvatar/SideMenuAvatar.md +0 -0
- package/src/SideMenuBody/SideMenuBody.d.ts +13 -0
- package/src/{SideMenuBody.js → SideMenuBody/SideMenuBody.js} +10 -11
- package/src/SideMenuBody/SideMenuBody.md +0 -0
- package/src/SideMenuDivider/SideMenuDivider.d.ts +10 -0
- package/src/{SideMenuDivider.js → SideMenuDivider/SideMenuDivider.js} +8 -9
- package/src/SideMenuDivider/SideMenuDivider.md +0 -0
- package/src/{SideMenuDropdown.d.ts → SideMenuDropdown/SideMenuDropdown.d.ts} +6 -2
- package/src/{SideMenuDropdown.js → SideMenuDropdown/SideMenuDropdown.js} +11 -12
- package/src/SideMenuDropdown/SideMenuDropdown.md +0 -0
- package/src/{SideMenuFooter.d.ts → SideMenuFooter/SideMenuFooter.d.ts} +6 -2
- package/src/{SideMenuFooter.js → SideMenuFooter/SideMenuFooter.js} +10 -11
- package/src/SideMenuFooter/SideMenuFooter.md +0 -0
- package/src/{SideMenuHeader.d.ts → SideMenuHeader/SideMenuHeader.d.ts} +6 -2
- package/src/{SideMenuHeader.js → SideMenuHeader/SideMenuHeader.js} +11 -12
- package/src/SideMenuHeader/SideMenuHeader.md +0 -0
- package/src/SideMenuItem/SideMenuItem.d.ts +14 -0
- package/src/SideMenuItem/SideMenuItem.js +15 -0
- package/src/SideMenuItem/SideMenuItem.md +0 -0
- package/src/SideMenuLink/SideMenuLink.d.ts +16 -0
- package/src/SideMenuLink/SideMenuLink.js +21 -0
- package/src/SideMenuLink/SideMenuLink.md +0 -0
- package/src/SideMenuOrganisations/SideMenuOrganisations.d.ts +10 -0
- package/src/{SideMenuOrganisations.js → SideMenuOrganisations/SideMenuOrganisations.js} +7 -8
- package/src/SideMenuOrganisations/SideMenuOrganisations.md +0 -0
- package/src/SideMenuSubItem/SideMenuSubItem.d.ts +12 -0
- package/src/SideMenuSubItem/SideMenuSubItem.js +27 -0
- package/src/SideMenuSubItem/SideMenuSubItem.md +0 -0
- package/src/SideMenuSubItemHeader/SideMenuSubItemHeader.d.ts +13 -0
- package/src/{SideMenuSubItemHeader.js → SideMenuSubItemHeader/SideMenuSubItemHeader.js} +10 -11
- package/src/SideMenuSubItemHeader/SideMenuSubItemHeader.md +0 -0
- package/src/SideMenuSubLink/SideMenuSubLink.d.ts +16 -0
- package/src/SideMenuSubLink/SideMenuSubLink.js +31 -0
- package/src/SideMenuSubLink/SideMenuSubLink.md +0 -0
- package/src/internal/ClickableElement.d.ts +25 -0
- package/src/internal/ClickableElement.js +63 -0
- package/src/{SideMenuBodyChildren.d.ts → internal/InnerBody.d.ts} +2 -2
- package/src/{SideMenuBodyChildren.js → internal/InnerBody.js} +13 -12
- package/src/{InnerSubMenu.d.ts → internal/InnerSubMenu.d.ts} +0 -0
- package/src/{InnerSubMenu.js → internal/InnerSubMenu.js} +3 -1
- package/src/internal/ItemContent/Avatar.d.ts +5 -0
- package/src/internal/ItemContent/Avatar.js +12 -0
- package/src/internal/ItemContent/Caption.d.ts +9 -0
- package/src/internal/ItemContent/Caption.js +19 -0
- package/src/internal/ItemContent/Icon.d.ts +8 -0
- package/src/internal/ItemContent/Icon.js +20 -0
- package/src/internal/ItemContent/ItemContent.d.ts +7 -0
- package/src/internal/ItemContent/ItemContent.js +39 -0
- package/src/internal/ItemContent/Marker.d.ts +6 -0
- package/src/internal/ItemContent/Marker.js +11 -0
- package/src/internal/NestedMenu.d.ts +9 -0
- package/src/internal/NestedMenu.js +27 -0
- package/src/{RightBorder.d.ts → internal/RightBorder.d.ts} +0 -0
- package/src/{RightBorder.js → internal/RightBorder.js} +2 -2
- package/src/{SeparatedSubMenu.d.ts → internal/SeparatedSubMenu.d.ts} +0 -0
- package/src/{SeparatedSubMenu.js → internal/SeparatedSubMenu.js} +6 -4
- package/src/{SideMenuLogotype.d.ts → internal/SideMenuLogotype.d.ts} +1 -1
- package/src/{SideMenuLogotype.js → internal/SideMenuLogotype.js} +2 -2
- package/src/internal/SubMenu.d.ts +13 -0
- package/src/internal/SubMenu.js +21 -0
- package/utils/scripts.d.ts +4 -2
- package/utils/scripts.js +18 -14
- package/src/SideMenu.d.ts +0 -38
- package/src/SideMenuAvatar.d.ts +0 -9
- package/src/SideMenuBody.d.ts +0 -9
- package/src/SideMenuDivider.d.ts +0 -6
- package/src/SideMenuItem.d.ts +0 -19
- package/src/SideMenuItem.js +0 -126
- package/src/SideMenuOrganisations.d.ts +0 -6
- package/src/SideMenuSubItem.d.ts +0 -8
- package/src/SideMenuSubItem.js +0 -58
- package/src/SideMenuSubItemHeader.d.ts +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.4.2](https://git.skbkontur.ru/ui/ui-parking/compare/@skbkontur/side-menu@0.4.1...@skbkontur/side-menu@0.4.2) (2022-12-22)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @skbkontur/side-menu
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [0.4.1](https://git.skbkontur.ru/ui/ui-parking/compare/@skbkontur/side-menu@0.4.0...@skbkontur/side-menu@0.4.1) (2022-12-20)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @skbkontur/side-menu
|
package/README.md
CHANGED
|
@@ -15,11 +15,12 @@ import {
|
|
|
15
15
|
BookmarkIcon24Regular,
|
|
16
16
|
StackHDownIcon24Regular,
|
|
17
17
|
SettingsGearIcon24Regular,
|
|
18
|
-
FaceAHappyIcon24Regular
|
|
18
|
+
FaceAHappyIcon24Regular,
|
|
19
|
+
AttachLinkIcon,
|
|
19
20
|
} from '@skbkontur/icons';
|
|
20
21
|
|
|
21
22
|
<div style={{height: '600px'}}>
|
|
22
|
-
<SideMenu>
|
|
23
|
+
<SideMenu disableSwipe={false}>
|
|
23
24
|
<SideMenu.Header konturLogo={<Kontur/>} productLogo={<Ofd/>}/>
|
|
24
25
|
<SideMenu.Body>
|
|
25
26
|
<SideMenu.Item icon={<DocTextIcon24Regular/>} caption={'Документы к подписанию'} marker={'новое'}>
|
|
@@ -31,6 +32,7 @@ import {
|
|
|
31
32
|
<SideMenu.SubItem caption={'Внутренние'}/>
|
|
32
33
|
<SideMenu.SubItem caption={'Черновики'}/>
|
|
33
34
|
<SideMenu.SubItem caption={'Удаленные'}/>
|
|
35
|
+
<SideMenu.SubLink caption={'Cсылка в подменю'} href={'https://www.google.com/search?q=test'} target={'_blank'}/>
|
|
34
36
|
<SideMenu.SubItemHeader>Согласованные</SideMenu.SubItemHeader>
|
|
35
37
|
<SideMenu.SubItem caption={'Требуют обработки'}/>
|
|
36
38
|
<SideMenu.SubItem caption={'Обработанные'}/>
|
|
@@ -45,6 +47,7 @@ import {
|
|
|
45
47
|
</SideMenu.Item>
|
|
46
48
|
<SideMenu.Item icon={<LightbulbIcon24Regular/>} caption={'Справочная'}/>
|
|
47
49
|
<SideMenu.Divider/>
|
|
50
|
+
<SideMenu.Link href={'https://google.com'} icon={<AttachLinkIcon />} caption={'Ссылка'} target={'_blank'}/>
|
|
48
51
|
<SideMenu.Item icon={<BookOpenTextIcon24Regular/>} caption={'Еще раздел'}/>
|
|
49
52
|
<SideMenu.Item icon={<BookmarkIcon24Regular/>} caption={'Отчетность'}/>
|
|
50
53
|
</SideMenu.Body>
|
|
@@ -118,7 +121,7 @@ const renderModal = () => {
|
|
|
118
121
|
}
|
|
119
122
|
|
|
120
123
|
<div style={{height: '600px', width: '100%'}}>
|
|
121
|
-
<SideMenu isSeparatedMenu={true}
|
|
124
|
+
<SideMenu isSeparatedMenu={true}>
|
|
122
125
|
<SideMenu.Header konturLogo={<Kontur/>} productLogo={<Buhgalteria/>}/>
|
|
123
126
|
<SideMenu.Body>
|
|
124
127
|
<SideMenu.Item icon={<DocTextIcon24Regular/>} caption={'Документы'} marker={'новое'}>
|
|
@@ -188,7 +191,8 @@ const renderModal = () => {
|
|
|
188
191
|
</div>
|
|
189
192
|
```
|
|
190
193
|
|
|
191
|
-
SideMenu с ручным
|
|
194
|
+
SideMenu с ручным управлением.
|
|
195
|
+
Для `SideMenu.Link` при отсутствии `id` будет использован `href`
|
|
192
196
|
|
|
193
197
|
```jsx harmony
|
|
194
198
|
import { useState } from 'react';
|
|
@@ -204,7 +208,8 @@ import {
|
|
|
204
208
|
BookmarkIcon24Regular,
|
|
205
209
|
StackHDownIcon24Regular,
|
|
206
210
|
SettingsGearIcon24Regular,
|
|
207
|
-
FaceAHappyIcon24Regular
|
|
211
|
+
FaceAHappyIcon24Regular,
|
|
212
|
+
AttachLinkIcon24Regular
|
|
208
213
|
} from '@skbkontur/icons';
|
|
209
214
|
|
|
210
215
|
|
|
@@ -230,10 +235,11 @@ const items = [
|
|
|
230
235
|
"400",
|
|
231
236
|
"500",
|
|
232
237
|
"600",
|
|
238
|
+
"https://google.com"
|
|
233
239
|
];
|
|
234
240
|
|
|
235
241
|
<div style={{height: '600px', display: 'flex'}}>
|
|
236
|
-
<SideMenu value={activeItem} onValueChange={setActiveItem}>
|
|
242
|
+
<SideMenu value={activeItem} onValueChange={setActiveItem} disableSwipe={false}>
|
|
237
243
|
<SideMenu.Header konturLogo={<Kontur/>} productLogo={<Ofd/>}/>
|
|
238
244
|
<SideMenu.Body>
|
|
239
245
|
<SideMenu.Item icon={<DocTextIcon24Regular/>} caption={'Документы к подписанию id=100'} marker={'новое'} id={'100'}>
|
|
@@ -261,6 +267,7 @@ const items = [
|
|
|
261
267
|
<SideMenu.Divider/>
|
|
262
268
|
<SideMenu.Item icon={<BookOpenTextIcon24Regular/>} caption={'Еще раздел id=500'} id={'500'}/>
|
|
263
269
|
<SideMenu.Item icon={<BookmarkIcon24Regular/>} caption={'Отчетность id=600'} id={'600'}/>
|
|
270
|
+
<SideMenu.Link href={'https://google.com'} icon={<AttachLinkIcon24Regular />} caption={'Ссылка'} target={'_blank'} />
|
|
264
271
|
</SideMenu.Body>
|
|
265
272
|
<SideMenu.Footer>
|
|
266
273
|
<SideMenu.Dropdown icon={<StackHDownIcon24Regular/>}>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { ArrowCDownIcon16Regular, ArrowCRightIcon16Regular } from '@skbkontur/icons';
|
|
3
|
+
export var useMemoIcon = function (children, isOpened) {
|
|
4
|
+
return useMemo(function () {
|
|
5
|
+
if (children) {
|
|
6
|
+
if (isOpened) {
|
|
7
|
+
return React.createElement(ArrowCDownIcon16Regular, null);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return React.createElement(ArrowCRightIcon16Regular, null);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}, [isOpened, children]);
|
|
14
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useActiveState: (id?: string | undefined, href?: string | undefined, generatedId?: string | undefined, activeMenuItem?: string | null | undefined) => boolean;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { isIdActive } from '../utils/scripts';
|
|
3
|
+
export var useActiveState = function (id, href, generatedId, activeMenuItem) {
|
|
4
|
+
var _a = useState(false), isActive = _a[0], setIsActive = _a[1];
|
|
5
|
+
useEffect(function () {
|
|
6
|
+
var hrefIsActive = isIdActive(href, activeMenuItem);
|
|
7
|
+
var idIsActive = isIdActive(id, activeMenuItem);
|
|
8
|
+
var generatedIdIsActive = isIdActive(generatedId, activeMenuItem);
|
|
9
|
+
setIsActive(hrefIsActive || idIsActive || generatedIdIsActive);
|
|
10
|
+
}, [activeMenuItem]);
|
|
11
|
+
return isActive;
|
|
12
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { isOpenedParents } from '../utils/scripts';
|
|
3
|
+
export var useOpenedState = function (id, generatedId, openedParents, isActive, children) {
|
|
4
|
+
if (isActive === void 0) { isActive = false; }
|
|
5
|
+
var _a = useState(false), isOpened = _a[0], setIsOpened = _a[1];
|
|
6
|
+
useEffect(function () {
|
|
7
|
+
var isOpenedParent = isOpenedParents(id, generatedId, openedParents);
|
|
8
|
+
setIsOpened(!!children && (isOpenedParent || isActive));
|
|
9
|
+
}, [openedParents === null || openedParents === void 0 ? void 0 : openedParents.toString(), isActive]);
|
|
10
|
+
return isOpened;
|
|
11
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useOpenedSubElementState: (id?: string | undefined, generatedId?: string | undefined, openedParents?: string[] | undefined, activeMenuItem?: string | null | undefined) => boolean;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { isIdActive, isOpenedParents } from '../utils/scripts';
|
|
3
|
+
export var useOpenedSubElementState = function (id, generatedId, openedParents, activeMenuItem) {
|
|
4
|
+
var _a = useState(false), isOpened = _a[0], setIsOpened = _a[1];
|
|
5
|
+
useEffect(function () {
|
|
6
|
+
var isOpenedParent = isOpenedParents(id, generatedId, openedParents);
|
|
7
|
+
var idIsActive = isIdActive(id, activeMenuItem);
|
|
8
|
+
var generatedIdIsActive = isIdActive(generatedId, activeMenuItem);
|
|
9
|
+
setIsOpened(isOpenedParent || isOpened || idIsActive || generatedIdIsActive);
|
|
10
|
+
}, [openedParents === null || openedParents === void 0 ? void 0 : openedParents.toString()]);
|
|
11
|
+
return isOpened;
|
|
12
|
+
};
|
package/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
export * from './src/SideMenu';
|
|
2
|
-
export * from './src/SideMenuOrganisations';
|
|
3
|
-
export * from './src/SideMenuBody';
|
|
4
|
-
export * from './src/SideMenuFooter';
|
|
5
|
-
export * from './src/SideMenuHeader';
|
|
6
|
-
export * from './src/SideMenuItem';
|
|
7
|
-
export * from './src/SideMenuAvatar';
|
|
8
|
-
export * from './src/SideMenuSubItem';
|
|
9
|
-
export * from './src/SideMenuDivider';
|
|
10
|
-
export * from './src/SideMenuSubItemHeader';
|
|
11
|
-
export * from './src/SideMenuDropdown';
|
|
1
|
+
export * from './src/SideMenu/SideMenu';
|
|
2
|
+
export * from './src/SideMenuOrganisations/SideMenuOrganisations';
|
|
3
|
+
export * from './src/SideMenuBody/SideMenuBody';
|
|
4
|
+
export * from './src/SideMenuFooter/SideMenuFooter';
|
|
5
|
+
export * from './src/SideMenuHeader/SideMenuHeader';
|
|
6
|
+
export * from './src/SideMenuItem/SideMenuItem';
|
|
7
|
+
export * from './src/SideMenuAvatar/SideMenuAvatar';
|
|
8
|
+
export * from './src/SideMenuSubItem/SideMenuSubItem';
|
|
9
|
+
export * from './src/SideMenuDivider/SideMenuDivider';
|
|
10
|
+
export * from './src/SideMenuSubItemHeader/SideMenuSubItemHeader';
|
|
11
|
+
export * from './src/SideMenuDropdown/SideMenuDropdown';
|
|
12
|
+
export * from './src/SideMenuLink/SideMenuLink';
|
|
13
|
+
export * from './src/SideMenuSubLink/SideMenuSubLink';
|
package/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
export * from './src/SideMenu';
|
|
2
|
-
export * from './src/SideMenuOrganisations';
|
|
3
|
-
export * from './src/SideMenuBody';
|
|
4
|
-
export * from './src/SideMenuFooter';
|
|
5
|
-
export * from './src/SideMenuHeader';
|
|
6
|
-
export * from './src/SideMenuItem';
|
|
7
|
-
export * from './src/SideMenuAvatar';
|
|
8
|
-
export * from './src/SideMenuSubItem';
|
|
9
|
-
export * from './src/SideMenuDivider';
|
|
10
|
-
export * from './src/SideMenuSubItemHeader';
|
|
11
|
-
export * from './src/SideMenuDropdown';
|
|
1
|
+
export * from './src/SideMenu/SideMenu';
|
|
2
|
+
export * from './src/SideMenuOrganisations/SideMenuOrganisations';
|
|
3
|
+
export * from './src/SideMenuBody/SideMenuBody';
|
|
4
|
+
export * from './src/SideMenuFooter/SideMenuFooter';
|
|
5
|
+
export * from './src/SideMenuHeader/SideMenuHeader';
|
|
6
|
+
export * from './src/SideMenuItem/SideMenuItem';
|
|
7
|
+
export * from './src/SideMenuAvatar/SideMenuAvatar';
|
|
8
|
+
export * from './src/SideMenuSubItem/SideMenuSubItem';
|
|
9
|
+
export * from './src/SideMenuDivider/SideMenuDivider';
|
|
10
|
+
export * from './src/SideMenuSubItemHeader/SideMenuSubItemHeader';
|
|
11
|
+
export * from './src/SideMenuDropdown/SideMenuDropdown';
|
|
12
|
+
export * from './src/SideMenuLink/SideMenuLink';
|
|
13
|
+
export * from './src/SideMenuSubLink/SideMenuSubLink';
|
package/package.json
CHANGED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CommonProps } from '@skbkontur/react-ui/internal/CommonWrapper';
|
|
3
|
+
import { SideMenuOrganisations } from '../SideMenuOrganisations/SideMenuOrganisations';
|
|
4
|
+
import { SideMenuBody } from '../SideMenuBody/SideMenuBody';
|
|
5
|
+
import { SideMenuFooter } from '../SideMenuFooter/SideMenuFooter';
|
|
6
|
+
import { SideMenuHeader } from '../SideMenuHeader/SideMenuHeader';
|
|
7
|
+
import { SideMenuItem } from '../SideMenuItem/SideMenuItem';
|
|
8
|
+
import { SideMenuAvatar } from '../SideMenuAvatar/SideMenuAvatar';
|
|
9
|
+
import { SideMenuSubItem } from '../SideMenuSubItem/SideMenuSubItem';
|
|
10
|
+
import { SideMenuDivider } from '../SideMenuDivider/SideMenuDivider';
|
|
11
|
+
import { SideMenuSubItemHeader } from '../SideMenuSubItemHeader/SideMenuSubItemHeader';
|
|
12
|
+
import { SideMenuDropdown } from '../SideMenuDropdown/SideMenuDropdown';
|
|
13
|
+
import { SideMenuLink } from '../SideMenuLink/SideMenuLink';
|
|
14
|
+
import { SideMenuSubLink } from '../SideMenuSubLink/SideMenuSubLink';
|
|
15
|
+
export interface SideMenuProps extends CommonProps {
|
|
16
|
+
children?: React.ReactNode;
|
|
17
|
+
size?: 'small' | 'large';
|
|
18
|
+
isSeparatedMenu?: boolean;
|
|
19
|
+
disableSwipe?: boolean;
|
|
20
|
+
value?: string;
|
|
21
|
+
onValueChange?: (value: string) => void;
|
|
22
|
+
}
|
|
23
|
+
interface SubComponents {
|
|
24
|
+
Body: typeof SideMenuBody;
|
|
25
|
+
Footer: typeof SideMenuFooter;
|
|
26
|
+
Header: typeof SideMenuHeader;
|
|
27
|
+
Item: typeof SideMenuItem;
|
|
28
|
+
SubItem: typeof SideMenuSubItem;
|
|
29
|
+
SubItemHeader: typeof SideMenuSubItemHeader;
|
|
30
|
+
Avatar: typeof SideMenuAvatar;
|
|
31
|
+
Organisations: typeof SideMenuOrganisations;
|
|
32
|
+
Divider: typeof SideMenuDivider;
|
|
33
|
+
Dropdown: typeof SideMenuDropdown;
|
|
34
|
+
Link: typeof SideMenuLink;
|
|
35
|
+
SubLink: typeof SideMenuSubLink;
|
|
36
|
+
__KONTUR_REACT_UI__: string;
|
|
37
|
+
}
|
|
38
|
+
export declare const SideMenuDataTids: {
|
|
39
|
+
root: string;
|
|
40
|
+
};
|
|
41
|
+
export declare const SideMenu: React.ForwardRefExoticComponent<SideMenuProps & React.RefAttributes<HTMLElement>> & SubComponents;
|
|
42
|
+
export {};
|
|
@@ -2,34 +2,36 @@ import { __assign, __rest } from "tslib";
|
|
|
2
2
|
import React, { forwardRef, useEffect, useState } from 'react';
|
|
3
3
|
import { cx } from '@skbkontur/react-ui/lib/theming/Emotion';
|
|
4
4
|
import { isIE11, isSafari } from '@skbkontur/react-ui/lib/client';
|
|
5
|
-
import { jsStyles } from '
|
|
6
|
-
import { SideMenuOrganisations } from '
|
|
7
|
-
import { SideMenuContext } from '
|
|
8
|
-
import { SideMenuBody } from '
|
|
9
|
-
import { SideMenuFooter } from '
|
|
10
|
-
import { SideMenuHeader } from '
|
|
11
|
-
import { SideMenuItem } from '
|
|
12
|
-
import { SideMenuAvatar } from '
|
|
13
|
-
import { SideMenuSubItem } from '
|
|
14
|
-
import { SideMenuDivider } from '
|
|
15
|
-
import { SideMenuSubItemHeader } from '
|
|
16
|
-
import { RightBorder } from '
|
|
17
|
-
import { SideMenuDropdown } from '
|
|
5
|
+
import { jsStyles } from '../SideMenu.styles';
|
|
6
|
+
import { SideMenuOrganisations } from '../SideMenuOrganisations/SideMenuOrganisations';
|
|
7
|
+
import { SideMenuContext } from '../SideMenuContext';
|
|
8
|
+
import { SideMenuBody } from '../SideMenuBody/SideMenuBody';
|
|
9
|
+
import { SideMenuFooter } from '../SideMenuFooter/SideMenuFooter';
|
|
10
|
+
import { SideMenuHeader } from '../SideMenuHeader/SideMenuHeader';
|
|
11
|
+
import { SideMenuItem } from '../SideMenuItem/SideMenuItem';
|
|
12
|
+
import { SideMenuAvatar } from '../SideMenuAvatar/SideMenuAvatar';
|
|
13
|
+
import { SideMenuSubItem } from '../SideMenuSubItem/SideMenuSubItem';
|
|
14
|
+
import { SideMenuDivider } from '../SideMenuDivider/SideMenuDivider';
|
|
15
|
+
import { SideMenuSubItemHeader } from '../SideMenuSubItemHeader/SideMenuSubItemHeader';
|
|
16
|
+
import { RightBorder } from '../internal/RightBorder';
|
|
17
|
+
import { SideMenuDropdown } from '../SideMenuDropdown/SideMenuDropdown';
|
|
18
|
+
import { SideMenuLink } from '../SideMenuLink/SideMenuLink';
|
|
19
|
+
import { SideMenuSubLink } from '../SideMenuSubLink/SideMenuSubLink';
|
|
18
20
|
export var SideMenuDataTids = {
|
|
19
21
|
root: 'SideMenu__root',
|
|
20
22
|
};
|
|
21
|
-
var
|
|
22
|
-
var _b, _c;
|
|
23
|
-
var children = _a.children, value = _a.value, onValueChange = _a.onValueChange,
|
|
23
|
+
var SideMenuInner = forwardRef(function (_a, ref) {
|
|
24
|
+
var _b, _c, _d;
|
|
25
|
+
var children = _a.children, value = _a.value, onValueChange = _a.onValueChange, _e = _a.size, size = _e === void 0 ? 'small' : _e, _f = _a.isSeparatedMenu, isSeparatedMenu = _f === void 0 ? false : _f, className = _a.className, _g = _a.disableSwipe, disableSwipe = _g === void 0 ? true : _g, rest = __rest(_a, ["children", "value", "onValueChange", "size", "isSeparatedMenu", "className", "disableSwipe"]);
|
|
24
26
|
var scrollTimer = null;
|
|
25
27
|
var transitionTimer = null;
|
|
26
28
|
var widgetTimer;
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
var
|
|
29
|
+
var _h = useState(false), isMinimised = _h[0], setIsMinimised = _h[1];
|
|
30
|
+
var _j = useState(false), hasScrollBar = _j[0], setHasScrollBar = _j[1];
|
|
31
|
+
var _k = useState(false), isTransitioned = _k[0], setIsTransitioned = _k[1];
|
|
32
|
+
var _l = useState('#2291ff'), productColor = _l[0], setProductColor = _l[1];
|
|
33
|
+
var _m = useState(false), showWidget = _m[0], setShowWidget = _m[1];
|
|
34
|
+
var _o = useState(value), activeMenuItem = _o[0], setActiveMenuItem = _o[1];
|
|
33
35
|
useEffect(function () {
|
|
34
36
|
return function () {
|
|
35
37
|
if (scrollTimer) {
|
|
@@ -101,11 +103,14 @@ var SideMenu = forwardRef(function (_a, ref) {
|
|
|
101
103
|
_c[jsStyles.rootSafari()] = isSafari,
|
|
102
104
|
_c[jsStyles.minimisedRoot()] = isMinimised,
|
|
103
105
|
_c[jsStyles.rootWithInnerSubMenu()] = !isSeparatedMenu,
|
|
104
|
-
_c
|
|
105
|
-
|
|
106
|
+
_c)), onMouseOver: showMinimisedRoot, onFocus: showMinimisedRoot, onScroll: handleScroll },
|
|
107
|
+
React.createElement("div", { className: cx((_d = {},
|
|
108
|
+
_d[jsStyles.rootInnerContainer()] = true,
|
|
109
|
+
_d[jsStyles.rootWithoutScrollBar()] = !hasScrollBar,
|
|
110
|
+
_d)) }, children)),
|
|
106
111
|
!disableSwipe && React.createElement(RightBorder, { setIsMinimised: function (value) { return setIsMinimised(value); } }))));
|
|
107
112
|
});
|
|
108
|
-
|
|
113
|
+
SideMenuInner.displayName = 'SideMenu';
|
|
109
114
|
var STATIC_PROPS = {
|
|
110
115
|
Body: SideMenuBody,
|
|
111
116
|
Footer: SideMenuFooter,
|
|
@@ -116,8 +121,9 @@ var STATIC_PROPS = {
|
|
|
116
121
|
Avatar: SideMenuAvatar,
|
|
117
122
|
Organisations: SideMenuOrganisations,
|
|
118
123
|
Divider: SideMenuDivider,
|
|
124
|
+
Link: SideMenuLink,
|
|
125
|
+
SubLink: SideMenuSubLink,
|
|
119
126
|
Dropdown: SideMenuDropdown,
|
|
120
127
|
__KONTUR_REACT_UI__: 'SideMenu',
|
|
121
128
|
};
|
|
122
|
-
var
|
|
123
|
-
export { SideMenuWithStaticFields as SideMenu };
|
|
129
|
+
export var SideMenu = Object.assign(SideMenuInner, STATIC_PROPS);
|
|
File without changes
|
package/src/SideMenu.styles.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare const jsStyles: {
|
|
|
7
7
|
rootWithoutScrollBar(): string;
|
|
8
8
|
minimisedRoot(): string;
|
|
9
9
|
rootWithInnerSubMenu(): string;
|
|
10
|
+
rootInnerContainer(): string;
|
|
10
11
|
rootWrapper(): string;
|
|
11
12
|
rootWrapperIE(): string;
|
|
12
13
|
resizableRightBorder(): string;
|
|
@@ -55,6 +56,7 @@ export declare const jsStyles: {
|
|
|
55
56
|
dropdownWrapper(): string;
|
|
56
57
|
dropdownLabel(): string;
|
|
57
58
|
dropdownLabelMinimized(): string;
|
|
58
|
-
|
|
59
|
+
nestedMenu(): string;
|
|
59
60
|
rightBorder(): string;
|
|
61
|
+
link(): string;
|
|
60
62
|
};
|