@gravity-ui/navigation 1.8.4 → 2.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -9
- package/build/cjs/{ActionBar-96a59723.js → ActionBar-38c4e24f.js} +2 -2
- package/build/cjs/ActionBar-38c4e24f.js.map +1 -0
- package/build/cjs/AsideFallback.js +4 -4
- package/build/cjs/AsideFallback.js.map +1 -1
- package/build/cjs/AsideHeader.js +6 -5
- package/build/cjs/AsideHeader.js.map +1 -1
- package/build/cjs/AsideHeaderContext.js.map +1 -1
- package/build/cjs/Drawer.js +3 -3
- package/build/cjs/Drawer.js.map +1 -1
- package/build/cjs/{FooterItem-eafaeac3.js → FooterItem-0b0d76e4.js} +56 -56
- package/build/cjs/FooterItem-0b0d76e4.js.map +1 -0
- package/build/cjs/FooterItem.js +5 -5
- package/build/cjs/FooterItem.js.map +1 -1
- package/build/cjs/{HotkeysPanel-2e240e4d.js → HotkeysPanel-4ad41893.js} +15 -15
- package/build/cjs/HotkeysPanel-4ad41893.js.map +1 -0
- package/build/cjs/{Item-702f50be.js → Item-d836a378.js} +52 -52
- package/build/cjs/Item-d836a378.js.map +1 -0
- package/build/cjs/PageLayout.js +5 -5
- package/build/cjs/PageLayout.js.map +1 -1
- package/build/cjs/PageLayoutAside.js +231 -230
- package/build/cjs/PageLayoutAside.js.map +1 -1
- package/build/cjs/{Settings-11b021e4.js → Settings-a0deac97.js} +47 -47
- package/build/cjs/Settings-a0deac97.js.map +1 -0
- package/build/cjs/{Title-c539667f.js → Title-54580605.js} +5 -5
- package/build/cjs/Title-54580605.js.map +1 -0
- package/build/cjs/{TopPanel-b531a2be.js → TopPanel-1b062791.js} +3 -3
- package/build/cjs/TopPanel-1b062791.js.map +1 -0
- package/build/cjs/{cn-1964a72a.js → cn-9933321a.js} +2 -1
- package/build/cjs/{cn-1964a72a.js.map → cn-9933321a.js.map} +1 -1
- package/build/cjs/components/AllPagesPanel/i18n/index.d.ts +1 -1
- package/build/cjs/components/AsideHeader/i18n/index.d.ts +1 -1
- package/build/cjs/components/AsideHeader/types.d.ts +1 -1
- package/build/cjs/components/CompositeBar/Item/Item.d.ts +1 -0
- package/build/cjs/components/CompositeBar/utils.d.ts +2 -2
- package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +1 -1
- package/build/cjs/components/MobileHeader/MobileHeader.d.ts +3 -3
- package/build/cjs/components/MobileHeader/i18n/index.d.ts +1 -1
- package/build/cjs/components/Settings/Settings.d.ts +1 -1
- package/build/cjs/components/Settings/i18n/index.d.ts +1 -1
- package/build/cjs/components/Title/i18n/index.d.ts +1 -1
- package/build/cjs/components/index.d.ts +0 -1
- package/build/cjs/components/types.d.ts +1 -1
- package/build/cjs/index.js +11 -16
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index2.js +2 -2
- package/build/cjs/index3.js +4 -4
- package/build/cjs/index4.js +2 -2
- package/build/cjs/index5.js +6 -6
- package/build/cjs/index6.js +6 -6
- package/build/cjs/utils-db3e03c2.js +8 -0
- package/build/cjs/{utils-a93dd754.js.map → utils-db3e03c2.js.map} +1 -1
- package/build/esm/{ActionBar-68f814a3.js → ActionBar-affc1f80.js} +2 -2
- package/build/esm/ActionBar-affc1f80.js.map +1 -0
- package/build/esm/AsideFallback.js +4 -4
- package/build/esm/AsideFallback.js.map +1 -1
- package/build/esm/AsideHeader.js +6 -5
- package/build/esm/AsideHeader.js.map +1 -1
- package/build/esm/AsideHeaderContext.js.map +1 -1
- package/build/esm/Drawer.js +3 -3
- package/build/esm/Drawer.js.map +1 -1
- package/build/esm/{FooterItem-39ac7c22.js → FooterItem-76774de7.js} +57 -57
- package/build/esm/FooterItem-76774de7.js.map +1 -0
- package/build/esm/FooterItem.js +5 -5
- package/build/esm/FooterItem.js.map +1 -1
- package/build/esm/{HotkeysPanel-bd0e997d.js → HotkeysPanel-9138824c.js} +15 -15
- package/build/esm/HotkeysPanel-9138824c.js.map +1 -0
- package/build/esm/{Item-29a1bfdb.js → Item-9eb6b3be.js} +52 -52
- package/build/esm/Item-9eb6b3be.js.map +1 -0
- package/build/esm/PageLayout.js +5 -5
- package/build/esm/PageLayout.js.map +1 -1
- package/build/esm/PageLayoutAside.js +219 -218
- package/build/esm/PageLayoutAside.js.map +1 -1
- package/build/esm/{Settings-31634d93.js → Settings-0a78c1a7.js} +48 -48
- package/build/esm/Settings-0a78c1a7.js.map +1 -0
- package/build/esm/{Title-b2f2c4e9.js → Title-03b4255a.js} +5 -5
- package/build/esm/Title-03b4255a.js.map +1 -0
- package/build/esm/{TopPanel-36ffc4c7.js → TopPanel-2760cf72.js} +3 -3
- package/build/esm/TopPanel-2760cf72.js.map +1 -0
- package/build/esm/{cn-589cd9e2.js → cn-ffe5e9f5.js} +2 -2
- package/build/esm/{cn-589cd9e2.js.map → cn-ffe5e9f5.js.map} +1 -1
- package/build/esm/components/AllPagesPanel/i18n/index.d.ts +1 -1
- package/build/esm/components/AsideHeader/i18n/index.d.ts +1 -1
- package/build/esm/components/AsideHeader/types.d.ts +1 -1
- package/build/esm/components/CompositeBar/Item/Item.d.ts +1 -0
- package/build/esm/components/CompositeBar/utils.d.ts +2 -2
- package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +1 -1
- package/build/esm/components/MobileHeader/MobileHeader.d.ts +3 -3
- package/build/esm/components/MobileHeader/i18n/index.d.ts +1 -1
- package/build/esm/components/Settings/Settings.d.ts +1 -1
- package/build/esm/components/Settings/i18n/index.d.ts +1 -1
- package/build/esm/components/Title/i18n/index.d.ts +1 -1
- package/build/esm/components/index.d.ts +0 -1
- package/build/esm/components/types.d.ts +1 -1
- package/build/esm/index.js +11 -11
- package/build/esm/index2.js +2 -2
- package/build/esm/index3.js +4 -4
- package/build/esm/index4.js +2 -2
- package/build/esm/index5.js +6 -6
- package/build/esm/index6.js +6 -6
- package/build/esm/utils-117463a5.js +6 -0
- package/build/esm/{utils-6d5146c7.js.map → utils-117463a5.js.map} +1 -1
- package/package.json +30 -30
- package/build/cjs/ActionBar-96a59723.js.map +0 -1
- package/build/cjs/FooterItem-eafaeac3.js.map +0 -1
- package/build/cjs/HotkeysPanel-2e240e4d.js.map +0 -1
- package/build/cjs/Item-702f50be.js.map +0 -1
- package/build/cjs/Settings-11b021e4.js.map +0 -1
- package/build/cjs/Title-c539667f.js.map +0 -1
- package/build/cjs/TopPanel-b531a2be.js.map +0 -1
- package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
- package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
- package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
- package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -13
- package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
- package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
- package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +0 -5
- package/build/cjs/components/Drawer/__stories__/Drawer.stories.d.ts +0 -3
- package/build/cjs/components/Drawer/__stories__/DrawerShowcase.d.ts +0 -3
- package/build/cjs/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -5
- package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -3
- package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -3
- package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
- package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -5
- package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
- package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -3
- package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
- package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +0 -1
- package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +0 -4
- package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
- package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
- package/build/cjs/components/utils/configure.d.ts +0 -12
- package/build/cjs/components/utils/registerKeyset.d.ts +0 -5
- package/build/cjs/i18n.d.ts +0 -2
- package/build/cjs/registerKeyset-f4ce9ee7.js +0 -215
- package/build/cjs/registerKeyset-f4ce9ee7.js.map +0 -1
- package/build/cjs/utils-a93dd754.js +0 -8
- package/build/esm/ActionBar-68f814a3.js.map +0 -1
- package/build/esm/FooterItem-39ac7c22.js.map +0 -1
- package/build/esm/HotkeysPanel-bd0e997d.js.map +0 -1
- package/build/esm/Item-29a1bfdb.js.map +0 -1
- package/build/esm/Settings-31634d93.js.map +0 -1
- package/build/esm/Title-b2f2c4e9.js.map +0 -1
- package/build/esm/TopPanel-36ffc4c7.js.map +0 -1
- package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
- package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
- package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
- package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -13
- package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
- package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
- package/build/esm/components/AsideHeader/__stories__/moc.d.ts +0 -5
- package/build/esm/components/Drawer/__stories__/Drawer.stories.d.ts +0 -3
- package/build/esm/components/Drawer/__stories__/DrawerShowcase.d.ts +0 -3
- package/build/esm/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -5
- package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -3
- package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -3
- package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
- package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -5
- package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
- package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -3
- package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
- package/build/esm/components/MobileHeader/__stories__/moc.d.ts +0 -1
- package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +0 -4
- package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
- package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
- package/build/esm/components/utils/configure.d.ts +0 -12
- package/build/esm/components/utils/registerKeyset.d.ts +0 -5
- package/build/esm/i18n.d.ts +0 -2
- package/build/esm/registerKeyset-35f1ea08.js +0 -212
- package/build/esm/registerKeyset-35f1ea08.js.map +0 -1
- package/build/esm/utils-6d5146c7.js +0 -6
|
@@ -1,20 +1,175 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import React__default, {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import React__default, { useCallback, useMemo, useRef, useState, useEffect, Component, createElement, useContext } from 'react';
|
|
3
|
+
import { Icon, Button, Flex, Text, List, Popup, setRef } from '@gravity-ui/uikit';
|
|
4
|
+
import { Pin, PinFill, Ellipsis, Gear } from '@gravity-ui/icons';
|
|
5
|
+
import { useAsideHeaderInnerContext, useAsideHeaderContext, AsideHeaderInnerContextProvider } from './AsideHeaderContext.js';
|
|
6
|
+
import { b as block, N as NAMESPACE } from './cn-ffe5e9f5.js';
|
|
6
7
|
import { s as styleInject } from './style-inject.es-1f59c1d0.js';
|
|
8
|
+
import { addComponentKeysets } from '@gravity-ui/uikit/i18n';
|
|
7
9
|
import { a as ASIDE_HEADER_COMPACT_WIDTH, H as HEADER_DIVIDER_HEIGHT } from './constants-b1604ff5.js';
|
|
8
|
-
import {
|
|
9
|
-
import { b as b$5 } from './utils-
|
|
10
|
-
import { Ellipsis, Pin, PinFill, Gear } from '@gravity-ui/icons';
|
|
11
|
-
import { r as registerKeyset } from './registerKeyset-35f1ea08.js';
|
|
10
|
+
import { C as COLLAPSE_ITEM_ID, g as getItemsMinHeight, a as getAutosizeListItems, b as getSelectedItemIndex, c as getItemHeight, d as getItemsHeight, i as isMenuItem, I as Item, e as getMoreButtonItem } from './Item-9eb6b3be.js';
|
|
11
|
+
import { b as b$5 } from './utils-117463a5.js';
|
|
12
12
|
import { h as headerDividerCollapsedIcon } from './divider-collapsed-6468fa36.js';
|
|
13
13
|
import { Drawer, DrawerItem } from './Drawer.js';
|
|
14
14
|
import './debounce-64cd2b4c.js';
|
|
15
15
|
import '@bem-react/classname';
|
|
16
16
|
import 'react-dom';
|
|
17
17
|
|
|
18
|
+
var css_248z$4 = ".gn-all-pages-list-item{align-items:center;column-gap:var(--g-spacing-4);display:flex;height:40px;padding:0 var(--g-spacing-6);width:100%}.gn-all-pages-list-item__text{flex:1}.gn-all-pages-list-item__icon{color:var(--g-color-text-misc)}";
|
|
19
|
+
styleInject(css_248z$4);
|
|
20
|
+
|
|
21
|
+
const b$4 = block('all-pages-list-item');
|
|
22
|
+
const AllPagesListItem = (props) => {
|
|
23
|
+
const { item, editMode, onToggle } = props;
|
|
24
|
+
const onPinButtonClick = useCallback((e) => {
|
|
25
|
+
e.stopPropagation();
|
|
26
|
+
e.preventDefault();
|
|
27
|
+
onToggle();
|
|
28
|
+
}, [onToggle]);
|
|
29
|
+
const onItemClick = (e) => {
|
|
30
|
+
if (editMode) {
|
|
31
|
+
e.stopPropagation();
|
|
32
|
+
e.preventDefault();
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
return (React__default.createElement("div", { className: b$4(), onClick: onItemClick },
|
|
36
|
+
item.icon ? (React__default.createElement(Icon, { className: b$4('icon'), data: item.icon, size: item.iconSize })) : null,
|
|
37
|
+
React__default.createElement("span", { className: b$4('text') }, item.title),
|
|
38
|
+
editMode && (React__default.createElement(Button, { onClick: onPinButtonClick, view: item.hidden ? 'flat-secondary' : 'flat-action' },
|
|
39
|
+
React__default.createElement(Button.Icon, null, item.hidden ? React__default.createElement(Pin, null) : React__default.createElement(PinFill, null))))));
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var en$1 = {
|
|
43
|
+
"menu-item.all-pages.title": "All pages",
|
|
44
|
+
"all-panel.menu.category.allOther": "All other",
|
|
45
|
+
"all-panel.resetToDefault": "Reset to default",
|
|
46
|
+
"all-panel.title.editing": "Editing",
|
|
47
|
+
"all-panel.title.main": "All pages"
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
var ru$1 = {
|
|
51
|
+
"menu-item.all-pages.title": "Все страницы",
|
|
52
|
+
"all-panel.menu.category.allOther": "Остальное",
|
|
53
|
+
"all-panel.resetToDefault": "Сбросить по умолчанию",
|
|
54
|
+
"all-panel.title.editing": "Редактирование",
|
|
55
|
+
"all-panel.title.main": "Все страницы"
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const COMPONENT$1 = 'AllPagesPanel';
|
|
59
|
+
var i18n$1 = addComponentKeysets({ en: en$1, ru: ru$1 }, `${NAMESPACE}${COMPONENT$1}`);
|
|
60
|
+
|
|
61
|
+
const ALL_PAGES_ID = 'all-pages';
|
|
62
|
+
function getAllPagesMenuItem() {
|
|
63
|
+
return {
|
|
64
|
+
id: ALL_PAGES_ID,
|
|
65
|
+
title: i18n$1('menu-item.all-pages.title'),
|
|
66
|
+
tooltipText: i18n$1('menu-item.all-pages.title'),
|
|
67
|
+
icon: Ellipsis,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const useGroupedMenuItems = (items) => {
|
|
72
|
+
const allPagesMenuItems = useMemo(() => {
|
|
73
|
+
const filteredItems = items.filter((item) => item.type !== 'divider' && item.id !== ALL_PAGES_ID);
|
|
74
|
+
filteredItems.sort((a, b) => {
|
|
75
|
+
if (a.type === 'action') {
|
|
76
|
+
return 1;
|
|
77
|
+
}
|
|
78
|
+
if (b.type === 'action') {
|
|
79
|
+
return -1;
|
|
80
|
+
}
|
|
81
|
+
return 0;
|
|
82
|
+
});
|
|
83
|
+
const groupedItems = filteredItems.reduce((acc, item) => {
|
|
84
|
+
const category = item.category || i18n$1('all-panel.menu.category.allOther');
|
|
85
|
+
if (!acc[category]) {
|
|
86
|
+
acc[category] = [];
|
|
87
|
+
}
|
|
88
|
+
acc[category].push(item);
|
|
89
|
+
return acc;
|
|
90
|
+
}, {});
|
|
91
|
+
return groupedItems;
|
|
92
|
+
}, [items]);
|
|
93
|
+
return allPagesMenuItems;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
var css_248z$3 = ".gn-all-pages-panel{box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.gn-all-pages-panel__content{flex:1;margin:0 calc(var(--g-spacing-6)*-1);overflow:auto}.gn-all-pages-panel__category{padding:0 var(--g-spacing-6)}.gn-all-pages-panel__discoverable-feature-wrapper{display:flex}";
|
|
97
|
+
styleInject(css_248z$3);
|
|
98
|
+
|
|
99
|
+
const b$3 = block('all-pages-panel');
|
|
100
|
+
const AllPagesPanel = (props) => {
|
|
101
|
+
const { startEditIcon, onEditModeChanged, className } = props;
|
|
102
|
+
const { menuItems, onMenuItemsChanged } = useAsideHeaderInnerContext();
|
|
103
|
+
const menuItemsRef = useRef(menuItems);
|
|
104
|
+
menuItemsRef.current = menuItems;
|
|
105
|
+
const [isEditMode, setIsEditMode] = useState(false);
|
|
106
|
+
const toggleEditMode = useCallback(() => {
|
|
107
|
+
setIsEditMode((prev) => !prev);
|
|
108
|
+
}, []);
|
|
109
|
+
const groupedItems = useGroupedMenuItems(menuItems);
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
onEditModeChanged === null || onEditModeChanged === void 0 ? void 0 : onEditModeChanged(isEditMode);
|
|
112
|
+
}, [isEditMode, onEditModeChanged]);
|
|
113
|
+
const onItemClick = useCallback((item) => {
|
|
114
|
+
var _a;
|
|
115
|
+
//@ts-ignore TODO fix when @gravity-ui/uikit/List will provide event arg on item click
|
|
116
|
+
(_a = item.onItemClick) === null || _a === void 0 ? void 0 : _a.call(item, item, false);
|
|
117
|
+
}, []);
|
|
118
|
+
const togglePageVisibility = useCallback((item) => {
|
|
119
|
+
if (!onMenuItemsChanged) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const changedItem = Object.assign(Object.assign({}, item), { hidden: !item.hidden });
|
|
123
|
+
const originItems = menuItemsRef.current.filter((menuItem) => menuItem.id !== ALL_PAGES_ID);
|
|
124
|
+
onMenuItemsChanged(originItems.map((menuItem) => {
|
|
125
|
+
if (menuItem.id !== changedItem.id) {
|
|
126
|
+
return menuItem;
|
|
127
|
+
}
|
|
128
|
+
return changedItem;
|
|
129
|
+
}));
|
|
130
|
+
}, [onMenuItemsChanged]);
|
|
131
|
+
const itemRender = useCallback((item, _isActive, _itemIndex) => (React__default.createElement(AllPagesListItem, { item: item, editMode: isEditMode, onToggle: () => togglePageVisibility(item) })), [isEditMode, togglePageVisibility]);
|
|
132
|
+
const onResetToDefaultClick = useCallback(() => {
|
|
133
|
+
if (!onMenuItemsChanged) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const originItems = menuItemsRef.current.filter((item) => item.id !== ALL_PAGES_ID);
|
|
137
|
+
onMenuItemsChanged(originItems.map((item) => (Object.assign(Object.assign({}, item), { hidden: false }))));
|
|
138
|
+
}, [onMenuItemsChanged]);
|
|
139
|
+
return (React__default.createElement(Flex, { className: b$3(null, className), gap: "5", direction: "column" },
|
|
140
|
+
React__default.createElement(Flex, { gap: "4", alignItems: "center", justifyContent: "space-between" },
|
|
141
|
+
React__default.createElement(Text, { variant: "subheader-2" }, isEditMode ? i18n$1('all-panel.title.editing') : i18n$1('all-panel.title.main')),
|
|
142
|
+
React__default.createElement(Button, { selected: isEditMode, view: "normal", onClick: toggleEditMode }, startEditIcon ? startEditIcon : React__default.createElement(Icon, { data: Gear }))),
|
|
143
|
+
React__default.createElement(Flex, { className: b$3('content'), gap: "5", direction: "column" }, Object.keys(groupedItems).map((category) => {
|
|
144
|
+
return (React__default.createElement(Flex, { key: category, direction: "column", gap: "3" },
|
|
145
|
+
React__default.createElement(Text, { className: b$3('category'), variant: "body-1", color: "secondary" }, category),
|
|
146
|
+
React__default.createElement(List, { virtualized: false, filterable: false, items: groupedItems[category], onItemClick: onItemClick, renderItem: itemRender })));
|
|
147
|
+
})),
|
|
148
|
+
isEditMode && (React__default.createElement(Button, { onClick: onResetToDefaultClick }, i18n$1('all-panel.resetToDefault')))));
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
const useVisibleMenuItems = () => {
|
|
152
|
+
const { menuItems, allPagesIsAvailable } = useAsideHeaderInnerContext();
|
|
153
|
+
return useMemo(() => {
|
|
154
|
+
if (!allPagesIsAvailable) {
|
|
155
|
+
return menuItems;
|
|
156
|
+
}
|
|
157
|
+
let lastVisibleIndex = 0;
|
|
158
|
+
return menuItems.filter((item, index, items) => {
|
|
159
|
+
if (item.hidden) {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
if (index > 0 &&
|
|
163
|
+
item.type === 'divider' &&
|
|
164
|
+
(items[lastVisibleIndex].type === 'divider' || items[lastVisibleIndex].hidden)) {
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
lastVisibleIndex = index;
|
|
168
|
+
return true;
|
|
169
|
+
});
|
|
170
|
+
}, [allPagesIsAvailable, menuItems]);
|
|
171
|
+
};
|
|
172
|
+
|
|
18
173
|
/**
|
|
19
174
|
* Detect Element Resize.
|
|
20
175
|
* https://github.com/sdecima/javascript-detect-element-resize
|
|
@@ -252,16 +407,15 @@ class AutoSizer extends Component {
|
|
|
252
407
|
onResize
|
|
253
408
|
} = this.props;
|
|
254
409
|
if (this._parentNode) {
|
|
255
|
-
var _style$paddingLeft, _style$paddingRight, _style$paddingTop, _style$paddingBottom;
|
|
256
410
|
// Guard against AutoSizer component being removed from the DOM immediately after being added.
|
|
257
411
|
// This can result in invalid style values which can result in NaN values if we don't handle them.
|
|
258
412
|
// See issue #150 for more context.
|
|
259
413
|
|
|
260
414
|
const style = window.getComputedStyle(this._parentNode) || {};
|
|
261
|
-
const paddingLeft = parseFloat(
|
|
262
|
-
const paddingRight = parseFloat(
|
|
263
|
-
const paddingTop = parseFloat(
|
|
264
|
-
const paddingBottom = parseFloat(
|
|
415
|
+
const paddingLeft = parseFloat(style.paddingLeft || "0");
|
|
416
|
+
const paddingRight = parseFloat(style.paddingRight || "0");
|
|
417
|
+
const paddingTop = parseFloat(style.paddingTop || "0");
|
|
418
|
+
const paddingBottom = parseFloat(style.paddingBottom || "0");
|
|
265
419
|
const rect = this._parentNode.getBoundingClientRect();
|
|
266
420
|
const scaledHeight = rect.height - paddingTop - paddingBottom;
|
|
267
421
|
const scaledWidth = rect.width - paddingLeft - paddingRight;
|
|
@@ -412,10 +566,10 @@ class MultipleTooltipProvider extends React__default.PureComponent {
|
|
|
412
566
|
}
|
|
413
567
|
}
|
|
414
568
|
|
|
415
|
-
var css_248z$
|
|
416
|
-
styleInject(css_248z$
|
|
569
|
+
var css_248z$2 = ".g-root_theme_dark .gn-multiple-tooltip,.g-root_theme_dark-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(--g-color-private-white-100-solid);--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,var(--g-color-base-background) 50%,transparent);--multiple-tooltip-backdrop-filter:blur(16px)}.g-root_theme_dark-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(--g-color-private-white-150-solid)}.g-root_theme_light .gn-multiple-tooltip,.g-root_theme_light-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(--g-color-private-black-550-solid);--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,var(--g-color-base-background) 50%,transparent);--multiple-tooltip-backdrop-filter:blur(12px)}.gn-multiple-tooltip.gn-multiple-tooltip{background-color:transparent;box-shadow:none}.gn-multiple-tooltip:before{background:var(--multiple-tooltip-backdrop-background);box-shadow:none;content:\"\";filter:var(--multiple-tooltip-backdrop-filter);height:100%;opacity:.7;position:absolute;width:100%;z-index:-1}.gn-multiple-tooltip__items-container{align-items:flex-start;display:flex;flex-direction:column;padding:32px 40px 32px 12px}.gn-multiple-tooltip__item{align-items:center;background-color:var(--multiple-tooltip-item-bg-color);border-radius:5px;box-sizing:border-box;color:var(--g-color-text-light-primary);display:flex;height:30px;margin-bottom:5px;padding:8px 12px;position:relative;transition:transform .1s ease-in-out}.gn-multiple-tooltip__item:first-child,.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider)+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:5px}.gn-multiple-tooltip__item_divider+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:4px}.gn-multiple-tooltip__item_active{background-color:var(--multiple-tooltip-item-active-bg-color);transform:translateX(-12px)}.gn-multiple-tooltip__item_divider{height:15px;margin:0;visibility:hidden}";
|
|
570
|
+
styleInject(css_248z$2);
|
|
417
571
|
|
|
418
|
-
const b$
|
|
572
|
+
const b$2 = block('multiple-tooltip');
|
|
419
573
|
const POPUP_OFFSET = [-32, 4];
|
|
420
574
|
const POPUP_MODIFIERS = [
|
|
421
575
|
{
|
|
@@ -426,26 +580,26 @@ const POPUP_MODIFIERS = [
|
|
|
426
580
|
const MultipleTooltip = ({ items, open, anchorRef, placement, }) => {
|
|
427
581
|
const { activeIndex, hideCollapseItemTooltip } = React__default.useContext(MultipleTooltipContext);
|
|
428
582
|
const activeItem = activeIndex === undefined ? null : items[activeIndex];
|
|
429
|
-
return (React__default.createElement(Popup, { open: open, anchorRef: anchorRef, placement: placement, offset: POPUP_OFFSET, contentClassName: b$
|
|
430
|
-
React__default.createElement("div", { className: b$
|
|
583
|
+
return (React__default.createElement(Popup, { open: open, anchorRef: anchorRef, placement: placement, offset: POPUP_OFFSET, contentClassName: b$2(null), modifiers: POPUP_MODIFIERS, disableLayer: true },
|
|
584
|
+
React__default.createElement("div", { className: b$2('items-container') }, items
|
|
431
585
|
.filter(({ type = 'regular', id }) => !hideCollapseItemTooltip ||
|
|
432
586
|
(id !== COLLAPSE_ITEM_ID && type !== 'action'))
|
|
433
587
|
.map((item, idx) => {
|
|
434
588
|
switch (item.type) {
|
|
435
589
|
case 'divider':
|
|
436
|
-
return (React__default.createElement("div", { className: b$
|
|
590
|
+
return (React__default.createElement("div", { className: b$2('item', { divider: true }), key: idx }, item.title));
|
|
437
591
|
default:
|
|
438
|
-
return (React__default.createElement("div", { className: b$
|
|
592
|
+
return (React__default.createElement("div", { className: b$2('item', {
|
|
439
593
|
active: item === activeItem,
|
|
440
594
|
}), key: idx }, item.title));
|
|
441
595
|
}
|
|
442
596
|
}))));
|
|
443
597
|
};
|
|
444
598
|
|
|
445
|
-
var css_248z$
|
|
446
|
-
styleInject(css_248z$
|
|
599
|
+
var css_248z$1 = ".gn-composite-bar{flex:1 0 auto;min-height:40px;width:100%}.gn-composite-bar .gn-composite-bar__root-menu-item[class]{background-color:transparent}";
|
|
600
|
+
styleInject(css_248z$1);
|
|
447
601
|
|
|
448
|
-
const b$
|
|
602
|
+
const b$1 = block('composite-bar');
|
|
449
603
|
const CompositeBarView = ({ type, items, onItemClick, collapseItems, multipleTooltip = false, }) => {
|
|
450
604
|
const ref = useRef(null);
|
|
451
605
|
const tooltipRef = useRef(null);
|
|
@@ -550,7 +704,7 @@ const CompositeBarView = ({ type, items, onItemClick, collapseItems, multipleToo
|
|
|
550
704
|
]);
|
|
551
705
|
return (React__default.createElement(React__default.Fragment, null,
|
|
552
706
|
React__default.createElement("div", { ref: tooltipRef, onMouseEnter: onTooltipMouseEnter, onMouseLeave: onTooltipMouseLeave },
|
|
553
|
-
React__default.createElement(List, { ref: ref, items: items, selectedItemIndex: type === 'menu' ? getSelectedItemIndex(items) : undefined, itemHeight: getItemHeight, itemsHeight: getItemsHeight, itemClassName: b$
|
|
707
|
+
React__default.createElement(List, { ref: ref, items: items, selectedItemIndex: type === 'menu' ? getSelectedItemIndex(items) : undefined, itemHeight: getItemHeight, itemsHeight: getItemsHeight, itemClassName: b$1('root-menu-item'), virtualized: false, filterable: false, sortable: false, renderItem: (item, _isItemActive, itemIndex) => {
|
|
554
708
|
const itemExtraProps = isMenuItem(item) ? { item } : item;
|
|
555
709
|
const enableTooltip = isMenuItem(item)
|
|
556
710
|
? !multipleTooltip
|
|
@@ -567,7 +721,7 @@ const CompositeBar = ({ type, items, menuMoreTitle, onItemClick, multipleTooltip
|
|
|
567
721
|
if (type === 'menu') {
|
|
568
722
|
const minHeight = getItemsMinHeight(items);
|
|
569
723
|
const collapseItem = getMoreButtonItem(menuMoreTitle);
|
|
570
|
-
node = (React__default.createElement("div", { className: b$
|
|
724
|
+
node = (React__default.createElement("div", { className: b$1({ autosizer: true }), style: { minHeight } }, items.length !== 0 && (React__default.createElement(AutoSizer, null, (size) => {
|
|
571
725
|
const width = Number.isNaN(size.width) ? 0 : size.width;
|
|
572
726
|
const height = Number.isNaN(size.height) ? 0 : size.height;
|
|
573
727
|
const { listItems, collapseItems } = getAutosizeListItems(items, height, collapseItem);
|
|
@@ -576,167 +730,12 @@ const CompositeBar = ({ type, items, menuMoreTitle, onItemClick, multipleTooltip
|
|
|
576
730
|
}))));
|
|
577
731
|
}
|
|
578
732
|
else {
|
|
579
|
-
node = (React__default.createElement("div", { className: b$
|
|
733
|
+
node = (React__default.createElement("div", { className: b$1({ subheader: true }) },
|
|
580
734
|
React__default.createElement(CompositeBarView, { type: "subheader", items: items, onItemClick: onItemClick })));
|
|
581
735
|
}
|
|
582
736
|
return React__default.createElement(MultipleTooltipProvider, null, node);
|
|
583
737
|
};
|
|
584
738
|
|
|
585
|
-
var en$1 = {
|
|
586
|
-
"menu-item.all-pages.title": "All pages",
|
|
587
|
-
"all-panel.menu.category.allOther": "All other",
|
|
588
|
-
"all-panel.resetToDefault": "Reset to default",
|
|
589
|
-
"all-panel.title.editing": "Editing",
|
|
590
|
-
"all-panel.title.main": "All pages"
|
|
591
|
-
};
|
|
592
|
-
|
|
593
|
-
var ru$1 = {
|
|
594
|
-
"menu-item.all-pages.title": "Все страницы",
|
|
595
|
-
"all-panel.menu.category.allOther": "Остальное",
|
|
596
|
-
"all-panel.resetToDefault": "Сбросить по умолчанию",
|
|
597
|
-
"all-panel.title.editing": "Редактирование",
|
|
598
|
-
"all-panel.title.main": "Все страницы"
|
|
599
|
-
};
|
|
600
|
-
|
|
601
|
-
const COMPONENT$1 = 'AllPagesPanel';
|
|
602
|
-
var i18n$1 = registerKeyset({ en: en$1, ru: ru$1 }, COMPONENT$1);
|
|
603
|
-
|
|
604
|
-
const ALL_PAGES_ID = 'all-pages';
|
|
605
|
-
function getAllPagesMenuItem() {
|
|
606
|
-
return {
|
|
607
|
-
id: ALL_PAGES_ID,
|
|
608
|
-
title: i18n$1('menu-item.all-pages.title'),
|
|
609
|
-
tooltipText: i18n$1('menu-item.all-pages.title'),
|
|
610
|
-
icon: Ellipsis,
|
|
611
|
-
};
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
const useGroupedMenuItems = (items) => {
|
|
615
|
-
const allPagesMenuItems = useMemo(() => {
|
|
616
|
-
const filteredItems = items.filter((item) => item.type !== 'divider' && item.id !== ALL_PAGES_ID);
|
|
617
|
-
filteredItems.sort((a, b) => {
|
|
618
|
-
if (a.type === 'action') {
|
|
619
|
-
return 1;
|
|
620
|
-
}
|
|
621
|
-
if (b.type === 'action') {
|
|
622
|
-
return -1;
|
|
623
|
-
}
|
|
624
|
-
return 0;
|
|
625
|
-
});
|
|
626
|
-
const groupedItems = filteredItems.reduce((acc, item) => {
|
|
627
|
-
const category = item.category || i18n$1('all-panel.menu.category.allOther');
|
|
628
|
-
if (!acc[category]) {
|
|
629
|
-
acc[category] = [];
|
|
630
|
-
}
|
|
631
|
-
acc[category].push(item);
|
|
632
|
-
return acc;
|
|
633
|
-
}, {});
|
|
634
|
-
return groupedItems;
|
|
635
|
-
}, [items]);
|
|
636
|
-
return allPagesMenuItems;
|
|
637
|
-
};
|
|
638
|
-
|
|
639
|
-
var css_248z$2 = ".gn-all-pages-list-item{align-items:center;column-gap:var(--g-spacing-4);display:flex;height:40px;padding:0 var(--g-spacing-6);width:100%}.gn-all-pages-list-item__text{flex:1}.gn-all-pages-list-item__icon{color:var(--g-color-text-misc)}";
|
|
640
|
-
styleInject(css_248z$2);
|
|
641
|
-
|
|
642
|
-
const b$2 = block('all-pages-list-item');
|
|
643
|
-
const AllPagesListItem = (props) => {
|
|
644
|
-
const { item, editMode, onToggle } = props;
|
|
645
|
-
const onPinButtonClick = useCallback((e) => {
|
|
646
|
-
e.stopPropagation();
|
|
647
|
-
e.preventDefault();
|
|
648
|
-
onToggle();
|
|
649
|
-
}, [onToggle]);
|
|
650
|
-
const onItemClick = (e) => {
|
|
651
|
-
if (editMode) {
|
|
652
|
-
e.stopPropagation();
|
|
653
|
-
e.preventDefault();
|
|
654
|
-
}
|
|
655
|
-
};
|
|
656
|
-
return (React__default.createElement("div", { className: b$2(), onClick: onItemClick },
|
|
657
|
-
item.icon ? (React__default.createElement(Icon, { className: b$2('icon'), data: item.icon, size: item.iconSize })) : null,
|
|
658
|
-
React__default.createElement("span", { className: b$2('text') }, item.title),
|
|
659
|
-
editMode && (React__default.createElement(Button, { onClick: onPinButtonClick, view: item.hidden ? 'flat-secondary' : 'flat-action' },
|
|
660
|
-
React__default.createElement(Button.Icon, null, item.hidden ? React__default.createElement(Pin, null) : React__default.createElement(PinFill, null))))));
|
|
661
|
-
};
|
|
662
|
-
|
|
663
|
-
var css_248z$1 = ".gn-all-pages-panel{box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.gn-all-pages-panel__content{flex:1;margin:0 calc(var(--g-spacing-6)*-1);overflow:auto}.gn-all-pages-panel__category{padding:0 var(--g-spacing-6)}.gn-all-pages-panel__discoverable-feature-wrapper{display:flex}";
|
|
664
|
-
styleInject(css_248z$1);
|
|
665
|
-
|
|
666
|
-
const b$1 = block('all-pages-panel');
|
|
667
|
-
const AllPagesPanel = (props) => {
|
|
668
|
-
const { startEditIcon, onEditModeChanged, className } = props;
|
|
669
|
-
const { menuItems, onMenuItemsChanged } = useAsideHeaderInnerContext();
|
|
670
|
-
const menuItemsRef = useRef(menuItems);
|
|
671
|
-
menuItemsRef.current = menuItems;
|
|
672
|
-
const [isEditMode, setIsEditMode] = useState(false);
|
|
673
|
-
const toggleEditMode = useCallback(() => {
|
|
674
|
-
setIsEditMode((prev) => !prev);
|
|
675
|
-
}, []);
|
|
676
|
-
const groupedItems = useGroupedMenuItems(menuItems);
|
|
677
|
-
useEffect(() => {
|
|
678
|
-
onEditModeChanged === null || onEditModeChanged === void 0 ? void 0 : onEditModeChanged(isEditMode);
|
|
679
|
-
}, [isEditMode, onEditModeChanged]);
|
|
680
|
-
const onItemClick = useCallback((item) => {
|
|
681
|
-
var _a;
|
|
682
|
-
//@ts-ignore TODO fix when @gravity-ui/uikit/List will provide event arg on item click
|
|
683
|
-
(_a = item.onItemClick) === null || _a === void 0 ? void 0 : _a.call(item, item, false);
|
|
684
|
-
}, []);
|
|
685
|
-
const togglePageVisibility = useCallback((item) => {
|
|
686
|
-
if (!onMenuItemsChanged) {
|
|
687
|
-
return;
|
|
688
|
-
}
|
|
689
|
-
const changedItem = Object.assign(Object.assign({}, item), { hidden: !item.hidden });
|
|
690
|
-
const originItems = menuItemsRef.current.filter((menuItem) => menuItem.id !== ALL_PAGES_ID);
|
|
691
|
-
onMenuItemsChanged(originItems.map((menuItem) => {
|
|
692
|
-
if (menuItem.id !== changedItem.id) {
|
|
693
|
-
return menuItem;
|
|
694
|
-
}
|
|
695
|
-
return changedItem;
|
|
696
|
-
}));
|
|
697
|
-
}, [onMenuItemsChanged]);
|
|
698
|
-
const itemRender = useCallback((item, _isActive, _itemIndex) => (React__default.createElement(AllPagesListItem, { item: item, editMode: isEditMode, onToggle: () => togglePageVisibility(item) })), [isEditMode, togglePageVisibility]);
|
|
699
|
-
const onResetToDefaultClick = useCallback(() => {
|
|
700
|
-
if (!onMenuItemsChanged) {
|
|
701
|
-
return;
|
|
702
|
-
}
|
|
703
|
-
const originItems = menuItemsRef.current.filter((item) => item.id !== ALL_PAGES_ID);
|
|
704
|
-
onMenuItemsChanged(originItems.map((item) => (Object.assign(Object.assign({}, item), { hidden: false }))));
|
|
705
|
-
}, [onMenuItemsChanged]);
|
|
706
|
-
return (React__default.createElement(Flex, { className: b$1(null, className), gap: "5", direction: "column" },
|
|
707
|
-
React__default.createElement(Flex, { gap: "4", alignItems: "center", justifyContent: "space-between" },
|
|
708
|
-
React__default.createElement(Text, { variant: "subheader-2" }, isEditMode ? i18n$1('all-panel.title.editing') : i18n$1('all-panel.title.main')),
|
|
709
|
-
React__default.createElement(Button, { selected: isEditMode, view: "normal", onClick: toggleEditMode }, startEditIcon ? startEditIcon : React__default.createElement(Icon, { data: Gear }))),
|
|
710
|
-
React__default.createElement(Flex, { className: b$1('content'), gap: "5", direction: "column" }, Object.keys(groupedItems).map((category) => {
|
|
711
|
-
return (React__default.createElement(Flex, { key: category, direction: "column", gap: "3" },
|
|
712
|
-
React__default.createElement(Text, { className: b$1('category'), variant: "body-1", color: "secondary" }, category),
|
|
713
|
-
React__default.createElement(List, { virtualized: false, filterable: false, items: groupedItems[category], onItemClick: onItemClick, renderItem: itemRender })));
|
|
714
|
-
})),
|
|
715
|
-
isEditMode && (React__default.createElement(Button, { onClick: onResetToDefaultClick }, i18n$1('all-panel.resetToDefault')))));
|
|
716
|
-
};
|
|
717
|
-
|
|
718
|
-
const useVisibleMenuItems = () => {
|
|
719
|
-
const { menuItems, allPagesIsAvailable } = useAsideHeaderInnerContext();
|
|
720
|
-
return useMemo(() => {
|
|
721
|
-
if (!allPagesIsAvailable) {
|
|
722
|
-
return menuItems;
|
|
723
|
-
}
|
|
724
|
-
let lastVisibleIndex = 0;
|
|
725
|
-
return menuItems.filter((item, index, items) => {
|
|
726
|
-
if (item.hidden) {
|
|
727
|
-
return false;
|
|
728
|
-
}
|
|
729
|
-
if (index > 0 &&
|
|
730
|
-
item.type === 'divider' &&
|
|
731
|
-
(items[lastVisibleIndex].type === 'divider' || items[lastVisibleIndex].hidden)) {
|
|
732
|
-
return false;
|
|
733
|
-
}
|
|
734
|
-
lastVisibleIndex = index;
|
|
735
|
-
return true;
|
|
736
|
-
});
|
|
737
|
-
}, [allPagesIsAvailable, menuItems]);
|
|
738
|
-
};
|
|
739
|
-
|
|
740
739
|
var button_collapse$1 = "Collapse";
|
|
741
740
|
var button_expand$1 = "Expand";
|
|
742
741
|
var label_more$1 = "More";
|
|
@@ -756,9 +755,44 @@ var ru = {
|
|
|
756
755
|
};
|
|
757
756
|
|
|
758
757
|
const COMPONENT = 'AsideHeader';
|
|
759
|
-
var i18n =
|
|
758
|
+
var i18n = addComponentKeysets({ en, ru }, `${NAMESPACE}${COMPONENT}`);
|
|
759
|
+
|
|
760
|
+
function fakeDisplayName(newDisplayName, Component) {
|
|
761
|
+
const Fake = (props) => React__default.createElement(Component, Object.assign({}, props));
|
|
762
|
+
Fake.displayName = newDisplayName;
|
|
763
|
+
return Fake;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
var _path;
|
|
767
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
768
|
+
var SvgControlMenuButton = function SvgControlMenuButton(props) {
|
|
769
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
770
|
+
width: 8,
|
|
771
|
+
height: 8,
|
|
772
|
+
viewBox: "0 0 8 8",
|
|
773
|
+
fill: "currentColor",
|
|
774
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
775
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
776
|
+
d: "m.72 7.64 6.39-3.2a.5.5 0 0 0 0-.89L.72.36A.5.5 0 0 0 0 .81v6.38c0 .37.4.61.72.45Z"
|
|
777
|
+
})));
|
|
778
|
+
};
|
|
779
|
+
var controlMenuButtonIcon = SvgControlMenuButton;
|
|
780
|
+
|
|
781
|
+
// TODO: remove temporary fix for expand button
|
|
782
|
+
const NotIcon = fakeDisplayName('NotIcon', Icon);
|
|
783
|
+
const CollapseButton = () => {
|
|
784
|
+
const { onChangeCompact, compact, expandTitle, collapseTitle } = useAsideHeaderInnerContext();
|
|
785
|
+
const onCollapseButtonClick = useCallback(() => {
|
|
786
|
+
onChangeCompact === null || onChangeCompact === void 0 ? void 0 : onChangeCompact(!compact);
|
|
787
|
+
}, [compact, onChangeCompact]);
|
|
788
|
+
const buttonTitle = compact
|
|
789
|
+
? expandTitle || i18n('button_expand')
|
|
790
|
+
: collapseTitle || i18n('button_collapse');
|
|
791
|
+
return (React__default.createElement(Button, { className: b$5('collapse-button', { compact }), view: "flat", onClick: onCollapseButtonClick, title: buttonTitle },
|
|
792
|
+
React__default.createElement(NotIcon, { data: controlMenuButtonIcon, className: b$5('collapse-icon'), width: "16", height: "10" })));
|
|
793
|
+
};
|
|
760
794
|
|
|
761
|
-
var css_248z = ".gn-logo{height:40px}.gn-logo,.gn-logo__logo-btn-place{align-items:center;display:flex;flex-shrink:0}.gn-logo__logo-btn-place{cursor:pointer;justify-content:center;width:var(--gn-aside-header-min-width)}.gn-logo__logo-btn-place .
|
|
795
|
+
var css_248z = ".gn-logo{height:40px}.gn-logo,.gn-logo__logo-btn-place{align-items:center;display:flex;flex-shrink:0}.gn-logo__logo-btn-place{cursor:pointer;justify-content:center;width:var(--gn-aside-header-min-width)}.gn-logo__logo-btn-place .g-button:before{background-color:transparent}.gn-logo__btn-logo.g-button_view_flat.g-button_size_l{--g-button-height:var(\n --gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size)\n )}.gn-logo__logo{cursor:pointer;font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height);vertical-align:middle}.gn-logo__logo-link,.gn-logo__logo-link:active,.gn-logo__logo-link:focus,.gn-logo__logo-link:hover,.gn-logo__logo-link:visited{color:inherit;outline:none;text-decoration:none}.g-root .gn-logo__btn-logo.button2_theme_flat.button2_hovered_yes:before{background-color:transparent}";
|
|
762
796
|
styleInject(css_248z);
|
|
763
797
|
|
|
764
798
|
const b = block('logo');
|
|
@@ -801,41 +835,6 @@ const Header = () => {
|
|
|
801
835
|
React__default.createElement(Icon, { data: headerDividerCollapsedIcon, className: b$5('header-divider'), width: ASIDE_HEADER_COMPACT_WIDTH, height: HEADER_DIVIDER_HEIGHT })));
|
|
802
836
|
};
|
|
803
837
|
|
|
804
|
-
function fakeDisplayName(newDisplayName, Component) {
|
|
805
|
-
const Fake = (props) => React__default.createElement(Component, Object.assign({}, props));
|
|
806
|
-
Fake.displayName = newDisplayName;
|
|
807
|
-
return Fake;
|
|
808
|
-
}
|
|
809
|
-
|
|
810
|
-
var _path;
|
|
811
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
812
|
-
var SvgControlMenuButton = function SvgControlMenuButton(props) {
|
|
813
|
-
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
814
|
-
width: 8,
|
|
815
|
-
height: 8,
|
|
816
|
-
viewBox: "0 0 8 8",
|
|
817
|
-
fill: "currentColor",
|
|
818
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
819
|
-
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
820
|
-
d: "m.72 7.64 6.39-3.2a.5.5 0 0 0 0-.89L.72.36A.5.5 0 0 0 0 .81v6.38c0 .37.4.61.72.45Z"
|
|
821
|
-
})));
|
|
822
|
-
};
|
|
823
|
-
var controlMenuButtonIcon = SvgControlMenuButton;
|
|
824
|
-
|
|
825
|
-
// TODO: remove temporary fix for expand button
|
|
826
|
-
const NotIcon = fakeDisplayName('NotIcon', Icon);
|
|
827
|
-
const CollapseButton = () => {
|
|
828
|
-
const { onChangeCompact, compact, expandTitle, collapseTitle } = useAsideHeaderInnerContext();
|
|
829
|
-
const onCollapseButtonClick = useCallback(() => {
|
|
830
|
-
onChangeCompact === null || onChangeCompact === void 0 ? void 0 : onChangeCompact(!compact);
|
|
831
|
-
}, [compact, onChangeCompact]);
|
|
832
|
-
const buttonTitle = compact
|
|
833
|
-
? expandTitle || i18n('button_expand')
|
|
834
|
-
: collapseTitle || i18n('button_collapse');
|
|
835
|
-
return (React__default.createElement(Button, { className: b$5('collapse-button', { compact }), view: "flat", onClick: onCollapseButtonClick, title: buttonTitle },
|
|
836
|
-
React__default.createElement(NotIcon, { data: controlMenuButtonIcon, className: b$5('collapse-icon'), width: "16", height: "10" })));
|
|
837
|
-
};
|
|
838
|
-
|
|
839
838
|
const Panels = () => {
|
|
840
839
|
const { panelItems, onClosePanel, size } = useAsideHeaderInnerContext();
|
|
841
840
|
return panelItems ? (React__default.createElement(Drawer, { className: b$5('panels'), onVeilClick: onClosePanel, onEscape: onClosePanel, style: { left: size } }, panelItems.map((item) => (React__default.createElement(DrawerItem, Object.assign({ key: item.id }, item)))))) : null;
|
|
@@ -863,6 +862,7 @@ const FirstPanel = React__default.forwardRef((_props, ref) => {
|
|
|
863
862
|
React__default.createElement(CollapseButton, null))),
|
|
864
863
|
React__default.createElement(Panels, null)));
|
|
865
864
|
});
|
|
865
|
+
FirstPanel.displayName = 'FirstPanel';
|
|
866
866
|
|
|
867
867
|
var InnerPanels;
|
|
868
868
|
(function (InnerPanels) {
|
|
@@ -926,6 +926,7 @@ const PageLayoutAside = React__default.forwardRef((props, ref) => {
|
|
|
926
926
|
return (React__default.createElement(AsideHeaderInnerContextProvider, { value: asideHeaderInnerContextValue },
|
|
927
927
|
React__default.createElement(FirstPanel, { ref: ref })));
|
|
928
928
|
});
|
|
929
|
+
PageLayoutAside.displayName = 'PageLayoutAside';
|
|
929
930
|
|
|
930
931
|
export { PageLayoutAside };
|
|
931
932
|
//# sourceMappingURL=PageLayoutAside.js.map
|