@gravity-ui/navigation 2.31.0 → 2.32.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.
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var tslib_es6 = require('./tslib.es6-705c6589.js');
6
6
  var React = require('react');
7
7
  var PageLayout = require('./PageLayout.js');
8
- var PageLayoutAside = require('./PageLayoutAside-c30e7399.js');
8
+ var PageLayoutAside = require('./PageLayoutAside-30f2015c.js');
9
9
  require('./Content-64d5738a.js');
10
10
  require('./constants-d81c3867.js');
11
11
  require('./AsideHeaderContext.js');
@@ -1 +1 @@
1
- {"version":3,"file":"AsideHeaderContext.js","sources":["../../../src/components/AsideHeader/AsideHeaderContext.ts"],"sourcesContent":["import React from 'react';\n\nimport {MenuItem} from '../types';\n\nimport {AsideHeaderInnerProps} from './types';\n\nexport interface AsideHeaderInnerContextType extends AsideHeaderInnerProps {\n menuItems: MenuItem[];\n allPagesIsAvailable: boolean;\n onItemClick: (\n item: MenuItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => void;\n}\n\nexport const AsideHeaderInnerContext = React.createContext<AsideHeaderInnerContextType | undefined>(\n undefined,\n);\nAsideHeaderInnerContext.displayName = 'AsideHeaderInnerContext';\n\nexport const AsideHeaderInnerContextProvider = AsideHeaderInnerContext.Provider;\n\nexport const useAsideHeaderInnerContext = (): AsideHeaderInnerContextType => {\n const contextValue = React.useContext(AsideHeaderInnerContext);\n if (contextValue === undefined) {\n throw new Error(`AsideHeaderInnerContext is not initialized.\n Please check if you wrapped your component with AsideHeaderInnerContext.Provider`);\n }\n return contextValue;\n};\n\nexport interface AsideHeaderContextType {\n compact: boolean;\n size: number;\n}\n\nexport const AsideHeaderContext = React.createContext<AsideHeaderContextType | undefined>({\n compact: false,\n size: 0,\n});\n\nAsideHeaderContext.displayName = 'AsideHeaderContext';\n\nexport const AsideHeaderContextProvider = AsideHeaderContext.Provider;\n\nexport const useAsideHeaderContext = (): AsideHeaderContextType => {\n const contextValue = React.useContext(AsideHeaderContext);\n if (contextValue === undefined) {\n throw new Error(`AsideHeaderContext is not initialized.\n Please check if you wrapped your component with AsideHeader\n Context.Provider`);\n }\n return contextValue;\n};\n"],"names":["React"],"mappings":";;;;;;;;;;AAgBa,MAAA,uBAAuB,GAAGA,yBAAK,CAAC,aAAa,CACtD,SAAS,EACX;AACF,uBAAuB,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAEnD,MAAA,+BAA+B,GAAG,uBAAuB,CAAC,SAAS;AAEzE,MAAM,0BAA0B,GAAG,MAAkC;IACxE,MAAM,YAAY,GAAGA,yBAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAC/D,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,CAAA;AACiE,wFAAA,CAAA,CAAC,CAAC;AACtF,KAAA;AACD,IAAA,OAAO,YAAY,CAAC;AACxB,EAAE;AAOW,MAAA,kBAAkB,GAAGA,yBAAK,CAAC,aAAa,CAAqC;AACtF,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,IAAI,EAAE,CAAC;AACV,CAAA,EAAE;AAEH,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAA,0BAA0B,GAAG,kBAAkB,CAAC,SAAS;AAE/D,MAAM,qBAAqB,GAAG,MAA6B;IAC9D,MAAM,YAAY,GAAGA,yBAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC1D,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,CAAA;;AAEC,wBAAA,CAAA,CAAC,CAAC;AACtB,KAAA;AACD,IAAA,OAAO,YAAY,CAAC;AACxB;;;;;;;;;"}
1
+ {"version":3,"file":"AsideHeaderContext.js","sources":["../../../src/components/AsideHeader/AsideHeaderContext.ts"],"sourcesContent":["import React from 'react';\n\nimport {MenuItem} from '../types';\n\nimport {AsideHeaderInnerProps} from './types';\n\nexport interface AsideHeaderInnerContextType extends AsideHeaderInnerProps {\n menuItems: MenuItem[];\n defaultMenuItems?: MenuItem[];\n allPagesIsAvailable: boolean;\n onItemClick: (\n item: MenuItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => void;\n}\n\nexport const AsideHeaderInnerContext = React.createContext<AsideHeaderInnerContextType | undefined>(\n undefined,\n);\nAsideHeaderInnerContext.displayName = 'AsideHeaderInnerContext';\n\nexport const AsideHeaderInnerContextProvider = AsideHeaderInnerContext.Provider;\n\nexport const useAsideHeaderInnerContext = (): AsideHeaderInnerContextType => {\n const contextValue = React.useContext(AsideHeaderInnerContext);\n if (contextValue === undefined) {\n throw new Error(`AsideHeaderInnerContext is not initialized.\n Please check if you wrapped your component with AsideHeaderInnerContext.Provider`);\n }\n return contextValue;\n};\n\nexport interface AsideHeaderContextType {\n compact: boolean;\n size: number;\n}\n\nexport const AsideHeaderContext = React.createContext<AsideHeaderContextType | undefined>({\n compact: false,\n size: 0,\n});\n\nAsideHeaderContext.displayName = 'AsideHeaderContext';\n\nexport const AsideHeaderContextProvider = AsideHeaderContext.Provider;\n\nexport const useAsideHeaderContext = (): AsideHeaderContextType => {\n const contextValue = React.useContext(AsideHeaderContext);\n if (contextValue === undefined) {\n throw new Error(`AsideHeaderContext is not initialized.\n Please check if you wrapped your component with AsideHeader\n Context.Provider`);\n }\n return contextValue;\n};\n"],"names":["React"],"mappings":";;;;;;;;;;AAiBa,MAAA,uBAAuB,GAAGA,yBAAK,CAAC,aAAa,CACtD,SAAS,EACX;AACF,uBAAuB,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAEnD,MAAA,+BAA+B,GAAG,uBAAuB,CAAC,SAAS;AAEzE,MAAM,0BAA0B,GAAG,MAAkC;IACxE,MAAM,YAAY,GAAGA,yBAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAC/D,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,CAAA;AACiE,wFAAA,CAAA,CAAC,CAAC;AACtF,KAAA;AACD,IAAA,OAAO,YAAY,CAAC;AACxB,EAAE;AAOW,MAAA,kBAAkB,GAAGA,yBAAK,CAAC,aAAa,CAAqC;AACtF,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,IAAI,EAAE,CAAC;AACV,CAAA,EAAE;AAEH,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAA,0BAA0B,GAAG,kBAAkB,CAAC,SAAS;AAE/D,MAAM,qBAAqB,GAAG,MAA6B;IAC9D,MAAM,YAAY,GAAGA,yBAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC1D,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,CAAA;;AAEC,wBAAA,CAAA,CAAC,CAAC;AACtB,KAAA;AACD,IAAA,OAAO,YAAY,CAAC;AACxB;;;;;;;;;"}
@@ -37,12 +37,12 @@ function _interopNamespace(e) {
37
37
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
38
38
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
39
39
 
40
- var css_248z$5 = ".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)}";
40
+ var css_248z$5 = ".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)}.gn-all-pages-list-item_edit-mode{padding:0 0 0 var(--g-spacing-4)}";
41
41
  styleInject_es.styleInject(css_248z$5);
42
42
 
43
43
  const b$5 = cn.block('all-pages-list-item');
44
44
  const AllPagesListItem = (props) => {
45
- const { item, editMode, onToggle } = props;
45
+ const { item, editMode, onToggle, enableSorting, onDragStart, onDragEnd } = props;
46
46
  const onPinButtonClick = React.useCallback((e) => {
47
47
  e.stopPropagation();
48
48
  e.preventDefault();
@@ -54,7 +54,21 @@ const AllPagesListItem = (props) => {
54
54
  e.preventDefault();
55
55
  }
56
56
  };
57
- return (React__default["default"].createElement("div", { className: b$5(), onClick: onItemClick },
57
+ const onItemDragStart = (e) => {
58
+ if (editMode && onDragStart) {
59
+ e.stopPropagation();
60
+ e.preventDefault();
61
+ onDragStart();
62
+ }
63
+ };
64
+ const onItemDragEnd = (e) => {
65
+ if (editMode && onDragEnd) {
66
+ e.stopPropagation();
67
+ e.preventDefault();
68
+ onDragEnd();
69
+ }
70
+ };
71
+ return (React__default["default"].createElement("div", { key: item.id, className: b$5({ 'edit-mode': editMode && enableSorting }), onClick: onItemClick, draggable: editMode && enableSorting, onMouseDown: onItemDragStart, onMouseUp: onItemDragEnd },
58
72
  item.icon ? (React__default["default"].createElement(uikit.Icon, { className: b$5('icon'), data: item.icon, size: item.iconSize })) : null,
59
73
  React__default["default"].createElement("span", { className: b$5('text') }, item.title),
60
74
  editMode && !item.preventUserRemoving && (React__default["default"].createElement(uikit.Button, { onClick: onPinButtonClick, view: item.hidden ? 'flat-secondary' : 'flat-action' },
@@ -65,7 +79,7 @@ var en$1 = {
65
79
  "menu-item.all-pages.title": "All pages",
66
80
  "all-panel.menu.category.allOther": "All other",
67
81
  "all-panel.resetToDefault": "Reset to default",
68
- "all-panel.title.editing": "Editing",
82
+ "all-panel.title.editing": "Configuring the menu bar",
69
83
  "all-panel.title.main": "All pages"
70
84
  };
71
85
 
@@ -73,7 +87,7 @@ var ru$1 = {
73
87
  "menu-item.all-pages.title": "Все страницы",
74
88
  "all-panel.menu.category.allOther": "Остальное",
75
89
  "all-panel.resetToDefault": "Сбросить по умолчанию",
76
- "all-panel.title.editing": "Редактирование",
90
+ "all-panel.title.editing": "Настройка панели меню",
77
91
  "all-panel.title.main": "Все страницы"
78
92
  };
79
93
 
@@ -115,16 +129,17 @@ const useGroupedMenuItems = (items) => {
115
129
  return allPagesMenuItems;
116
130
  };
117
131
 
118
- var css_248z$4 = ".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}";
132
+ var css_248z$4 = ".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}.gn-all-pages-panel__item_editMode{padding:0 var(--g-spacing-6)}.gn-all-pages-panel__drag-placeholder{text-wrap:nowrap;padding-left:88px;padding-right:68px;visibility:hidden}";
119
133
  styleInject_es.styleInject(css_248z$4);
120
134
 
121
135
  const b$4 = cn.block('all-pages-panel');
122
136
  const AllPagesPanel = (props) => {
123
137
  const { startEditIcon, onEditModeChanged, className } = props;
124
- const { menuItems, onMenuItemsChanged, editMenuProps } = AsideHeaderContext.useAsideHeaderInnerContext();
138
+ const { menuItems, defaultMenuItems, onMenuItemsChanged, editMenuProps } = AsideHeaderContext.useAsideHeaderInnerContext();
125
139
  const menuItemsRef = React.useRef(menuItems);
126
140
  menuItemsRef.current = menuItems;
127
141
  const [isEditMode, setIsEditMode] = React.useState(false);
142
+ const [draggingItemTitle, setDraggingItemTitle] = React.useState(null);
128
143
  const toggleEditMode = React.useCallback(() => {
129
144
  setIsEditMode((prev) => !prev);
130
145
  }, []);
@@ -156,25 +171,50 @@ const AllPagesPanel = (props) => {
156
171
  return changedItem;
157
172
  }));
158
173
  }, [onMenuItemsChanged, editMenuProps]);
159
- const itemRender = React.useCallback((item, _isActive, _itemIndex) => (React__default["default"].createElement(AllPagesListItem, { item: item, editMode: isEditMode, onToggle: () => togglePageVisibility(item) })), [isEditMode, togglePageVisibility]);
174
+ const onDragEnd = React.useCallback(() => {
175
+ setDraggingItemTitle(null);
176
+ }, [setDraggingItemTitle]);
177
+ const itemRender = React.useCallback((item, _isActive, _itemIndex) => {
178
+ const onDragStart = () => {
179
+ setDraggingItemTitle(item.title);
180
+ };
181
+ return (React__default["default"].createElement(AllPagesListItem, { item: item, onDragStart: onDragStart, onDragEnd: onDragEnd, editMode: isEditMode, onToggle: () => togglePageVisibility(item), enableSorting: editMenuProps === null || editMenuProps === void 0 ? void 0 : editMenuProps.enableSorting }));
182
+ }, [isEditMode, togglePageVisibility, onDragEnd, setDraggingItemTitle, editMenuProps]);
160
183
  const onResetToDefaultClick = React.useCallback(() => {
161
184
  var _a;
162
185
  if (!onMenuItemsChanged) {
163
186
  return;
164
187
  }
165
188
  (_a = editMenuProps === null || editMenuProps === void 0 ? void 0 : editMenuProps.onResetSettingsToDefault) === null || _a === void 0 ? void 0 : _a.call(editMenuProps);
166
- const originItems = menuItemsRef.current.filter((item) => item.id !== ALL_PAGES_ID);
167
- onMenuItemsChanged(originItems.map((item) => (Object.assign(Object.assign({}, item), { hidden: false }))));
189
+ const originItems = defaultMenuItems === null || defaultMenuItems === void 0 ? void 0 : defaultMenuItems.filter((item) => item.id !== ALL_PAGES_ID);
190
+ if (originItems) {
191
+ onMenuItemsChanged(originItems);
192
+ }
193
+ }, [onMenuItemsChanged, editMenuProps, defaultMenuItems]);
194
+ const changeItemsOrder = React.useCallback(({ oldIndex, newIndex }) => {
195
+ var _a;
196
+ const newItems = menuItemsRef.current.filter((item) => item.id !== ALL_PAGES_ID);
197
+ const element = newItems.splice(oldIndex, 1)[0];
198
+ newItems.splice(newIndex, 0, element);
199
+ onMenuItemsChanged === null || onMenuItemsChanged === void 0 ? void 0 : onMenuItemsChanged(newItems.filter((item) => item.type !== 'divider'));
200
+ setDraggingItemTitle(null);
201
+ (_a = editMenuProps === null || editMenuProps === void 0 ? void 0 : editMenuProps.onChangeItemsOrder) === null || _a === void 0 ? void 0 : _a.call(editMenuProps, element, oldIndex, newIndex);
168
202
  }, [onMenuItemsChanged, editMenuProps]);
203
+ const sortableItems = React.useMemo(() => {
204
+ return menuItemsRef.current.filter((item) => item.id !== ALL_PAGES_ID && !item.afterMoreButton && item.type !== 'divider');
205
+ }, [menuItems]);
169
206
  return (React__default["default"].createElement(uikit.Flex, { className: b$4(null, className), gap: "5", direction: "column" },
170
207
  React__default["default"].createElement(uikit.Flex, { gap: "4", alignItems: "center", justifyContent: "space-between" },
171
208
  React__default["default"].createElement(uikit.Text, { variant: "subheader-2" }, isEditMode ? i18n$1('all-panel.title.editing') : i18n$1('all-panel.title.main')),
172
- React__default["default"].createElement(uikit.Button, { selected: isEditMode, view: "normal", onClick: toggleEditMode }, startEditIcon ? startEditIcon : React__default["default"].createElement(uikit.Icon, { data: icons.Gear }))),
173
- React__default["default"].createElement(uikit.Flex, { className: b$4('content'), gap: "5", direction: "column" }, Object.keys(groupedItems).map((category) => {
209
+ React__default["default"].createElement(uikit.Tooltip, { content: i18n$1('all-panel.title.editing') },
210
+ React__default["default"].createElement(uikit.Button, { selected: isEditMode, view: "normal", onClick: toggleEditMode }, startEditIcon ? startEditIcon : React__default["default"].createElement(uikit.Icon, { data: icons.Gear })))),
211
+ React__default["default"].createElement(uikit.Flex, { className: b$4('content'), gap: "5", direction: "column" }, isEditMode && (editMenuProps === null || editMenuProps === void 0 ? void 0 : editMenuProps.enableSorting) ? (React__default["default"].createElement("div", null,
212
+ React__default["default"].createElement(uikit.List, { itemClassName: b$4('item', { editMode: true }), itemHeight: 40, onSortEnd: changeItemsOrder, sortable: true, virtualized: false, filterable: false, items: sortableItems, onItemClick: onItemClick, renderItem: itemRender }),
213
+ draggingItemTitle && (React__default["default"].createElement("div", { className: b$4('drag-placeholder') }, draggingItemTitle)))) : (Object.keys(groupedItems).map((category) => {
174
214
  return (React__default["default"].createElement(uikit.Flex, { key: category, direction: "column", gap: "3" },
175
215
  React__default["default"].createElement(uikit.Text, { className: b$4('category'), variant: "body-1", color: "secondary" }, category),
176
216
  React__default["default"].createElement(uikit.List, { virtualized: false, filterable: false, items: groupedItems[category], onItemClick: onItemClick, renderItem: itemRender })));
177
- })),
217
+ }))),
178
218
  isEditMode && (React__default["default"].createElement(uikit.Button, { onClick: onResetToDefaultClick }, i18n$1('all-panel.resetToDefault')))));
179
219
  };
180
220
 
@@ -965,4 +1005,4 @@ PageLayoutAside.displayName = 'PageLayoutAside';
965
1005
 
966
1006
  exports.Logo = Logo;
967
1007
  exports.PageLayoutAside = PageLayoutAside;
968
- //# sourceMappingURL=PageLayoutAside-c30e7399.js.map
1008
+ //# sourceMappingURL=PageLayoutAside-30f2015c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageLayoutAside-30f2015c.js","sources":["../../../src/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.tsx","../../../src/components/AllPagesPanel/i18n/index.ts","../../../src/components/AllPagesPanel/constants.ts","../../../src/components/AllPagesPanel/useGroupedMenuItems.ts","../../../src/components/AllPagesPanel/AllPagesPanel.tsx","../../../src/components/AllPagesPanel/useVisibleMenuItems.ts","../../node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.esm.js","../../../src/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.tsx","../../../src/components/CompositeBar/MultipleTooltip/MultipleTooltip.tsx","../../../src/components/CompositeBar/CompositeBar.tsx","../../../src/components/AsideHeader/i18n/index.ts","../../assets/icons/control-menu-button.svg","../../../src/components/AsideHeader/components/CollapseButton/CollapseButton.tsx","../../../src/components/Logo/Logo.tsx","../../../src/components/AsideHeader/components/Header.tsx","../../../src/components/AsideHeader/components/Panels.tsx","../../../src/components/AsideHeader/components/FirstPanel.tsx","../../../src/components/AsideHeader/types.tsx","../../../src/components/AsideHeader/useAsideHeaderInnerContextValue.tsx","../../../src/components/AsideHeader/components/PageLayout/PageLayoutAside.tsx"],"sourcesContent":["import React, {MouseEvent, useCallback} from 'react';\n\nimport {Pin, PinFill} from '@gravity-ui/icons';\nimport {Button, Icon} from '@gravity-ui/uikit';\n\nimport {MenuItem} from '../../types';\nimport {block} from '../../utils/cn';\n\nimport './AllPagesListItem.scss';\n\nconst b = block('all-pages-list-item');\n\ninterface AllPagesListItemProps {\n item: MenuItem;\n editMode?: boolean;\n enableSorting?: boolean;\n onToggle: () => void;\n onDragStart?: () => void;\n onDragEnd?: () => void;\n}\n\nexport const AllPagesListItem: React.FC<AllPagesListItemProps> = (props) => {\n const {item, editMode, onToggle, enableSorting, onDragStart, onDragEnd} = props;\n const onPinButtonClick = useCallback(\n (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n e.stopPropagation();\n e.preventDefault();\n onToggle();\n },\n [onToggle],\n );\n\n const onItemClick = (e: MouseEvent<HTMLDivElement>) => {\n if (editMode) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n const onItemDragStart = (e: MouseEvent<HTMLDivElement>) => {\n if (editMode && onDragStart) {\n e.stopPropagation();\n e.preventDefault();\n onDragStart();\n }\n };\n\n const onItemDragEnd = (e: MouseEvent<HTMLDivElement>) => {\n if (editMode && onDragEnd) {\n e.stopPropagation();\n e.preventDefault();\n onDragEnd();\n }\n };\n\n return (\n <div\n key={item.id}\n className={b({'edit-mode': editMode && enableSorting})}\n onClick={onItemClick}\n draggable={editMode && enableSorting}\n onMouseDown={onItemDragStart}\n onMouseUp={onItemDragEnd}\n >\n {item.icon ? (\n <Icon className={b('icon')} data={item.icon} size={item.iconSize} />\n ) : null}\n <span className={b('text')}>{item.title}</span>\n {editMode && !item.preventUserRemoving && (\n <Button\n onClick={onPinButtonClick}\n view={item.hidden ? 'flat-secondary' : 'flat-action'}\n >\n <Button.Icon>{item.hidden ? <Pin /> : <PinFill />}</Button.Icon>\n </Button>\n )}\n </div>\n );\n};\n","import {addComponentKeysets} from '@gravity-ui/uikit/i18n';\n\nimport {NAMESPACE} from '../../utils/cn';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nconst COMPONENT = 'AllPagesPanel';\nexport default addComponentKeysets({en, ru}, `${NAMESPACE}${COMPONENT}`);\n","import {Ellipsis} from '@gravity-ui/icons';\n\nimport {MenuItem} from '../types';\n\nimport i18n from './i18n';\n\nexport const ALL_PAGES_ID = 'all-pages' as const;\n\nexport function getAllPagesMenuItem(): MenuItem {\n return {\n id: ALL_PAGES_ID,\n title: i18n('menu-item.all-pages.title'),\n tooltipText: i18n('menu-item.all-pages.title'),\n icon: Ellipsis,\n };\n}\n","import {useMemo} from 'react';\n\nimport {MenuItem} from '../types';\n\nimport {ALL_PAGES_ID} from './constants';\nimport i18n from './i18n';\n\nexport const useGroupedMenuItems = (items: MenuItem[]) => {\n const allPagesMenuItems = useMemo(() => {\n const filteredItems = items.filter(\n (item) => item.type !== 'divider' && item.id !== ALL_PAGES_ID,\n );\n filteredItems.sort((a, b) => {\n if (a.type === 'action') {\n return 1;\n }\n if (b.type === 'action') {\n return -1;\n }\n return 0;\n });\n const groupedItems = filteredItems.reduce(\n (acc, item) => {\n const category = item.category || i18n('all-panel.menu.category.allOther');\n if (!acc[category]) {\n acc[category] = [];\n }\n acc[category].push(item);\n return acc;\n },\n {} as {[key: string]: MenuItem[]},\n );\n return groupedItems;\n }, [items]);\n\n return allPagesMenuItems;\n};\n","import React, {ReactNode, useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport {Gear} from '@gravity-ui/icons';\nimport {Button, Flex, Icon, List, ListItemData, Text, Tooltip} from '@gravity-ui/uikit';\n\nimport {useAsideHeaderInnerContext} from '../AsideHeader/AsideHeaderContext';\nimport {MenuItem} from '../types';\nimport {block} from '../utils/cn';\n\nimport {AllPagesListItem} from './AllPagesListItem';\nimport {ALL_PAGES_ID} from './constants';\nimport i18n from './i18n';\nimport {useGroupedMenuItems} from './useGroupedMenuItems';\n\nimport './AllPagesPanel.scss';\n\nconst b = block('all-pages-panel');\n\ninterface AllPagesPanelProps {\n className?: string;\n startEditIcon?: React.ReactNode;\n onEditModeChanged?: (isEditMode: boolean) => void;\n}\n\nexport const AllPagesPanel: React.FC<AllPagesPanelProps> = (props) => {\n const {startEditIcon, onEditModeChanged, className} = props;\n const {menuItems, defaultMenuItems, onMenuItemsChanged, editMenuProps} =\n useAsideHeaderInnerContext();\n\n const menuItemsRef = useRef(menuItems);\n menuItemsRef.current = menuItems;\n\n const [isEditMode, setIsEditMode] = useState(false);\n\n const [draggingItemTitle, setDraggingItemTitle] = useState<ReactNode | null>(null);\n\n const toggleEditMode = useCallback(() => {\n setIsEditMode((prev) => !prev);\n }, []);\n\n const groupedItems = useGroupedMenuItems(menuItems);\n\n useEffect(() => {\n onEditModeChanged?.(isEditMode);\n\n if (isEditMode) {\n editMenuProps?.onOpenEditMode?.();\n }\n }, [isEditMode, onEditModeChanged, editMenuProps]);\n\n const onItemClick = useCallback((item: ListItemData<MenuItem>) => {\n //@ts-ignore TODO fix when @gravity-ui/uikit/List will provide event arg on item click\n item.onItemClick?.(item, false);\n }, []);\n\n const togglePageVisibility = useCallback(\n (item: MenuItem) => {\n if (!onMenuItemsChanged) {\n return;\n }\n const changedItem: MenuItem = {...item, hidden: !item.hidden};\n\n const originItems = menuItemsRef.current.filter(\n (menuItem) => menuItem.id !== ALL_PAGES_ID,\n );\n editMenuProps?.onToggleMenuItem?.(changedItem);\n onMenuItemsChanged(\n originItems.map((menuItem) => {\n if (menuItem.id !== changedItem.id) {\n return menuItem;\n }\n return changedItem;\n }),\n );\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const onDragEnd = useCallback(() => {\n setDraggingItemTitle(null);\n }, [setDraggingItemTitle]);\n\n const itemRender = useCallback(\n (item: ListItemData<MenuItem>, _isActive: boolean, _itemIndex: number) => {\n const onDragStart = () => {\n setDraggingItemTitle(item.title);\n };\n\n return (\n <AllPagesListItem\n item={item}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n editMode={isEditMode}\n onToggle={() => togglePageVisibility(item)}\n enableSorting={editMenuProps?.enableSorting}\n />\n );\n },\n [isEditMode, togglePageVisibility, onDragEnd, setDraggingItemTitle, editMenuProps],\n );\n\n const onResetToDefaultClick = useCallback(() => {\n if (!onMenuItemsChanged) {\n return;\n }\n editMenuProps?.onResetSettingsToDefault?.();\n const originItems = defaultMenuItems?.filter((item) => item.id !== ALL_PAGES_ID);\n\n if (originItems) {\n onMenuItemsChanged(originItems);\n }\n }, [onMenuItemsChanged, editMenuProps, defaultMenuItems]);\n\n const changeItemsOrder = useCallback(\n ({oldIndex, newIndex}: {oldIndex: number; newIndex: number}) => {\n const newItems = menuItemsRef.current.filter((item) => item.id !== ALL_PAGES_ID);\n\n const element = newItems.splice(oldIndex, 1)[0];\n newItems.splice(newIndex, 0, element);\n\n onMenuItemsChanged?.(newItems.filter((item) => item.type !== 'divider'));\n\n setDraggingItemTitle(null);\n editMenuProps?.onChangeItemsOrder?.(element, oldIndex, newIndex);\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const sortableItems = useMemo(() => {\n return menuItemsRef.current.filter(\n (item) => item.id !== ALL_PAGES_ID && !item.afterMoreButton && item.type !== 'divider',\n );\n }, [menuItems]);\n\n return (\n <Flex className={b(null, className)} gap=\"5\" direction=\"column\">\n <Flex gap=\"4\" alignItems=\"center\" justifyContent=\"space-between\">\n <Text variant=\"subheader-2\">\n {isEditMode ? i18n('all-panel.title.editing') : i18n('all-panel.title.main')}\n </Text>\n <Tooltip content={i18n('all-panel.title.editing')}>\n <Button selected={isEditMode} view=\"normal\" onClick={toggleEditMode}>\n {startEditIcon ? startEditIcon : <Icon data={Gear} />}\n </Button>\n </Tooltip>\n </Flex>\n <Flex className={b('content')} gap=\"5\" direction=\"column\">\n {isEditMode && editMenuProps?.enableSorting ? (\n <div>\n <List\n itemClassName={b('item', {editMode: true})}\n itemHeight={40}\n onSortEnd={changeItemsOrder}\n sortable\n virtualized={false}\n filterable={false}\n items={sortableItems}\n onItemClick={onItemClick}\n renderItem={itemRender}\n />\n\n {draggingItemTitle && (\n <div className={b('drag-placeholder')}>{draggingItemTitle}</div>\n )}\n </div>\n ) : (\n Object.keys(groupedItems).map((category) => {\n return (\n <Flex key={category} direction=\"column\" gap=\"3\">\n <Text className={b('category')} variant=\"body-1\" color=\"secondary\">\n {category}\n </Text>\n <List\n virtualized={false}\n filterable={false}\n items={groupedItems[category]}\n onItemClick={onItemClick}\n renderItem={itemRender}\n />\n </Flex>\n );\n })\n )}\n </Flex>\n {isEditMode && (\n <Button onClick={onResetToDefaultClick}>{i18n('all-panel.resetToDefault')}</Button>\n )}\n </Flex>\n );\n};\n","import {useMemo} from 'react';\n\nimport {useAsideHeaderInnerContext} from '../AsideHeader/AsideHeaderContext';\nimport {MenuItem} from '../types';\n\nexport const useVisibleMenuItems = (): MenuItem[] => {\n const {menuItems, allPagesIsAvailable} = useAsideHeaderInnerContext();\n return useMemo(() => {\n if (!allPagesIsAvailable) {\n return menuItems;\n }\n let lastVisibleIndex = 0;\n return menuItems.filter((item: MenuItem, index: number, items: MenuItem[]): boolean => {\n if (item.hidden) {\n return false;\n }\n\n if (\n index > 0 &&\n item.type === 'divider' &&\n (items[lastVisibleIndex].type === 'divider' || items[lastVisibleIndex].hidden)\n ) {\n return false;\n }\n lastVisibleIndex = index;\n return true;\n });\n }, [allPagesIsAvailable, menuItems]);\n};\n","import { Component, createElement } from 'react';\n\n/**\n * Detect Element Resize.\n * https://github.com/sdecima/javascript-detect-element-resize\n * Sebastian Decima\n *\n * Forked from version 0.5.3; includes the following modifications:\n * 1) Guard against unsafe 'window' and 'document' references (to support SSR).\n * 2) Defer initialization code via a top-level function wrapper (to support SSR).\n * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.\n * 4) Add nonce for style element.\n * 5) Use 'export' statement over 'module.exports' assignment\n **/\n\n// Check `document` and `window` in case of server-side rendering\nlet windowObject;\nif (typeof window !== \"undefined\") {\n windowObject = window;\n\n // eslint-disable-next-line no-restricted-globals\n} else if (typeof self !== \"undefined\") {\n // eslint-disable-next-line no-restricted-globals\n windowObject = self;\n} else {\n windowObject = global;\n}\nlet cancelFrame = null;\nlet requestFrame = null;\nconst TIMEOUT_DURATION = 20;\nconst clearTimeoutFn = windowObject.clearTimeout;\nconst setTimeoutFn = windowObject.setTimeout;\nconst cancelAnimationFrameFn = windowObject.cancelAnimationFrame || windowObject.mozCancelAnimationFrame || windowObject.webkitCancelAnimationFrame;\nconst requestAnimationFrameFn = windowObject.requestAnimationFrame || windowObject.mozRequestAnimationFrame || windowObject.webkitRequestAnimationFrame;\nif (cancelAnimationFrameFn == null || requestAnimationFrameFn == null) {\n // For environments that don't support animation frame,\n // fallback to a setTimeout based approach.\n cancelFrame = clearTimeoutFn;\n requestFrame = function requestAnimationFrameViaSetTimeout(callback) {\n return setTimeoutFn(callback, TIMEOUT_DURATION);\n };\n} else {\n // Counter intuitively, environments that support animation frames can be trickier.\n // Chrome's \"Throttle non-visible cross-origin iframes\" flag can prevent rAFs from being called.\n // In this case, we should fallback to a setTimeout() implementation.\n cancelFrame = function cancelFrame([animationFrameID, timeoutID]) {\n cancelAnimationFrameFn(animationFrameID);\n clearTimeoutFn(timeoutID);\n };\n requestFrame = function requestAnimationFrameWithSetTimeoutFallback(callback) {\n const animationFrameID = requestAnimationFrameFn(function animationFrameCallback() {\n clearTimeoutFn(timeoutID);\n callback();\n });\n const timeoutID = setTimeoutFn(function timeoutCallback() {\n cancelAnimationFrameFn(animationFrameID);\n callback();\n }, TIMEOUT_DURATION);\n return [animationFrameID, timeoutID];\n };\n}\nfunction createDetectElementResize(nonce) {\n let animationKeyframes;\n let animationName;\n let animationStartEvent;\n let animationStyle;\n let checkTriggers;\n let resetTriggers;\n let scrollListener;\n const attachEvent = typeof document !== \"undefined\" && document.attachEvent;\n if (!attachEvent) {\n resetTriggers = function (element) {\n const triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + \"px\";\n expandChild.style.height = expand.offsetHeight + 1 + \"px\";\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n checkTriggers = function (element) {\n return element.offsetWidth !== element.__resizeLast__.width || element.offsetHeight !== element.__resizeLast__.height;\n };\n scrollListener = function (e) {\n // Don't measure (which forces) reflow for scrolls that happen inside of children!\n if (e.target.className && typeof e.target.className.indexOf === \"function\" && e.target.className.indexOf(\"contract-trigger\") < 0 && e.target.className.indexOf(\"expand-trigger\") < 0) {\n return;\n }\n const element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) {\n cancelFrame(this.__resizeRAF__);\n }\n this.__resizeRAF__ = requestFrame(function animationFrame() {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function forEachResizeListener(fn) {\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n let animation = false;\n let keyframeprefix = \"\";\n animationStartEvent = \"animationstart\";\n const domPrefixes = \"Webkit Moz O ms\".split(\" \");\n let startEvents = \"webkitAnimationStart animationstart oAnimationStart MSAnimationStart\".split(\" \");\n let pfx = \"\";\n {\n const elm = document.createElement(\"fakeelement\");\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n if (animation === false) {\n for (let i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + \"AnimationName\"] !== undefined) {\n pfx = domPrefixes[i];\n keyframeprefix = \"-\" + pfx.toLowerCase() + \"-\";\n animationStartEvent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n animationName = \"resizeanim\";\n animationKeyframes = \"@\" + keyframeprefix + \"keyframes \" + animationName + \" { from { opacity: 0; } to { opacity: 0; } } \";\n animationStyle = keyframeprefix + \"animation: 1ms \" + animationName + \"; \";\n }\n const createStyles = function (doc) {\n if (!doc.getElementById(\"detectElementResize\")) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n const css = (animationKeyframes ? animationKeyframes : \"\") + \".resize-triggers { \" + (animationStyle ? animationStyle : \"\") + \"visibility: hidden; opacity: 0; } \" + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = doc.head || doc.getElementsByTagName(\"head\")[0],\n style = doc.createElement(\"style\");\n style.id = \"detectElementResize\";\n style.type = \"text/css\";\n if (nonce != null) {\n style.setAttribute(\"nonce\", nonce);\n }\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(doc.createTextNode(css));\n }\n head.appendChild(style);\n }\n };\n const addResizeListener = function (element, fn) {\n if (attachEvent) {\n element.attachEvent(\"onresize\", fn);\n } else {\n if (!element.__resizeTriggers__) {\n const doc = element.ownerDocument;\n const elementStyle = windowObject.getComputedStyle(element);\n if (elementStyle && elementStyle.position === \"static\") {\n element.style.position = \"relative\";\n }\n createStyles(doc);\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = doc.createElement(\"div\")).className = \"resize-triggers\";\n const expandTrigger = doc.createElement(\"div\");\n expandTrigger.className = \"expand-trigger\";\n expandTrigger.appendChild(doc.createElement(\"div\"));\n const contractTrigger = doc.createElement(\"div\");\n contractTrigger.className = \"contract-trigger\";\n element.__resizeTriggers__.appendChild(expandTrigger);\n element.__resizeTriggers__.appendChild(contractTrigger);\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener(\"scroll\", scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n if (animationStartEvent) {\n element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n if (e.animationName === animationName) {\n resetTriggers(element);\n }\n };\n element.__resizeTriggers__.addEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);\n }\n }\n element.__resizeListeners__.push(fn);\n }\n };\n const removeResizeListener = function (element, fn) {\n if (attachEvent) {\n element.detachEvent(\"onresize\", fn);\n } else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener(\"scroll\", scrollListener, true);\n if (element.__resizeTriggers__.__animationListener__) {\n element.__resizeTriggers__.removeEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__);\n element.__resizeTriggers__.__animationListener__ = null;\n }\n try {\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n } catch (e) {\n // Preact compat; see developit/preact-compat/issues/228\n }\n }\n }\n };\n return {\n addResizeListener,\n removeResizeListener\n };\n}\n\nclass AutoSizer extends Component {\n constructor(...args) {\n super(...args);\n this.state = {\n height: this.props.defaultHeight || 0,\n scaledHeight: this.props.defaultHeight || 0,\n scaledWidth: this.props.defaultWidth || 0,\n width: this.props.defaultWidth || 0\n };\n this._autoSizer = null;\n this._detectElementResize = null;\n this._parentNode = null;\n this._resizeObserver = null;\n this._timeoutId = null;\n this._onResize = () => {\n this._timeoutId = null;\n const {\n disableHeight,\n disableWidth,\n onResize\n } = this.props;\n if (this._parentNode) {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n\n const style = window.getComputedStyle(this._parentNode) || {};\n const paddingLeft = parseFloat(style.paddingLeft || \"0\");\n const paddingRight = parseFloat(style.paddingRight || \"0\");\n const paddingTop = parseFloat(style.paddingTop || \"0\");\n const paddingBottom = parseFloat(style.paddingBottom || \"0\");\n const rect = this._parentNode.getBoundingClientRect();\n const scaledHeight = rect.height - paddingTop - paddingBottom;\n const scaledWidth = rect.width - paddingLeft - paddingRight;\n const height = this._parentNode.offsetHeight - paddingTop - paddingBottom;\n const width = this._parentNode.offsetWidth - paddingLeft - paddingRight;\n if (!disableHeight && (this.state.height !== height || this.state.scaledHeight !== scaledHeight) || !disableWidth && (this.state.width !== width || this.state.scaledWidth !== scaledWidth)) {\n this.setState({\n height,\n width,\n scaledHeight,\n scaledWidth\n });\n if (typeof onResize === \"function\") {\n onResize({\n height,\n scaledHeight,\n scaledWidth,\n width\n });\n }\n }\n }\n };\n this._setRef = autoSizer => {\n this._autoSizer = autoSizer;\n };\n }\n componentDidMount() {\n const {\n nonce\n } = this.props;\n const parentNode = this._autoSizer ? this._autoSizer.parentNode : null;\n if (parentNode != null && parentNode.ownerDocument && parentNode.ownerDocument.defaultView && parentNode instanceof parentNode.ownerDocument.defaultView.HTMLElement) {\n // Delay access of parentNode until mount.\n // This handles edge-cases where the component has already been unmounted before its ref has been set,\n // As well as libraries like react-lite which have a slightly different lifecycle.\n this._parentNode = parentNode;\n\n // Use ResizeObserver from the same context where parentNode (which we will observe) was defined\n // Using just global can result into onResize events not being emitted in cases with multiple realms\n const ResizeObserverInstance = parentNode.ownerDocument.defaultView.ResizeObserver;\n if (ResizeObserverInstance != null) {\n this._resizeObserver = new ResizeObserverInstance(() => {\n // Guard against \"ResizeObserver loop limit exceeded\" error;\n // could be triggered if the state update causes the ResizeObserver handler to run long.\n // See https://github.com/bvaughn/react-virtualized-auto-sizer/issues/55\n this._timeoutId = setTimeout(this._onResize, 0);\n });\n this._resizeObserver.observe(parentNode);\n } else {\n // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n this._detectElementResize = createDetectElementResize(nonce);\n this._detectElementResize.addResizeListener(parentNode, this._onResize);\n }\n this._onResize();\n }\n }\n componentWillUnmount() {\n if (this._parentNode) {\n if (this._detectElementResize) {\n this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n }\n if (this._timeoutId !== null) {\n clearTimeout(this._timeoutId);\n }\n if (this._resizeObserver) {\n this._resizeObserver.disconnect();\n }\n }\n }\n render() {\n const {\n children,\n defaultHeight,\n defaultWidth,\n disableHeight = false,\n disableWidth = false,\n doNotBailOutOnEmptyChildren = false,\n nonce,\n onResize,\n style = {},\n tagName = \"div\",\n ...rest\n } = this.props;\n const {\n height,\n scaledHeight,\n scaledWidth,\n width\n } = this.state;\n\n // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n const outerStyle = {\n overflow: \"visible\"\n };\n const childParams = {};\n\n // Avoid rendering children before the initial measurements have been collected.\n // At best this would just be wasting cycles.\n let bailoutOnChildren = false;\n if (!disableHeight) {\n if (height === 0) {\n bailoutOnChildren = true;\n }\n outerStyle.height = 0;\n childParams.height = height;\n childParams.scaledHeight = scaledHeight;\n }\n if (!disableWidth) {\n if (width === 0) {\n bailoutOnChildren = true;\n }\n outerStyle.width = 0;\n childParams.width = width;\n childParams.scaledWidth = scaledWidth;\n }\n if (doNotBailOutOnEmptyChildren) {\n bailoutOnChildren = false;\n }\n return createElement(tagName, {\n ref: this._setRef,\n style: {\n ...outerStyle,\n ...style\n },\n ...rest\n }, !bailoutOnChildren && children(childParams));\n }\n}\n\nfunction isHeightAndWidthProps(props) {\n return props && props.disableHeight !== true && props.disableWidth !== true;\n}\nfunction isHeightOnlyProps(props) {\n return props && props.disableHeight !== true && props.disableWidth === true;\n}\nfunction isWidthOnlyProps(props) {\n return props && props.disableHeight === true && props.disableWidth !== true;\n}\n\nexport { AutoSizer as default, isHeightAndWidthProps, isHeightOnlyProps, isWidthOnlyProps };\n","import React from 'react';\n\ninterface MultipleTooltipContextProps {\n active: boolean;\n activeIndex: number | undefined;\n hideCollapseItemTooltip: boolean;\n lastClickedItemIndex: number | undefined;\n setValue<K extends keyof Omit<MultipleTooltipContextProps, 'setValue'>>(\n value:\n | Pick<Omit<MultipleTooltipContextProps, 'setValue'>, K>\n | Omit<MultipleTooltipContextProps, 'setValue'>,\n ): void;\n}\n\nconst multipleTooltipContextDefaults = {\n active: false,\n activeIndex: undefined,\n hideCollapseItemTooltip: false,\n lastClickedItemIndex: undefined,\n setValue: () => {},\n};\n\nexport const MultipleTooltipContext = React.createContext<MultipleTooltipContextProps>(\n multipleTooltipContextDefaults,\n);\n\ntype MultipleTooltipProviderState = Omit<MultipleTooltipContextProps, 'setValue'>;\n\nexport class MultipleTooltipProvider extends React.PureComponent<\n {children: React.ReactNode},\n MultipleTooltipProviderState\n> {\n state = {\n ...multipleTooltipContextDefaults,\n };\n\n setValue: MultipleTooltipContextProps['setValue'] = (value) => {\n this.setState({...value});\n };\n\n render() {\n const {children} = this.props;\n\n return (\n <MultipleTooltipContext.Provider value={{...this.state, setValue: this.setValue}}>\n {children}\n </MultipleTooltipContext.Provider>\n );\n }\n}\n","import React from 'react';\n\nimport {Popup, PopupProps} from '@gravity-ui/uikit';\n\nimport {MenuItem} from '../../types';\nimport {block} from '../../utils/cn';\nimport {COLLAPSE_ITEM_ID} from '../constants';\n\nimport {MultipleTooltipContext} from './MultipleTooltipContext';\n\nimport './MultipleTooltip.scss';\n\nconst b = block('multiple-tooltip');\n\nconst POPUP_OFFSET: PopupProps['offset'] = [-32, 4];\nconst POPUP_MODIFIERS: PopupProps['modifiers'] = [\n {\n name: 'preventOverflow',\n enabled: false,\n },\n];\n\nexport type MultipleTooltipProps = Pick<PopupProps, 'open' | 'anchorRef' | 'placement'> & {\n items: MenuItem[];\n};\n\nexport const MultipleTooltip: React.FC<MultipleTooltipProps> = ({\n items,\n open,\n anchorRef,\n placement,\n}) => {\n const {activeIndex, hideCollapseItemTooltip} = React.useContext(MultipleTooltipContext);\n const activeItem = activeIndex === undefined ? null : items[activeIndex];\n\n return (\n <Popup\n open={open}\n anchorRef={anchorRef}\n placement={placement}\n offset={POPUP_OFFSET}\n contentClassName={b(null)}\n modifiers={POPUP_MODIFIERS}\n disableLayer\n >\n <div className={b('items-container')}>\n {items\n .filter(\n ({type = 'regular', id}) =>\n !hideCollapseItemTooltip ||\n (id !== COLLAPSE_ITEM_ID && type !== 'action'),\n )\n .map((item, idx) => {\n switch (item.type) {\n case 'divider':\n return (\n <div className={b('item', {divider: true})} key={idx}>\n {item.title}\n </div>\n );\n default:\n return (\n <div\n className={b('item', {\n active: item === activeItem,\n })}\n key={idx}\n >\n {item.title}\n </div>\n );\n }\n })}\n </div>\n </Popup>\n );\n};\n","import React, {FC, ReactNode, useCallback, useContext, useRef} from 'react';\n\nimport {List} from '@gravity-ui/uikit';\nimport AutoSizer, {Size} from 'react-virtualized-auto-sizer';\n\nimport {useAsideHeaderContext} from '../AsideHeader/AsideHeaderContext';\nimport {ASIDE_HEADER_COMPACT_WIDTH} from '../constants';\nimport {MenuItem, SubheaderMenuItem} from '../types';\nimport {block} from '../utils/cn';\n\nimport {Item, ItemProps} from './Item/Item';\nimport {MultipleTooltip, MultipleTooltipContext, MultipleTooltipProvider} from './MultipleTooltip';\nimport {COLLAPSE_ITEM_ID} from './constants';\nimport {\n getAutosizeListItems,\n getItemHeight,\n getItemsHeight,\n getItemsMinHeight,\n getMoreButtonItem,\n getSelectedItemIndex,\n isMenuItem,\n} from './utils';\n\nimport './CompositeBar.scss';\n\nconst b = block('composite-bar');\n\nexport type CompositeBarItem = MenuItem | SubheaderMenuItem;\n\ntype CompositeBarItems =\n | {type: 'menu'; items: MenuItem[]}\n | {type: 'subheader'; items: SubheaderMenuItem[]};\n\nexport type CompositeBarProps = CompositeBarItems & {\n onItemClick?: (\n item: MenuItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => void;\n multipleTooltip?: boolean;\n menuMoreTitle?: string;\n onMoreClick?: () => void;\n};\n\ntype CompositeBarViewProps = CompositeBarProps & {\n collapseItems?: MenuItem[];\n};\n\nconst CompositeBarView: FC<CompositeBarViewProps> = ({\n type,\n items,\n onItemClick,\n onMoreClick,\n collapseItems,\n multipleTooltip = false,\n}) => {\n const ref = useRef<List<CompositeBarItem>>(null);\n const tooltipRef = useRef<HTMLDivElement>(null);\n\n const {\n setValue: setMultipleTooltipContextValue,\n active: multipleTooltipActive,\n activeIndex,\n lastClickedItemIndex,\n } = useContext(MultipleTooltipContext);\n const {compact} = useAsideHeaderContext();\n\n React.useEffect(() => {\n function handleBlurWindow() {\n if (multipleTooltip && multipleTooltipActive) {\n setMultipleTooltipContextValue({active: false});\n }\n }\n\n window.addEventListener('blur', handleBlurWindow);\n\n return () => {\n window.removeEventListener('blur', handleBlurWindow);\n };\n }, [multipleTooltip, multipleTooltipActive, setMultipleTooltipContextValue]);\n\n const onTooltipMouseEnter = useCallback(\n (e: {clientX: number}) => {\n if (\n multipleTooltip &&\n compact &&\n !multipleTooltipActive &&\n document.hasFocus() &&\n activeIndex !== lastClickedItemIndex &&\n e.clientX <= ASIDE_HEADER_COMPACT_WIDTH\n ) {\n setMultipleTooltipContextValue?.({\n active: true,\n });\n }\n },\n [\n multipleTooltip,\n compact,\n multipleTooltipActive,\n activeIndex,\n lastClickedItemIndex,\n setMultipleTooltipContextValue,\n ],\n );\n\n const onTooltipMouseLeave = useCallback(() => {\n if (multipleTooltip && multipleTooltipActive && document.hasFocus()) {\n setMultipleTooltipContextValue?.({\n active: false,\n lastClickedItemIndex: undefined,\n });\n }\n }, [multipleTooltip, multipleTooltipActive, setMultipleTooltipContextValue]);\n\n const onMouseEnterByIndex = useCallback(\n (itemIndex: number) => () => {\n if (multipleTooltip && document.hasFocus()) {\n let multipleTooltipActiveValue = multipleTooltipActive;\n if (!multipleTooltipActive && itemIndex !== lastClickedItemIndex) {\n multipleTooltipActiveValue = true;\n }\n if (\n activeIndex === itemIndex &&\n multipleTooltipActive === multipleTooltipActiveValue\n ) {\n return;\n }\n setMultipleTooltipContextValue({\n activeIndex: itemIndex,\n active: multipleTooltipActiveValue,\n });\n }\n },\n [\n multipleTooltip,\n multipleTooltipActive,\n lastClickedItemIndex,\n activeIndex,\n setMultipleTooltipContextValue,\n ],\n );\n\n const onMouseLeave = useCallback(() => {\n if (compact && document.hasFocus()) {\n ref.current?.activateItem(undefined as unknown as number);\n if (\n multipleTooltip &&\n (activeIndex !== undefined || lastClickedItemIndex !== undefined)\n ) {\n setMultipleTooltipContextValue({\n activeIndex: undefined,\n lastClickedItemIndex: undefined,\n });\n }\n }\n }, [\n activeIndex,\n compact,\n lastClickedItemIndex,\n multipleTooltip,\n setMultipleTooltipContextValue,\n ]);\n\n const onItemClickByIndex = useCallback(\n (itemIndex: number): ItemProps['onItemClick'] =>\n (item, collapsed, event) => {\n if (\n compact &&\n multipleTooltip &&\n itemIndex !== lastClickedItemIndex &&\n item.id !== COLLAPSE_ITEM_ID\n ) {\n setMultipleTooltipContextValue({\n lastClickedItemIndex: itemIndex,\n active: false,\n });\n }\n onItemClick?.(item, collapsed, event);\n },\n [\n compact,\n lastClickedItemIndex,\n multipleTooltip,\n onItemClick,\n setMultipleTooltipContextValue,\n ],\n );\n\n return (\n <React.Fragment>\n <div\n ref={tooltipRef}\n onMouseEnter={onTooltipMouseEnter}\n onMouseLeave={onTooltipMouseLeave}\n >\n <List<CompositeBarItem>\n ref={ref}\n items={items}\n selectedItemIndex={type === 'menu' ? getSelectedItemIndex(items) : undefined}\n itemHeight={getItemHeight}\n itemsHeight={getItemsHeight}\n itemClassName={b('root-menu-item')}\n virtualized={false}\n filterable={false}\n sortable={false}\n renderItem={(item, _isItemActive, itemIndex) => {\n const itemExtraProps = isMenuItem(item) ? {item} : item;\n const enableTooltip = isMenuItem(item)\n ? !multipleTooltip\n : item.enableTooltip;\n\n return (\n <Item\n {...itemExtraProps}\n enableTooltip={enableTooltip}\n onMouseEnter={onMouseEnterByIndex(itemIndex)}\n onMouseLeave={onMouseLeave}\n onItemClick={onItemClickByIndex(itemIndex)}\n onCollapseItemClick={onMoreClick}\n collapseItems={collapseItems}\n />\n );\n }}\n />\n </div>\n {type === 'menu' && multipleTooltip && (\n <MultipleTooltip\n open={compact && multipleTooltipActive}\n anchorRef={tooltipRef}\n placement={['right-start']}\n items={items}\n />\n )}\n </React.Fragment>\n );\n};\n\nexport const CompositeBar: FC<CompositeBarProps> = ({\n type,\n items,\n menuMoreTitle,\n onItemClick,\n onMoreClick,\n multipleTooltip = false,\n}) => {\n if (items.length === 0) {\n return null;\n }\n let node: ReactNode;\n\n if (type === 'menu') {\n const minHeight = getItemsMinHeight(items);\n const collapseItem = getMoreButtonItem(menuMoreTitle);\n node = (\n <div className={b({autosizer: true})} style={{minHeight}}>\n {items.length !== 0 && (\n <AutoSizer>\n {(size: Size) => {\n const width = Number.isNaN(size.width) ? 0 : size.width;\n const height = Number.isNaN(size.height) ? 0 : size.height;\n\n const {listItems, collapseItems} = getAutosizeListItems(\n items,\n height,\n collapseItem,\n );\n return (\n <div style={{width, height}}>\n <CompositeBarView\n type=\"menu\"\n items={listItems}\n onItemClick={onItemClick}\n onMoreClick={onMoreClick}\n collapseItems={collapseItems}\n multipleTooltip={multipleTooltip}\n />\n </div>\n );\n }}\n </AutoSizer>\n )}\n </div>\n );\n } else {\n node = (\n <div className={b({subheader: true})}>\n <CompositeBarView type=\"subheader\" items={items} onItemClick={onItemClick} />\n </div>\n );\n }\n return <MultipleTooltipProvider>{node}</MultipleTooltipProvider>;\n};\n","import {addComponentKeysets} from '@gravity-ui/uikit/i18n';\n\nimport {NAMESPACE} from '../../utils/cn';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nconst COMPONENT = 'AsideHeader';\nexport default addComponentKeysets({en, ru}, `${NAMESPACE}${COMPONENT}`);\n","<svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\"><path 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\"/></svg>\n","import React, {useCallback} from 'react';\n\nimport {Icon} from '@gravity-ui/uikit';\n\nimport {block} from '../../../utils/cn';\nimport {useAsideHeaderInnerContext} from '../../AsideHeaderContext';\nimport i18n from '../../i18n';\n\nimport controlMenuButtonIcon from '../../../../../assets/icons/control-menu-button.svg';\n\nimport './CollapseButton.scss';\n\nconst b = block('collapse-button');\n\nexport interface CollapseButtonProps {\n className?: string;\n}\n\nexport const CollapseButton = ({className}: CollapseButtonProps) => {\n const {onChangeCompact, compact, expandTitle, collapseTitle} = useAsideHeaderInnerContext();\n\n const onCollapseButtonClick = useCallback(() => {\n onChangeCompact?.(!compact);\n }, [compact, onChangeCompact]);\n\n const buttonTitle = compact\n ? expandTitle || i18n('button_expand')\n : collapseTitle || i18n('button_collapse');\n return (\n <button\n className={b({compact}, className)}\n onClick={onCollapseButtonClick}\n title={buttonTitle}\n >\n <Icon data={controlMenuButtonIcon} className={b('icon')} width=\"16\" height=\"10\" />\n </button>\n );\n};\n","import React from 'react';\n\nimport {Button, Icon} from '@gravity-ui/uikit';\n\nimport {LogoProps} from '../types';\nimport {block} from '../utils/cn';\n\nimport './Logo.scss';\n\nconst b = block('logo');\n\nexport const Logo: React.FC<\n LogoProps & {compact?: boolean; buttonClassName?: string; buttonWrapperClassName?: string}\n> = ({\n text,\n icon,\n iconSrc,\n iconClassName,\n iconSize = 24,\n textSize = 15,\n href,\n target = '_self',\n wrapper,\n onClick,\n compact,\n className,\n buttonWrapperClassName,\n buttonClassName,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n}) => {\n const hasWrapper = typeof wrapper === 'function';\n\n let buttonIcon;\n\n if (iconSrc) {\n buttonIcon = (\n <Button.Icon className={iconClassName}>\n <img alt=\"logo icon\" src={iconSrc} width={iconSize} height={iconSize} />\n </Button.Icon>\n );\n } else if (icon) {\n buttonIcon = <Icon data={icon} size={iconSize} className={iconClassName} />;\n }\n\n const button = (\n <Button\n view=\"flat\"\n size=\"l\"\n className={b('btn-logo', buttonClassName)}\n component={hasWrapper ? 'span' : undefined}\n onClick={onClick}\n target={target}\n rel={target === '_self' ? undefined : 'noreferrer'}\n href={href}\n extraProps={{\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n }}\n >\n {buttonIcon}\n </Button>\n );\n\n let logo: React.ReactNode;\n\n if (typeof text === 'function') {\n logo = text();\n } else {\n logo = (\n <div className={b('logo')} style={{fontSize: textSize}}>\n {text}\n </div>\n );\n }\n\n return (\n <div className={b(null, className)}>\n <div className={b('logo-btn-place', buttonWrapperClassName)}>\n {hasWrapper ? wrapper(button, Boolean(compact)) : button}\n </div>\n {!compact &&\n (hasWrapper ? (\n <div onClick={onClick}>{wrapper(logo, Boolean(compact))}</div>\n ) : (\n <a\n href={href ?? '/'}\n target={target}\n rel={target === '_self' ? undefined : 'noreferrer'}\n className={b('logo-link')}\n onClick={onClick}\n >\n {logo}\n </a>\n ))}\n </div>\n );\n};\n","import React, {useCallback} from 'react';\n\nimport {Icon} from '@gravity-ui/uikit';\n\nimport {CompositeBar} from '../../CompositeBar/CompositeBar';\nimport {Logo} from '../../Logo';\nimport {ASIDE_HEADER_COMPACT_WIDTH, HEADER_DIVIDER_HEIGHT} from '../../constants';\nimport {SubheaderMenuItem} from '../../types';\nimport {useAsideHeaderContext, useAsideHeaderInnerContext} from '../AsideHeaderContext';\nimport {b} from '../utils';\n\nimport headerDividerCollapsedIcon from '../../../../assets/icons/divider-collapsed.svg';\n\nconst DEFAULT_SUBHEADER_ITEMS: SubheaderMenuItem[] = [];\n\nexport const Header = () => {\n const {logo, onItemClick, onClosePanel, headerDecoration, subheaderItems} =\n useAsideHeaderInnerContext();\n const {compact} = useAsideHeaderContext();\n\n const onLogoClick = useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n onClosePanel?.();\n logo?.onClick?.(event);\n },\n [onClosePanel, logo],\n );\n\n return (\n <div className={b('header', {['with-decoration']: headerDecoration})}>\n {logo && (\n <Logo\n {...logo}\n onClick={onLogoClick}\n compact={compact}\n buttonWrapperClassName={b('logo-button-wrapper')}\n buttonClassName={b('logo-button')}\n />\n )}\n\n <CompositeBar\n type=\"subheader\"\n items={subheaderItems || DEFAULT_SUBHEADER_ITEMS}\n onItemClick={onItemClick}\n />\n\n {headerDecoration && (\n <Icon\n data={headerDividerCollapsedIcon}\n className={b('header-divider')}\n width={ASIDE_HEADER_COMPACT_WIDTH}\n height={HEADER_DIVIDER_HEIGHT}\n />\n )}\n </div>\n );\n};\n","import React from 'react';\n\nimport {Drawer, DrawerItem} from '../../Drawer/Drawer';\nimport {useAsideHeaderInnerContext} from '../AsideHeaderContext';\nimport {b} from '../utils';\n\nexport const Panels = () => {\n const {panelItems, onClosePanel, size} = useAsideHeaderInnerContext();\n\n return panelItems ? (\n <Drawer\n className={b('panels')}\n onVeilClick={onClosePanel}\n onEscape={onClosePanel}\n style={{left: size}}\n >\n {panelItems.map((item) => (\n <DrawerItem key={item.id} {...item} />\n ))}\n </Drawer>\n ) : null;\n};\n","import React, {useRef} from 'react';\n\nimport {setRef} from '@gravity-ui/uikit';\n\nimport {useVisibleMenuItems} from '../../AllPagesPanel';\nimport {CompositeBar} from '../../CompositeBar/CompositeBar';\nimport {useAsideHeaderInnerContext} from '../AsideHeaderContext';\nimport i18n from '../i18n';\nimport {b} from '../utils';\n\nimport {CollapseButton} from './CollapseButton/CollapseButton';\nimport {Header} from './Header';\nimport {Panels} from './Panels';\n\nexport const FirstPanel = React.forwardRef<HTMLDivElement>((_props, ref) => {\n const {\n size,\n onItemClick,\n headerDecoration,\n multipleTooltip,\n menuMoreTitle,\n onMenuMoreClick,\n renderFooter,\n compact,\n customBackground,\n customBackgroundClassName,\n className,\n hideCollapseButton,\n qa,\n } = useAsideHeaderInnerContext();\n const visibleMenuItems = useVisibleMenuItems();\n\n const asideRef = useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n setRef<HTMLDivElement>(ref, asideRef.current);\n }, [ref]);\n\n return (\n <React.Fragment>\n <div className={b('aside', className)} style={{width: size}} data-qa={qa}>\n <div className={b('aside-popup-anchor')} ref={asideRef} />\n\n <div className={b('aside-content', {['with-decoration']: headerDecoration})}>\n {customBackground && (\n <div className={b('aside-custom-background', customBackgroundClassName)}>\n {customBackground}\n </div>\n )}\n <Header />\n {visibleMenuItems?.length ? (\n <CompositeBar\n type=\"menu\"\n items={visibleMenuItems}\n menuMoreTitle={menuMoreTitle ?? i18n('label_more')}\n onItemClick={onItemClick}\n onMoreClick={onMenuMoreClick}\n multipleTooltip={multipleTooltip}\n />\n ) : (\n <div className={b('menu-items')} />\n )}\n <div className={b('footer')}>\n {renderFooter?.({\n size,\n compact: Boolean(compact),\n asideRef,\n })}\n </div>\n {!hideCollapseButton && <CollapseButton />}\n </div>\n </div>\n <Panels />\n </React.Fragment>\n );\n});\n\nFirstPanel.displayName = 'FirstPanel';\n","import {QAProps} from '@gravity-ui/uikit';\n\nimport {RenderContentType} from '../Content';\nimport {DrawerItemProps} from '../Drawer/Drawer';\nimport {\n AsideHeaderTopAlertProps,\n LogoProps,\n MenuItem,\n OpenModalSubscriber,\n SubheaderMenuItem,\n} from '../types';\n\nimport {AsideHeaderContextType} from './AsideHeaderContext';\n\nexport interface LayoutProps {\n compact: boolean;\n className?: string;\n topAlert?: AsideHeaderTopAlertProps;\n}\n\nexport interface EditMenuProps {\n onOpenEditMode?: () => void;\n onToggleMenuItem?: (changedItem: MenuItem) => void;\n onResetSettingsToDefault?: () => void;\n enableSorting?: boolean;\n onChangeItemsOrder?: (changedItem: MenuItem, oldIndex: number, newIndex: number) => void;\n}\n\nexport interface AsideHeaderGeneralProps extends QAProps {\n logo?: LogoProps;\n multipleTooltip?: boolean;\n className?: string;\n collapseTitle?: string;\n expandTitle?: string;\n menuMoreTitle?: string;\n topAlert?: AsideHeaderTopAlertProps;\n customBackground?: React.ReactNode;\n customBackgroundClassName?: string;\n hideCollapseButton?: boolean;\n renderContent?: RenderContentType;\n renderFooter?: (data: {\n size: number;\n compact: boolean;\n asideRef: React.RefObject<HTMLDivElement>;\n }) => React.ReactNode;\n editMenuProps?: EditMenuProps;\n onClosePanel?: () => void;\n onChangeCompact?: (compact: boolean) => void;\n onMenuMoreClick?: () => void;\n onAllPagesClick?: () => void;\n openModalSubscriber?: (subscriber: OpenModalSubscriber) => void;\n}\n\nexport interface AsideHeaderDefaultProps {\n panelItems?: DrawerItemProps[];\n subheaderItems?: SubheaderMenuItem[];\n menuItems?: MenuItem[];\n defaultMenuItems?: MenuItem[];\n onMenuItemsChanged?: (items: MenuItem[]) => void;\n headerDecoration?: boolean;\n}\n\nexport type AsideHeaderInnerProps = AsideHeaderGeneralProps &\n AsideHeaderDefaultProps &\n AsideHeaderContextType;\n\nexport interface AsideHeaderProps\n extends AsideHeaderGeneralProps,\n LayoutProps,\n Partial<AsideHeaderDefaultProps> {}\n\nexport enum InnerPanels {\n AllPages = 'all-pages',\n}\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {AllPagesPanel, getAllPagesMenuItem} from '../AllPagesPanel';\nimport {MenuItem} from '../types';\n\nimport {AsideHeaderInnerContextType} from './AsideHeaderContext';\nimport {AsideHeaderProps, InnerPanels} from './types';\n\nconst EMPTY_MENU_ITEMS: MenuItem[] = [];\n\nexport const useAsideHeaderInnerContextValue = (\n props: AsideHeaderProps & {size: number},\n): AsideHeaderInnerContextType => {\n const {size, onClosePanel, menuItems, panelItems, onMenuItemsChanged, onAllPagesClick} = props;\n const [innerVisiblePanel, setInnerVisiblePanel] = useState<InnerPanels | undefined>();\n const ALL_PAGES_MENU_ITEM = React.useMemo(() => {\n return getAllPagesMenuItem();\n }, []);\n\n const allPagesIsAvailable =\n Boolean(onMenuItemsChanged) && (!menuItems || menuItems?.length > 0);\n\n useEffect(() => {\n // If any user panel became visible we need to switch off all inner panels\n if (panelItems?.some((x) => x.visible)) {\n setInnerVisiblePanel(undefined);\n }\n }, [panelItems]);\n\n const innerOnClosePanel = useCallback(() => {\n setInnerVisiblePanel(undefined);\n onClosePanel?.();\n }, [onClosePanel]);\n\n const onItemClick = useCallback(\n (\n item: MenuItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (item.id === ALL_PAGES_MENU_ITEM.id) {\n onClosePanel?.();\n setInnerVisiblePanel((prev) =>\n prev === InnerPanels.AllPages ? undefined : InnerPanels.AllPages,\n );\n } else {\n innerOnClosePanel();\n }\n item.onItemClick?.(item, collapsed, event);\n },\n [innerOnClosePanel, ALL_PAGES_MENU_ITEM, onClosePanel],\n );\n\n const innerMenuItems = useMemo(\n () =>\n allPagesIsAvailable\n ? [\n ...(menuItems || EMPTY_MENU_ITEMS),\n {\n ...ALL_PAGES_MENU_ITEM,\n current: innerVisiblePanel === InnerPanels.AllPages,\n onItemClick: onAllPagesClick,\n },\n ]\n : menuItems || EMPTY_MENU_ITEMS,\n [allPagesIsAvailable, menuItems, innerVisiblePanel, ALL_PAGES_MENU_ITEM, onAllPagesClick],\n );\n\n const innerPanelItems = useMemo(() => {\n if (!allPagesIsAvailable) {\n return panelItems;\n }\n return [\n ...(panelItems || []),\n {\n id: InnerPanels.AllPages,\n content: <AllPagesPanel />,\n visible: innerVisiblePanel === InnerPanels.AllPages,\n },\n ];\n }, [allPagesIsAvailable, panelItems, innerVisiblePanel]);\n\n return {\n ...props,\n onClosePanel: innerOnClosePanel,\n allPagesIsAvailable,\n menuItems: innerMenuItems,\n panelItems: innerPanelItems,\n size,\n onItemClick,\n };\n};\n","import React from 'react';\n\nimport {FirstPanel} from '..';\nimport {AsideHeaderInnerContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {AsideHeaderProps} from '../../types';\nimport {useAsideHeaderInnerContextValue} from '../../useAsideHeaderInnerContextValue';\n\ntype Props = Omit<AsideHeaderProps, 'compact' | 'size'>;\n\nexport const PageLayoutAside = React.forwardRef<HTMLDivElement, Props>((props, ref) => {\n const {size, compact} = useAsideHeaderContext();\n\n const asideHeaderInnerContextValue = useAsideHeaderInnerContextValue({size, compact, ...props});\n\n return (\n <AsideHeaderInnerContextProvider value={asideHeaderInnerContextValue}>\n <FirstPanel ref={ref} />\n </AsideHeaderInnerContextProvider>\n );\n});\n\nPageLayoutAside.displayName = 'PageLayoutAside';\n"],"names":["b","block","useCallback","React","Icon","Button","Pin","PinFill","COMPONENT","addComponentKeysets","en","ru","NAMESPACE","i18n","Ellipsis","useMemo","useAsideHeaderInnerContext","useRef","useState","useEffect","Flex","Text","Tooltip","Gear","List","Component","createElement","Popup","COLLAPSE_ITEM_ID","useContext","useAsideHeaderContext","ASIDE_HEADER_COMPACT_WIDTH","getSelectedItemIndex","getItemHeight","getItemsHeight","isMenuItem","Item","getItemsMinHeight","getMoreButtonItem","getAutosizeListItems","headerDividerCollapsedIcon","HEADER_DIVIDER_HEIGHT","Drawer","DrawerItem","setRef","AsideHeaderInnerContextProvider"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('react');
6
- var PageLayoutAside = require('./PageLayoutAside-c30e7399.js');
6
+ var PageLayoutAside = require('./PageLayoutAside-30f2015c.js');
7
7
  require('@gravity-ui/uikit');
8
8
  require('./debounce-8772fd80.js');
9
9
  require('./utils-db3e03c2.js');
@@ -4,7 +4,10 @@ import './AllPagesListItem.scss';
4
4
  interface AllPagesListItemProps {
5
5
  item: MenuItem;
6
6
  editMode?: boolean;
7
+ enableSorting?: boolean;
7
8
  onToggle: () => void;
9
+ onDragStart?: () => void;
10
+ onDragEnd?: () => void;
8
11
  }
9
12
  export declare const AllPagesListItem: React.FC<AllPagesListItemProps>;
10
13
  export {};
@@ -3,6 +3,7 @@ import { MenuItem } from '../types';
3
3
  import { AsideHeaderInnerProps } from './types';
4
4
  export interface AsideHeaderInnerContextType extends AsideHeaderInnerProps {
5
5
  menuItems: MenuItem[];
6
+ defaultMenuItems?: MenuItem[];
6
7
  allPagesIsAvailable: boolean;
7
8
  onItemClick: (item: MenuItem, collapsed: boolean, event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
8
9
  }
@@ -13,6 +13,8 @@ export interface EditMenuProps {
13
13
  onOpenEditMode?: () => void;
14
14
  onToggleMenuItem?: (changedItem: MenuItem) => void;
15
15
  onResetSettingsToDefault?: () => void;
16
+ enableSorting?: boolean;
17
+ onChangeItemsOrder?: (changedItem: MenuItem, oldIndex: number, newIndex: number) => void;
16
18
  }
17
19
  export interface AsideHeaderGeneralProps extends QAProps {
18
20
  logo?: LogoProps;
@@ -42,6 +44,7 @@ export interface AsideHeaderDefaultProps {
42
44
  panelItems?: DrawerItemProps[];
43
45
  subheaderItems?: SubheaderMenuItem[];
44
46
  menuItems?: MenuItem[];
47
+ defaultMenuItems?: MenuItem[];
45
48
  onMenuItemsChanged?: (items: MenuItem[]) => void;
46
49
  headerDecoration?: boolean;
47
50
  }
@@ -6,7 +6,7 @@ var AsideHeader = require('./AsideHeader.js');
6
6
  var AsideHeaderContext = require('./AsideHeaderContext.js');
7
7
  var FooterItem = require('./FooterItem.js');
8
8
  var PageLayout = require('./PageLayout.js');
9
- var PageLayoutAside = require('./PageLayoutAside-c30e7399.js');
9
+ var PageLayoutAside = require('./PageLayoutAside-30f2015c.js');
10
10
  var AsideFallback = require('./AsideFallback.js');
11
11
  var Drawer = require('./Drawer.js');
12
12
  var FooterItem$1 = require('./FooterItem-de603636.js');
@@ -1,7 +1,7 @@
1
1
  import { _ as __rest } from './tslib.es6-3cd4e99f.js';
2
2
  import React__default from 'react';
3
3
  import { PageLayout } from './PageLayout.js';
4
- import { P as PageLayoutAside } from './PageLayoutAside-348cef92.js';
4
+ import { P as PageLayoutAside } from './PageLayoutAside-5d010e96.js';
5
5
  import './Content-f94ba85d.js';
6
6
  import './constants-b1604ff5.js';
7
7
  import './AsideHeaderContext.js';
@@ -1 +1 @@
1
- {"version":3,"file":"AsideHeaderContext.js","sources":["../../../src/components/AsideHeader/AsideHeaderContext.ts"],"sourcesContent":["import React from 'react';\n\nimport {MenuItem} from '../types';\n\nimport {AsideHeaderInnerProps} from './types';\n\nexport interface AsideHeaderInnerContextType extends AsideHeaderInnerProps {\n menuItems: MenuItem[];\n allPagesIsAvailable: boolean;\n onItemClick: (\n item: MenuItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => void;\n}\n\nexport const AsideHeaderInnerContext = React.createContext<AsideHeaderInnerContextType | undefined>(\n undefined,\n);\nAsideHeaderInnerContext.displayName = 'AsideHeaderInnerContext';\n\nexport const AsideHeaderInnerContextProvider = AsideHeaderInnerContext.Provider;\n\nexport const useAsideHeaderInnerContext = (): AsideHeaderInnerContextType => {\n const contextValue = React.useContext(AsideHeaderInnerContext);\n if (contextValue === undefined) {\n throw new Error(`AsideHeaderInnerContext is not initialized.\n Please check if you wrapped your component with AsideHeaderInnerContext.Provider`);\n }\n return contextValue;\n};\n\nexport interface AsideHeaderContextType {\n compact: boolean;\n size: number;\n}\n\nexport const AsideHeaderContext = React.createContext<AsideHeaderContextType | undefined>({\n compact: false,\n size: 0,\n});\n\nAsideHeaderContext.displayName = 'AsideHeaderContext';\n\nexport const AsideHeaderContextProvider = AsideHeaderContext.Provider;\n\nexport const useAsideHeaderContext = (): AsideHeaderContextType => {\n const contextValue = React.useContext(AsideHeaderContext);\n if (contextValue === undefined) {\n throw new Error(`AsideHeaderContext is not initialized.\n Please check if you wrapped your component with AsideHeader\n Context.Provider`);\n }\n return contextValue;\n};\n"],"names":["React"],"mappings":";;AAgBa,MAAA,uBAAuB,GAAGA,cAAK,CAAC,aAAa,CACtD,SAAS,EACX;AACF,uBAAuB,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAEnD,MAAA,+BAA+B,GAAG,uBAAuB,CAAC,SAAS;AAEzE,MAAM,0BAA0B,GAAG,MAAkC;IACxE,MAAM,YAAY,GAAGA,cAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAC/D,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,CAAA;AACiE,wFAAA,CAAA,CAAC,CAAC;AACtF,KAAA;AACD,IAAA,OAAO,YAAY,CAAC;AACxB,EAAE;AAOW,MAAA,kBAAkB,GAAGA,cAAK,CAAC,aAAa,CAAqC;AACtF,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,IAAI,EAAE,CAAC;AACV,CAAA,EAAE;AAEH,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAA,0BAA0B,GAAG,kBAAkB,CAAC,SAAS;AAE/D,MAAM,qBAAqB,GAAG,MAA6B;IAC9D,MAAM,YAAY,GAAGA,cAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC1D,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,CAAA;;AAEC,wBAAA,CAAA,CAAC,CAAC;AACtB,KAAA;AACD,IAAA,OAAO,YAAY,CAAC;AACxB;;;;"}
1
+ {"version":3,"file":"AsideHeaderContext.js","sources":["../../../src/components/AsideHeader/AsideHeaderContext.ts"],"sourcesContent":["import React from 'react';\n\nimport {MenuItem} from '../types';\n\nimport {AsideHeaderInnerProps} from './types';\n\nexport interface AsideHeaderInnerContextType extends AsideHeaderInnerProps {\n menuItems: MenuItem[];\n defaultMenuItems?: MenuItem[];\n allPagesIsAvailable: boolean;\n onItemClick: (\n item: MenuItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => void;\n}\n\nexport const AsideHeaderInnerContext = React.createContext<AsideHeaderInnerContextType | undefined>(\n undefined,\n);\nAsideHeaderInnerContext.displayName = 'AsideHeaderInnerContext';\n\nexport const AsideHeaderInnerContextProvider = AsideHeaderInnerContext.Provider;\n\nexport const useAsideHeaderInnerContext = (): AsideHeaderInnerContextType => {\n const contextValue = React.useContext(AsideHeaderInnerContext);\n if (contextValue === undefined) {\n throw new Error(`AsideHeaderInnerContext is not initialized.\n Please check if you wrapped your component with AsideHeaderInnerContext.Provider`);\n }\n return contextValue;\n};\n\nexport interface AsideHeaderContextType {\n compact: boolean;\n size: number;\n}\n\nexport const AsideHeaderContext = React.createContext<AsideHeaderContextType | undefined>({\n compact: false,\n size: 0,\n});\n\nAsideHeaderContext.displayName = 'AsideHeaderContext';\n\nexport const AsideHeaderContextProvider = AsideHeaderContext.Provider;\n\nexport const useAsideHeaderContext = (): AsideHeaderContextType => {\n const contextValue = React.useContext(AsideHeaderContext);\n if (contextValue === undefined) {\n throw new Error(`AsideHeaderContext is not initialized.\n Please check if you wrapped your component with AsideHeader\n Context.Provider`);\n }\n return contextValue;\n};\n"],"names":["React"],"mappings":";;AAiBa,MAAA,uBAAuB,GAAGA,cAAK,CAAC,aAAa,CACtD,SAAS,EACX;AACF,uBAAuB,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAEnD,MAAA,+BAA+B,GAAG,uBAAuB,CAAC,SAAS;AAEzE,MAAM,0BAA0B,GAAG,MAAkC;IACxE,MAAM,YAAY,GAAGA,cAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAC/D,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,CAAA;AACiE,wFAAA,CAAA,CAAC,CAAC;AACtF,KAAA;AACD,IAAA,OAAO,YAAY,CAAC;AACxB,EAAE;AAOW,MAAA,kBAAkB,GAAGA,cAAK,CAAC,aAAa,CAAqC;AACtF,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,IAAI,EAAE,CAAC;AACV,CAAA,EAAE;AAEH,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAA,0BAA0B,GAAG,kBAAkB,CAAC,SAAS;AAE/D,MAAM,qBAAqB,GAAG,MAA6B;IAC9D,MAAM,YAAY,GAAGA,cAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC1D,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,CAAA;;AAEC,wBAAA,CAAA,CAAC,CAAC;AACtB,KAAA;AACD,IAAA,OAAO,YAAY,CAAC;AACxB;;;;"}