@consta/header 0.1.0 → 0.3.1
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/Badges/Badges.js +1 -1
- package/Badges/Badges.js.map +1 -1
- package/ButtonMenu/ButtonMenu.css +1 -0
- package/ButtonMenu/ButtonMenu.d.ts +5 -0
- package/ButtonMenu/ButtonMenu.js +2 -0
- package/ButtonMenu/ButtonMenu.js.map +1 -0
- package/ButtonMenu/helpers.d.ts +43 -0
- package/ButtonMenu/helpers.js +2 -0
- package/ButtonMenu/helpers.js.map +1 -0
- package/ButtonMenu/index.d.ts +1 -0
- package/ButtonMenu/index.js +2 -0
- package/ButtonMenu/index.js.map +1 -0
- package/ButtonMenu/types.d.ts +38 -0
- package/ButtonMenu/types.js +2 -0
- package/ButtonMenu/types.js.map +1 -0
- package/Header/Header.css +1 -1
- package/Header/Header.js +1 -1
- package/Header/Header.js.map +1 -1
- package/Header/HeaderSearch/HeaderSearch.css +1 -0
- package/Header/HeaderSearch/HeaderSearch.d.ts +15 -0
- package/Header/HeaderSearch/HeaderSearch.js +2 -0
- package/Header/HeaderSearch/HeaderSearch.js.map +1 -0
- package/Header/HeaderSearch/index.d.ts +1 -0
- package/Header/HeaderSearch/index.js +2 -0
- package/Header/HeaderSearch/index.js.map +1 -0
- package/Header/helpers.d.ts +9 -0
- package/Header/helpers.js +2 -0
- package/Header/helpers.js.map +1 -0
- package/Header/types.d.ts +99 -13
- package/Languages/Languages.d.ts +3 -0
- package/Languages/Languages.js +2 -0
- package/Languages/Languages.js.map +1 -0
- package/Languages/helpers.d.ts +20 -0
- package/Languages/helpers.js +2 -0
- package/Languages/helpers.js.map +1 -0
- package/Languages/index.d.ts +1 -0
- package/Languages/index.js +2 -0
- package/Languages/index.js.map +1 -0
- package/Languages/types.d.ts +23 -0
- package/Languages/types.js +2 -0
- package/Languages/types.js.map +1 -0
- package/Layout/Layout.js +1 -1
- package/Layout/Layout.js.map +1 -1
- package/Menu/Menu.js +1 -1
- package/Menu/Menu.js.map +1 -1
- package/Menu/helpers.d.ts +29 -16
- package/Menu/helpers.js +1 -1
- package/Menu/helpers.js.map +1 -1
- package/Menu/types.d.ts +5 -5
- package/MobileMenu/MobileMenu.js +1 -1
- package/MobileMenu/MobileMenu.js.map +1 -1
- package/MobileMenu/types.d.ts +5 -2
- package/MobileMenu/types.js +1 -1
- package/MobileMenu/types.js.map +1 -1
- package/Notifications/Notifications.js +1 -1
- package/Notifications/Notifications.js.map +1 -1
- package/Notifications/types.d.ts +3 -3
- package/NotificationsList/helpers.d.ts +15 -15
- package/NotificationsList/helpers.js.map +1 -1
- package/NotificationsList/types.d.ts +11 -11
- package/SelectMenu/SelectMenu.css +1 -0
- package/SelectMenu/SelectMenu.d.ts +5 -0
- package/SelectMenu/SelectMenu.js +2 -0
- package/SelectMenu/SelectMenu.js.map +1 -0
- package/SelectMenu/helpers.d.ts +40 -0
- package/SelectMenu/helpers.js +2 -0
- package/SelectMenu/helpers.js.map +1 -0
- package/SelectMenu/index.d.ts +1 -0
- package/SelectMenu/index.js +2 -0
- package/SelectMenu/index.js.map +1 -0
- package/SelectMenu/types.d.ts +33 -0
- package/SelectMenu/types.js +2 -0
- package/SelectMenu/types.js.map +1 -0
- package/TileMenu/TileMenu.js +1 -1
- package/TileMenu/TileMenu.js.map +1 -1
- package/TileMenu/TileMenuList/TileMenuList.js +1 -1
- package/TileMenu/TileMenuList/TileMenuList.js.map +1 -1
- package/TileMenu/helpers.d.ts +11 -11
- package/TileMenu/helpers.js +1 -1
- package/TileMenu/helpers.js.map +1 -1
- package/TileMenu/types.d.ts +10 -10
- package/TileMenu/types.js.map +1 -1
- package/VerticalMenu/VerticalMenu.js +1 -1
- package/VerticalMenu/VerticalMenu.js.map +1 -1
- package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js +1 -1
- package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js.map +1 -1
- package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.css +1 -1
- package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js +1 -1
- package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js.map +1 -1
- package/VerticalMenu/helpers.d.ts +6 -3
- package/VerticalMenu/helpers.js +1 -1
- package/VerticalMenu/helpers.js.map +1 -1
- package/VerticalMenu/types.d.ts +8 -0
- package/__private__/AnimatedContextMenu/AnimatedContextMenu.css +1 -1
- package/__private__/AnimatedContextMenu/AnimatedContextMenu.js +1 -1
- package/__private__/AnimatedContextMenu/AnimatedContextMenu.js.map +1 -1
- package/__private__/helpers/getItemClick.d.ts +7 -0
- package/__private__/helpers/getItemClick.js +2 -0
- package/__private__/helpers/getItemClick.js.map +1 -0
- package/package.json +2 -2
- package/__private__/hooks/useHideElementsLine.d.ts +0 -8
- package/__private__/hooks/useHideElementsLine.js +0 -2
- package/__private__/hooks/useHideElementsLine.js.map +0 -1
- package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.css +0 -1
- package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.d.ts +0 -4
- package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js +0 -2
- package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js.map +0 -1
package/Header/types.d.ts
CHANGED
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { IconComponent } from '@consta/uikit/Icon';
|
|
3
|
+
import { MenuDefaultItem, MenuPropOnItemClick, MenuPropGetItemHref, MenuPropGetItemLabel, MenuPropGetItemTarget, MenuPropGetItemActive, MenuPropGetItemOnClick, MenuPropGetItemSubMenu } from "../Menu/index";
|
|
4
|
+
import { NotificationsListPropGetItemLabel, NotificationsListPropGetActionIcon, NotificationsListPropGetActionLabel, NotificationsListPropGetActionOnClick, NotificationsListPropGetGroupId, NotificationsListPropGetGroupLabel, NotificationsListPropGetItemActions, NotificationsListPropGetItemBadges, NotificationsListPropGetItemDate, NotificationsListPropGetItemDescription, NotificationsListPropGetItemGroup, NotificationsListPropGetItemImage, NotificationsListPropGetItemRead, NotificationsListPropGetItemView, NotificationsListPropGroupLabelFormat, NotificationsDefaultAction, NotificationsDefaultGroup, NotificationsDefaultItem, NotificationsListPropItemDateFormat } from "../NotificationsList/index";
|
|
5
|
+
import { TileMenuPropGetItemImage, TileMenuPropGetItemDescription, TileMenuPropGetItemHref, TileMenuPropGetItemOnClick, TileMenuPropGetItemLabel, TileMenuOnItemClick, TileMenuPropView, TileMenuDefaultItem } from "../TileMenu/index";
|
|
5
6
|
import { PropsWithHTMLAttributesAndRef } from "../__private__/utils/types/PropsWithHTMLAttributes";
|
|
6
|
-
|
|
7
|
+
import { BreadcrumbsPropGetItemLabel, BreadcrumbsPropGetItemHref, BreadcrumbsPropGetItemOnClick, BreadcrumbsPropGetItemIcon, BreadcrumbsPropOnItemClick, BreadcrumbPropFitMode, DefaultItem as BreadcrumbsDefaultItem } from '@consta/uikit/BreadcrumbsCanary';
|
|
8
|
+
import { HeaderSearchProps } from "./HeaderSearch/index";
|
|
9
|
+
import { SelectMenuPropGetItemHref, SelectMenuPropGetItemLabel, SelectMenuPropGetItemOnClick, SelectMenuPropGetItemSubMenu, SelectMenuPropGetItemTarget, SelectMenuPropOnItemClick, SelectMenuDefaultItem } from "../SelectMenu/index";
|
|
10
|
+
import { ButtonMenuPropGetItemHref, ButtonMenuPropGetItemIcon, ButtonMenuPropGetItemLabel, ButtonMenuPropGetItemOnClick, ButtonMenuPropGetItemTarget, ButtonMenuPropOnItemClick, ButtonMenuDefaultItem } from "../ButtonMenu/index";
|
|
11
|
+
import { LanguagesDefaultItem } from "../Languages/index";
|
|
12
|
+
export declare type HeaderDefaultSocialMediaItem = ButtonMenuDefaultItem & {
|
|
13
|
+
icon: IconComponent;
|
|
14
|
+
};
|
|
15
|
+
export declare type HeaderDefaultAdditionalButtonsItem = ButtonMenuDefaultItem;
|
|
16
|
+
export declare type HeaderDefaultMenuItem = MenuDefaultItem;
|
|
17
|
+
export declare type HeaderDefaultNotificationAction = NotificationsDefaultAction;
|
|
18
|
+
export declare type HeaderDefaultNotificationGroup = NotificationsDefaultGroup;
|
|
19
|
+
export declare type HeaderDefaultNotificationItem = NotificationsDefaultItem;
|
|
20
|
+
export declare type HeaderDefaultTileMenuItem = TileMenuDefaultItem;
|
|
21
|
+
export declare type HeaderDefaultBreadcrumbsItem = BreadcrumbsDefaultItem;
|
|
22
|
+
export declare type HeaderDefaultSelectMenuItem = SelectMenuDefaultItem;
|
|
23
|
+
export declare type HeaderDefaultLanguagesItem = LanguagesDefaultItem;
|
|
24
|
+
export declare type HeaderProps<MENU_ITEM = HeaderDefaultMenuItem, NOTIFICATION_ITEM = HeaderDefaultNotificationItem, NOTIFICATION_GROUP = HeaderDefaultNotificationGroup, NOTIFICATION_ACTION = HeaderDefaultNotificationAction, NOTIFICATION_GROUP_BY_DAY extends boolean = false, TILE_MENU_ITEM = HeaderDefaultTileMenuItem, BREADCRUMBS_ITEM = HeaderDefaultBreadcrumbsItem, SECONDARY_MENU_ITEM = HeaderDefaultSelectMenuItem, SOCIAL_MEDIA_ITEM = HeaderDefaultSocialMediaItem, LANGUAGES_ITEM = HeaderDefaultLanguagesItem, ADDITIONAL_BUTTONS_ITEM = HeaderDefaultAdditionalButtonsItem> = PropsWithHTMLAttributesAndRef<{
|
|
25
|
+
fixed?: boolean;
|
|
7
26
|
logo?: React.ReactNode;
|
|
8
27
|
onLogoClick?: React.MouseEventHandler;
|
|
9
28
|
logoHref?: string;
|
|
@@ -48,33 +67,100 @@ export declare type HeaderProps<MENU_ITEM = DefaultMenuItem, NOTIFICATION_ITEM =
|
|
|
48
67
|
tileMenuView?: TileMenuPropView;
|
|
49
68
|
onTileMenuItemClick?: TileMenuOnItemClick<TILE_MENU_ITEM>;
|
|
50
69
|
getTileMenuItemImage?: TileMenuPropGetItemImage<TILE_MENU_ITEM>;
|
|
51
|
-
|
|
70
|
+
getTileMenuItemLabel?: TileMenuPropGetItemLabel<TILE_MENU_ITEM>;
|
|
52
71
|
getTileMenuItemDescription?: TileMenuPropGetItemDescription<TILE_MENU_ITEM>;
|
|
53
72
|
getTileMenuItemHref?: TileMenuPropGetItemHref<TILE_MENU_ITEM>;
|
|
54
73
|
getTileMenuItemOnClick?: TileMenuPropGetItemOnClick<TILE_MENU_ITEM>;
|
|
74
|
+
breadcrumbs?: BREADCRUMBS_ITEM[];
|
|
75
|
+
getBreadcrumbsItemLabel?: BreadcrumbsPropGetItemLabel<BREADCRUMBS_ITEM>;
|
|
76
|
+
getBreadcrumbsItemHref?: BreadcrumbsPropGetItemHref<BREADCRUMBS_ITEM>;
|
|
77
|
+
getBreadcrumbsItemIcon?: BreadcrumbsPropGetItemIcon<BREADCRUMBS_ITEM>;
|
|
78
|
+
getBreadcrumbsItemOnClick?: BreadcrumbsPropGetItemOnClick<BREADCRUMBS_ITEM>;
|
|
79
|
+
onBreadcrumbsItemClick?: BreadcrumbsPropOnItemClick<BREADCRUMBS_ITEM>;
|
|
80
|
+
breadcrumbsOnlyIconRoot?: boolean;
|
|
81
|
+
breadcrumbsLastItemIsLink?: boolean;
|
|
82
|
+
breadcrumbsFitMode?: BreadcrumbPropFitMode;
|
|
83
|
+
searchValue?: HeaderSearchProps['value'];
|
|
84
|
+
searchOnChange?: HeaderSearchProps['onChange'];
|
|
85
|
+
searchOnSubmit?: HeaderSearchProps['onSubmit'];
|
|
86
|
+
searchPlaceholder?: HeaderSearchProps['placeholder'];
|
|
87
|
+
secondaryMenu?: SECONDARY_MENU_ITEM[];
|
|
88
|
+
onSecondaryMenuItemClick?: SelectMenuPropOnItemClick<SECONDARY_MENU_ITEM>;
|
|
89
|
+
getSecondaryMenuItemHref?: SelectMenuPropGetItemHref<SECONDARY_MENU_ITEM>;
|
|
90
|
+
getSecondaryMenuItemLabel?: SelectMenuPropGetItemLabel<SECONDARY_MENU_ITEM>;
|
|
91
|
+
getSecondaryMenuItemTarget?: SelectMenuPropGetItemTarget<SECONDARY_MENU_ITEM>;
|
|
92
|
+
getSecondaryMenuItemOnClick?: SelectMenuPropGetItemOnClick<SECONDARY_MENU_ITEM>;
|
|
93
|
+
getSecondaryMenuItemSubMenu?: SelectMenuPropGetItemSubMenu<SECONDARY_MENU_ITEM>;
|
|
94
|
+
secondaryMenuLabel?: string;
|
|
95
|
+
socialMedia?: SOCIAL_MEDIA_ITEM[];
|
|
96
|
+
onSocialMediaItemClick?: ButtonMenuPropOnItemClick<SOCIAL_MEDIA_ITEM>;
|
|
97
|
+
getSocialMediaItemHref?: ButtonMenuPropGetItemHref<SOCIAL_MEDIA_ITEM>;
|
|
98
|
+
getSocialMediaItemLabel?: ButtonMenuPropGetItemLabel<SOCIAL_MEDIA_ITEM>;
|
|
99
|
+
getSocialMediaItemTarget?: ButtonMenuPropGetItemTarget<SOCIAL_MEDIA_ITEM>;
|
|
100
|
+
getSocialMediaItemOnClick?: ButtonMenuPropGetItemOnClick<SOCIAL_MEDIA_ITEM>;
|
|
101
|
+
getSocialMediaItemIcon?: ButtonMenuPropGetItemIcon<SOCIAL_MEDIA_ITEM>;
|
|
102
|
+
languages?: LANGUAGES_ITEM[];
|
|
103
|
+
languagesLabel?: string;
|
|
104
|
+
languageValue?: LANGUAGES_ITEM;
|
|
105
|
+
onLanguageChange?: SelectMenuPropOnItemClick<LANGUAGES_ITEM>;
|
|
106
|
+
getLanguagesItemHref?: SelectMenuPropGetItemHref<LANGUAGES_ITEM>;
|
|
107
|
+
getLanguagesItemLabel?: SelectMenuPropGetItemLabel<LANGUAGES_ITEM>;
|
|
108
|
+
getLanguagesItemTarget?: SelectMenuPropGetItemTarget<LANGUAGES_ITEM>;
|
|
109
|
+
getLanguagesItemOnClick?: SelectMenuPropGetItemOnClick<LANGUAGES_ITEM>;
|
|
110
|
+
additionalButtons?: ADDITIONAL_BUTTONS_ITEM[];
|
|
111
|
+
onAdditionalButtonsItemClick?: ButtonMenuPropOnItemClick<ADDITIONAL_BUTTONS_ITEM>;
|
|
112
|
+
getAdditionalButtonsItemHref?: ButtonMenuPropGetItemHref<ADDITIONAL_BUTTONS_ITEM>;
|
|
113
|
+
getAdditionalButtonsItemLabel?: ButtonMenuPropGetItemLabel<ADDITIONAL_BUTTONS_ITEM>;
|
|
114
|
+
getAdditionalButtonsItemTarget?: ButtonMenuPropGetItemTarget<ADDITIONAL_BUTTONS_ITEM>;
|
|
115
|
+
getAdditionalButtonsItemOnClick?: ButtonMenuPropGetItemOnClick<ADDITIONAL_BUTTONS_ITEM>;
|
|
116
|
+
getAdditionalButtonsItemIcon?: ButtonMenuPropGetItemIcon<ADDITIONAL_BUTTONS_ITEM>;
|
|
55
117
|
}, HTMLDivElement> & (MENU_ITEM extends {
|
|
56
|
-
label:
|
|
118
|
+
label: HeaderDefaultMenuItem['label'] | unknown;
|
|
57
119
|
} ? {} : {
|
|
58
120
|
getMenuItemLabel: MenuPropGetItemLabel<MENU_ITEM>;
|
|
59
121
|
}) & (NOTIFICATION_ACTION extends {
|
|
60
|
-
label:
|
|
122
|
+
label: HeaderDefaultNotificationAction['label'] | unknown;
|
|
61
123
|
} ? {} : {
|
|
62
124
|
getNotificationsActionLabel: NotificationsListPropGetItemActions<NOTIFICATION_ACTION>;
|
|
63
125
|
}) & (NOTIFICATION_GROUP extends {
|
|
64
|
-
label:
|
|
126
|
+
label: HeaderDefaultNotificationGroup['label'] | unknown;
|
|
65
127
|
} ? {} : {
|
|
66
128
|
getNotificationsGroupLabel: NotificationsListPropGetGroupLabel<NOTIFICATION_GROUP>;
|
|
67
129
|
}) & (NOTIFICATION_GROUP extends {
|
|
68
|
-
id:
|
|
130
|
+
id: HeaderDefaultNotificationGroup['id'] | unknown;
|
|
69
131
|
} ? {} : {
|
|
70
132
|
getNotificationsGroupId: NotificationsListPropGetGroupId<NOTIFICATION_GROUP>;
|
|
71
133
|
}) & (NOTIFICATION_ITEM extends {
|
|
72
|
-
label:
|
|
134
|
+
label: HeaderDefaultNotificationItem['label'] | unknown;
|
|
73
135
|
} ? {} : {
|
|
74
136
|
getNotificationsItemLabel: NotificationsListPropGetItemLabel<NOTIFICATION_ITEM>;
|
|
75
137
|
}) & (TILE_MENU_ITEM extends {
|
|
76
|
-
|
|
138
|
+
label: HeaderDefaultTileMenuItem['label'] | unknown;
|
|
77
139
|
} ? {} : {
|
|
78
|
-
|
|
140
|
+
getTileMenuItemLabel: TileMenuPropGetItemLabel<TILE_MENU_ITEM>;
|
|
141
|
+
}) & (BREADCRUMBS_ITEM extends {
|
|
142
|
+
label: HeaderDefaultBreadcrumbsItem['label'] | unknown;
|
|
143
|
+
} ? {} : {
|
|
144
|
+
getBreadcrumbsItemLabel: BreadcrumbsPropGetItemLabel<BREADCRUMBS_ITEM>;
|
|
145
|
+
}) & (SECONDARY_MENU_ITEM extends {
|
|
146
|
+
label: HeaderDefaultSelectMenuItem['label'] | unknown;
|
|
147
|
+
} ? {} : {
|
|
148
|
+
getSecondaryMenuItemLabel: SelectMenuPropGetItemLabel<SECONDARY_MENU_ITEM>;
|
|
149
|
+
}) & (SOCIAL_MEDIA_ITEM extends {
|
|
150
|
+
label: HeaderDefaultSocialMediaItem['label'] | unknown;
|
|
151
|
+
} ? {} : {
|
|
152
|
+
getSocialMediaItemLabel: ButtonMenuPropGetItemLabel<SOCIAL_MEDIA_ITEM>;
|
|
153
|
+
}) & (SOCIAL_MEDIA_ITEM extends {
|
|
154
|
+
icon: HeaderDefaultSocialMediaItem['icon'] | unknown;
|
|
155
|
+
} ? {} : {
|
|
156
|
+
getSocialMediaItemIcon: ButtonMenuPropGetItemIcon<SOCIAL_MEDIA_ITEM>;
|
|
157
|
+
}) & (LANGUAGES_ITEM extends {
|
|
158
|
+
label: HeaderDefaultLanguagesItem['label'] | unknown;
|
|
159
|
+
} ? {} : {
|
|
160
|
+
getLanguagesItemLabel: SelectMenuPropGetItemLabel<LANGUAGES_ITEM>;
|
|
161
|
+
}) & (ADDITIONAL_BUTTONS_ITEM extends {
|
|
162
|
+
label: HeaderDefaultAdditionalButtonsItem['label'] | unknown;
|
|
163
|
+
} ? {} : {
|
|
164
|
+
getAdditionalButtonsItemLabel: ButtonMenuPropGetItemLabel<ADDITIONAL_BUTTONS_ITEM>;
|
|
79
165
|
});
|
|
80
|
-
export declare type HeaderComponent = <MENU_ITEM =
|
|
166
|
+
export declare type HeaderComponent = <MENU_ITEM = MenuDefaultItem, NOTIFICATION_ITEM = HeaderDefaultNotificationItem, NOTIFICATION_GROUP = HeaderDefaultNotificationGroup, NOTIFICATION_ACTION = HeaderDefaultNotificationAction, NOTIFICATION_GROUP_BY_DAY extends boolean = false, TILE_MENU_ITEM = HeaderDefaultTileMenuItem, BREADCRUMBS_ITEM = HeaderDefaultBreadcrumbsItem>(props: HeaderProps<MENU_ITEM, NOTIFICATION_ITEM, NOTIFICATION_GROUP, NOTIFICATION_ACTION, NOTIFICATION_GROUP_BY_DAY, TILE_MENU_ITEM, BREADCRUMBS_ITEM>) => React.ReactElement | null;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef,useState}from"react";import{withDefaultGetters}from"./helpers";import{SelectMenu}from"../SelectMenu";const LanguagesRender=(a,b)=>{const c=withDefaultGetters(a),{value:d,onChange:e}=c,f=_objectWithoutProperties(c,["value","onChange"]),[g,h]=useState(d||f.items[0]);return React.createElement(SelectMenu,Object.assign({},f,{onItemClick:a=>{null===e||void 0===e?void 0:e(a),h(a.item)},label:g?f.getItemLabel(g):"",ref:b}))};export const Languages=forwardRef(LanguagesRender);export*from"./types";
|
|
2
|
+
//# sourceMappingURL=Languages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Languages/Languages.tsx"],"names":["React","forwardRef","useState","withDefaultGetters","SelectMenu","LanguagesRender","props","ref","value","valueProp","onChange","otherProps","setValue","items","args","item","getItemLabel","Languages"],"mappings":"qFAAA,MAAOA,CAAAA,KAAP,EAAgBC,UAAhB,CAA4BC,QAA5B,KAA4C,OAA5C,CAGA,OAASC,kBAAT,iBAEA,OAASC,UAAT,qBAEA,KAAMC,CAAAA,eAAe,CAAG,CAACC,CAAD,CAAwBC,CAAxB,GAA2D,SAC3BJ,kBAAkB,CAACG,CAAD,CADS,CAC3E,CAAEE,KAAK,CAAEC,CAAT,CAAoBC,QAAQ,CAARA,CAApB,CAD2E,GAC1CC,CAD0C,kDAE3E,CAACH,CAAD,CAAQI,CAAR,EAAoBV,QAAQ,CAChCO,CAAS,EAAIE,CAAU,CAACE,KAAX,CAAiB,CAAjB,CADmB,CAF+C,CAMjF,MACE,qBAAC,UAAD,kBACMF,CADN,EAEE,WAAW,CAAEG,CAAI,EAAI,QACnBJ,CADmB,WACnBA,CADmB,QACnBA,CAAQ,CAAGI,CAAH,CADW,CAEnBF,CAAQ,CAACE,CAAI,CAACC,IAAN,CACT,CALH,CAME,KAAK,CAAEP,CAAK,CAAGG,CAAU,CAACK,YAAX,CAAwBR,CAAxB,CAAH,CAAoC,EANlD,CAOE,GAAG,CAAED,CAPP,GAUH,CAjBD,CAmBA,MAAO,MAAMU,CAAAA,SAAS,CAAGhB,UAAU,CAACI,eAAD,CAA5B,CAEP","sourcesContent":["import React, { forwardRef, useState } from 'react'\n\nimport { LanguagesProps, LanguagesComponent, LanguagesDefaultItem } from './types'\nimport { withDefaultGetters } from './helpers'\n\nimport { SelectMenu } from '@/SelectMenu'\n\nconst LanguagesRender = (props: LanguagesProps, ref: React.Ref<HTMLDivElement>) => {\n const { value: valueProp, onChange, ...otherProps } = withDefaultGetters(props)\n const [value, setValue] = useState<LanguagesDefaultItem | undefined>(\n valueProp || otherProps.items[0]\n )\n\n return (\n <SelectMenu\n {...otherProps}\n onItemClick={args => {\n onChange?.(args)\n setValue(args.item)\n }}\n label={value ? otherProps.getItemLabel(value) : ''}\n ref={ref}\n />\n )\n}\n\nexport const Languages = forwardRef(LanguagesRender) as LanguagesComponent\n\nexport * from './types'\n"],"file":"Languages.js"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { LanguagesProps } from "./types";
|
|
3
|
+
export declare function withDefaultGetters<ITEM>(props: LanguagesProps<ITEM>): {
|
|
4
|
+
items: ITEM[];
|
|
5
|
+
value?: ITEM | undefined;
|
|
6
|
+
onChange?: import("../SelectMenu/index").SelectMenuPropOnItemClick<ITEM> | undefined;
|
|
7
|
+
getItemHref?: import("../SelectMenu/index").SelectMenuPropGetItemHref<ITEM> | undefined;
|
|
8
|
+
getItemLabel?: import("../SelectMenu/index").SelectMenuPropGetItemLabel<ITEM> | undefined;
|
|
9
|
+
getItemTarget?: import("../SelectMenu/index").SelectMenuPropGetItemTarget<ITEM> | undefined;
|
|
10
|
+
getItemOnClick?: import("../SelectMenu/index").SelectMenuPropGetItemOnClick<ITEM> | undefined;
|
|
11
|
+
} & Pick<import("react").HTMLAttributes<HTMLDivElement>, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture"> & import("react").RefAttributes<HTMLDivElement> & (ITEM extends {
|
|
12
|
+
label: string;
|
|
13
|
+
} ? {} : {
|
|
14
|
+
getItemLabel: import("../SelectMenu/index").SelectMenuPropGetItemLabel<ITEM>;
|
|
15
|
+
}) & {
|
|
16
|
+
getItemLabel: import("../SelectMenu/index").SelectMenuPropGetItemLabel<import("../SelectMenu").SelectMenuDefaultItem> | import("../SelectMenu/index").SelectMenuPropGetItemLabel<ITEM>;
|
|
17
|
+
getItemHref: import("../SelectMenu/index").SelectMenuPropGetItemHref<import("../SelectMenu").SelectMenuDefaultItem> | import("../SelectMenu/index").SelectMenuPropGetItemHref<ITEM>;
|
|
18
|
+
getItemOnClick: import("../SelectMenu/index").SelectMenuPropGetItemOnClick<import("../SelectMenu").SelectMenuDefaultItem> | import("../SelectMenu/index").SelectMenuPropGetItemOnClick<ITEM>;
|
|
19
|
+
getItemTarget: import("../SelectMenu/index").SelectMenuPropGetItemTarget<import("../SelectMenu").SelectMenuDefaultItem> | import("../SelectMenu/index").SelectMenuPropGetItemTarget<ITEM>;
|
|
20
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import _objectSpread from"@babel/runtime/helpers/objectSpread";import{defaultGetItemTarget,defaultGetItemOnClick,defaultGetItemHref,defaultGetItemLabel}from"../SelectMenu/helpers";export function withDefaultGetters(a){return _objectSpread({},a,{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemHref:a.getItemHref||defaultGetItemHref,getItemOnClick:a.getItemOnClick||defaultGetItemOnClick,getItemTarget:a.getItemTarget||defaultGetItemTarget})}
|
|
2
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Languages/helpers.ts"],"names":["defaultGetItemTarget","defaultGetItemOnClick","defaultGetItemHref","defaultGetItemLabel","withDefaultGetters","props","getItemLabel","getItemHref","getItemOnClick","getItemTarget"],"mappings":"+DAEA,OACEA,oBADF,CAEEC,qBAFF,CAGEC,kBAHF,CAIEC,mBAJF,6BAOA,MAAO,SAASC,CAAAA,kBAAT,CAAkCC,CAAlC,CAA+D,CACpE,wBACKA,CADL,EAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBH,mBAFtC,CAGEI,WAAW,CAAEF,CAAK,CAACE,WAAN,EAAqBL,kBAHpC,CAIEM,cAAc,CAAEH,CAAK,CAACG,cAAN,EAAwBP,qBAJ1C,CAKEQ,aAAa,CAAEJ,CAAK,CAACI,aAAN,EAAuBT,oBALxC,EAOD","sourcesContent":["import { LanguagesProps } from './types'\n\nimport {\n defaultGetItemTarget,\n defaultGetItemOnClick,\n defaultGetItemHref,\n defaultGetItemLabel,\n} from '@/SelectMenu/helpers'\n\nexport function withDefaultGetters<ITEM>(props: LanguagesProps<ITEM>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemHref: props.getItemHref || defaultGetItemHref,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n getItemTarget: props.getItemTarget || defaultGetItemTarget,\n }\n}\n"],"file":"helpers.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Languages";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Languages/index.ts"],"names":[],"mappings":"AAAA","sourcesContent":["export * from './Languages'\n"],"file":"index.js"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { SelectMenuPropGetItemHref, SelectMenuPropGetItemLabel, SelectMenuPropGetItemOnClick, SelectMenuPropGetItemTarget, SelectMenuPropOnItemClick } from "../SelectMenu/index";
|
|
3
|
+
import { PropsWithHTMLAttributesAndRef } from "../__private__/utils/types/PropsWithHTMLAttributes";
|
|
4
|
+
export declare type LanguagesDefaultItem = {
|
|
5
|
+
label: string;
|
|
6
|
+
href?: string;
|
|
7
|
+
target?: string;
|
|
8
|
+
onClick?: React.EventHandler<React.MouseEvent>;
|
|
9
|
+
};
|
|
10
|
+
export declare type LanguagesProps<ITEM = LanguagesDefaultItem> = PropsWithHTMLAttributesAndRef<{
|
|
11
|
+
items: ITEM[];
|
|
12
|
+
value?: ITEM;
|
|
13
|
+
onChange?: SelectMenuPropOnItemClick<ITEM>;
|
|
14
|
+
getItemHref?: SelectMenuPropGetItemHref<ITEM>;
|
|
15
|
+
getItemLabel?: SelectMenuPropGetItemLabel<ITEM>;
|
|
16
|
+
getItemTarget?: SelectMenuPropGetItemTarget<ITEM>;
|
|
17
|
+
getItemOnClick?: SelectMenuPropGetItemOnClick<ITEM>;
|
|
18
|
+
}, HTMLDivElement> & (ITEM extends {
|
|
19
|
+
label: LanguagesDefaultItem['label'];
|
|
20
|
+
} ? {} : {
|
|
21
|
+
getItemLabel: SelectMenuPropGetItemLabel<ITEM>;
|
|
22
|
+
});
|
|
23
|
+
export declare type LanguagesComponent = <ITEM = LanguagesDefaultItem>(props: LanguagesProps<ITEM>) => React.ReactElement | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
|
package/Layout/Layout.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef}from"react";import{cn}from"../__private__/utils/bem";import{LayoutRowIsObject}from"./helpers";import"./Layout.css";import{LayoutRow}from"./LayoutRow/LayoutRow";const cnLayout=cn("Layout");export const Layout=forwardRef((a,b)=>{const{className:c,rowTop:d,rowBottom:e,rowCenter:f,children:g}=a,h=_objectWithoutProperties(a,["className","rowTop","rowBottom","rowCenter","children"]);return React.createElement("div",Object.assign({},h,{className:cnLayout(null,[c]),ref:b}),d&&_jsx(LayoutRow,{className:cnLayout("Row"),content:d,height:"s"}),(f||g)&&_jsx(LayoutRow,{className:cnLayout("Row"),content:f||g,height:LayoutRowIsObject(f)?f.height:void 0}),e&&_jsx(LayoutRow,{className:cnLayout("Row"),content:e,height:"s"}))});export*from"./types";
|
|
1
|
+
import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef}from"react";import{cn}from"../__private__/utils/bem";import{LayoutRowIsObject}from"./helpers";import"./Layout.css";import{LayoutRow}from"./LayoutRow/LayoutRow";const cnLayout=cn("Layout");export const Layout=forwardRef((a,b)=>{const{className:c,rowTop:d,rowBottom:e,rowCenter:f,children:g}=a,h=_objectWithoutProperties(a,["className","rowTop","rowBottom","rowCenter","children"]);return React.createElement("div",Object.assign({},h,{className:cnLayout(null,[c]),ref:b}),d&&_jsx(LayoutRow,{className:cnLayout("Row",{top:!0}),content:d,height:"s"}),(f||g)&&_jsx(LayoutRow,{className:cnLayout("Row",{center:!0}),content:f||g,height:LayoutRowIsObject(f)?f.height:void 0}),e&&_jsx(LayoutRow,{className:cnLayout("Row",{botton:!0}),content:e,height:"s"}))});export*from"./types";
|
|
2
2
|
//# sourceMappingURL=Layout.js.map
|
package/Layout/Layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Layout/Layout.tsx"],"names":["React","forwardRef","cn","LayoutRowIsObject","LayoutRow","cnLayout","Layout","props","ref","className","rowTop","rowBottom","rowCenter","children","otherProps","height"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,EAAT,gCAEA,OAASC,iBAAT,iBAEA,qBACA,OAASC,SAAT,6BAEA,KAAMC,CAAAA,QAAQ,CAAGH,EAAE,CAAC,QAAD,CAAnB,CAEA,MAAO,MAAMI,CAAAA,MAAM,CAAGL,UAAU,CAAC,CAACM,CAAD,CAAqBC,CAArB,GAAwD,CACvF,KAAM,CAAEC,SAAS,CAATA,CAAF,CAAaC,MAAM,CAANA,CAAb,CAAqBC,SAAS,CAATA,CAArB,CAAgCC,SAAS,CAATA,CAAhC,CAA2CC,QAAQ,CAARA,CAA3C,EAAuEN,CAA7E,CAA8DO,CAA9D,0BAA6EP,CAA7E,4DAEA,MACE,4CAASO,CAAT,EAAqB,SAAS,CAAET,QAAQ,CAAC,IAAD,CAAO,CAACI,CAAD,CAAP,CAAxC,CAA6D,GAAG,CAAED,CAAlE,GACGE,CAAM,
|
|
1
|
+
{"version":3,"sources":["../../src/Layout/Layout.tsx"],"names":["React","forwardRef","cn","LayoutRowIsObject","LayoutRow","cnLayout","Layout","props","ref","className","rowTop","rowBottom","rowCenter","children","otherProps","top","center","height","botton"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,EAAT,gCAEA,OAASC,iBAAT,iBAEA,qBACA,OAASC,SAAT,6BAEA,KAAMC,CAAAA,QAAQ,CAAGH,EAAE,CAAC,QAAD,CAAnB,CAEA,MAAO,MAAMI,CAAAA,MAAM,CAAGL,UAAU,CAAC,CAACM,CAAD,CAAqBC,CAArB,GAAwD,CACvF,KAAM,CAAEC,SAAS,CAATA,CAAF,CAAaC,MAAM,CAANA,CAAb,CAAqBC,SAAS,CAATA,CAArB,CAAgCC,SAAS,CAATA,CAAhC,CAA2CC,QAAQ,CAARA,CAA3C,EAAuEN,CAA7E,CAA8DO,CAA9D,0BAA6EP,CAA7E,4DAEA,MACE,4CAASO,CAAT,EAAqB,SAAS,CAAET,QAAQ,CAAC,IAAD,CAAO,CAACI,CAAD,CAAP,CAAxC,CAA6D,GAAG,CAAED,CAAlE,GACGE,CAAM,EACL,KAAC,SAAD,EAAW,SAAS,CAAEL,QAAQ,CAAC,KAAD,CAAQ,CAAEU,GAAG,GAAL,CAAR,CAA9B,CAAsD,OAAO,CAAEL,CAA/D,CAAuE,MAAM,CAAC,GAA9E,EAFJ,CAIG,CAACE,CAAS,EAAIC,CAAd,GACC,KAAC,SAAD,EACE,SAAS,CAAER,QAAQ,CAAC,KAAD,CAAQ,CAAEW,MAAM,GAAR,CAAR,CADrB,CAEE,OAAO,CAAEJ,CAAS,EAAIC,CAFxB,CAGE,MAAM,CAAEV,iBAAiB,CAACS,CAAD,CAAjB,CAA+BA,CAAS,CAACK,MAAzC,OAHV,EALJ,CAWGN,CAAS,EACR,KAAC,SAAD,EAAW,SAAS,CAAEN,QAAQ,CAAC,KAAD,CAAQ,CAAEa,MAAM,GAAR,CAAR,CAA9B,CAAyD,OAAO,CAAEP,CAAlE,CAA6E,MAAM,CAAC,GAApF,EAZJ,CAgBH,CApB+B,CAAzB,CAsBP","sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { LayoutRowIsObject } from './helpers'\nimport { LayoutProps } from './types'\nimport './Layout.css'\nimport { LayoutRow } from './LayoutRow/LayoutRow'\n\nconst cnLayout = cn('Layout')\n\nexport const Layout = forwardRef((props: LayoutProps, ref: React.Ref<HTMLDivElement>) => {\n const { className, rowTop, rowBottom, rowCenter, children, ...otherProps } = props\n\n return (\n <div {...otherProps} className={cnLayout(null, [className])} ref={ref}>\n {rowTop && (\n <LayoutRow className={cnLayout('Row', { top: true })} content={rowTop} height=\"s\" />\n )}\n {(rowCenter || children) && (\n <LayoutRow\n className={cnLayout('Row', { center: true })}\n content={rowCenter || children}\n height={LayoutRowIsObject(rowCenter) ? rowCenter.height : undefined}\n />\n )}\n {rowBottom && (\n <LayoutRow className={cnLayout('Row', { botton: true })} content={rowBottom} height=\"s\" />\n )}\n </div>\n )\n})\n\nexport * from './types'\n"],"file":"Layout.js"}
|
package/Menu/Menu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef,useState,useRef,useCallback,useEffect}from"react";import{IconSelect}from"@consta/uikit/IconSelect";import{Button}from"@consta/uikit/Button";import{IconMeatball}from"@consta/uikit/IconMeatball";import{useMutableRef}from"@consta/uikit/useMutableRef";import{useDebounce}from"@consta/uikit/useDebounce";import{useFlag}from"@consta/uikit/useFlag";import{AnimatedContextMenu}from"../__private__/AnimatedContextMenu/AnimatedContextMenu";import{cn}from"../__private__/utils/bem";import{
|
|
1
|
+
import _jsx from"@babel/runtime/helpers/jsx";import _objectSpread from"@babel/runtime/helpers/objectSpread";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef,useState,useRef,useCallback,useEffect}from"react";import{IconSelect}from"@consta/uikit/IconSelect";import{Button}from"@consta/uikit/Button";import{IconMeatball}from"@consta/uikit/IconMeatball";import{useMutableRef}from"@consta/uikit/useMutableRef";import{useDebounce}from"@consta/uikit/useDebounce";import{useFlag}from"@consta/uikit/useFlag";import{AnimatedContextMenu}from"../__private__/AnimatedContextMenu/AnimatedContextMenu";import{cn}from"../__private__/utils/bem";import{useHideElementsInLine}from"@consta/uikit/useHideElementsInLine";import{animateTimeout}from"@consta/uikit/MixPopoverAnimate";import{withDefaultGetters}from"./helpers";import{getItemClick}from"../__private__/helpers/getItemClick";import"./Menu.css";export const cnMenu=cn("Menu");const MenuRender=(a,b)=>{var c;const d=withDefaultGetters(a),{items:e,className:f,getItemActive:g,getItemHref:h,getItemLabel:i,getItemOnClick:j,getItemTarget:k,getItemSubMenu:l,onItemClick:m}=d,n=_objectWithoutProperties(d,["items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","onItemClick"]),[o,p]=useState(),[q,r]=useFlag(),{visibleItems:s,itemsRefs:t,wrapperRef:u,hiddenItems:v,moreRef:w}=useHideElementsInLine(e),x=useRef(null),y=useMutableRef(h),z=useMutableRef(k),A=useCallback(a=>y.current(a)?"a":"span",[]),B=useCallback(a=>{const b=y.current(a),c=z.current(a);return _objectSpread({},b&&{href:y.current(a)},c&&{href:z.current(a)})},[]),C="number"==typeof(null===(c=a.style)||void 0===c?void 0:c.zIndex)?a.style.zIndex+1:void 0;return useEffect(useDebounce(()=>{q||p(void 0)},animateTimeout),[q]),React.createElement("nav",Object.assign({},n,{className:cnMenu(null,[f]),onMouseLeave:r.off,onMouseEnter:r.on,ref:b}),React.createElement("ul",{className:cnMenu("List"),ref:u},e.map((a,b)=>{const c=i(a),d=h(a),e=d?k(a):void 0,f=g(a),n=d?"a":"span",q=l(a),r=o===b,u=!s[b];return React.createElement("li",{className:cnMenu("Item",{hidden:u}),key:cnMenu("Item",{index:b}),ref:t[b],onMouseEnter:()=>p(b)},_jsx(n,{className:cnMenu("Link",{active:f,opened:r}),href:d,target:e,onClick:getItemClick(a,j,m)},void 0,c," ",q&&_jsx(IconSelect,{size:"s",className:cnMenu("Arrow")})),_jsx(AnimatedContextMenu,{isOpen:q&&0<q.length&&r,items:q||[],getLabel:i,getSubItems:l,anchorRef:t[b],getOnClick:a=>getItemClick(a,j,m),direction:"downStartLeft",possibleDirections:["upStartLeft","downStartRight","downStartLeft","upStartRight"],spareDirection:"downStartLeft",getItemAs:A,getItemHTMLAttributes:B,style:{zIndex:C},offset:8}))}),0<v.length&&React.createElement("li",{className:cnMenu("Item"),key:cnMenu("Item",{more:!0}),ref:w,onMouseEnter:()=>p("more")},React.createElement(Button,{iconLeft:IconMeatball,ref:x,size:"xs",view:"clear"}),_jsx(AnimatedContextMenu,{isOpen:"more"===o,items:v,getLabel:i,getSubItems:l,anchorRef:x,getOnClick:a=>getItemClick(a,j,m),direction:"downStartLeft",possibleDirections:["upStartLeft","downStartRight","downStartLeft","upStartRight"],spareDirection:"downStartRight",getItemAs:A,getItemHTMLAttributes:B,style:{zIndex:C},offset:5}))))};export const Menu=forwardRef(MenuRender);export*from"./types";
|
|
2
2
|
//# sourceMappingURL=Menu.js.map
|
package/Menu/Menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Menu/Menu.tsx"],"names":["React","forwardRef","useState","useRef","useCallback","useEffect","IconSelect","Button","IconMeatball","useMutableRef","useDebounce","useFlag","AnimatedContextMenu","cn","useHideElementsLine","withDefaultGetters","getItemClick","animateTimeout","cnMenu","MenuRender","props","ref","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","onItemClick","otherProps","openedSubMenu","setOpenedSubMenu","mouseOnMenu","setMouseOnMenu","visibleItems","itemsRefs","wrapperRef","hiddenItems","moreRef","moreButtonRef","getItemHrefRef","getItemAs","item","current","getItemHTMLAttributes","href","elementZIndex","style","zIndex","off","on","map","index","label","target","active","Tag","subItems","opened","hidden","length","contextMenuItem","more","Menu"],"mappings":"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","sourcesContent":["import React, { forwardRef, useState, useRef, useCallback, useEffect } from 'react'\n\nimport { IconSelect } from '@consta/uikit/IconSelect'\nimport { Button } from '@consta/uikit/Button'\nimport { IconMeatball } from '@consta/uikit/IconMeatball'\nimport { useMutableRef } from '@consta/uikit/useMutableRef'\nimport { useDebounce } from '@consta/uikit/useDebounce'\nimport { useFlag } from '@consta/uikit/useFlag'\n\nimport { AnimatedContextMenu } from '@/__private__/AnimatedContextMenu/AnimatedContextMenu'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { useHideElementsLine } from '@/__private__/hooks/useHideElementsLine'\n\nimport { withDefaultGetters, getItemClick, animateTimeout } from './helpers'\nimport { MenuComponent, MenuProps } from './types'\nimport './Menu.css'\n\nexport const cnMenu = cn('Menu')\n\nconst MenuRender = (props: MenuProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n items,\n className,\n getItemActive,\n getItemHref,\n getItemLabel,\n getItemOnClick,\n getItemTarget,\n getItemSubMenu,\n onItemClick,\n ...otherProps\n } = withDefaultGetters(props)\n\n const [openedSubMenu, setOpenedSubMenu] = useState<number | 'more' | undefined>()\n const [mouseOnMenu, setMouseOnMenu] = useFlag()\n\n const { visibleItems, itemsRefs, wrapperRef, hiddenItems, moreRef } = useHideElementsLine<\n HTMLLIElement,\n HTMLUListElement,\n typeof items[number]\n >(items)\n\n const moreButtonRef = useRef<HTMLButtonElement>(null)\n\n const getItemHrefRef = useMutableRef(getItemHref)\n\n const getItemAs = useCallback((item: typeof items[number]) => {\n if (!!getItemHrefRef.current(item)) {\n return 'a'\n }\n return 'span'\n }, [])\n\n const getItemHTMLAttributes = useCallback((item: typeof items[number]) => {\n if (!!getItemHrefRef.current(item)) {\n return { href: getItemHrefRef.current(item) }\n }\n return {}\n }, [])\n\n const elementZIndex = typeof props.style?.zIndex === 'number' ? props.style.zIndex + 1 : undefined\n\n useEffect(\n useDebounce(() => {\n if (!mouseOnMenu) {\n setOpenedSubMenu(undefined)\n }\n }, animateTimeout),\n [mouseOnMenu]\n )\n\n return (\n <nav\n {...otherProps}\n className={cnMenu(null, [className])}\n onMouseLeave={setMouseOnMenu.off}\n onMouseEnter={setMouseOnMenu.on}\n ref={ref}\n >\n <ul className={cnMenu('List')} ref={wrapperRef}>\n {items.map((item, index) => {\n const label = getItemLabel(item)\n const href = getItemHref(item)\n const target = href ? getItemTarget(item) : undefined\n const active = getItemActive(item)\n const Tag = href ? 'a' : 'span'\n const subItems = getItemSubMenu(item)\n const opened = openedSubMenu === index\n const hidden = !visibleItems[index]\n return (\n <li\n className={cnMenu('Item', { hidden })}\n key={cnMenu('Item', { index })}\n ref={itemsRefs[index]}\n onMouseEnter={() => setOpenedSubMenu(index)}\n >\n <Tag\n className={cnMenu('Link', { active, opened })}\n href={href}\n target={target}\n onClick={getItemClick(item, getItemOnClick, onItemClick)}\n >\n {label} {subItems && <IconSelect size=\"s\" className={cnMenu('Arrow')} />}\n </Tag>\n <AnimatedContextMenu\n isOpen={subItems && subItems.length > 0 && opened}\n items={subItems || []}\n getLabel={getItemLabel}\n getSubItems={getItemSubMenu}\n anchorRef={itemsRefs[index]}\n getOnClick={contextMenuItem =>\n getItemClick(contextMenuItem, getItemOnClick, onItemClick)\n }\n direction=\"downStartLeft\"\n possibleDirections={[\n 'upStartLeft',\n 'downStartRight',\n 'downStartLeft',\n 'upStartRight',\n ]}\n spareDirection=\"downStartLeft\"\n getItemAs={getItemAs}\n getItemHTMLAttributes={getItemHTMLAttributes}\n style={{ zIndex: elementZIndex }}\n />\n </li>\n )\n })}\n {hiddenItems.length > 0 && (\n <li\n className={cnMenu('Item')}\n key={cnMenu('Item', { more: true })}\n ref={moreRef}\n onMouseEnter={() => setOpenedSubMenu('more')}\n >\n <Button iconLeft={IconMeatball} ref={moreButtonRef} size=\"xs\" view=\"clear\" />\n <AnimatedContextMenu\n isOpen={openedSubMenu === 'more'}\n items={hiddenItems}\n getLabel={getItemLabel}\n getSubItems={getItemSubMenu}\n anchorRef={moreButtonRef}\n getOnClick={contextMenuItem =>\n getItemClick(contextMenuItem, getItemOnClick, onItemClick)\n }\n direction=\"downStartLeft\"\n possibleDirections={[\n 'upStartLeft',\n 'downStartRight',\n 'downStartLeft',\n 'upStartRight',\n ]}\n spareDirection=\"downStartRight\"\n getItemAs={getItemAs}\n getItemHTMLAttributes={getItemHTMLAttributes}\n style={{ zIndex: elementZIndex }}\n />\n </li>\n )}\n </ul>\n </nav>\n )\n}\n\nexport const Menu = forwardRef(MenuRender) as MenuComponent\n\nexport * from './types'\n"],"file":"Menu.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Menu/Menu.tsx"],"names":["React","forwardRef","useState","useRef","useCallback","useEffect","IconSelect","Button","IconMeatball","useMutableRef","useDebounce","useFlag","AnimatedContextMenu","cn","useHideElementsInLine","animateTimeout","withDefaultGetters","getItemClick","cnMenu","MenuRender","props","ref","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","onItemClick","otherProps","openedSubMenu","setOpenedSubMenu","mouseOnMenu","setMouseOnMenu","visibleItems","itemsRefs","wrapperRef","hiddenItems","moreRef","moreButtonRef","getItemHrefRef","getItemTargetRef","getItemAs","item","current","getItemHTMLAttributes","href","target","elementZIndex","style","zIndex","off","on","map","index","label","active","Tag","subItems","opened","hidden","length","contextMenuItem","more","Menu"],"mappings":"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","sourcesContent":["import React, { forwardRef, useState, useRef, useCallback, useEffect } from 'react'\n\nimport { IconSelect } from '@consta/uikit/IconSelect'\nimport { Button } from '@consta/uikit/Button'\nimport { IconMeatball } from '@consta/uikit/IconMeatball'\nimport { useMutableRef } from '@consta/uikit/useMutableRef'\nimport { useDebounce } from '@consta/uikit/useDebounce'\nimport { useFlag } from '@consta/uikit/useFlag'\n\nimport { AnimatedContextMenu } from '@/__private__/AnimatedContextMenu/AnimatedContextMenu'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { useHideElementsInLine } from '@consta/uikit/useHideElementsInLine'\n\nimport { animateTimeout } from '@consta/uikit/MixPopoverAnimate'\n\nimport { withDefaultGetters } from './helpers'\n\nimport { getItemClick } from '@/__private__/helpers/getItemClick'\nimport { MenuComponent, MenuProps } from './types'\nimport './Menu.css'\n\nexport const cnMenu = cn('Menu')\n\nconst MenuRender = (props: MenuProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n items,\n className,\n getItemActive,\n getItemHref,\n getItemLabel,\n getItemOnClick,\n getItemTarget,\n getItemSubMenu,\n onItemClick,\n ...otherProps\n } = withDefaultGetters(props)\n\n const [openedSubMenu, setOpenedSubMenu] = useState<number | 'more' | undefined>()\n const [mouseOnMenu, setMouseOnMenu] = useFlag()\n\n const { visibleItems, itemsRefs, wrapperRef, hiddenItems, moreRef } = useHideElementsInLine<\n typeof items[number],\n HTMLLIElement,\n HTMLUListElement\n >(items)\n\n const moreButtonRef = useRef<HTMLButtonElement>(null)\n\n const getItemHrefRef = useMutableRef(getItemHref)\n const getItemTargetRef = useMutableRef(getItemTarget)\n\n const getItemAs = useCallback((item: typeof items[number]) => {\n if (!!getItemHrefRef.current(item)) {\n return 'a'\n }\n return 'span'\n }, [])\n\n const getItemHTMLAttributes = useCallback((item: typeof items[number]) => {\n const href = getItemHrefRef.current(item)\n const target = getItemTargetRef.current(item)\n\n return {\n ...(href && { href: getItemHrefRef.current(item) }),\n ...(target && { href: getItemTargetRef.current(item) }),\n }\n }, [])\n\n const elementZIndex = typeof props.style?.zIndex === 'number' ? props.style.zIndex + 1 : undefined\n\n useEffect(\n useDebounce(() => {\n if (!mouseOnMenu) {\n setOpenedSubMenu(undefined)\n }\n }, animateTimeout),\n [mouseOnMenu]\n )\n\n return (\n <nav\n {...otherProps}\n className={cnMenu(null, [className])}\n onMouseLeave={setMouseOnMenu.off}\n onMouseEnter={setMouseOnMenu.on}\n ref={ref}\n >\n <ul className={cnMenu('List')} ref={wrapperRef}>\n {items.map((item, index) => {\n const label = getItemLabel(item)\n const href = getItemHref(item)\n const target = href ? getItemTarget(item) : undefined\n const active = getItemActive(item)\n const Tag = href ? 'a' : 'span'\n const subItems = getItemSubMenu(item)\n const opened = openedSubMenu === index\n const hidden = !visibleItems[index]\n return (\n <li\n className={cnMenu('Item', { hidden })}\n key={cnMenu('Item', { index })}\n ref={itemsRefs[index]}\n onMouseEnter={() => setOpenedSubMenu(index)}\n >\n <Tag\n className={cnMenu('Link', { active, opened })}\n href={href}\n target={target}\n onClick={getItemClick(item, getItemOnClick, onItemClick)}\n >\n {label} {subItems && <IconSelect size=\"s\" className={cnMenu('Arrow')} />}\n </Tag>\n <AnimatedContextMenu\n isOpen={subItems && subItems.length > 0 && opened}\n items={subItems || []}\n getLabel={getItemLabel}\n getSubItems={getItemSubMenu}\n anchorRef={itemsRefs[index]}\n getOnClick={contextMenuItem =>\n getItemClick(contextMenuItem, getItemOnClick, onItemClick)\n }\n direction=\"downStartLeft\"\n possibleDirections={[\n 'upStartLeft',\n 'downStartRight',\n 'downStartLeft',\n 'upStartRight',\n ]}\n spareDirection=\"downStartLeft\"\n getItemAs={getItemAs}\n getItemHTMLAttributes={getItemHTMLAttributes}\n style={{ zIndex: elementZIndex }}\n offset={8}\n />\n </li>\n )\n })}\n {hiddenItems.length > 0 && (\n <li\n className={cnMenu('Item')}\n key={cnMenu('Item', { more: true })}\n ref={moreRef}\n onMouseEnter={() => setOpenedSubMenu('more')}\n >\n <Button iconLeft={IconMeatball} ref={moreButtonRef} size=\"xs\" view=\"clear\" />\n <AnimatedContextMenu\n isOpen={openedSubMenu === 'more'}\n items={hiddenItems}\n getLabel={getItemLabel}\n getSubItems={getItemSubMenu}\n anchorRef={moreButtonRef}\n getOnClick={contextMenuItem =>\n getItemClick(contextMenuItem, getItemOnClick, onItemClick)\n }\n direction=\"downStartLeft\"\n possibleDirections={[\n 'upStartLeft',\n 'downStartRight',\n 'downStartLeft',\n 'upStartRight',\n ]}\n spareDirection=\"downStartRight\"\n getItemAs={getItemAs}\n getItemHTMLAttributes={getItemHTMLAttributes}\n style={{ zIndex: elementZIndex }}\n offset={5}\n />\n </li>\n )}\n </ul>\n </nav>\n )\n}\n\nexport const Menu = forwardRef(MenuRender) as MenuComponent\n\nexport * from './types'\n"],"file":"Menu.js"}
|
package/Menu/helpers.d.ts
CHANGED
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
3
|
-
export declare const defaultGetItemLabel: MenuPropGetItemLabel<
|
|
4
|
-
export declare const defaultGetItemActive: MenuPropGetItemActive<
|
|
5
|
-
export declare const defaultGetItemHref: MenuPropGetItemHref<
|
|
6
|
-
export declare const defaultGetItemOnClick: MenuPropGetItemOnClick<
|
|
7
|
-
export declare const defaultGetItemTarget: MenuPropGetItemTarget<
|
|
8
|
-
export declare const defaultGetItemSubMenu: MenuPropGetItemSubMenu<
|
|
2
|
+
import { MenuDefaultItem, MenuProps, MenuPropGetItemActive, MenuPropGetItemHref, MenuPropGetItemLabel, MenuPropGetItemOnClick, MenuPropGetItemSubMenu, MenuPropGetItemTarget } from "./types";
|
|
3
|
+
export declare const defaultGetItemLabel: MenuPropGetItemLabel<MenuDefaultItem>;
|
|
4
|
+
export declare const defaultGetItemActive: MenuPropGetItemActive<MenuDefaultItem>;
|
|
5
|
+
export declare const defaultGetItemHref: MenuPropGetItemHref<MenuDefaultItem>;
|
|
6
|
+
export declare const defaultGetItemOnClick: MenuPropGetItemOnClick<MenuDefaultItem>;
|
|
7
|
+
export declare const defaultGetItemTarget: MenuPropGetItemTarget<MenuDefaultItem>;
|
|
8
|
+
export declare const defaultGetItemSubMenu: MenuPropGetItemSubMenu<MenuDefaultItem>;
|
|
9
|
+
export declare const getGetters: <ITEM>(props: {
|
|
10
|
+
getItemLabel?: MenuPropGetItemLabel<ITEM> | undefined;
|
|
11
|
+
getItemActive?: MenuPropGetItemActive<ITEM> | undefined;
|
|
12
|
+
getItemHref?: MenuPropGetItemHref<ITEM> | undefined;
|
|
13
|
+
getItemOnClick?: MenuPropGetItemOnClick<ITEM> | undefined;
|
|
14
|
+
getItemTarget?: MenuPropGetItemTarget<ITEM> | undefined;
|
|
15
|
+
getItemSubMenu?: MenuPropGetItemSubMenu<ITEM> | undefined;
|
|
16
|
+
}) => {
|
|
17
|
+
getItemLabel: MenuPropGetItemLabel<MenuDefaultItem> | MenuPropGetItemLabel<ITEM>;
|
|
18
|
+
getItemActive: MenuPropGetItemActive<MenuDefaultItem> | MenuPropGetItemActive<ITEM>;
|
|
19
|
+
getItemHref: MenuPropGetItemHref<MenuDefaultItem> | MenuPropGetItemHref<ITEM>;
|
|
20
|
+
getItemOnClick: MenuPropGetItemOnClick<MenuDefaultItem> | MenuPropGetItemOnClick<ITEM>;
|
|
21
|
+
getItemTarget: MenuPropGetItemTarget<MenuDefaultItem> | MenuPropGetItemTarget<ITEM>;
|
|
22
|
+
getItemSubMenu: MenuPropGetItemSubMenu<MenuDefaultItem> | MenuPropGetItemSubMenu<ITEM>;
|
|
23
|
+
};
|
|
9
24
|
export declare function withDefaultGetters<ITEM>(props: MenuProps<ITEM>): {
|
|
10
25
|
items: ITEM[];
|
|
11
|
-
onItemClick?: MenuPropOnItemClick<ITEM> | undefined;
|
|
26
|
+
onItemClick?: import("./types").MenuPropOnItemClick<ITEM> | undefined;
|
|
12
27
|
getItemHref?: MenuPropGetItemHref<ITEM> | undefined;
|
|
13
28
|
getItemLabel?: MenuPropGetItemLabel<ITEM> | undefined;
|
|
14
29
|
getItemTarget?: MenuPropGetItemTarget<ITEM> | undefined;
|
|
@@ -20,12 +35,10 @@ export declare function withDefaultGetters<ITEM>(props: MenuProps<ITEM>): {
|
|
|
20
35
|
} ? {} : {
|
|
21
36
|
getItemLabel: MenuPropGetItemLabel<ITEM>;
|
|
22
37
|
}) & {
|
|
23
|
-
getItemLabel: MenuPropGetItemLabel<
|
|
24
|
-
getItemActive: MenuPropGetItemActive<
|
|
25
|
-
getItemHref: MenuPropGetItemHref<
|
|
26
|
-
getItemOnClick: MenuPropGetItemOnClick<
|
|
27
|
-
getItemTarget: MenuPropGetItemTarget<
|
|
28
|
-
getItemSubMenu: MenuPropGetItemSubMenu<
|
|
38
|
+
getItemLabel: MenuPropGetItemLabel<MenuDefaultItem> | MenuPropGetItemLabel<ITEM>;
|
|
39
|
+
getItemActive: MenuPropGetItemActive<MenuDefaultItem> | MenuPropGetItemActive<ITEM>;
|
|
40
|
+
getItemHref: MenuPropGetItemHref<MenuDefaultItem> | MenuPropGetItemHref<ITEM>;
|
|
41
|
+
getItemOnClick: MenuPropGetItemOnClick<MenuDefaultItem> | MenuPropGetItemOnClick<ITEM>;
|
|
42
|
+
getItemTarget: MenuPropGetItemTarget<MenuDefaultItem> | MenuPropGetItemTarget<ITEM>;
|
|
43
|
+
getItemSubMenu: MenuPropGetItemSubMenu<MenuDefaultItem> | MenuPropGetItemSubMenu<ITEM>;
|
|
29
44
|
};
|
|
30
|
-
export declare function getItemClick<ITEM>(item: ITEM, getItemOnClick: MenuPropGetItemOnClick<ITEM>, onItemClick?: MenuPropOnItemClick<ITEM>): React.MouseEventHandler;
|
|
31
|
-
export declare const animateTimeout = 200;
|
package/Menu/helpers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectSpread from"@babel/runtime/helpers/objectSpread";export const defaultGetItemLabel=a=>a.label;export const defaultGetItemActive=a=>a.active;export const defaultGetItemHref=a=>a.href;export const defaultGetItemOnClick=a=>a.onClick;export const defaultGetItemTarget=a=>a.target;export const defaultGetItemSubMenu=a=>a.subMenu;export
|
|
1
|
+
import _objectSpread from"@babel/runtime/helpers/objectSpread";export const defaultGetItemLabel=a=>a.label;export const defaultGetItemActive=a=>a.active;export const defaultGetItemHref=a=>a.href;export const defaultGetItemOnClick=a=>a.onClick;export const defaultGetItemTarget=a=>a.target;export const defaultGetItemSubMenu=a=>a.subMenu;export const getGetters=a=>({getItemLabel:(null===a||void 0===a?void 0:a.getItemLabel)||defaultGetItemLabel,getItemActive:(null===a||void 0===a?void 0:a.getItemActive)||defaultGetItemActive,getItemHref:(null===a||void 0===a?void 0:a.getItemHref)||defaultGetItemHref,getItemOnClick:(null===a||void 0===a?void 0:a.getItemOnClick)||defaultGetItemOnClick,getItemTarget:(null===a||void 0===a?void 0:a.getItemTarget)||defaultGetItemTarget,getItemSubMenu:(null===a||void 0===a?void 0:a.getItemSubMenu)||defaultGetItemSubMenu});export function withDefaultGetters(a){return _objectSpread({},a,getGetters(a))}
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
package/Menu/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Menu/helpers.ts"],"names":["defaultGetItemLabel","item","label","defaultGetItemActive","active","defaultGetItemHref","href","defaultGetItemOnClick","onClick","defaultGetItemTarget","target","defaultGetItemSubMenu","subMenu","
|
|
1
|
+
{"version":3,"sources":["../../src/Menu/helpers.ts"],"names":["defaultGetItemLabel","item","label","defaultGetItemActive","active","defaultGetItemHref","href","defaultGetItemOnClick","onClick","defaultGetItemTarget","target","defaultGetItemSubMenu","subMenu","getGetters","props","getItemLabel","getItemActive","getItemHref","getItemOnClick","getItemTarget","getItemSubMenu","withDefaultGetters"],"mappings":"+DAWA,MAAO,MAAMA,CAAAA,mBAA0D,CAAGC,CAAI,EAAIA,CAAI,CAACC,KAAhF,CACP,MAAO,MAAMC,CAAAA,oBAA4D,CAAGF,CAAI,EAAIA,CAAI,CAACG,MAAlF,CACP,MAAO,MAAMC,CAAAA,kBAAwD,CAAGJ,CAAI,EAAIA,CAAI,CAACK,IAA9E,CACP,MAAO,MAAMC,CAAAA,qBAA8D,CAAGN,CAAI,EAAIA,CAAI,CAACO,OAApF,CACP,MAAO,MAAMC,CAAAA,oBAA4D,CAAGR,CAAI,EAAIA,CAAI,CAACS,MAAlF,CACP,MAAO,MAAMC,CAAAA,qBAA8D,CAAGV,CAAI,EAAIA,CAAI,CAACW,OAApF,CAEP,MAAO,MAAMC,CAAAA,UAAU,CAAUC,CAAP,GAQjB,CACLC,YAAY,CAAE,QAAAD,CAAK,WAALA,SAAAA,CAAK,CAAEC,YAAP,GAAuBf,mBADhC,CAELgB,aAAa,CAAE,QAAAF,CAAK,WAALA,SAAAA,CAAK,CAAEE,aAAP,GAAwBb,oBAFlC,CAGLc,WAAW,CAAE,QAAAH,CAAK,WAALA,SAAAA,CAAK,CAAEG,WAAP,GAAsBZ,kBAH9B,CAILa,cAAc,CAAE,QAAAJ,CAAK,WAALA,SAAAA,CAAK,CAAEI,cAAP,GAAyBX,qBAJpC,CAKLY,aAAa,CAAE,QAAAL,CAAK,WAALA,SAAAA,CAAK,CAAEK,aAAP,GAAwBV,oBALlC,CAMLW,cAAc,CAAE,QAAAN,CAAK,WAALA,SAAAA,CAAK,CAAEM,cAAP,GAAyBT,qBANpC,CARiB,CAAnB,CAkBP,MAAO,SAASU,CAAAA,kBAAT,CAAkCP,CAAlC,CAA0D,CAC/D,wBACKA,CADL,CAEKD,UAAU,CAACC,CAAD,CAFf,CAID","sourcesContent":["import {\n MenuDefaultItem,\n MenuProps,\n MenuPropGetItemActive,\n MenuPropGetItemHref,\n MenuPropGetItemLabel,\n MenuPropGetItemOnClick,\n MenuPropGetItemSubMenu,\n MenuPropGetItemTarget,\n} from './types'\n\nexport const defaultGetItemLabel: MenuPropGetItemLabel<MenuDefaultItem> = item => item.label\nexport const defaultGetItemActive: MenuPropGetItemActive<MenuDefaultItem> = item => item.active\nexport const defaultGetItemHref: MenuPropGetItemHref<MenuDefaultItem> = item => item.href\nexport const defaultGetItemOnClick: MenuPropGetItemOnClick<MenuDefaultItem> = item => item.onClick\nexport const defaultGetItemTarget: MenuPropGetItemTarget<MenuDefaultItem> = item => item.target\nexport const defaultGetItemSubMenu: MenuPropGetItemSubMenu<MenuDefaultItem> = item => item.subMenu\n\nexport const getGetters = <ITEM>(props: {\n getItemLabel?: MenuPropGetItemLabel<ITEM>\n getItemActive?: MenuPropGetItemActive<ITEM>\n getItemHref?: MenuPropGetItemHref<ITEM>\n getItemOnClick?: MenuPropGetItemOnClick<ITEM>\n getItemTarget?: MenuPropGetItemTarget<ITEM>\n getItemSubMenu?: MenuPropGetItemSubMenu<ITEM>\n}) => {\n return {\n getItemLabel: props?.getItemLabel || defaultGetItemLabel,\n getItemActive: props?.getItemActive || defaultGetItemActive,\n getItemHref: props?.getItemHref || defaultGetItemHref,\n getItemOnClick: props?.getItemOnClick || defaultGetItemOnClick,\n getItemTarget: props?.getItemTarget || defaultGetItemTarget,\n getItemSubMenu: props?.getItemSubMenu || defaultGetItemSubMenu,\n }\n}\n\nexport function withDefaultGetters<ITEM>(props: MenuProps<ITEM>) {\n return {\n ...props,\n ...getGetters(props),\n }\n}\n"],"file":"helpers.js"}
|
package/Menu/types.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { PropsWithHTMLAttributesAndRef } from "../__private__/utils/types/PropsWithHTMLAttributes";
|
|
3
|
-
export declare type
|
|
3
|
+
export declare type MenuDefaultItem = {
|
|
4
4
|
label: string;
|
|
5
5
|
href?: string;
|
|
6
6
|
target?: string;
|
|
7
7
|
active?: boolean;
|
|
8
8
|
onClick?: React.EventHandler<React.MouseEvent>;
|
|
9
|
-
subMenu?:
|
|
9
|
+
subMenu?: MenuDefaultItem[];
|
|
10
10
|
};
|
|
11
11
|
export declare type MenuPropGetItemLabel<ITEM> = (item: ITEM) => string;
|
|
12
12
|
export declare type MenuPropGetItemHref<ITEM> = (item: ITEM) => string | undefined;
|
|
@@ -18,7 +18,7 @@ export declare type MenuPropOnItemClick<ITEM> = (props: {
|
|
|
18
18
|
e: React.MouseEvent;
|
|
19
19
|
item: ITEM;
|
|
20
20
|
}) => void;
|
|
21
|
-
export declare type MenuProps<ITEM =
|
|
21
|
+
export declare type MenuProps<ITEM = MenuDefaultItem> = PropsWithHTMLAttributesAndRef<{
|
|
22
22
|
items: ITEM[];
|
|
23
23
|
onItemClick?: MenuPropOnItemClick<ITEM>;
|
|
24
24
|
getItemHref?: MenuPropGetItemHref<ITEM>;
|
|
@@ -28,8 +28,8 @@ export declare type MenuProps<ITEM = DefaultItem> = PropsWithHTMLAttributesAndRe
|
|
|
28
28
|
getItemOnClick?: MenuPropGetItemOnClick<ITEM>;
|
|
29
29
|
getItemSubMenu?: MenuPropGetItemSubMenu<ITEM>;
|
|
30
30
|
}, HTMLDivElement> & (ITEM extends {
|
|
31
|
-
label:
|
|
31
|
+
label: MenuDefaultItem['label'];
|
|
32
32
|
} ? {} : {
|
|
33
33
|
getItemLabel: MenuPropGetItemLabel<ITEM>;
|
|
34
34
|
});
|
|
35
|
-
export declare type MenuComponent = <ITEM =
|
|
35
|
+
export declare type MenuComponent = <ITEM = MenuDefaultItem>(props: MenuProps<ITEM>) => React.ReactElement | null;
|
package/MobileMenu/MobileMenu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef}from"react";import{cn}from"../__private__/utils/bem";import{VerticalMenu}from"../VerticalMenu";import{Sidebar}from"@consta/uikit/Sidebar";import{Button}from"@consta/uikit/Button";import{IconHamburger}from"@consta/uikit/IconHamburger";import{useFlag}from"@consta/uikit/useFlag";import"./MobileMenu.css";export const cnMobileMenu=cn("MobileMenu");const MobileMenuRender=(a,b)=>{var c;const{items:d,className:e,getItemActive:f,getItemHref:g,getItemLabel:h,getItemOnClick:i,getItemTarget:j,getItemSubMenu:k,header:l,onItemClick:m,sidebarClassName:n}=a,
|
|
1
|
+
import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef}from"react";import{cn}from"../__private__/utils/bem";import{VerticalMenu}from"../VerticalMenu";import{Sidebar}from"@consta/uikit/Sidebar";import{Button}from"@consta/uikit/Button";import{IconHamburger}from"@consta/uikit/IconHamburger";import{useFlag}from"@consta/uikit/useFlag";import"./MobileMenu.css";export const cnMobileMenu=cn("MobileMenu");const MobileMenuRender=(a,b)=>{var c;const{items:d,className:e,getItemActive:f,getItemHref:g,getItemLabel:h,getItemOnClick:i,getItemTarget:j,getItemSubMenu:k,header:l,onItemClick:m,sidebarClassName:n,footer:o}=a,p=_objectWithoutProperties(a,["items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","header","onItemClick","sidebarClassName","footer"]),[q,{toogle:r,off:s}]=useFlag(),t="number"==typeof(null===(c=a.style)||void 0===c?void 0:c.zIndex)?a.style.zIndex+1:void 0;return React.createElement(React.Fragment,null,React.createElement(Button,Object.assign({},p,{size:"s",view:"clear",className:cnMobileMenu(null,[e]),iconLeft:IconHamburger,ref:b,onClick:r})),_jsx(Sidebar,{className:cnMobileMenu("Sidebar",[n]),position:"left",isOpen:q,onClickOutside:s,size:"m",style:{zIndex:t}},void 0,_jsx(VerticalMenu,{className:cnMobileMenu("Menu"),items:d,getItemActive:f,getItemHref:g,getItemLabel:h,getItemOnClick:i,getItemTarget:j,getItemSubMenu:k,onItemClick:m,header:l,footer:o})))};export const MobileMenu=forwardRef(MobileMenuRender);export*from"./types";
|
|
2
2
|
//# sourceMappingURL=MobileMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/MobileMenu/MobileMenu.tsx"],"names":["React","forwardRef","cn","VerticalMenu","Sidebar","Button","IconHamburger","useFlag","cnMobileMenu","MobileMenuRender","props","ref","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","header","onItemClick","sidebarClassName","otherProps","visibleMenu","toogle","off","elementZIndex","style","zIndex","MobileMenu"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,EAAT,gCAIA,OAASC,YAAT,uBACA,OAASC,OAAT,KAAwB,uBAAxB,CAEA,OAASC,MAAT,KAAuB,sBAAvB,CAEA,OAASC,aAAT,KAA8B,6BAA9B,CACA,OAASC,OAAT,KAAwB,uBAAxB,CAEA,yBAEA,MAAO,MAAMC,CAAAA,YAAY,CAAGN,EAAE,CAAC,YAAD,CAAvB,CAEP,KAAMO,CAAAA,gBAAgB,CAAG,CAACC,CAAD,CAAyBC,CAAzB,GAA+D,YAChF,CACJC,KAAK,CAALA,CADI,CAEJC,SAAS,CAATA,CAFI,CAGJC,aAAa,CAAbA,CAHI,CAIJC,WAAW,CAAXA,CAJI,CAKJC,YAAY,CAAZA,CALI,CAMJC,cAAc,CAAdA,CANI,CAOJC,aAAa,CAAbA,CAPI,CAQJC,cAAc,CAAdA,CARI,CASJC,MAAM,CAANA,CATI,CAUJC,WAAW,CAAXA,CAVI,CAWJC,gBAAgB,CAAhBA,CAXI,
|
|
1
|
+
{"version":3,"sources":["../../src/MobileMenu/MobileMenu.tsx"],"names":["React","forwardRef","cn","VerticalMenu","Sidebar","Button","IconHamburger","useFlag","cnMobileMenu","MobileMenuRender","props","ref","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","header","onItemClick","sidebarClassName","footer","otherProps","visibleMenu","toogle","off","elementZIndex","style","zIndex","MobileMenu"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,EAAT,gCAIA,OAASC,YAAT,uBACA,OAASC,OAAT,KAAwB,uBAAxB,CAEA,OAASC,MAAT,KAAuB,sBAAvB,CAEA,OAASC,aAAT,KAA8B,6BAA9B,CACA,OAASC,OAAT,KAAwB,uBAAxB,CAEA,yBAEA,MAAO,MAAMC,CAAAA,YAAY,CAAGN,EAAE,CAAC,YAAD,CAAvB,CAEP,KAAMO,CAAAA,gBAAgB,CAAG,CAACC,CAAD,CAAyBC,CAAzB,GAA+D,YAChF,CACJC,KAAK,CAALA,CADI,CAEJC,SAAS,CAATA,CAFI,CAGJC,aAAa,CAAbA,CAHI,CAIJC,WAAW,CAAXA,CAJI,CAKJC,YAAY,CAAZA,CALI,CAMJC,cAAc,CAAdA,CANI,CAOJC,aAAa,CAAbA,CAPI,CAQJC,cAAc,CAAdA,CARI,CASJC,MAAM,CAANA,CATI,CAUJC,WAAW,CAAXA,CAVI,CAWJC,gBAAgB,CAAhBA,CAXI,CAYJC,MAAM,CAANA,CAZI,EAcFb,CAfkF,CAcjFc,CAdiF,0BAelFd,CAfkF,0KAiBhF,CAACe,CAAD,CAAc,CAAEC,MAAM,CAANA,CAAF,CAAUC,GAAG,CAAHA,CAAV,CAAd,EAAiCpB,OAAO,EAjBwC,CAmBhFqB,CAAa,CAAkC,QAA/B,mBAAOlB,CAAK,CAACmB,KAAb,qBAAO,EAAaC,MAApB,EAA0CpB,CAAK,CAACmB,KAAN,CAAYC,MAAZ,CAAqB,CAA/D,OAnBgE,CAqBtF,MACE,yCACE,oBAAC,MAAD,kBACMN,CADN,EAEE,IAAI,CAAC,GAFP,CAGE,IAAI,CAAC,OAHP,CAIE,SAAS,CAAEhB,YAAY,CAAC,IAAD,CAAO,CAACK,CAAD,CAAP,CAJzB,CAKE,QAAQ,CAAEP,aALZ,CAME,GAAG,CAAEK,CANP,CAOE,OAAO,CAAEe,CAPX,GADF,CAUE,KAAC,OAAD,EACE,SAAS,CAAElB,YAAY,CAAC,SAAD,CAAY,CAACc,CAAD,CAAZ,CADzB,CAEE,QAAQ,CAAC,MAFX,CAGE,MAAM,CAAEG,CAHV,CAIE,cAAc,CAAEE,CAJlB,CAKE,IAAI,CAAC,GALP,CAME,KAAK,CAAE,CAAEG,MAAM,CAAEF,CAAV,CANT,SAQE,KAAC,YAAD,EACE,SAAS,CAAEpB,YAAY,CAAC,MAAD,CADzB,CAEE,KAAK,CAAEI,CAFT,CAGE,aAAa,CAAEE,CAHjB,CAIE,WAAW,CAAEC,CAJf,CAKE,YAAY,CAAEC,CALhB,CAME,cAAc,CAAEC,CANlB,CAOE,aAAa,CAAEC,CAPjB,CAQE,cAAc,CAAEC,CARlB,CASE,WAAW,CAAEE,CATf,CAUE,MAAM,CAAED,CAVV,CAWE,MAAM,CAAEG,CAXV,EARF,CAVF,CAkCH,CAxDD,CA0DA,MAAO,MAAMQ,CAAAA,UAAU,CAAG9B,UAAU,CAACQ,gBAAD,CAA7B,CAEP","sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { MobileMenuProps, MobileMenuComponent } from './types'\n\nimport { VerticalMenu } from '@/VerticalMenu'\nimport { Sidebar } from '@consta/uikit/Sidebar'\n\nimport { Button } from '@consta/uikit/Button'\n\nimport { IconHamburger } from '@consta/uikit/IconHamburger'\nimport { useFlag } from '@consta/uikit/useFlag'\n\nimport './MobileMenu.css'\n\nexport const cnMobileMenu = cn('MobileMenu')\n\nconst MobileMenuRender = (props: MobileMenuProps, ref: React.Ref<HTMLButtonElement>) => {\n const {\n items,\n className,\n getItemActive,\n getItemHref,\n getItemLabel,\n getItemOnClick,\n getItemTarget,\n getItemSubMenu,\n header,\n onItemClick,\n sidebarClassName,\n footer,\n ...otherProps\n } = props\n\n const [visibleMenu, { toogle, off }] = useFlag()\n\n const elementZIndex = typeof props.style?.zIndex === 'number' ? props.style.zIndex + 1 : undefined\n\n return (\n <>\n <Button\n {...otherProps}\n size=\"s\"\n view=\"clear\"\n className={cnMobileMenu(null, [className])}\n iconLeft={IconHamburger}\n ref={ref}\n onClick={toogle}\n />\n <Sidebar\n className={cnMobileMenu('Sidebar', [sidebarClassName])}\n position=\"left\"\n isOpen={visibleMenu}\n onClickOutside={off}\n size=\"m\"\n style={{ zIndex: elementZIndex }}\n >\n <VerticalMenu\n className={cnMobileMenu('Menu')}\n items={items}\n getItemActive={getItemActive}\n getItemHref={getItemHref}\n getItemLabel={getItemLabel}\n getItemOnClick={getItemOnClick}\n getItemTarget={getItemTarget}\n getItemSubMenu={getItemSubMenu}\n onItemClick={onItemClick}\n header={header}\n footer={footer}\n />\n </Sidebar>\n </>\n )\n}\n\nexport const MobileMenu = forwardRef(MobileMenuRender) as MobileMenuComponent\n\nexport * from './types'\n"],"file":"MobileMenu.js"}
|
package/MobileMenu/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import { DefaultItem, VerticalMenuPropGetItemHref, VerticalMenuPropGetItemLabel, VerticalMenuPropGetItemActive, VerticalMenuPropGetItemOnClick, VerticalMenuPropOnItemClick, VerticalMenuPropGetItemTarget, VerticalMenuPropGetItemSubMenu } from "../VerticalMenu/index";
|
|
1
|
+
import { DefaultItem, VerticalMenuPropGetItemHref, VerticalMenuPropGetItemLabel, VerticalMenuPropGetItemActive, VerticalMenuPropGetItemOnClick, VerticalMenuPropOnItemClick, VerticalMenuPropGetItemTarget, VerticalMenuPropGetItemSubMenu, VerticalMenuPropGetItemGroup } from "../VerticalMenu/index";
|
|
3
2
|
import { PropsWithHTMLAttributesAndRef } from "../__private__/utils/types/PropsWithHTMLAttributes";
|
|
3
|
+
import React from 'react';
|
|
4
4
|
export declare type MobileMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttributesAndRef<{
|
|
5
5
|
items: ITEM[];
|
|
6
6
|
getItemHref?: VerticalMenuPropGetItemHref<ITEM>;
|
|
@@ -9,13 +9,16 @@ export declare type MobileMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttribute
|
|
|
9
9
|
getItemActive?: VerticalMenuPropGetItemActive<ITEM>;
|
|
10
10
|
getItemOnClick?: VerticalMenuPropGetItemOnClick<ITEM>;
|
|
11
11
|
getItemSubMenu?: VerticalMenuPropGetItemSubMenu<ITEM>;
|
|
12
|
+
getItemGroup?: VerticalMenuPropGetItemGroup<ITEM>;
|
|
12
13
|
onItemClick?: VerticalMenuPropOnItemClick<ITEM>;
|
|
13
14
|
header?: React.ReactNode;
|
|
14
15
|
sidebarClassName?: string;
|
|
15
16
|
children?: never;
|
|
17
|
+
footer?: React.ReactNode;
|
|
16
18
|
}, HTMLButtonElement> & (ITEM extends {
|
|
17
19
|
label: DefaultItem['label'];
|
|
18
20
|
} ? {} : {
|
|
19
21
|
getItemLabel: VerticalMenuPropGetItemLabel<ITEM>;
|
|
20
22
|
});
|
|
21
23
|
export declare type MobileMenuComponent = <ITEM = DefaultItem>(props: MobileMenuProps<ITEM>) => React.ReactElement | null;
|
|
24
|
+
export { DefaultItem };
|
package/MobileMenu/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import{DefaultItem}from"../VerticalMenu";export{DefaultItem};
|
|
2
2
|
//# sourceMappingURL=types.js.map
|
package/MobileMenu/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/MobileMenu/types.ts"],"names":["DefaultItem"],"mappings":"AAAA,OACEA,WADF,uBAyCA,OAASA,WAAT","sourcesContent":["import {\n DefaultItem,\n VerticalMenuPropGetItemHref,\n VerticalMenuPropGetItemLabel,\n VerticalMenuPropGetItemActive,\n VerticalMenuPropGetItemOnClick,\n VerticalMenuPropOnItemClick,\n VerticalMenuPropGetItemTarget,\n VerticalMenuPropGetItemSubMenu,\n VerticalMenuPropGetItemGroup,\n} from '@/VerticalMenu'\n\nimport { PropsWithHTMLAttributesAndRef } from '@/__private__/utils/types/PropsWithHTMLAttributes'\nimport React from 'react'\n\nexport type MobileMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttributesAndRef<\n {\n items: ITEM[]\n getItemHref?: VerticalMenuPropGetItemHref<ITEM>\n getItemLabel?: VerticalMenuPropGetItemLabel<ITEM>\n getItemTarget?: VerticalMenuPropGetItemTarget<ITEM>\n getItemActive?: VerticalMenuPropGetItemActive<ITEM>\n getItemOnClick?: VerticalMenuPropGetItemOnClick<ITEM>\n getItemSubMenu?: VerticalMenuPropGetItemSubMenu<ITEM>\n getItemGroup?: VerticalMenuPropGetItemGroup<ITEM>\n onItemClick?: VerticalMenuPropOnItemClick<ITEM>\n header?: React.ReactNode\n sidebarClassName?: string\n children?: never\n footer?: React.ReactNode\n },\n HTMLButtonElement\n> &\n (ITEM extends { label: DefaultItem['label'] }\n ? {}\n : { getItemLabel: VerticalMenuPropGetItemLabel<ITEM> })\n\nexport type MobileMenuComponent = <ITEM = DefaultItem>(\n props: MobileMenuProps<ITEM>\n) => React.ReactElement | null\n\nexport { DefaultItem }\n"],"file":"types.js"}
|