@gravity-ui/navigation 3.10.0 → 5.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/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +16 -5
- package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +2 -0
- package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +5 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesGroupHeader.d.ts +13 -0
- package/build/cjs/components/{AllPagesPanel → AsideHeader/components/AllPagesPanel}/AllPagesListItem/AllPagesListItem.d.ts +2 -4
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.d.ts +4 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +14 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.d.ts +3 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.d.ts +2 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.d.ts +3 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +2 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.d.ts +2 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +33 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +13 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +10 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/index.d.ts +2 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +4 -0
- package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.d.ts +6 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +2 -1
- package/build/cjs/components/AsideHeader/components/Panels.d.ts +1 -1
- package/build/cjs/components/AsideHeader/hooks/useDelayedToggle.d.ts +6 -0
- package/build/cjs/components/AsideHeader/hooks/useIsExpanded.d.ts +6 -0
- package/build/cjs/components/AsideHeader/i18n/index.d.ts +8 -0
- package/build/cjs/components/AsideHeader/index.d.ts +7 -0
- package/build/cjs/components/AsideHeader/types.d.ts +60 -8
- package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +4 -0
- package/build/cjs/components/AsideHeader/utils/getGroupHeight.d.ts +2 -0
- package/build/cjs/components/MobileHeader/i18n/index.d.ts +8 -0
- package/build/cjs/components/MobileHeader/types.d.ts +2 -1
- package/build/cjs/components/Settings/i18n/index.d.ts +8 -0
- package/build/cjs/components/Title/i18n/index.d.ts +8 -0
- package/build/cjs/components/constants.d.ts +2 -2
- package/build/cjs/components/index.d.ts +1 -7
- package/build/cjs/components/types.d.ts +18 -10
- package/build/cjs/{index-ByqQO5fB.js → index-B9p8boXH.js} +2 -2
- package/build/cjs/{index-ByqQO5fB.js.map → index-B9p8boXH.js.map} +1 -1
- package/build/cjs/{index-D9NSuTiN.js → index-BF-1v7O1.js} +761 -899
- package/build/cjs/index-BF-1v7O1.js.map +1 -0
- package/build/cjs/index.js +1 -1
- package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +16 -5
- package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +2 -0
- package/build/esm/components/AsideHeader/__stories__/moc.d.ts +5 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesGroupHeader.d.ts +13 -0
- package/build/esm/components/{AllPagesPanel → AsideHeader/components/AllPagesPanel}/AllPagesListItem/AllPagesListItem.d.ts +2 -4
- package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.d.ts +4 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +14 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.d.ts +3 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.d.ts +2 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.d.ts +3 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +2 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.d.ts +2 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +33 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +13 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +10 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/index.d.ts +2 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +4 -0
- package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.d.ts +6 -0
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +2 -1
- package/build/esm/components/AsideHeader/components/Panels.d.ts +1 -1
- package/build/esm/components/AsideHeader/hooks/useDelayedToggle.d.ts +6 -0
- package/build/esm/components/AsideHeader/hooks/useIsExpanded.d.ts +6 -0
- package/build/esm/components/AsideHeader/i18n/index.d.ts +8 -0
- package/build/esm/components/AsideHeader/index.d.ts +7 -0
- package/build/esm/components/AsideHeader/types.d.ts +60 -8
- package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +4 -0
- package/build/esm/components/AsideHeader/utils/getGroupHeight.d.ts +2 -0
- package/build/esm/components/MobileHeader/i18n/index.d.ts +8 -0
- package/build/esm/components/MobileHeader/types.d.ts +2 -1
- package/build/esm/components/Settings/i18n/index.d.ts +8 -0
- package/build/esm/components/Title/i18n/index.d.ts +8 -0
- package/build/esm/components/constants.d.ts +2 -2
- package/build/esm/components/index.d.ts +1 -7
- package/build/esm/components/types.d.ts +18 -10
- package/build/esm/{index-CAXXfBb4.js → index-BzBUevHu.js} +2 -2
- package/build/esm/{index-CAXXfBb4.js.map → index-BzBUevHu.js.map} +1 -1
- package/build/esm/{index-Bi86ts3T.js → index-DH4SSAb2.js} +764 -902
- package/build/esm/index-DH4SSAb2.js.map +1 -0
- package/build/esm/index.js +1 -1
- package/package.json +2 -2
- package/build/cjs/components/AllPagesPanel/constants.d.ts +0 -3
- package/build/cjs/components/AllPagesPanel/i18n/index.d.ts +0 -6
- package/build/cjs/components/AllPagesPanel/useGroupedMenuItems.d.ts +0 -4
- package/build/cjs/components/AllPagesPanel/useVisibleMenuItems.d.ts +0 -2
- package/build/cjs/components/CompositeBar/CompositeBar.d.ts +0 -20
- package/build/cjs/components/CompositeBar/Item/Item.d.ts +0 -43
- package/build/cjs/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +0 -9
- package/build/cjs/components/CompositeBar/utils.d.ts +0 -12
- package/build/cjs/components/FooterItem/FooterItem.d.ts +0 -7
- package/build/cjs/index-D9NSuTiN.js.map +0 -1
- package/build/esm/components/AllPagesPanel/constants.d.ts +0 -3
- package/build/esm/components/AllPagesPanel/i18n/index.d.ts +0 -6
- package/build/esm/components/AllPagesPanel/useGroupedMenuItems.d.ts +0 -4
- package/build/esm/components/AllPagesPanel/useVisibleMenuItems.d.ts +0 -2
- package/build/esm/components/CompositeBar/CompositeBar.d.ts +0 -20
- package/build/esm/components/CompositeBar/Item/Item.d.ts +0 -43
- package/build/esm/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +0 -9
- package/build/esm/components/CompositeBar/utils.d.ts +0 -12
- package/build/esm/components/FooterItem/FooterItem.d.ts +0 -7
- package/build/esm/index-Bi86ts3T.js.map +0 -1
- package/build/cjs/components/{AllPagesPanel → AsideHeader/components/AllPagesPanel}/AllPagesListItem/index.d.ts +0 -0
- package/build/cjs/components/{AllPagesPanel → AsideHeader/components/AllPagesPanel}/AllPagesPanel.d.ts +0 -0
- package/build/cjs/components/{AllPagesPanel → AsideHeader/components/AllPagesPanel}/index.d.ts +0 -0
- package/build/cjs/components/{CompositeBar → AsideHeader/components/CompositeBar}/HighlightedItem/HighlightedItem.d.ts +0 -0
- package/build/{esm → cjs/components/AsideHeader}/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +1 -1
- package/build/cjs/components/{CompositeBar → AsideHeader/components/CompositeBar}/MultipleTooltip/index.d.ts +0 -0
- package/build/cjs/components/{CompositeBar → AsideHeader/components/CompositeBar}/constants.d.ts +0 -0
- package/build/cjs/components/{FooterItem → AsideHeader/components/FooterItem}/__stories__/FooterItem.stories.d.ts +0 -0
- package/build/cjs/components/{FooterItem → AsideHeader/components/FooterItem}/__tests__/helpersPlaywright.d.ts +0 -0
- package/build/esm/components/{AllPagesPanel → AsideHeader/components/AllPagesPanel}/AllPagesListItem/index.d.ts +0 -0
- package/build/esm/components/{AllPagesPanel → AsideHeader/components/AllPagesPanel}/AllPagesPanel.d.ts +0 -0
- package/build/esm/components/{AllPagesPanel → AsideHeader/components/AllPagesPanel}/index.d.ts +0 -0
- package/build/esm/components/{CompositeBar → AsideHeader/components/CompositeBar}/HighlightedItem/HighlightedItem.d.ts +0 -0
- package/build/{cjs → esm/components/AsideHeader}/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +1 -1
- /package/build/esm/components/{CompositeBar → AsideHeader/components/CompositeBar}/MultipleTooltip/index.d.ts +0 -0
- /package/build/esm/components/{CompositeBar → AsideHeader/components/CompositeBar}/constants.d.ts +0 -0
- /package/build/esm/components/{FooterItem → AsideHeader/components/FooterItem}/__stories__/FooterItem.stories.d.ts +0 -0
- /package/build/esm/components/{FooterItem → AsideHeader/components/FooterItem}/__tests__/helpersPlaywright.d.ts +0 -0
package/build/cjs/index.js
CHANGED
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import { AsideHeaderInnerProps } from './types';
|
|
2
|
+
import { MenuGroup } from '../types';
|
|
3
|
+
import { AsideHeaderInnerProps, AsideHeaderItem } from './types';
|
|
4
4
|
export interface AsideHeaderInnerContextType extends AsideHeaderInnerProps {
|
|
5
|
-
menuItems:
|
|
6
|
-
|
|
5
|
+
menuItems: AsideHeaderItem[];
|
|
6
|
+
menuGroups?: MenuGroup[];
|
|
7
|
+
defaultMenuItems?: AsideHeaderItem[];
|
|
8
|
+
defaultMenuGroups?: MenuGroup[];
|
|
9
|
+
onMenuGroupsChanged?: (groups: MenuGroup[]) => void;
|
|
10
|
+
onToggleGroupCollapsed?: (groupId: string) => void;
|
|
7
11
|
allPagesIsAvailable: boolean;
|
|
8
|
-
onItemClick: (item:
|
|
12
|
+
onItemClick: (item: AsideHeaderItem, collapsed: boolean, event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
13
|
+
onMouseEnter?: () => void;
|
|
14
|
+
onMouseLeave?: () => void;
|
|
15
|
+
isExpanded: boolean;
|
|
9
16
|
}
|
|
10
17
|
export declare const AsideHeaderInnerContextProvider: React.Provider<AsideHeaderInnerContextType | undefined>;
|
|
11
18
|
export declare const useAsideHeaderInnerContext: () => AsideHeaderInnerContextType;
|
|
12
19
|
export interface AsideHeaderContextType {
|
|
13
20
|
compact: boolean;
|
|
14
21
|
size: number;
|
|
22
|
+
isExpanded: boolean;
|
|
23
|
+
onChangeCompact?: (compact: boolean) => void;
|
|
24
|
+
onMouseEnter?: () => void;
|
|
25
|
+
onMouseLeave?: () => void;
|
|
15
26
|
}
|
|
16
27
|
export declare const AsideHeaderContextProvider: React.Provider<AsideHeaderContextType | undefined>;
|
|
17
28
|
export declare const useAsideHeaderContext: () => AsideHeaderContextType;
|
|
@@ -19,3 +19,5 @@ export declare const Fallback: import("@storybook/csf").AnnotatedStoryFn<import(
|
|
|
19
19
|
/** @type {StoryFn} */
|
|
20
20
|
export declare function LineClamp(): React.JSX.Element;
|
|
21
21
|
export declare const CollapseButtonWrapper: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@storybook/csf").Args>;
|
|
22
|
+
export declare const ManyItems: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@storybook/csf").Args>;
|
|
23
|
+
export declare const GroupedMenuCollapsible: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("@storybook/csf").Args>;
|
|
@@ -10,4 +10,8 @@ export declare const DEFAULT_LOGO: {
|
|
|
10
10
|
onClick: () => void;
|
|
11
11
|
'aria-label': string;
|
|
12
12
|
};
|
|
13
|
-
export declare const menuItemsClamped: import("
|
|
13
|
+
export declare const menuItemsClamped: import("../types").AsideHeaderItem[];
|
|
14
|
+
export declare const generateManyMenuItems: (count?: number) => AsideHeaderProps["menuItems"];
|
|
15
|
+
export declare const menuItemsMany: import("../types").AsideHeaderItem[] | undefined;
|
|
16
|
+
export declare const menuItemsWithGroups: AsideHeaderProps['menuItems'];
|
|
17
|
+
export declare const menuGroupsWithIcons: AsideHeaderProps['menuGroups'];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import './AllPagesGroupHeader.scss';
|
|
3
|
+
interface AllPagesGroupHeaderProps {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string | ReactNode;
|
|
6
|
+
hidden: boolean;
|
|
7
|
+
isDisabled: boolean;
|
|
8
|
+
icon?: SVGIconData;
|
|
9
|
+
editMode?: boolean;
|
|
10
|
+
onToggleHidden?: (groupId: string) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const AllPagesGroupHeader: React.FC<AllPagesGroupHeaderProps>;
|
|
13
|
+
export {};
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { AsideHeaderItem } from 'src/components/AsideHeader/types';
|
|
3
3
|
import './AllPagesListItem.scss';
|
|
4
4
|
interface AllPagesListItemProps {
|
|
5
|
-
item:
|
|
5
|
+
item: AsideHeaderItem;
|
|
6
6
|
editMode?: boolean;
|
|
7
7
|
enableSorting?: boolean;
|
|
8
8
|
onToggle: () => void;
|
|
9
|
-
onDragStart?: () => void;
|
|
10
|
-
onDragEnd?: () => void;
|
|
11
9
|
}
|
|
12
10
|
export declare const AllPagesListItem: React.FC<AllPagesListItemProps>;
|
|
13
11
|
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare const _default: ((key: "menu-item.all-pages.title" | "all-panel.menu.category.allOther" | "all-panel.resetToDefault" | "all-panel.title.editing" | "all-panel.title.main", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
Translation: import("react").ComponentType<{
|
|
3
|
+
children: (props: {
|
|
4
|
+
t: (key: "menu-item.all-pages.title" | "all-panel.menu.category.allOther" | "all-panel.resetToDefault" | "all-panel.title.editing" | "all-panel.title.main", params?: import("@gravity-ui/i18n").Params) => string;
|
|
5
|
+
}) => React.ReactNode;
|
|
6
|
+
}>;
|
|
7
|
+
useTranslation: () => {
|
|
8
|
+
t: (key: "menu-item.all-pages.title" | "all-panel.menu.category.allOther" | "all-panel.resetToDefault" | "all-panel.title.editing" | "all-panel.title.main", params?: import("@gravity-ui/i18n").Params) => string;
|
|
9
|
+
};
|
|
10
|
+
keysetData: {
|
|
11
|
+
"gn-AllPagesPanel": Record<"menu-item.all-pages.title" | "all-panel.menu.category.allOther" | "all-panel.resetToDefault" | "all-panel.title.editing" | "all-panel.title.main", import("@gravity-ui/i18n").KeyData>;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React, { FC } from 'react';
|
|
2
|
+
import { AsideHeaderItem, MenuItemsWithGroups } from '../../types';
|
|
3
|
+
import './CompositeBar.scss';
|
|
4
|
+
export type CompositeBarProps = {
|
|
5
|
+
type: 'menu' | 'subheader';
|
|
6
|
+
items?: MenuItemsWithGroups[];
|
|
7
|
+
onItemClick?: (item: AsideHeaderItem, collapsed: boolean, event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
8
|
+
multipleTooltip?: boolean;
|
|
9
|
+
menuMoreTitle?: string;
|
|
10
|
+
onMoreClick?: () => void;
|
|
11
|
+
compact: boolean;
|
|
12
|
+
compositeId?: string;
|
|
13
|
+
className?: string;
|
|
14
|
+
onToggleGroupCollapsed?: (groupId: string) => void;
|
|
15
|
+
};
|
|
16
|
+
type CompositeBarViewProps = CompositeBarProps & {
|
|
17
|
+
compositeId?: string;
|
|
18
|
+
items?: MenuItemsWithGroups[];
|
|
19
|
+
collapsedIds?: Record<string, boolean>;
|
|
20
|
+
enableSorting?: boolean;
|
|
21
|
+
onToggleGroupCollapsed?: (groupId: string) => void;
|
|
22
|
+
onFirstLevelSortEnd?: (params: {
|
|
23
|
+
oldIndex: number;
|
|
24
|
+
newIndex: number;
|
|
25
|
+
}) => void;
|
|
26
|
+
onSecondLevelSortEnd?: (groupId: string) => (params: {
|
|
27
|
+
oldIndex: number;
|
|
28
|
+
newIndex: number;
|
|
29
|
+
}) => void;
|
|
30
|
+
};
|
|
31
|
+
export declare const CompositeBarView: FC<CompositeBarViewProps>;
|
|
32
|
+
export declare const CompositeBar: FC<CompositeBarProps>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AsideHeaderItem } from 'src/components/AsideHeader/types';
|
|
3
|
+
import './Item.scss';
|
|
4
|
+
export interface ItemProps extends AsideHeaderItem {
|
|
5
|
+
}
|
|
6
|
+
interface ItemInnerProps extends ItemProps {
|
|
7
|
+
compact?: boolean;
|
|
8
|
+
className?: string;
|
|
9
|
+
onMouseEnter?: () => void;
|
|
10
|
+
onMouseLeave?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const Item: React.FC<ItemInnerProps>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PopupProps } from '@gravity-ui/uikit';
|
|
3
|
+
import { AsideHeaderItem } from 'src/components/AsideHeader/types';
|
|
4
|
+
import './MultipleTooltip.scss';
|
|
5
|
+
type MultipleTooltipProps = Pick<PopupProps, 'open' | 'placement'> & {
|
|
6
|
+
anchorRef: React.RefObject<HTMLElement>;
|
|
7
|
+
items: AsideHeaderItem[];
|
|
8
|
+
};
|
|
9
|
+
export declare const MultipleTooltip: React.FC<MultipleTooltipProps>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AsideHeaderItem, MenuItemsWithGroups } from '../../types';
|
|
2
|
+
export declare function getItemHeight(compositeItem: MenuItemsWithGroups): number;
|
|
3
|
+
export declare function getItemsHeight<T extends AsideHeaderItem>(items: T[]): number;
|
|
4
|
+
export declare function getSelectedItemIndex(compositeItems: AsideHeaderItem[]): number | undefined;
|
|
@@ -3,8 +3,9 @@ import { ContentProps } from '../../../Content';
|
|
|
3
3
|
import { LayoutProps } from '../../types';
|
|
4
4
|
import '../../AsideHeader.scss';
|
|
5
5
|
export interface PageLayoutProps extends PropsWithChildren<LayoutProps> {
|
|
6
|
+
onChangeCompact?: (compact: boolean) => void;
|
|
6
7
|
}
|
|
7
|
-
declare const PageLayout: (({ compact, className, children, topAlert }: PageLayoutProps) => React.JSX.Element) & {
|
|
8
|
+
declare const PageLayout: (({ compact, className, children, topAlert, onChangeCompact }: PageLayoutProps) => React.JSX.Element) & {
|
|
8
9
|
Content: React.FC<React.PropsWithChildren<Pick<ContentProps, "renderContent">>>;
|
|
9
10
|
};
|
|
10
11
|
export { PageLayout };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export declare const Panels:
|
|
2
|
+
export declare const Panels: React.FC;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface ToggleDelayConfig {
|
|
2
|
+
enableDelay: number;
|
|
3
|
+
disableDelay: number;
|
|
4
|
+
}
|
|
5
|
+
export declare function useDelayedToggle(currentValue: boolean, config?: ToggleDelayConfig, maybeShouldThrottleFn?: (value: boolean, previousValue: boolean) => boolean): boolean;
|
|
6
|
+
export {};
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
declare const _default: ((key: "button_collapse" | "button_expand" | "label_more", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
Translation: import("react").ComponentType<{
|
|
3
|
+
children: (props: {
|
|
4
|
+
t: (key: "button_collapse" | "button_expand" | "label_more", params?: import("@gravity-ui/i18n").Params) => string;
|
|
5
|
+
}) => React.ReactNode;
|
|
6
|
+
}>;
|
|
7
|
+
useTranslation: () => {
|
|
8
|
+
t: (key: "button_collapse" | "button_expand" | "label_more", params?: import("@gravity-ui/i18n").Params) => string;
|
|
9
|
+
};
|
|
2
10
|
keysetData: {
|
|
3
11
|
"gn-AsideHeader": Record<"button_collapse" | "button_expand" | "label_more", import("@gravity-ui/i18n").KeyData>;
|
|
4
12
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { AsideHeader } from './AsideHeader';
|
|
2
|
+
export type { AsideHeaderProps } from './types';
|
|
3
|
+
export { AsideHeaderContextProvider, useAsideHeaderContext } from './AsideHeaderContext';
|
|
4
|
+
export { FooterItem, type FooterItemProps } from './components/FooterItem/FooterItem';
|
|
5
|
+
export { PageLayout, type PageLayoutProps } from './components/PageLayout/PageLayout';
|
|
6
|
+
export { PageLayoutAside } from './components/PageLayout/PageLayoutAside';
|
|
7
|
+
export { AsideFallback } from './components/PageLayout/AsideFallback';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { QAProps } from '@gravity-ui/uikit';
|
|
2
|
+
import { PopupProps, QAProps } from '@gravity-ui/uikit';
|
|
3
3
|
import { RenderContentType } from '../Content';
|
|
4
4
|
import { DrawerItemProps } from '../Drawer/Drawer';
|
|
5
|
-
import { LogoProps, MenuItem, OpenModalSubscriber,
|
|
5
|
+
import { LogoProps, MenuGroup, MenuItem, OpenModalSubscriber, TopAlertProps } from '../types';
|
|
6
6
|
import { AsideHeaderContextType } from './AsideHeaderContext';
|
|
7
7
|
export interface LayoutProps {
|
|
8
8
|
compact: boolean;
|
|
@@ -11,10 +11,10 @@ export interface LayoutProps {
|
|
|
11
11
|
}
|
|
12
12
|
interface EditMenuProps {
|
|
13
13
|
onOpenEditMode?: () => void;
|
|
14
|
-
onToggleMenuItem?: (changedItem:
|
|
14
|
+
onToggleMenuItem?: (changedItem: AsideHeaderItem) => void;
|
|
15
15
|
onResetSettingsToDefault?: () => void;
|
|
16
16
|
enableSorting?: boolean;
|
|
17
|
-
onChangeItemsOrder?: (changedItem:
|
|
17
|
+
onChangeItemsOrder?: (changedItem: AsideHeaderItem, oldIndex: number, newIndex: number) => void;
|
|
18
18
|
}
|
|
19
19
|
interface AsideHeaderGeneralProps extends QAProps {
|
|
20
20
|
logo?: LogoProps;
|
|
@@ -46,10 +46,13 @@ interface AsideHeaderGeneralProps extends QAProps {
|
|
|
46
46
|
}
|
|
47
47
|
interface AsideHeaderDefaultProps {
|
|
48
48
|
panelItems?: DrawerItemProps[];
|
|
49
|
-
subheaderItems?:
|
|
50
|
-
menuItems?:
|
|
51
|
-
defaultMenuItems?:
|
|
52
|
-
|
|
49
|
+
subheaderItems?: AsideHeaderItem[];
|
|
50
|
+
menuItems?: AsideHeaderItem[];
|
|
51
|
+
defaultMenuItems?: AsideHeaderItem[];
|
|
52
|
+
menuGroups?: MenuGroup[];
|
|
53
|
+
defaultMenuGroups?: MenuGroup[];
|
|
54
|
+
onMenuItemsChanged?: (items: AsideHeaderItem[]) => void;
|
|
55
|
+
onMenuGroupsChanged?: (groups: MenuGroup[]) => void;
|
|
53
56
|
headerDecoration?: boolean;
|
|
54
57
|
}
|
|
55
58
|
export type AsideHeaderInnerProps = AsideHeaderGeneralProps & AsideHeaderDefaultProps & AsideHeaderContextType;
|
|
@@ -58,4 +61,53 @@ export interface AsideHeaderProps extends AsideHeaderGeneralProps, LayoutProps,
|
|
|
58
61
|
export declare enum InnerPanels {
|
|
59
62
|
AllPages = "all-pages"
|
|
60
63
|
}
|
|
64
|
+
export interface AsideHeaderItem extends MenuItem {
|
|
65
|
+
enableTooltip?: boolean;
|
|
66
|
+
onItemClick?: (item: AsideHeaderItem, collapsed: boolean, event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
67
|
+
bringForward?: boolean;
|
|
68
|
+
compact?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* @deprecated Use itemWrapper instead for popup functionality
|
|
71
|
+
*/
|
|
72
|
+
popupVisible?: PopupProps['open'];
|
|
73
|
+
/**
|
|
74
|
+
* Floating element anchor ref object
|
|
75
|
+
*
|
|
76
|
+
* @deprecated Use itemWrapper instead for popup functionality
|
|
77
|
+
*/
|
|
78
|
+
popupRef?: React.RefObject<HTMLElement>;
|
|
79
|
+
/**
|
|
80
|
+
* @deprecated Use itemWrapper instead for popup functionality
|
|
81
|
+
*/
|
|
82
|
+
popupPlacement?: PopupProps['placement'];
|
|
83
|
+
/**
|
|
84
|
+
* @deprecated Use itemWrapper instead for popup functionality
|
|
85
|
+
*/
|
|
86
|
+
popupOffset?: PopupProps['offset'];
|
|
87
|
+
/**
|
|
88
|
+
* @deprecated Use itemWrapper instead for popup functionality
|
|
89
|
+
*/
|
|
90
|
+
popupKeepMounted?: PopupProps['keepMounted'];
|
|
91
|
+
/**
|
|
92
|
+
* @deprecated Use itemWrapper instead for popup functionality
|
|
93
|
+
*/
|
|
94
|
+
renderPopupContent?: () => React.ReactNode;
|
|
95
|
+
/**
|
|
96
|
+
* This callback will be called when Escape key pressed on keyboard, or click outside was made
|
|
97
|
+
* This behaviour could be disabled with `disableEscapeKeyDown`
|
|
98
|
+
* and `disableOutsideClick` options
|
|
99
|
+
*
|
|
100
|
+
* @deprecated Use itemWrapper instead for popup functionality
|
|
101
|
+
*/
|
|
102
|
+
onOpenChangePopup?: PopupProps['onOpenChange'];
|
|
103
|
+
}
|
|
104
|
+
export interface GroupedMenuItem extends MenuItem {
|
|
105
|
+
groupId: string;
|
|
106
|
+
collapsible: boolean;
|
|
107
|
+
isCollapsed: boolean;
|
|
108
|
+
isDisabled: boolean;
|
|
109
|
+
collapsedByDefault?: boolean;
|
|
110
|
+
items: MenuItemsWithGroups[];
|
|
111
|
+
}
|
|
112
|
+
export type MenuItemsWithGroups = MenuItem | GroupedMenuItem;
|
|
61
113
|
export {};
|
|
@@ -2,4 +2,8 @@ import { AsideHeaderInnerContextType } from './AsideHeaderContext';
|
|
|
2
2
|
import { AsideHeaderProps } from './types';
|
|
3
3
|
export declare const useAsideHeaderInnerContextValue: (props: AsideHeaderProps & {
|
|
4
4
|
size: number;
|
|
5
|
+
compact: boolean;
|
|
6
|
+
isExpanded: boolean;
|
|
7
|
+
onMouseEnter?: () => void;
|
|
8
|
+
onMouseLeave?: () => void;
|
|
5
9
|
}) => AsideHeaderInnerContextType;
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
declare const _default: ((key: "burger_button_close" | "burger_button_open" | "overlap_button_close", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
Translation: import("react").ComponentType<{
|
|
3
|
+
children: (props: {
|
|
4
|
+
t: (key: "burger_button_close" | "burger_button_open" | "overlap_button_close", params?: import("@gravity-ui/i18n").Params) => string;
|
|
5
|
+
}) => React.ReactNode;
|
|
6
|
+
}>;
|
|
7
|
+
useTranslation: () => {
|
|
8
|
+
t: (key: "burger_button_close" | "burger_button_open" | "overlap_button_close", params?: import("@gravity-ui/i18n").Params) => string;
|
|
9
|
+
};
|
|
2
10
|
keysetData: {
|
|
3
11
|
"gn-MobileHeader": Record<"burger_button_close" | "burger_button_open" | "overlap_button_close", import("@gravity-ui/i18n").KeyData>;
|
|
4
12
|
};
|
|
@@ -10,9 +10,10 @@ export interface ModalItem {
|
|
|
10
10
|
onClose?: () => void;
|
|
11
11
|
}
|
|
12
12
|
type MobileMenuItemType = 'regular' | 'divider';
|
|
13
|
-
export interface MobileMenuItem extends Omit<MenuItem, 'tooltipText' | 'pinned' | 'rightAdornment' | '
|
|
13
|
+
export interface MobileMenuItem extends Omit<MenuItem, 'tooltipText' | 'pinned' | 'rightAdornment' | 'itemWrapper' | 'onItemClick' | 'href'> {
|
|
14
14
|
type?: MobileMenuItemType;
|
|
15
15
|
closeMenuOnClick?: boolean;
|
|
16
|
+
link?: string;
|
|
16
17
|
onItemClick?: (item: MobileMenuItem) => void;
|
|
17
18
|
itemWrapper?: (node: React.ReactNode, item: MobileMenuItem) => React.ReactNode;
|
|
18
19
|
}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
declare const _default: ((key: "label_title" | "label_filter-placeholder" | "label_empty-placeholder" | "label_search" | "label_all-results", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
Translation: import("react").ComponentType<{
|
|
3
|
+
children: (props: {
|
|
4
|
+
t: (key: "label_title" | "label_filter-placeholder" | "label_empty-placeholder" | "label_search" | "label_all-results", params?: import("@gravity-ui/i18n").Params) => string;
|
|
5
|
+
}) => React.ReactNode;
|
|
6
|
+
}>;
|
|
7
|
+
useTranslation: () => {
|
|
8
|
+
t: (key: "label_title" | "label_filter-placeholder" | "label_empty-placeholder" | "label_search" | "label_all-results", params?: import("@gravity-ui/i18n").Params) => string;
|
|
9
|
+
};
|
|
2
10
|
keysetData: {
|
|
3
11
|
"gn-Settings": Record<"label_title" | "label_filter-placeholder" | "label_empty-placeholder" | "label_search" | "label_all-results", import("@gravity-ui/i18n").KeyData>;
|
|
4
12
|
};
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
declare const _default: ((key: "button_close", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
|
+
Translation: import("react").ComponentType<{
|
|
3
|
+
children: (props: {
|
|
4
|
+
t: (key: "button_close", params?: import("@gravity-ui/i18n").Params) => string;
|
|
5
|
+
}) => React.ReactNode;
|
|
6
|
+
}>;
|
|
7
|
+
useTranslation: () => {
|
|
8
|
+
t: (key: "button_close", params?: import("@gravity-ui/i18n").Params) => string;
|
|
9
|
+
};
|
|
2
10
|
keysetData: {
|
|
3
11
|
"gn-Title": Record<"button_close", import("@gravity-ui/i18n").KeyData>;
|
|
4
12
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const ASIDE_HEADER_ICON_SIZE =
|
|
1
|
+
export declare const ASIDE_HEADER_ICON_SIZE = 16;
|
|
2
2
|
export declare const ASIDE_HEADER_COMPACT_WIDTH = 56;
|
|
3
3
|
export declare const ASIDE_HEADER_EXPANDED_WIDTH = 236;
|
|
4
|
-
export declare const ITEM_HEIGHT =
|
|
4
|
+
export declare const ITEM_HEIGHT = 36;
|
|
5
5
|
export declare const HEADER_DIVIDER_HEIGHT = 29;
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export type { AsideHeaderProps } from './AsideHeader/types';
|
|
3
|
-
export { AsideHeaderContextProvider, useAsideHeaderContext } from './AsideHeader/AsideHeaderContext';
|
|
4
|
-
export { FooterItem, type FooterItemProps } from './FooterItem/FooterItem';
|
|
5
|
-
export { PageLayout, type PageLayoutProps } from './AsideHeader/components/PageLayout/PageLayout';
|
|
6
|
-
export { PageLayoutAside } from './AsideHeader/components/PageLayout/PageLayoutAside';
|
|
7
|
-
export { AsideFallback } from './AsideHeader/components/PageLayout/AsideFallback';
|
|
1
|
+
export * from './AsideHeader';
|
|
8
2
|
export * from './Drawer';
|
|
9
3
|
export * from './ActionBar';
|
|
10
4
|
export * from './Title';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React, { HTMLAttributeAnchorTarget } from 'react';
|
|
2
2
|
import { AlertProps, IconProps, QAProps } from '@gravity-ui/uikit';
|
|
3
|
-
import { ItemProps } from './CompositeBar/Item/Item';
|
|
4
3
|
export type MenuItemType = 'regular' | 'action' | 'divider';
|
|
5
4
|
export type OpenModalSubscriber = (open: boolean) => void;
|
|
6
5
|
export interface MakeItemParams {
|
|
@@ -14,12 +13,11 @@ export interface MenuItem extends QAProps {
|
|
|
14
13
|
icon?: IconProps['data'];
|
|
15
14
|
iconSize?: number | string;
|
|
16
15
|
iconQa?: string;
|
|
17
|
-
|
|
16
|
+
href?: string;
|
|
18
17
|
current?: boolean;
|
|
19
18
|
pinned?: boolean;
|
|
20
19
|
onItemClick?: (item: MenuItem, collapsed: boolean, event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
21
20
|
onItemClickCapture?: (event: React.SyntheticEvent) => void;
|
|
22
|
-
onCollapseItemClick?: () => void;
|
|
23
21
|
itemWrapper?: (p: MakeItemParams, makeItem: (p: MakeItemParams) => React.ReactNode, opts: {
|
|
24
22
|
collapsed: boolean;
|
|
25
23
|
compact: boolean;
|
|
@@ -29,11 +27,6 @@ export interface MenuItem extends QAProps {
|
|
|
29
27
|
preventUserRemoving?: boolean;
|
|
30
28
|
rightAdornment?: React.ReactNode;
|
|
31
29
|
type?: MenuItemType;
|
|
32
|
-
afterMoreButton?: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Order number. Used to determine the display order in the side menu
|
|
35
|
-
*/
|
|
36
|
-
order?: number;
|
|
37
30
|
/**
|
|
38
31
|
* Visibility flag in the side menu
|
|
39
32
|
*/
|
|
@@ -42,9 +35,24 @@ export interface MenuItem extends QAProps {
|
|
|
42
35
|
* The category to which the menu item belongs. Need for grouping in the display/editing mode of all pages
|
|
43
36
|
*/
|
|
44
37
|
category?: string;
|
|
45
|
-
|
|
38
|
+
/**
|
|
39
|
+
* The group ID to which the menu item belongs. Used for grouping menu items
|
|
40
|
+
*/
|
|
41
|
+
groupId?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface MenuGroup {
|
|
44
|
+
id: string;
|
|
45
|
+
title: string;
|
|
46
|
+
icon?: IconProps['data'];
|
|
47
|
+
/** Hide the group from display */
|
|
48
|
+
hidden?: boolean;
|
|
49
|
+
/** Allow collapsing the group via UI */
|
|
50
|
+
collapsible?: boolean;
|
|
51
|
+
/** Initial collapsed state when collapsible is true */
|
|
52
|
+
collapsedByDefault?: boolean;
|
|
53
|
+
/** Current collapsed state */
|
|
54
|
+
collapsed: boolean;
|
|
46
55
|
}
|
|
47
|
-
export type SubheaderMenuItem = Omit<ItemProps, 'onItemClick' | 'onItemClickCapture'>;
|
|
48
56
|
export interface LogoProps {
|
|
49
57
|
text: (() => React.ReactNode) | string;
|
|
50
58
|
className?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
import { Alert, Text } from '@gravity-ui/uikit';
|
|
3
|
-
import { d as debounceFn, s as styleInject, b as block } from './index-
|
|
3
|
+
import { d as debounceFn, s as styleInject, b as block } from './index-DH4SSAb2.js';
|
|
4
4
|
import '@bem-react/classname';
|
|
5
5
|
import '@gravity-ui/icons';
|
|
6
6
|
import '@gravity-ui/uikit/i18n';
|
|
@@ -71,4 +71,4 @@ const TopAlert = ({ alert, className, mobileView = false }) => {
|
|
|
71
71
|
};
|
|
72
72
|
|
|
73
73
|
export { TopAlert };
|
|
74
|
-
//# sourceMappingURL=index-
|
|
74
|
+
//# sourceMappingURL=index-BzBUevHu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-BzBUevHu.js","sources":["../../../src/components/TopAlert/useTopAlertHeight.ts","../../../src/components/TopAlert/TopAlert.tsx"],"sourcesContent":["import React from 'react';\n\nimport debounceFn from 'lodash/debounce';\n\nimport {TopAlertProps} from '../types';\n\ntype TopAlertHeightControls = {\n alertRef: React.RefObject<HTMLDivElement>;\n updateTopSize: () => void;\n};\n\nconst G_ROOT_CLASS_NAME = 'g-root';\n\nexport const useTopAlertHeight = ({alert}: {alert?: TopAlertProps}): TopAlertHeightControls => {\n const alertRef = React.useRef<HTMLDivElement>(null);\n\n const setAsideTopPanelHeight = React.useCallback((clientHeight: number) => {\n const gRootElement = document\n .getElementsByClassName(G_ROOT_CLASS_NAME)\n .item(0) as HTMLElement | null;\n gRootElement?.style.setProperty('--gn-top-alert-height', clientHeight + 'px');\n }, []);\n\n const updateTopSize = React.useCallback(() => {\n setAsideTopPanelHeight(alertRef.current?.clientHeight || 0);\n }, [setAsideTopPanelHeight]);\n\n React.useLayoutEffect(() => {\n const updateTopSizeDebounce = debounceFn(updateTopSize, 200, {leading: true});\n\n if (alert) {\n window.addEventListener('resize', updateTopSizeDebounce);\n updateTopSizeDebounce();\n }\n return () => {\n window.removeEventListener('resize', updateTopSizeDebounce);\n setAsideTopPanelHeight(0);\n };\n }, [alert, alertRef, updateTopSize, setAsideTopPanelHeight]);\n\n return {\n alertRef,\n updateTopSize,\n };\n};\n","import React from 'react';\n\nimport {Alert, Text} from '@gravity-ui/uikit';\n\nimport {TopAlertProps} from '../types';\nimport {block} from '../utils/cn';\n\nimport {useTopAlertHeight} from './useTopAlertHeight';\n\nimport './TopAlert.scss';\n\nconst b = block('top-alert');\n\ntype Props = {\n alert?: TopAlertProps;\n className?: string;\n mobileView?: boolean;\n};\n\nexport const TopAlert = ({alert, className, mobileView = false}: Props) => {\n const {alertRef, updateTopSize} = useTopAlertHeight({alert});\n\n const [opened, setOpened] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setOpened(false);\n\n if (alert && 'onCloseTopAlert' in alert) {\n alert.onCloseTopAlert?.();\n }\n }, [alert]);\n\n React.useEffect(() => {\n if (!opened) {\n updateTopSize();\n }\n }, [opened, updateTopSize]);\n\n if (!alert) {\n return null;\n }\n\n const {render} = alert;\n\n if (typeof render === 'function') {\n return (\n <div\n ref={alertRef}\n className={b('wrapper', {'with-bottom-border': !mobileView && opened}, className)}\n >\n {opened && render({handleClose})}\n </div>\n );\n }\n\n return (\n <div\n ref={alertRef}\n className={b('wrapper', {'with-bottom-border': !mobileView && opened}, className)}\n >\n {opened && (\n <Alert\n className={b('', {\n centered: alert.centered,\n dense: alert.dense,\n })}\n corners=\"square\"\n layout=\"horizontal\"\n align={alert.align}\n theme={alert.theme || 'warning'}\n view={alert.view}\n icon={alert.icon}\n title={alert.title}\n message={\n mobileView ? (\n <Text ellipsisLines={5} variant=\"body-2\">\n {alert.message}\n </Text>\n ) : (\n alert.message\n )\n }\n actions={alert.actions}\n onClose={alert.closable ? handleClose : undefined}\n />\n )}\n </div>\n );\n};\n"],"names":["React"],"mappings":"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"}
|