@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.
Files changed (107) hide show
  1. package/Badges/Badges.js +1 -1
  2. package/Badges/Badges.js.map +1 -1
  3. package/ButtonMenu/ButtonMenu.css +1 -0
  4. package/ButtonMenu/ButtonMenu.d.ts +5 -0
  5. package/ButtonMenu/ButtonMenu.js +2 -0
  6. package/ButtonMenu/ButtonMenu.js.map +1 -0
  7. package/ButtonMenu/helpers.d.ts +43 -0
  8. package/ButtonMenu/helpers.js +2 -0
  9. package/ButtonMenu/helpers.js.map +1 -0
  10. package/ButtonMenu/index.d.ts +1 -0
  11. package/ButtonMenu/index.js +2 -0
  12. package/ButtonMenu/index.js.map +1 -0
  13. package/ButtonMenu/types.d.ts +38 -0
  14. package/ButtonMenu/types.js +2 -0
  15. package/ButtonMenu/types.js.map +1 -0
  16. package/Header/Header.css +1 -1
  17. package/Header/Header.js +1 -1
  18. package/Header/Header.js.map +1 -1
  19. package/Header/HeaderSearch/HeaderSearch.css +1 -0
  20. package/Header/HeaderSearch/HeaderSearch.d.ts +15 -0
  21. package/Header/HeaderSearch/HeaderSearch.js +2 -0
  22. package/Header/HeaderSearch/HeaderSearch.js.map +1 -0
  23. package/Header/HeaderSearch/index.d.ts +1 -0
  24. package/Header/HeaderSearch/index.js +2 -0
  25. package/Header/HeaderSearch/index.js.map +1 -0
  26. package/Header/helpers.d.ts +9 -0
  27. package/Header/helpers.js +2 -0
  28. package/Header/helpers.js.map +1 -0
  29. package/Header/types.d.ts +99 -13
  30. package/Languages/Languages.d.ts +3 -0
  31. package/Languages/Languages.js +2 -0
  32. package/Languages/Languages.js.map +1 -0
  33. package/Languages/helpers.d.ts +20 -0
  34. package/Languages/helpers.js +2 -0
  35. package/Languages/helpers.js.map +1 -0
  36. package/Languages/index.d.ts +1 -0
  37. package/Languages/index.js +2 -0
  38. package/Languages/index.js.map +1 -0
  39. package/Languages/types.d.ts +23 -0
  40. package/Languages/types.js +2 -0
  41. package/Languages/types.js.map +1 -0
  42. package/Layout/Layout.js +1 -1
  43. package/Layout/Layout.js.map +1 -1
  44. package/Menu/Menu.js +1 -1
  45. package/Menu/Menu.js.map +1 -1
  46. package/Menu/helpers.d.ts +29 -16
  47. package/Menu/helpers.js +1 -1
  48. package/Menu/helpers.js.map +1 -1
  49. package/Menu/types.d.ts +5 -5
  50. package/MobileMenu/MobileMenu.js +1 -1
  51. package/MobileMenu/MobileMenu.js.map +1 -1
  52. package/MobileMenu/types.d.ts +5 -2
  53. package/MobileMenu/types.js +1 -1
  54. package/MobileMenu/types.js.map +1 -1
  55. package/Notifications/Notifications.js +1 -1
  56. package/Notifications/Notifications.js.map +1 -1
  57. package/Notifications/types.d.ts +3 -3
  58. package/NotificationsList/helpers.d.ts +15 -15
  59. package/NotificationsList/helpers.js.map +1 -1
  60. package/NotificationsList/types.d.ts +11 -11
  61. package/SelectMenu/SelectMenu.css +1 -0
  62. package/SelectMenu/SelectMenu.d.ts +5 -0
  63. package/SelectMenu/SelectMenu.js +2 -0
  64. package/SelectMenu/SelectMenu.js.map +1 -0
  65. package/SelectMenu/helpers.d.ts +40 -0
  66. package/SelectMenu/helpers.js +2 -0
  67. package/SelectMenu/helpers.js.map +1 -0
  68. package/SelectMenu/index.d.ts +1 -0
  69. package/SelectMenu/index.js +2 -0
  70. package/SelectMenu/index.js.map +1 -0
  71. package/SelectMenu/types.d.ts +33 -0
  72. package/SelectMenu/types.js +2 -0
  73. package/SelectMenu/types.js.map +1 -0
  74. package/TileMenu/TileMenu.js +1 -1
  75. package/TileMenu/TileMenu.js.map +1 -1
  76. package/TileMenu/TileMenuList/TileMenuList.js +1 -1
  77. package/TileMenu/TileMenuList/TileMenuList.js.map +1 -1
  78. package/TileMenu/helpers.d.ts +11 -11
  79. package/TileMenu/helpers.js +1 -1
  80. package/TileMenu/helpers.js.map +1 -1
  81. package/TileMenu/types.d.ts +10 -10
  82. package/TileMenu/types.js.map +1 -1
  83. package/VerticalMenu/VerticalMenu.js +1 -1
  84. package/VerticalMenu/VerticalMenu.js.map +1 -1
  85. package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js +1 -1
  86. package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js.map +1 -1
  87. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.css +1 -1
  88. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js +1 -1
  89. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js.map +1 -1
  90. package/VerticalMenu/helpers.d.ts +6 -3
  91. package/VerticalMenu/helpers.js +1 -1
  92. package/VerticalMenu/helpers.js.map +1 -1
  93. package/VerticalMenu/types.d.ts +8 -0
  94. package/__private__/AnimatedContextMenu/AnimatedContextMenu.css +1 -1
  95. package/__private__/AnimatedContextMenu/AnimatedContextMenu.js +1 -1
  96. package/__private__/AnimatedContextMenu/AnimatedContextMenu.js.map +1 -1
  97. package/__private__/helpers/getItemClick.d.ts +7 -0
  98. package/__private__/helpers/getItemClick.js +2 -0
  99. package/__private__/helpers/getItemClick.js.map +1 -0
  100. package/package.json +2 -2
  101. package/__private__/hooks/useHideElementsLine.d.ts +0 -8
  102. package/__private__/hooks/useHideElementsLine.js +0 -2
  103. package/__private__/hooks/useHideElementsLine.js.map +0 -1
  104. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.css +0 -1
  105. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.d.ts +0 -4
  106. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js +0 -2
  107. 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 { DefaultItem as DefaultMenuItem, MenuPropOnItemClick, MenuPropGetItemHref, MenuPropGetItemLabel, MenuPropGetItemTarget, MenuPropGetItemActive, MenuPropGetItemOnClick, MenuPropGetItemSubMenu } from "../Menu/index";
3
- import { NotificationsListPropGetItemLabel, NotificationsListPropGetActionIcon, NotificationsListPropGetActionLabel, NotificationsListPropGetActionOnClick, NotificationsListPropGetGroupId, NotificationsListPropGetGroupLabel, NotificationsListPropGetItemActions, NotificationsListPropGetItemBadges, NotificationsListPropGetItemDate, NotificationsListPropGetItemDescription, NotificationsListPropGetItemGroup, NotificationsListPropGetItemImage, NotificationsListPropGetItemRead, NotificationsListPropGetItemView, NotificationsListPropGroupLabelFormat, DefaultAction as DefaultNotificationAction, DefaultGroup as DefaultNotificationGroup, DefaultItem as DefaultNotificationItem, NotificationsListPropItemDateFormat } from "../NotificationsList/index";
4
- import { TileMenuPropGetItemImage, TileMenuPropGetItemDescription, TileMenuPropGetItemHref, TileMenuPropGetItemOnClick, TileMenuPropGetItemTitle, TileMenuOnItemClick, TileMenuPropView, DefaultItem as DefaultTileMenuItem } from "../TileMenu/index";
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
- export declare type HeaderProps<MENU_ITEM = DefaultMenuItem, NOTIFICATION_ITEM = DefaultNotificationItem, NOTIFICATION_GROUP = DefaultNotificationGroup, NOTIFICATION_ACTION = DefaultNotificationAction, NOTIFICATION_GROUP_BY_DAY extends boolean = false, TILE_MENU_ITEM = DefaultTileMenuItem> = PropsWithHTMLAttributesAndRef<{
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
- getTileMenuItemTitle?: TileMenuPropGetItemTitle<TILE_MENU_ITEM>;
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: DefaultMenuItem['label'] | unknown;
118
+ label: HeaderDefaultMenuItem['label'] | unknown;
57
119
  } ? {} : {
58
120
  getMenuItemLabel: MenuPropGetItemLabel<MENU_ITEM>;
59
121
  }) & (NOTIFICATION_ACTION extends {
60
- label: DefaultNotificationAction['label'] | unknown;
122
+ label: HeaderDefaultNotificationAction['label'] | unknown;
61
123
  } ? {} : {
62
124
  getNotificationsActionLabel: NotificationsListPropGetItemActions<NOTIFICATION_ACTION>;
63
125
  }) & (NOTIFICATION_GROUP extends {
64
- label: DefaultNotificationGroup['label'] | unknown;
126
+ label: HeaderDefaultNotificationGroup['label'] | unknown;
65
127
  } ? {} : {
66
128
  getNotificationsGroupLabel: NotificationsListPropGetGroupLabel<NOTIFICATION_GROUP>;
67
129
  }) & (NOTIFICATION_GROUP extends {
68
- id: DefaultNotificationGroup['id'] | unknown;
130
+ id: HeaderDefaultNotificationGroup['id'] | unknown;
69
131
  } ? {} : {
70
132
  getNotificationsGroupId: NotificationsListPropGetGroupId<NOTIFICATION_GROUP>;
71
133
  }) & (NOTIFICATION_ITEM extends {
72
- label: DefaultNotificationItem['label'] | unknown;
134
+ label: HeaderDefaultNotificationItem['label'] | unknown;
73
135
  } ? {} : {
74
136
  getNotificationsItemLabel: NotificationsListPropGetItemLabel<NOTIFICATION_ITEM>;
75
137
  }) & (TILE_MENU_ITEM extends {
76
- title: DefaultTileMenuItem['title'] | unknown;
138
+ label: HeaderDefaultTileMenuItem['label'] | unknown;
77
139
  } ? {} : {
78
- getTileMenuItemTitle: TileMenuPropGetItemTitle<TILE_MENU_ITEM>;
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 = DefaultMenuItem, NOTIFICATION_ITEM = DefaultNotificationItem, NOTIFICATION_GROUP = DefaultNotificationGroup, NOTIFICATION_ACTION = DefaultNotificationAction, NOTIFICATION_GROUP_BY_DAY extends boolean = false, TILE_MENU_ITEM = DefaultTileMenuItem>(props: HeaderProps<MENU_ITEM, NOTIFICATION_ITEM, NOTIFICATION_GROUP, NOTIFICATION_ACTION, NOTIFICATION_GROUP_BY_DAY, TILE_MENU_ITEM>) => React.ReactElement | null;
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,3 @@
1
+ import { LanguagesComponent } from "./types";
2
+ export declare const Languages: LanguagesComponent;
3
+ export * from "./types";
@@ -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,2 @@
1
+ export*from"./Languages";
2
+ //# sourceMappingURL=index.js.map
@@ -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,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -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
@@ -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,EAAI,KAAC,SAAD,EAAW,SAAS,CAAEL,QAAQ,CAAC,KAAD,CAA9B,CAAuC,OAAO,CAAEK,CAAhD,CAAwD,MAAM,CAAC,GAA/D,EADb,CAEG,CAACE,CAAS,EAAIC,CAAd,GACC,KAAC,SAAD,EACE,SAAS,CAAER,QAAQ,CAAC,KAAD,CADrB,CAEE,OAAO,CAAEO,CAAS,EAAIC,CAFxB,CAGE,MAAM,CAAEV,iBAAiB,CAACS,CAAD,CAAjB,CAA+BA,CAAS,CAACG,MAAzC,OAHV,EAHJ,CASGJ,CAAS,EAAI,KAAC,SAAD,EAAW,SAAS,CAAEN,QAAQ,CAAC,KAAD,CAA9B,CAAuC,OAAO,CAAEM,CAAhD,CAA2D,MAAM,CAAC,GAAlE,EAThB,CAYH,CAhB+B,CAAzB,CAkBP","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 && <LayoutRow className={cnLayout('Row')} content={rowTop} height=\"s\" />}\n {(rowCenter || children) && (\n <LayoutRow\n className={cnLayout('Row')}\n content={rowCenter || children}\n height={LayoutRowIsObject(rowCenter) ? rowCenter.height : undefined}\n />\n )}\n {rowBottom && <LayoutRow className={cnLayout('Row')} content={rowBottom} height=\"s\" />}\n </div>\n )\n})\n\nexport * from './types'\n"],"file":"Layout.js"}
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{useHideElementsLine}from"../__private__/hooks/useHideElementsLine";import{withDefaultGetters,getItemClick,animateTimeout}from"./helpers";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}=useHideElementsLine(e),x=useRef(null),y=useMutableRef(h),z=useCallback(a=>y.current(a)?"a":"span",[]),A=useCallback(a=>y.current(a)?{href:y.current(a)}:{},[]),B="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:z,getItemHTMLAttributes:A,style:{zIndex:B}}))}),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:z,getItemHTMLAttributes:A,style:{zIndex:B}}))))};export const Menu=forwardRef(MenuRender);export*from"./types";
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 { DefaultItem, MenuProps, MenuPropGetItemActive, MenuPropGetItemHref, MenuPropGetItemLabel, MenuPropGetItemOnClick, MenuPropGetItemSubMenu, MenuPropGetItemTarget, MenuPropOnItemClick } from "./types";
3
- export declare const defaultGetItemLabel: MenuPropGetItemLabel<DefaultItem>;
4
- export declare const defaultGetItemActive: MenuPropGetItemActive<DefaultItem>;
5
- export declare const defaultGetItemHref: MenuPropGetItemHref<DefaultItem>;
6
- export declare const defaultGetItemOnClick: MenuPropGetItemOnClick<DefaultItem>;
7
- export declare const defaultGetItemTarget: MenuPropGetItemTarget<DefaultItem>;
8
- export declare const defaultGetItemSubMenu: MenuPropGetItemSubMenu<DefaultItem>;
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<DefaultItem> | MenuPropGetItemLabel<ITEM>;
24
- getItemActive: MenuPropGetItemActive<DefaultItem> | MenuPropGetItemActive<ITEM>;
25
- getItemHref: MenuPropGetItemHref<DefaultItem> | MenuPropGetItemHref<ITEM>;
26
- getItemOnClick: MenuPropGetItemOnClick<DefaultItem> | MenuPropGetItemOnClick<ITEM>;
27
- getItemTarget: MenuPropGetItemTarget<DefaultItem> | MenuPropGetItemTarget<ITEM>;
28
- getItemSubMenu: MenuPropGetItemSubMenu<DefaultItem> | MenuPropGetItemSubMenu<ITEM>;
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 function withDefaultGetters(a){return _objectSpread({},a,{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemActive:a.getItemActive||defaultGetItemActive,getItemHref:a.getItemHref||defaultGetItemHref,getItemOnClick:a.getItemOnClick||defaultGetItemOnClick,getItemTarget:a.getItemTarget||defaultGetItemTarget,getItemSubMenu:a.getItemSubMenu||defaultGetItemSubMenu})}export function getItemClick(a,b,c){return d=>{var e;null===c||void 0===c?void 0:c({e:d,item:a}),null===(e=b(a))||void 0===e?void 0:e(d)}}export const animateTimeout=200;
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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Menu/helpers.ts"],"names":["defaultGetItemLabel","item","label","defaultGetItemActive","active","defaultGetItemHref","href","defaultGetItemOnClick","onClick","defaultGetItemTarget","target","defaultGetItemSubMenu","subMenu","withDefaultGetters","props","getItemLabel","getItemActive","getItemHref","getItemOnClick","getItemTarget","getItemSubMenu","getItemClick","onItemClick","e","animateTimeout"],"mappings":"+DAYA,MAAO,MAAMA,CAAAA,mBAAsD,CAAGC,CAAI,EAAIA,CAAI,CAACC,KAA5E,CACP,MAAO,MAAMC,CAAAA,oBAAwD,CAAGF,CAAI,EAAIA,CAAI,CAACG,MAA9E,CACP,MAAO,MAAMC,CAAAA,kBAAoD,CAAGJ,CAAI,EAAIA,CAAI,CAACK,IAA1E,CACP,MAAO,MAAMC,CAAAA,qBAA0D,CAAGN,CAAI,EAAIA,CAAI,CAACO,OAAhF,CACP,MAAO,MAAMC,CAAAA,oBAAwD,CAAGR,CAAI,EAAIA,CAAI,CAACS,MAA9E,CACP,MAAO,MAAMC,CAAAA,qBAA0D,CAAGV,CAAI,EAAIA,CAAI,CAACW,OAAhF,CAEP,MAAO,SAASC,CAAAA,kBAAT,CAAkCC,CAAlC,CAA0D,CAC/D,wBACKA,CADL,EAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBf,mBAFtC,CAGEgB,aAAa,CAAEF,CAAK,CAACE,aAAN,EAAuBb,oBAHxC,CAIEc,WAAW,CAAEH,CAAK,CAACG,WAAN,EAAqBZ,kBAJpC,CAKEa,cAAc,CAAEJ,CAAK,CAACI,cAAN,EAAwBX,qBAL1C,CAMEY,aAAa,CAAEL,CAAK,CAACK,aAAN,EAAuBV,oBANxC,CAOEW,cAAc,CAAEN,CAAK,CAACM,cAAN,EAAwBT,qBAP1C,EASD,CAED,MAAO,SAASU,CAAAA,YAAT,CACLpB,CADK,CAELiB,CAFK,CAGLI,CAHK,CAIoB,CACzB,MAAOC,CAAAA,CAAC,EAAI,cACVD,CADU,WACVA,CADU,QACVA,CAAW,CAAG,CAAEC,CAAC,CAADA,CAAF,CAAKtB,IAAI,CAAJA,CAAL,CAAH,CADD,WAEViB,CAAc,CAACjB,CAAD,CAFJ,qBAEV,EAAuBsB,CAAvB,CACD,CACF,CAED,MAAO,MAAMC,CAAAA,cAAc,CAAG,GAAvB","sourcesContent":["import {\n DefaultItem,\n MenuProps,\n MenuPropGetItemActive,\n MenuPropGetItemHref,\n MenuPropGetItemLabel,\n MenuPropGetItemOnClick,\n MenuPropGetItemSubMenu,\n MenuPropGetItemTarget,\n MenuPropOnItemClick,\n} from './types'\n\nexport const defaultGetItemLabel: MenuPropGetItemLabel<DefaultItem> = item => item.label\nexport const defaultGetItemActive: MenuPropGetItemActive<DefaultItem> = item => item.active\nexport const defaultGetItemHref: MenuPropGetItemHref<DefaultItem> = item => item.href\nexport const defaultGetItemOnClick: MenuPropGetItemOnClick<DefaultItem> = item => item.onClick\nexport const defaultGetItemTarget: MenuPropGetItemTarget<DefaultItem> = item => item.target\nexport const defaultGetItemSubMenu: MenuPropGetItemSubMenu<DefaultItem> = item => item.subMenu\n\nexport function withDefaultGetters<ITEM>(props: MenuProps<ITEM>) {\n return {\n ...props,\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 getItemClick<ITEM>(\n item: ITEM,\n getItemOnClick: MenuPropGetItemOnClick<ITEM>,\n onItemClick?: MenuPropOnItemClick<ITEM>\n): React.MouseEventHandler {\n return e => {\n onItemClick?.({ e, item })\n getItemOnClick(item)?.(e)\n }\n}\n\nexport const animateTimeout = 200\n"],"file":"helpers.js"}
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 DefaultItem = {
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?: DefaultItem[];
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 = DefaultItem> = PropsWithHTMLAttributesAndRef<{
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: DefaultItem['label'];
31
+ label: MenuDefaultItem['label'];
32
32
  } ? {} : {
33
33
  getItemLabel: MenuPropGetItemLabel<ITEM>;
34
34
  });
35
- export declare type MenuComponent = <ITEM = DefaultItem>(props: MenuProps<ITEM>) => React.ReactElement | null;
35
+ export declare type MenuComponent = <ITEM = MenuDefaultItem>(props: MenuProps<ITEM>) => React.ReactElement | null;
@@ -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,o=_objectWithoutProperties(a,["items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","header","onItemClick","sidebarClassName"]),[p,{toogle:q,off:r}]=useFlag(),s="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({},o,{size:"s",view:"clear",className:cnMobileMenu(null,[e]),iconLeft:IconHamburger,ref:b,onClick:q})),_jsx(Sidebar,{className:cnMobileMenu("Sidebar",[n]),position:"left",isOpen:p,onClickOutside:r,size:"m",style:{zIndex:s}},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})))};export const MobileMenu=forwardRef(MobileMenuRender);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{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,EAaFZ,CAdkF,CAajFa,CAbiF,0BAclFb,CAdkF,iKAgBhF,CAACc,CAAD,CAAc,CAAEC,MAAM,CAANA,CAAF,CAAUC,GAAG,CAAHA,CAAV,CAAd,EAAiCnB,OAAO,EAhBwC,CAkBhFoB,CAAa,CAAkC,QAA/B,mBAAOjB,CAAK,CAACkB,KAAb,qBAAO,EAAaC,MAApB,EAA0CnB,CAAK,CAACkB,KAAN,CAAYC,MAAZ,CAAqB,CAA/D,OAlBgE,CAoBtF,MACE,yCACE,oBAAC,MAAD,kBACMN,CADN,EAEE,IAAI,CAAC,GAFP,CAGE,IAAI,CAAC,OAHP,CAIE,SAAS,CAAEf,YAAY,CAAC,IAAD,CAAO,CAACK,CAAD,CAAP,CAJzB,CAKE,QAAQ,CAAEP,aALZ,CAME,GAAG,CAAEK,CANP,CAOE,OAAO,CAAEc,CAPX,GADF,CAUE,KAAC,OAAD,EACE,SAAS,CAAEjB,YAAY,CAAC,SAAD,CAAY,CAACc,CAAD,CAAZ,CADzB,CAEE,QAAQ,CAAC,MAFX,CAGE,MAAM,CAAEE,CAHV,CAIE,cAAc,CAAEE,CAJlB,CAKE,IAAI,CAAC,GALP,CAME,KAAK,CAAE,CAAEG,MAAM,CAAEF,CAAV,CANT,SAQE,KAAC,YAAD,EACE,SAAS,CAAEnB,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,EARF,CAVF,CAiCH,CAtDD,CAwDA,MAAO,MAAMU,CAAAA,UAAU,CAAG7B,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 ...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 />\n </Sidebar>\n </>\n )\n}\n\nexport const MobileMenu = forwardRef(MobileMenuRender) as MobileMenuComponent\n\nexport * from './types'\n"],"file":"MobileMenu.js"}
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"}
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
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 };
@@ -1,2 +1,2 @@
1
-
1
+ import{DefaultItem}from"../VerticalMenu";export{DefaultItem};
2
2
  //# sourceMappingURL=types.js.map
@@ -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"}