@consta/header 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/BannerBar/index.d.ts +1 -0
  2. package/BannerBar/index.js +1 -0
  3. package/GlobalMenu/index.d.ts +1 -0
  4. package/GlobalMenu/index.js +1 -0
  5. package/MegaMenu/index.d.ts +1 -0
  6. package/MegaMenu/index.js +1 -0
  7. package/NavBar/index.d.ts +1 -0
  8. package/NavBar/index.js +1 -0
  9. package/README.md +50 -38
  10. package/__internal__/src/components/Badges/Badges.js.map +1 -1
  11. package/__internal__/src/components/Badges/helpers.js.map +1 -1
  12. package/__internal__/src/components/Badges/types.d.ts +6 -6
  13. package/__internal__/src/components/BannerBar/BannerBar.css +1 -0
  14. package/__internal__/src/components/BannerBar/BannerBar.d.ts +3 -0
  15. package/__internal__/src/components/BannerBar/BannerBar.js +2 -0
  16. package/__internal__/src/components/BannerBar/BannerBar.js.map +1 -0
  17. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.css +1 -0
  18. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.d.ts +3 -0
  19. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.js +2 -0
  20. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.js.map +1 -0
  21. package/__internal__/src/components/BannerBar/BannerBarItem/index.d.ts +1 -0
  22. package/__internal__/src/components/BannerBar/BannerBarItem/index.js +2 -0
  23. package/__internal__/src/components/BannerBar/BannerBarItem/index.js.map +1 -0
  24. package/__internal__/src/components/BannerBar/helpers.d.ts +274 -0
  25. package/__internal__/src/components/BannerBar/helpers.js +2 -0
  26. package/__internal__/src/components/BannerBar/helpers.js.map +1 -0
  27. package/__internal__/src/components/BannerBar/index.d.ts +3 -0
  28. package/__internal__/src/components/BannerBar/index.js +2 -0
  29. package/__internal__/src/components/BannerBar/index.js.map +1 -0
  30. package/__internal__/src/components/BannerBar/types.d.ts +42 -0
  31. package/__internal__/src/components/BannerBar/types.js +2 -0
  32. package/__internal__/src/components/BannerBar/types.js.map +1 -0
  33. package/__internal__/src/components/ButtonMenu/ButtonMenu.js.map +1 -1
  34. package/__internal__/src/components/ButtonMenu/helpers.d.ts +2 -2
  35. package/__internal__/src/components/ButtonMenu/helpers.js.map +1 -1
  36. package/__internal__/src/components/ButtonMenu/types.d.ts +9 -9
  37. package/__internal__/src/components/GlobalMenu/GlobalMenu.css +1 -0
  38. package/__internal__/src/components/GlobalMenu/GlobalMenu.d.ts +3 -0
  39. package/__internal__/src/components/GlobalMenu/GlobalMenu.js +2 -0
  40. package/__internal__/src/components/GlobalMenu/GlobalMenu.js.map +1 -0
  41. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.css +1 -0
  42. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.d.ts +3 -0
  43. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.js +2 -0
  44. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.js.map +1 -0
  45. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/index.d.ts +1 -0
  46. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/index.js +2 -0
  47. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/index.js.map +1 -0
  48. package/__internal__/src/components/GlobalMenu/helper.d.ts +281 -0
  49. package/__internal__/src/components/GlobalMenu/helper.js +2 -0
  50. package/__internal__/src/components/GlobalMenu/helper.js.map +1 -0
  51. package/__internal__/src/components/GlobalMenu/index.d.ts +2 -0
  52. package/__internal__/src/components/GlobalMenu/index.js +2 -0
  53. package/__internal__/src/components/GlobalMenu/index.js.map +1 -0
  54. package/__internal__/src/components/GlobalMenu/types.d.ts +75 -0
  55. package/__internal__/src/components/GlobalMenu/types.js +2 -0
  56. package/__internal__/src/components/GlobalMenu/types.js.map +1 -0
  57. package/__internal__/src/components/Header/Header.js.map +1 -1
  58. package/__internal__/src/components/Header/HeaderLogin/HeaderLogin.d.ts +2 -2
  59. package/__internal__/src/components/Header/HeaderLogin/HeaderLogin.js.map +1 -1
  60. package/__internal__/src/components/Header/HeaderLogo/HeaderLogo.d.ts +2 -2
  61. package/__internal__/src/components/Header/HeaderLogo/HeaderLogo.js.map +1 -1
  62. package/__internal__/src/components/Header/HeaderSearch/HeaderSearch.d.ts +1 -1
  63. package/__internal__/src/components/Header/HeaderSearch/HeaderSearch.js.map +1 -1
  64. package/__internal__/src/components/Header/helpers.d.ts +1 -1
  65. package/__internal__/src/components/Header/helpers.js.map +1 -1
  66. package/__internal__/src/components/Header/types.d.ts +12 -12
  67. package/__internal__/src/components/Languages/Languages.js.map +1 -1
  68. package/__internal__/src/components/Languages/helpers.d.ts +1 -1
  69. package/__internal__/src/components/Languages/helpers.js.map +1 -1
  70. package/__internal__/src/components/Languages/types.d.ts +3 -3
  71. package/__internal__/src/components/Layout/Layout.d.ts +1 -1
  72. package/__internal__/src/components/Layout/Layout.js.map +1 -1
  73. package/__internal__/src/components/Layout/LayoutRow/LayoutRow.css +1 -1
  74. package/__internal__/src/components/Layout/LayoutRow/LayoutRow.d.ts +1 -1
  75. package/__internal__/src/components/Layout/LayoutRow/LayoutRow.js.map +1 -1
  76. package/__internal__/src/components/Layout/helpers.js.map +1 -1
  77. package/__internal__/src/components/Layout/types.d.ts +3 -3
  78. package/__internal__/src/components/MegaMenu/MegaMenu.css +1 -0
  79. package/__internal__/src/components/MegaMenu/MegaMenu.d.ts +4 -0
  80. package/__internal__/src/components/MegaMenu/MegaMenu.js +2 -0
  81. package/__internal__/src/components/MegaMenu/MegaMenu.js.map +1 -0
  82. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.css +1 -0
  83. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.d.ts +3 -0
  84. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.js +2 -0
  85. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.js.map +1 -0
  86. package/__internal__/src/components/MegaMenu/MegaMenuBox/index.d.ts +2 -0
  87. package/__internal__/src/components/MegaMenu/MegaMenuBox/index.js +2 -0
  88. package/__internal__/src/components/MegaMenu/MegaMenuBox/index.js.map +1 -0
  89. package/__internal__/src/components/MegaMenu/MegaMenuBox/types.d.ts +10 -0
  90. package/__internal__/src/components/MegaMenu/MegaMenuBox/types.js +2 -0
  91. package/__internal__/src/components/MegaMenu/MegaMenuBox/types.js.map +1 -0
  92. package/__internal__/src/components/MegaMenu/helper.d.ts +301 -0
  93. package/__internal__/src/components/MegaMenu/helper.js +2 -0
  94. package/__internal__/src/components/MegaMenu/helper.js.map +1 -0
  95. package/__internal__/src/components/MegaMenu/index.d.ts +3 -0
  96. package/__internal__/src/components/MegaMenu/index.js +2 -0
  97. package/__internal__/src/components/MegaMenu/index.js.map +1 -0
  98. package/__internal__/src/components/MegaMenu/types.d.ts +65 -0
  99. package/__internal__/src/components/MegaMenu/types.js +2 -0
  100. package/__internal__/src/components/MegaMenu/types.js.map +1 -0
  101. package/__internal__/src/components/Menu/Menu.css +1 -1
  102. package/__internal__/src/components/Menu/Menu.js +1 -1
  103. package/__internal__/src/components/Menu/Menu.js.map +1 -1
  104. package/__internal__/src/components/Menu/helpers.d.ts +2 -1
  105. package/__internal__/src/components/Menu/helpers.js.map +1 -1
  106. package/__internal__/src/components/Menu/types.d.ts +11 -10
  107. package/__internal__/src/components/Menu/types.js.map +1 -1
  108. package/__internal__/src/components/MobileMenu/MobileMenu.js.map +1 -1
  109. package/__internal__/src/components/MobileMenu/types.d.ts +2 -2
  110. package/__internal__/src/components/NavBar/NavBar.css +1 -0
  111. package/__internal__/src/components/NavBar/NavBar.d.ts +3 -0
  112. package/__internal__/src/components/NavBar/NavBar.js +2 -0
  113. package/__internal__/src/components/NavBar/NavBar.js.map +1 -0
  114. package/__internal__/src/components/NavBar/helper.d.ts +31 -0
  115. package/__internal__/src/components/NavBar/helper.js +2 -0
  116. package/__internal__/src/components/NavBar/helper.js.map +1 -0
  117. package/__internal__/src/components/NavBar/index.d.ts +1 -0
  118. package/__internal__/src/components/NavBar/index.js +2 -0
  119. package/__internal__/src/components/NavBar/index.js.map +1 -0
  120. package/__internal__/src/components/NavBar/types.d.ts +48 -0
  121. package/__internal__/src/components/NavBar/types.js +2 -0
  122. package/__internal__/src/components/NavBar/types.js.map +1 -0
  123. package/__internal__/src/components/NotificationCard/NotificationCard.d.ts +1 -1
  124. package/__internal__/src/components/NotificationCard/NotificationCard.js.map +1 -1
  125. package/__internal__/src/components/NotificationCard/helpers.js.map +1 -1
  126. package/__internal__/src/components/NotificationCard/types.d.ts +3 -3
  127. package/__internal__/src/components/Notifications/Notifications.js.map +1 -1
  128. package/__internal__/src/components/Notifications/types.d.ts +2 -2
  129. package/__internal__/src/components/NotificationsActions/NotificationsActions.js.map +1 -1
  130. package/__internal__/src/components/NotificationsActions/helpers.js.map +1 -1
  131. package/__internal__/src/components/NotificationsActions/types.d.ts +7 -7
  132. package/__internal__/src/components/NotificationsList/NotificationsList.js.map +1 -1
  133. package/__internal__/src/components/NotificationsList/helpers.d.ts +2 -2
  134. package/__internal__/src/components/NotificationsList/helpers.js.map +1 -1
  135. package/__internal__/src/components/NotificationsList/types.d.ts +23 -23
  136. package/__internal__/src/components/SelectMenu/SelectMenu.js.map +1 -1
  137. package/__internal__/src/components/SelectMenu/helpers.d.ts +1 -1
  138. package/__internal__/src/components/SelectMenu/helpers.js.map +1 -1
  139. package/__internal__/src/components/SelectMenu/types.d.ts +9 -9
  140. package/__internal__/src/components/Sidebar/Sidebar.d.ts +1 -1
  141. package/__internal__/src/components/Sidebar/Sidebar.js.map +1 -1
  142. package/__internal__/src/components/TileMenu/TileMenu.js.map +1 -1
  143. package/__internal__/src/components/TileMenu/TileMenuItem/TileMenuItem.d.ts +2 -2
  144. package/__internal__/src/components/TileMenu/TileMenuItem/TileMenuItem.js.map +1 -1
  145. package/__internal__/src/components/TileMenu/TileMenuList/TileMenuList.js.map +1 -1
  146. package/__internal__/src/components/TileMenu/TileMenuList/types.d.ts +8 -8
  147. package/__internal__/src/components/TileMenu/helpers.d.ts +3 -0
  148. package/__internal__/src/components/TileMenu/helpers.js.map +1 -1
  149. package/__internal__/src/components/TileMenu/types.d.ts +14 -14
  150. package/__internal__/src/components/TileMenu/types.js.map +1 -1
  151. package/__internal__/src/components/VerticalMenu/VerticalMenu.js.map +1 -1
  152. package/__internal__/src/components/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js.map +1 -1
  153. package/__internal__/src/components/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js.map +1 -1
  154. package/__internal__/src/components/VerticalMenu/helpers.d.ts +1 -1
  155. package/__internal__/src/components/VerticalMenu/helpers.js.map +1 -1
  156. package/__internal__/src/components/VerticalMenu/types.d.ts +16 -16
  157. package/__internal__/src/docs/start/start.stand.d.ts +2 -0
  158. package/__internal__/src/docs/start/start.stand.js +2 -0
  159. package/__internal__/src/docs/start/start.stand.js.map +1 -0
  160. package/__internal__/src/helpers/getItemClick.d.ts +2 -2
  161. package/__internal__/src/helpers/getItemClick.js.map +1 -1
  162. package/__internal__/src/stand/standConfig.d.ts +1 -0
  163. package/__internal__/src/utils/bem.js.map +1 -1
  164. package/__internal__/src/utils/types/PropsWithHTMLAttributes.d.ts +2 -2
  165. package/package.json +2 -2
@@ -0,0 +1,2 @@
1
+ export*from"./MegaMenu";export*from"./types";export*from"./MegaMenuBox";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/MegaMenu/index.ts"],"sourcesContent":["export * from './MegaMenu';\nexport * from './types';\nexport * from './MegaMenuBox';\n"],"mappings":"AAAA,wBACA,qBACA"}
@@ -0,0 +1,65 @@
1
+ import { IconComponent } from '@consta/uikit/Icon';
2
+ import React from 'react';
3
+ import { BannerBarDefaultItem, BannerBarPropGetItemAs, BannerBarPropGetItemAttributes, BannerBarPropGetItemDescription, BannerBarPropGetItemImage, BannerBarPropGetItemLabel, BannerBarPropGetItemOnClick } from "../BannerBar/types";
4
+ import { PropsWithHTMLAttributesAndRef } from "../../utils/types/PropsWithHTMLAttributes";
5
+ export type MegaMenuPropOnItemClick<ITEM> = (params: {
6
+ e: React.MouseEvent;
7
+ item: ITEM;
8
+ }) => void;
9
+ export type MegaMenuDefaultItem = {
10
+ key: string | number;
11
+ label: string;
12
+ iconLeft?: IconComponent;
13
+ as?: keyof JSX.IntrinsicElements;
14
+ attributes?: JSX.IntrinsicElements[keyof JSX.IntrinsicElements];
15
+ subMenu?: MegaMenuDefaultItem[];
16
+ onClick?: React.MouseEventHandler;
17
+ };
18
+ export type MegaMenuPropGetItemKey<ITEM> = (item: ITEM) => string | number;
19
+ export type MegaMenuPropGetItemLabel<ITEM> = (item: ITEM) => string;
20
+ export type MegaMenuPropGetItemIconLeft<ITEM> = (item: ITEM) => IconComponent | undefined;
21
+ export type MegaMenuPropGetItemOnClick<ITEM> = (item: ITEM) => React.MouseEventHandler | undefined;
22
+ export type MegaMenuPropGetItemAs<ITEM> = (item: ITEM) => keyof JSX.IntrinsicElements | undefined;
23
+ export type MegaMenuPropGetItemAttributes<ITEM> = (item: ITEM) => JSX.IntrinsicElements[keyof JSX.IntrinsicElements] | undefined;
24
+ export type MegaMenuPropGetItemSubMenu<ITEM> = (item: ITEM) => ITEM[] | undefined;
25
+ export type ItemMappers<ITEM = MegaMenuDefaultItem> = {
26
+ getItemKey?: MegaMenuPropGetItemKey<ITEM>;
27
+ getItemLabel?: MegaMenuPropGetItemLabel<ITEM>;
28
+ getItemIconLeft?: MegaMenuPropGetItemIconLeft<ITEM>;
29
+ getItemOnClick?: MegaMenuPropGetItemOnClick<ITEM>;
30
+ getItemAs?: MegaMenuPropGetItemAs<ITEM>;
31
+ getItemAttributes?: MegaMenuPropGetItemAttributes<ITEM>;
32
+ getItemSubMenu?: MegaMenuPropGetItemSubMenu<ITEM>;
33
+ };
34
+ export type BannerMappers<ITEM = BannerBarDefaultItem> = {
35
+ getBannerLabel?: BannerBarPropGetItemLabel<ITEM>;
36
+ getBannerOnClick?: BannerBarPropGetItemOnClick<ITEM>;
37
+ getBannerDescription?: BannerBarPropGetItemDescription<ITEM>;
38
+ getBannerImage?: BannerBarPropGetItemImage<ITEM>;
39
+ getBannerAs?: BannerBarPropGetItemAs<ITEM>;
40
+ getBannerAttributes?: BannerBarPropGetItemAttributes<ITEM>;
41
+ };
42
+ export type MegaMenuProps<ITEM = MegaMenuDefaultItem, BANNER = BannerBarDefaultItem> = PropsWithHTMLAttributesAndRef<{
43
+ banners?: BANNER[];
44
+ items: ITEM[];
45
+ menuTitle?: string;
46
+ menuShowButtonText?: string;
47
+ menuHideButtonText?: string;
48
+ menuMaxElements?: number;
49
+ bannerPosition?: 'right' | 'bottom';
50
+ onItemClick?: MegaMenuPropOnItemClick<ITEM>;
51
+ onBannerClick?: MegaMenuPropOnItemClick<BANNER>;
52
+ } & BannerMappers<BANNER> & ItemMappers<ITEM> & (ITEM extends {
53
+ key: MegaMenuDefaultItem['key'];
54
+ } ? {} : {
55
+ getItemKey: MegaMenuPropGetItemKey<ITEM>;
56
+ }) & (ITEM extends {
57
+ label: MegaMenuDefaultItem['label'];
58
+ } ? {} : {
59
+ getItemLabel: MegaMenuPropGetItemLabel<ITEM>;
60
+ }) & (BANNER extends {
61
+ label: BannerBarDefaultItem['label'] | unknown;
62
+ } ? {} : {
63
+ getBannerLabel: BannerBarPropGetItemLabel<ITEM>;
64
+ }), HTMLDivElement>;
65
+ export type MegaMenuComponent = <ITEM = MegaMenuDefaultItem, BANNER = BannerBarDefaultItem>(props: MegaMenuProps<ITEM, BANNER>, ref: React.Ref<HTMLDivElement>) => React.ReactElement | null;
@@ -0,0 +1,2 @@
1
+ export{};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/MegaMenu/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/uikit/Icon';\nimport React from 'react';\n\nimport {\n BannerBarDefaultItem,\n BannerBarPropGetItemAs,\n BannerBarPropGetItemAttributes,\n BannerBarPropGetItemDescription,\n BannerBarPropGetItemImage,\n BannerBarPropGetItemLabel,\n BannerBarPropGetItemOnClick,\n} from '##/components/BannerBar/types';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport type MegaMenuPropOnItemClick<ITEM> = (params: {\n e: React.MouseEvent;\n item: ITEM;\n}) => void;\n\nexport type MegaMenuDefaultItem = {\n key: string | number;\n label: string;\n iconLeft?: IconComponent;\n as?: keyof JSX.IntrinsicElements;\n attributes?: JSX.IntrinsicElements[keyof JSX.IntrinsicElements];\n subMenu?: MegaMenuDefaultItem[];\n onClick?: React.MouseEventHandler;\n};\n\nexport type MegaMenuPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type MegaMenuPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type MegaMenuPropGetItemIconLeft<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\nexport type MegaMenuPropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => React.MouseEventHandler | undefined;\nexport type MegaMenuPropGetItemAs<ITEM> = (\n item: ITEM,\n) => keyof JSX.IntrinsicElements | undefined;\nexport type MegaMenuPropGetItemAttributes<ITEM> = (\n item: ITEM,\n) => JSX.IntrinsicElements[keyof JSX.IntrinsicElements] | undefined;\nexport type MegaMenuPropGetItemSubMenu<ITEM> = (\n item: ITEM,\n) => ITEM[] | undefined;\n\nexport type ItemMappers<ITEM = MegaMenuDefaultItem> = {\n getItemKey?: MegaMenuPropGetItemKey<ITEM>;\n getItemLabel?: MegaMenuPropGetItemLabel<ITEM>;\n getItemIconLeft?: MegaMenuPropGetItemIconLeft<ITEM>;\n getItemOnClick?: MegaMenuPropGetItemOnClick<ITEM>;\n getItemAs?: MegaMenuPropGetItemAs<ITEM>;\n getItemAttributes?: MegaMenuPropGetItemAttributes<ITEM>;\n getItemSubMenu?: MegaMenuPropGetItemSubMenu<ITEM>;\n};\n\nexport type BannerMappers<ITEM = BannerBarDefaultItem> = {\n getBannerLabel?: BannerBarPropGetItemLabel<ITEM>;\n getBannerOnClick?: BannerBarPropGetItemOnClick<ITEM>;\n getBannerDescription?: BannerBarPropGetItemDescription<ITEM>;\n getBannerImage?: BannerBarPropGetItemImage<ITEM>;\n getBannerAs?: BannerBarPropGetItemAs<ITEM>;\n getBannerAttributes?: BannerBarPropGetItemAttributes<ITEM>;\n};\n\nexport type MegaMenuProps<\n ITEM = MegaMenuDefaultItem,\n BANNER = BannerBarDefaultItem,\n> = PropsWithHTMLAttributesAndRef<\n {\n banners?: BANNER[];\n items: ITEM[];\n menuTitle?: string;\n menuShowButtonText?: string;\n menuHideButtonText?: string;\n menuMaxElements?: number;\n bannerPosition?: 'right' | 'bottom';\n onItemClick?: MegaMenuPropOnItemClick<ITEM>;\n onBannerClick?: MegaMenuPropOnItemClick<BANNER>;\n } & BannerMappers<BANNER> &\n ItemMappers<ITEM> &\n (ITEM extends { key: MegaMenuDefaultItem['key'] }\n ? {}\n : { getItemKey: MegaMenuPropGetItemKey<ITEM> }) &\n (ITEM extends { label: MegaMenuDefaultItem['label'] }\n ? {}\n : { getItemLabel: MegaMenuPropGetItemLabel<ITEM> }) &\n (BANNER extends { label: BannerBarDefaultItem['label'] | unknown }\n ? {}\n : { getBannerLabel: BannerBarPropGetItemLabel<ITEM> }),\n HTMLDivElement\n>;\n\nexport type MegaMenuComponent = <\n ITEM = MegaMenuDefaultItem,\n BANNER = BannerBarDefaultItem,\n>(\n props: MegaMenuProps<ITEM, BANNER>,\n ref: React.Ref<HTMLDivElement>,\n) => React.ReactElement | null;\n"],"mappings":""}
@@ -1 +1 @@
1
- .che--Menu-List{list-style-type:none;margin:0;padding:0}.che--Menu-Item,.che--Menu-List{align-items:center;display:flex;height:100%}.che--Menu-Item{--text-color:var(--color-typo-secondary);color:var(--text-color);margin-right:var(--space-m);position:relative;transition:color .2s}.che--Menu-Item:hover,.che--Menu-Item_opened{--text-color:var(--color-typo-primary)}.che--Menu-Item:last-child{margin-right:0}.che--Menu-Item_hidden{left:-300vw;position:absolute;top:-300vh;visibility:hidden}.che--Menu-Item_active{--text-color:var(--color-typo-primary)}.che--Menu-Item_active:before{background-color:var(--color-typo-link);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%}.che--Menu-Link{align-items:center;color:var(--text-color);cursor:pointer;display:flex;height:100%;position:relative;text-decoration:none}.che--Menu-Arrow{margin-left:var(--space-2xs)}
1
+ .che--Menu_width_full{width:100%}.che--Menu-List{list-style-type:none;margin:0;padding:0}.che--Menu-Item,.che--Menu-List{align-items:center;display:flex;height:100%}.che--Menu-Item{--text-color:var(--color-typo-secondary);color:var(--text-color);margin-right:var(--space-m);position:relative;transition:color .2s}.che--Menu-Item:hover,.che--Menu-Item_opened{--text-color:var(--color-typo-primary)}.che--Menu-Item:last-child{margin-right:0}.che--Menu-Item_hidden{left:-300vw;position:absolute;top:-300vh;visibility:hidden}.che--Menu-Item_active{--text-color:var(--color-typo-primary)}.che--Menu-Item_active:before{background-color:var(--color-typo-link);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%}.che--Menu-Link{align-items:center;color:var(--text-color);cursor:pointer;display:flex;height:100%;position:relative;text-decoration:none}.che--Menu-Arrow{margin-left:var(--space-2xs)}
@@ -1,2 +1,2 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";const _excluded=["items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","onItemClick"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Menu.css";import{Button}from"@consta/uikit/Button";import{ContextMenu}from"@consta/uikit/ContextMenu";import{IconMeatball}from"@consta/uikit/IconMeatball";import{IconSelect}from"@consta/uikit/IconSelect";import{animateTimeout}from"@consta/uikit/MixPopoverAnimate";import{useDebounce}from"@consta/uikit/useDebounce";import{useFlag}from"@consta/uikit/useFlag";import{useHideElementsInLine}from"@consta/uikit/useHideElementsInLine";import{useMutableRef}from"@consta/uikit/useMutableRef";import React,{forwardRef,useCallback,useEffect,useRef,useState}from"react";import{getItemClick}from"../../helpers/getItemClick";import{cn}from"../../utils/bem";import{withDefaultGetters}from"./helpers";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,_excluded),[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(_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,active:f,opened:r}),key:cnMenu("Item",{index:b}),ref:t[b],onMouseEnter:()=>p(b)},React.createElement(n,{className:cnMenu("Link"),href:d,target:e,onClick:getItemClick(a,j,m)},c),q&&React.createElement(IconSelect,{size:"s",className:cnMenu("Arrow")}),React.createElement(ContextMenu,{isOpen:q&&0<q.length&&r,items:q||[],getItemLabel:i,getItemSubMenu:l,anchorRef:t[b],onItemClick:({e:a,item:b})=>getItemClick(b,j,m)(a),direction:"downStartLeft",possibleDirections:["upStartLeft","downStartRight","downStartLeft","upStartRight"],spareDirection:"downStartLeft",getItemAs:A,getItemAttributes:B,style:{zIndex:C}}))}),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"}),React.createElement(ContextMenu,{isOpen:"more"===o,items:v,getItemLabel:i,getItemSubMenu:l,anchorRef:x,onItemClick:({e:a,item:b})=>getItemClick(b,j,m)(a),direction:"downStartLeft",possibleDirections:["upStartLeft","downStartRight","downStartLeft","upStartRight"],spareDirection:"downStartRight",getItemAs:A,getItemAttributes:B,style:{zIndex:C},offset:8}))))};export const Menu=forwardRef(MenuRender);export*from"./types";
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";const _excluded=["items","className","width","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","onItemClick"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Menu.css";import{Button}from"@consta/uikit/Button";import{ContextMenu}from"@consta/uikit/ContextMenu";import{IconMeatball}from"@consta/uikit/IconMeatball";import{IconSelect}from"@consta/uikit/IconSelect";import{animateTimeout}from"@consta/uikit/MixPopoverAnimate";import{useDebounce}from"@consta/uikit/useDebounce";import{useFlag}from"@consta/uikit/useFlag";import{useHideElementsInLine}from"@consta/uikit/useHideElementsInLine";import{useMutableRef}from"@consta/uikit/useMutableRef";import React,{forwardRef,useCallback,useEffect,useRef,useState}from"react";import{getItemClick}from"../../helpers/getItemClick";import{cn}from"../../utils/bem";import{withDefaultGetters}from"./helpers";export const cnMenu=cn("Menu");const MenuRender=(a,b)=>{var c;const d=withDefaultGetters(a),{items:e,className:f,width:g,getItemActive:h,getItemHref:i,getItemLabel:j,getItemOnClick:k,getItemTarget:l,getItemSubMenu:m,onItemClick:n}=d,o=_objectWithoutProperties(d,_excluded),[p,q]=useState(),[r,s]=useFlag(),{visibleItems:t,itemsRefs:u,wrapperRef:v,hiddenItems:w,moreRef:x}=useHideElementsInLine(e),y=useRef(null),z=useMutableRef(i),A=useMutableRef(l),B=useCallback(a=>z.current(a)?"a":"span",[]),C=useCallback(a=>{const b=z.current(a),c=A.current(a);return _objectSpread(_objectSpread({},b&&{href:z.current(a)}),c&&{href:A.current(a)})},[]),D="number"==typeof(null===(c=a.style)||void 0===c?void 0:c.zIndex)?a.style.zIndex+1:void 0;return useEffect(useDebounce(()=>{r||q(void 0)},animateTimeout),[r]),React.createElement("nav",Object.assign({},o,{className:cnMenu({width:g},[f]),onMouseLeave:s.off,onMouseEnter:s.on,ref:b}),React.createElement("ul",{className:cnMenu("List"),ref:v},e.map((a,b)=>{const c=j(a),d=i(a),e=d?l(a):void 0,f=h(a),g=d?"a":"span",o=m(a),r=p===b,s=!t[b];return React.createElement("li",{className:cnMenu("Item",{hidden:s,active:f,opened:r}),key:cnMenu("Item",{index:b}),ref:u[b],onMouseEnter:()=>q(b)},React.createElement(g,{className:cnMenu("Link"),href:d,target:e,onClick:getItemClick(a,k,n)},c),o&&React.createElement(IconSelect,{size:"s",className:cnMenu("Arrow")}),React.createElement(ContextMenu,{isOpen:o&&0<o.length&&r,items:o||[],getItemLabel:j,getItemSubMenu:m,anchorRef:u[b],onItemClick:({e:a,item:b})=>getItemClick(b,k,n)(a),direction:"downStartLeft",possibleDirections:["upStartLeft","downStartRight","downStartLeft","upStartRight"],spareDirection:"downStartLeft",getItemAs:B,getItemAttributes:C,style:{zIndex:D}}))}),0<w.length&&React.createElement("li",{className:cnMenu("Item"),key:cnMenu("Item",{more:!0}),ref:x,onMouseEnter:()=>q("more")},React.createElement(Button,{iconLeft:IconMeatball,ref:y,size:"xs",view:"clear"}),React.createElement(ContextMenu,{isOpen:"more"===p,items:w,getItemLabel:j,getItemSubMenu:m,anchorRef:y,onItemClick:({e:a,item:b})=>getItemClick(b,k,n)(a),direction:"downStartLeft",possibleDirections:["upStartLeft","downStartRight","downStartLeft","upStartRight"],spareDirection:"downStartRight",getItemAs:B,getItemAttributes:C,style:{zIndex:D},offset:8}))))};export const Menu=forwardRef(MenuRender);export*from"./types";
2
2
  //# sourceMappingURL=Menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","names":["Button","ContextMenu","IconMeatball","IconSelect","animateTimeout","useDebounce","useFlag","useHideElementsInLine","useMutableRef","React","forwardRef","useCallback","useEffect","useRef","useState","getItemClick","cn","withDefaultGetters","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","e","more","Menu"],"sources":["../../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import './Menu.css';\n\nimport { Button } from '@consta/uikit/Button';\nimport { ContextMenu } from '@consta/uikit/ContextMenu';\nimport { IconMeatball } from '@consta/uikit/IconMeatball';\nimport { IconSelect } from '@consta/uikit/IconSelect';\nimport { animateTimeout } from '@consta/uikit/MixPopoverAnimate';\nimport { useDebounce } from '@consta/uikit/useDebounce';\nimport { useFlag } from '@consta/uikit/useFlag';\nimport { useHideElementsInLine } from '@consta/uikit/useHideElementsInLine';\nimport { useMutableRef } from '@consta/uikit/useMutableRef';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport { getItemClick } from '##/helpers/getItemClick';\nimport { cn } from '##/utils/bem';\n\nimport { withDefaultGetters } from './helpers';\nimport { MenuComponent, MenuProps } from './types';\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<\n number | 'more' | undefined\n >();\n const [mouseOnMenu, setMouseOnMenu] = useFlag();\n\n const { visibleItems, itemsRefs, wrapperRef, hiddenItems, moreRef } =\n 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 =\n typeof props.style?.zIndex === 'number'\n ? props.style.zIndex + 1\n : 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, active, opened })}\n key={cnMenu('Item', { index })}\n ref={itemsRefs[index]}\n onMouseEnter={() => setOpenedSubMenu(index)}\n >\n <Tag\n className={cnMenu('Link')}\n href={href}\n target={target}\n onClick={getItemClick(item, getItemOnClick, onItemClick)}\n >\n {label}\n </Tag>\n {subItems && <IconSelect size=\"s\" className={cnMenu('Arrow')} />}\n <ContextMenu\n isOpen={subItems && subItems.length > 0 && opened}\n items={subItems || []}\n getItemLabel={getItemLabel}\n getItemSubMenu={getItemSubMenu}\n anchorRef={itemsRefs[index]}\n onItemClick={({ e, item }) =>\n getItemClick(item, getItemOnClick, onItemClick)(e)\n }\n direction=\"downStartLeft\"\n possibleDirections={[\n 'upStartLeft',\n 'downStartRight',\n 'downStartLeft',\n 'upStartRight',\n ]}\n spareDirection=\"downStartLeft\"\n getItemAs={getItemAs}\n getItemAttributes={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\n iconLeft={IconMeatball}\n ref={moreButtonRef}\n size=\"xs\"\n view=\"clear\"\n />\n <ContextMenu\n isOpen={openedSubMenu === 'more'}\n items={hiddenItems}\n getItemLabel={getItemLabel}\n getItemSubMenu={getItemSubMenu}\n anchorRef={moreButtonRef}\n onItemClick={({ e, item }) =>\n getItemClick(item, getItemOnClick, onItemClick)(e)\n }\n direction=\"downStartLeft\"\n possibleDirections={[\n 'upStartLeft',\n 'downStartRight',\n 'downStartLeft',\n 'upStartRight',\n ]}\n spareDirection=\"downStartRight\"\n getItemAs={getItemAs}\n getItemAttributes={getItemHTMLAttributes}\n style={{ zIndex: elementZIndex }}\n offset={8}\n />\n </li>\n )}\n </ul>\n </nav>\n );\n};\n\nexport const Menu = forwardRef(MenuRender) as MenuComponent;\n\nexport * from './types';\n"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","names":["Button","ContextMenu","IconMeatball","IconSelect","animateTimeout","useDebounce","useFlag","useHideElementsInLine","useMutableRef","React","forwardRef","useCallback","useEffect","useRef","useState","getItemClick","cn","withDefaultGetters","cnMenu","MenuRender","props","ref","items","className","width","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","e","more","Menu"],"sources":["../../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import './Menu.css';\n\nimport { Button } from '@consta/uikit/Button';\nimport { ContextMenu } from '@consta/uikit/ContextMenu';\nimport { IconMeatball } from '@consta/uikit/IconMeatball';\nimport { IconSelect } from '@consta/uikit/IconSelect';\nimport { animateTimeout } from '@consta/uikit/MixPopoverAnimate';\nimport { useDebounce } from '@consta/uikit/useDebounce';\nimport { useFlag } from '@consta/uikit/useFlag';\nimport { useHideElementsInLine } from '@consta/uikit/useHideElementsInLine';\nimport { useMutableRef } from '@consta/uikit/useMutableRef';\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport { getItemClick } from '##/helpers/getItemClick';\nimport { cn } from '##/utils/bem';\n\nimport { withDefaultGetters } from './helpers';\nimport { MenuComponent, MenuProps } from './types';\n\nexport const cnMenu = cn('Menu');\n\nconst MenuRender = (props: MenuProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n items,\n className,\n width,\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<\n number | 'more' | undefined\n >();\n const [mouseOnMenu, setMouseOnMenu] = useFlag();\n\n const { visibleItems, itemsRefs, wrapperRef, hiddenItems, moreRef } =\n 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 =\n typeof props.style?.zIndex === 'number'\n ? props.style.zIndex + 1\n : 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({ width }, [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, active, opened })}\n key={cnMenu('Item', { index })}\n ref={itemsRefs[index]}\n onMouseEnter={() => setOpenedSubMenu(index)}\n >\n <Tag\n className={cnMenu('Link')}\n href={href}\n target={target}\n onClick={getItemClick(item, getItemOnClick, onItemClick)}\n >\n {label}\n </Tag>\n {subItems && <IconSelect size=\"s\" className={cnMenu('Arrow')} />}\n <ContextMenu\n isOpen={subItems && subItems.length > 0 && opened}\n items={subItems || []}\n getItemLabel={getItemLabel}\n getItemSubMenu={getItemSubMenu}\n anchorRef={itemsRefs[index]}\n onItemClick={({ e, item }) =>\n getItemClick(item, getItemOnClick, onItemClick)(e)\n }\n direction=\"downStartLeft\"\n possibleDirections={[\n 'upStartLeft',\n 'downStartRight',\n 'downStartLeft',\n 'upStartRight',\n ]}\n spareDirection=\"downStartLeft\"\n getItemAs={getItemAs}\n getItemAttributes={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\n iconLeft={IconMeatball}\n ref={moreButtonRef}\n size=\"xs\"\n view=\"clear\"\n />\n <ContextMenu\n isOpen={openedSubMenu === 'more'}\n items={hiddenItems}\n getItemLabel={getItemLabel}\n getItemSubMenu={getItemSubMenu}\n anchorRef={moreButtonRef}\n onItemClick={({ e, item }) =>\n getItemClick(item, getItemOnClick, onItemClick)(e)\n }\n direction=\"downStartLeft\"\n possibleDirections={[\n 'upStartLeft',\n 'downStartRight',\n 'downStartLeft',\n 'upStartRight',\n ]}\n spareDirection=\"downStartRight\"\n getItemAs={getItemAs}\n getItemAttributes={getItemHTMLAttributes}\n style={{ zIndex: elementZIndex }}\n offset={8}\n />\n </li>\n )}\n </ul>\n </nav>\n );\n};\n\nexport const Menu = forwardRef(MenuRender) as MenuComponent;\n\nexport * from './types';\n"],"mappings":"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"}
@@ -23,6 +23,7 @@ export declare const getGetters: <ITEM>(props: {
23
23
  };
24
24
  export declare function withDefaultGetters<ITEM>(props: MenuProps<ITEM>): {
25
25
  items: ITEM[];
26
+ width?: "full" | undefined;
26
27
  onItemClick?: import("./types").MenuPropOnItemClick<ITEM> | undefined;
27
28
  getItemHref?: MenuPropGetItemHref<ITEM> | undefined;
28
29
  getItemLabel?: MenuPropGetItemLabel<ITEM> | undefined;
@@ -30,7 +31,7 @@ export declare function withDefaultGetters<ITEM>(props: MenuProps<ITEM>): {
30
31
  getItemActive?: MenuPropGetItemActive<ITEM> | undefined;
31
32
  getItemOnClick?: MenuPropGetItemOnClick<ITEM> | undefined;
32
33
  getItemSubMenu?: MenuPropGetItemSubMenu<ITEM> | undefined;
33
- } & Omit<import("react").HTMLAttributes<HTMLDivElement>, "css" | "items" | "getItemLabel" | "onItemClick" | "getItemHref" | "getItemTarget" | "getItemOnClick" | "getItemSubMenu" | "getItemActive"> & import("react").RefAttributes<HTMLDivElement> & (ITEM extends {
34
+ } & Omit<import("react").HTMLAttributes<HTMLDivElement>, "css" | "items" | "getItemLabel" | "width" | "getItemOnClick" | "onItemClick" | "getItemHref" | "getItemTarget" | "getItemActive" | "getItemSubMenu"> & import("react").RefAttributes<HTMLDivElement> & (ITEM extends {
34
35
  label: string;
35
36
  } ? {} : {
36
37
  getItemLabel: MenuPropGetItemLabel<ITEM>;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["defaultGetItemLabel","item","label","defaultGetItemActive","active","defaultGetItemHref","href","defaultGetItemOnClick","onClick","defaultGetItemTarget","target","defaultGetItemSubMenu","subMenu","getGetters","props","getItemLabel","getItemActive","getItemHref","getItemOnClick","getItemTarget","getItemSubMenu","withDefaultGetters"],"sources":["../../../../../src/components/Menu/helpers.ts"],"sourcesContent":["import {\n MenuDefaultItem,\n MenuPropGetItemActive,\n MenuPropGetItemHref,\n MenuPropGetItemLabel,\n MenuPropGetItemOnClick,\n MenuPropGetItemSubMenu,\n MenuPropGetItemTarget,\n MenuProps,\n} from './types';\n\nexport const defaultGetItemLabel: MenuPropGetItemLabel<MenuDefaultItem> = (\n item,\n) => item.label;\nexport const defaultGetItemActive: MenuPropGetItemActive<MenuDefaultItem> = (\n item,\n) => item.active;\nexport const defaultGetItemHref: MenuPropGetItemHref<MenuDefaultItem> = (\n item,\n) => item.href;\nexport const defaultGetItemOnClick: MenuPropGetItemOnClick<MenuDefaultItem> = (\n item,\n) => item.onClick;\nexport const defaultGetItemTarget: MenuPropGetItemTarget<MenuDefaultItem> = (\n item,\n) => item.target;\nexport const defaultGetItemSubMenu: MenuPropGetItemSubMenu<MenuDefaultItem> = (\n item,\n) => 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"],"mappings":"qqBAWA,MAAO,MAAMA,oBAA0D,CACrEC,CADwE,EAErEA,CAAI,CAACC,KAFH,CAGP,MAAO,MAAMC,qBAA4D,CACvEF,CAD0E,EAEvEA,CAAI,CAACG,MAFH,CAGP,MAAO,MAAMC,mBAAwD,CACnEJ,CADsE,EAEnEA,CAAI,CAACK,IAFH,CAGP,MAAO,MAAMC,sBAA8D,CACzEN,CAD4E,EAEzEA,CAAI,CAACO,OAFH,CAGP,MAAO,MAAMC,qBAA4D,CACvER,CAD0E,EAEvEA,CAAI,CAACS,MAFH,CAGP,MAAO,MAAMC,sBAA8D,CACzEV,CAD4E,EAEzEA,CAAI,CAACW,OAFH,CAIP,MAAO,MAAMC,WAAU,CAAUC,CAAP,GAQjB,CACLC,YAAY,CAAE,QAAAD,CAAK,WAALA,CAAA,QAAAA,CAAK,CAAEC,YAAP,GAAuBf,mBADhC,CAELgB,aAAa,CAAE,QAAAF,CAAK,WAALA,CAAA,QAAAA,CAAK,CAAEE,aAAP,GAAwBb,oBAFlC,CAGLc,WAAW,CAAE,QAAAH,CAAK,WAALA,CAAA,QAAAA,CAAK,CAAEG,WAAP,GAAsBZ,kBAH9B,CAILa,cAAc,CAAE,QAAAJ,CAAK,WAALA,CAAA,QAAAA,CAAK,CAAEI,cAAP,GAAyBX,qBAJpC,CAKLY,aAAa,CAAE,QAAAL,CAAK,WAALA,CAAA,QAAAA,CAAK,CAAEK,aAAP,GAAwBV,oBALlC,CAMLW,cAAc,CAAE,QAAAN,CAAK,WAALA,CAAA,QAAAA,CAAK,CAAEM,cAAP,GAAyBT,qBANpC,CARiB,CAAnB,CAkBP,MAAO,SAASU,mBAAT,CAAkCP,CAAlC,CAA0D,CAC/D,sCACKA,CADL,EAEKD,UAAU,CAACC,CAAD,CAFf,CAID"}
1
+ {"version":3,"file":"helpers.js","names":["defaultGetItemLabel","item","label","defaultGetItemActive","active","defaultGetItemHref","href","defaultGetItemOnClick","onClick","defaultGetItemTarget","target","defaultGetItemSubMenu","subMenu","getGetters","props","getItemLabel","getItemActive","getItemHref","getItemOnClick","getItemTarget","getItemSubMenu","withDefaultGetters"],"sources":["../../../../../src/components/Menu/helpers.ts"],"sourcesContent":["import {\n MenuDefaultItem,\n MenuPropGetItemActive,\n MenuPropGetItemHref,\n MenuPropGetItemLabel,\n MenuPropGetItemOnClick,\n MenuPropGetItemSubMenu,\n MenuPropGetItemTarget,\n MenuProps,\n} from './types';\n\nexport const defaultGetItemLabel: MenuPropGetItemLabel<MenuDefaultItem> = (\n item,\n) => item.label;\nexport const defaultGetItemActive: MenuPropGetItemActive<MenuDefaultItem> = (\n item,\n) => item.active;\nexport const defaultGetItemHref: MenuPropGetItemHref<MenuDefaultItem> = (\n item,\n) => item.href;\nexport const defaultGetItemOnClick: MenuPropGetItemOnClick<MenuDefaultItem> = (\n item,\n) => item.onClick;\nexport const defaultGetItemTarget: MenuPropGetItemTarget<MenuDefaultItem> = (\n item,\n) => item.target;\nexport const defaultGetItemSubMenu: MenuPropGetItemSubMenu<MenuDefaultItem> = (\n item,\n) => 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"],"mappings":"qqBAWA,MAAO,MAAMA,oBAA0D,CACrEC,CAAI,EACDA,CAAI,CAACC,KAAK,CACf,MAAO,MAAMC,qBAA4D,CACvEF,CAAI,EACDA,CAAI,CAACG,MAAM,CAChB,MAAO,MAAMC,mBAAwD,CACnEJ,CAAI,EACDA,CAAI,CAACK,IAAI,CACd,MAAO,MAAMC,sBAA8D,CACzEN,CAAI,EACDA,CAAI,CAACO,OAAO,CACjB,MAAO,MAAMC,qBAA4D,CACvER,CAAI,EACDA,CAAI,CAACS,MAAM,CAChB,MAAO,MAAMC,sBAA8D,CACzEV,CAAI,EACDA,CAAI,CAACW,OAAO,CAEjB,MAAO,MAAMC,WAAU,CAAUC,CAOhC,GACQ,CACLC,YAAY,CAAE,QAAAD,CAAK,WAALA,CAAK,QAALA,CAAK,CAAEC,YAAY,GAAIf,mBAAmB,CACxDgB,aAAa,CAAE,QAAAF,CAAK,WAALA,CAAK,QAALA,CAAK,CAAEE,aAAa,GAAIb,oBAAoB,CAC3Dc,WAAW,CAAE,QAAAH,CAAK,WAALA,CAAK,QAALA,CAAK,CAAEG,WAAW,GAAIZ,kBAAkB,CACrDa,cAAc,CAAE,QAAAJ,CAAK,WAALA,CAAK,QAALA,CAAK,CAAEI,cAAc,GAAIX,qBAAqB,CAC9DY,aAAa,CAAE,QAAAL,CAAK,WAALA,CAAK,QAALA,CAAK,CAAEK,aAAa,GAAIV,oBAAoB,CAC3DW,cAAc,CAAE,QAAAN,CAAK,WAALA,CAAK,QAALA,CAAK,CAAEM,cAAc,GAAIT,qBAC3C,CAAC,CACF,CAED,MAAO,SAASU,mBAAkB,CAAOP,CAAsB,CAAE,CAC/D,sCACKA,CAAK,EACLD,UAAU,CAACC,CAAK,CAAC,CAExB"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { PropsWithHTMLAttributesAndRef } from "../../utils/types/PropsWithHTMLAttributes";
3
- export declare type MenuDefaultItem = {
3
+ export type MenuDefaultItem = {
4
4
  label: string;
5
5
  href?: string;
6
6
  target?: string;
@@ -8,18 +8,19 @@ export declare type MenuDefaultItem = {
8
8
  onClick?: React.EventHandler<React.MouseEvent>;
9
9
  subMenu?: MenuDefaultItem[];
10
10
  };
11
- export declare type MenuPropGetItemLabel<ITEM> = (item: ITEM) => string;
12
- export declare type MenuPropGetItemHref<ITEM> = (item: ITEM) => string | undefined;
13
- export declare type MenuPropGetItemTarget<ITEM> = (item: ITEM) => string | undefined;
14
- export declare type MenuPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;
15
- export declare type MenuPropGetItemSubMenu<ITEM> = (item: ITEM) => ITEM[] | undefined;
16
- export declare type MenuPropGetItemOnClick<ITEM> = (item: ITEM) => React.EventHandler<React.MouseEvent> | undefined;
17
- export declare type MenuPropOnItemClick<ITEM> = (props: {
11
+ export type MenuPropGetItemLabel<ITEM> = (item: ITEM) => string;
12
+ export type MenuPropGetItemHref<ITEM> = (item: ITEM) => string | undefined;
13
+ export type MenuPropGetItemTarget<ITEM> = (item: ITEM) => string | undefined;
14
+ export type MenuPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;
15
+ export type MenuPropGetItemSubMenu<ITEM> = (item: ITEM) => ITEM[] | undefined;
16
+ export type MenuPropGetItemOnClick<ITEM> = (item: ITEM) => React.EventHandler<React.MouseEvent> | undefined;
17
+ export type MenuPropOnItemClick<ITEM> = (props: {
18
18
  e: React.MouseEvent;
19
19
  item: ITEM;
20
20
  }) => void;
21
- export declare type MenuProps<ITEM = MenuDefaultItem> = PropsWithHTMLAttributesAndRef<{
21
+ export type MenuProps<ITEM = MenuDefaultItem> = PropsWithHTMLAttributesAndRef<{
22
22
  items: ITEM[];
23
+ width?: 'full';
23
24
  onItemClick?: MenuPropOnItemClick<ITEM>;
24
25
  getItemHref?: MenuPropGetItemHref<ITEM>;
25
26
  getItemLabel?: MenuPropGetItemLabel<ITEM>;
@@ -32,4 +33,4 @@ export declare type MenuProps<ITEM = MenuDefaultItem> = PropsWithHTMLAttributesA
32
33
  } ? {} : {
33
34
  getItemLabel: MenuPropGetItemLabel<ITEM>;
34
35
  });
35
- export declare type MenuComponent = <ITEM = MenuDefaultItem>(props: MenuProps<ITEM>) => React.ReactElement | null;
36
+ export type MenuComponent = <ITEM = MenuDefaultItem>(props: MenuProps<ITEM>) => React.ReactElement | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/Menu/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport type MenuDefaultItem = {\n label: string;\n href?: string;\n target?: string;\n active?: boolean;\n onClick?: React.EventHandler<React.MouseEvent>;\n subMenu?: MenuDefaultItem[];\n};\n\nexport type MenuPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type MenuPropGetItemHref<ITEM> = (item: ITEM) => string | undefined;\nexport type MenuPropGetItemTarget<ITEM> = (item: ITEM) => string | undefined;\nexport type MenuPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;\nexport type MenuPropGetItemSubMenu<ITEM> = (item: ITEM) => ITEM[] | undefined;\nexport type MenuPropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => React.EventHandler<React.MouseEvent> | undefined;\nexport type MenuPropOnItemClick<ITEM> = (props: {\n e: React.MouseEvent;\n item: ITEM;\n}) => void;\n\nexport type MenuProps<ITEM = MenuDefaultItem> = PropsWithHTMLAttributesAndRef<\n {\n items: ITEM[];\n onItemClick?: MenuPropOnItemClick<ITEM>;\n getItemHref?: MenuPropGetItemHref<ITEM>;\n getItemLabel?: MenuPropGetItemLabel<ITEM>;\n getItemTarget?: MenuPropGetItemTarget<ITEM>;\n getItemActive?: MenuPropGetItemActive<ITEM>;\n getItemOnClick?: MenuPropGetItemOnClick<ITEM>;\n getItemSubMenu?: MenuPropGetItemSubMenu<ITEM>;\n },\n HTMLDivElement\n> &\n (ITEM extends { label: MenuDefaultItem['label'] }\n ? {}\n : { getItemLabel: MenuPropGetItemLabel<ITEM> });\n\nexport type MenuComponent = <ITEM = MenuDefaultItem>(\n props: MenuProps<ITEM>,\n) => React.ReactElement | null;\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/Menu/types.ts"],"sourcesContent":["import { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport type MenuDefaultItem = {\n label: string;\n href?: string;\n target?: string;\n active?: boolean;\n onClick?: React.EventHandler<React.MouseEvent>;\n subMenu?: MenuDefaultItem[];\n};\n\nexport type MenuPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type MenuPropGetItemHref<ITEM> = (item: ITEM) => string | undefined;\nexport type MenuPropGetItemTarget<ITEM> = (item: ITEM) => string | undefined;\nexport type MenuPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;\nexport type MenuPropGetItemSubMenu<ITEM> = (item: ITEM) => ITEM[] | undefined;\nexport type MenuPropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => React.EventHandler<React.MouseEvent> | undefined;\nexport type MenuPropOnItemClick<ITEM> = (props: {\n e: React.MouseEvent;\n item: ITEM;\n}) => void;\n\nexport type MenuProps<ITEM = MenuDefaultItem> = PropsWithHTMLAttributesAndRef<\n {\n items: ITEM[];\n width?: 'full';\n onItemClick?: MenuPropOnItemClick<ITEM>;\n getItemHref?: MenuPropGetItemHref<ITEM>;\n getItemLabel?: MenuPropGetItemLabel<ITEM>;\n getItemTarget?: MenuPropGetItemTarget<ITEM>;\n getItemActive?: MenuPropGetItemActive<ITEM>;\n getItemOnClick?: MenuPropGetItemOnClick<ITEM>;\n getItemSubMenu?: MenuPropGetItemSubMenu<ITEM>;\n },\n HTMLDivElement\n> &\n (ITEM extends { label: MenuDefaultItem['label'] }\n ? {}\n : { getItemLabel: MenuPropGetItemLabel<ITEM> });\n\nexport type MenuComponent = <ITEM = MenuDefaultItem>(\n props: MenuProps<ITEM>,\n) => React.ReactElement | null;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"MobileMenu.js","names":["Button","IconHamburger","Sidebar","useFlag","React","forwardRef","VerticalMenu","cn","cnMobileMenu","MobileMenuRender","props","ref","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","header","onItemClick","sidebarClassName","footer","otherProps","visibleMenu","toogle","off","elementZIndex","style","zIndex","MobileMenu"],"sources":["../../../../../src/components/MobileMenu/MobileMenu.tsx"],"sourcesContent":["import './MobileMenu.css';\n\nimport { Button } from '@consta/uikit/Button';\nimport { IconHamburger } from '@consta/uikit/IconHamburger';\nimport { Sidebar } from '@consta/uikit/Sidebar';\nimport { useFlag } from '@consta/uikit/useFlag';\nimport React, { forwardRef } from 'react';\n\nimport { VerticalMenu } from '##/components/VerticalMenu';\nimport { cn } from '##/utils/bem';\n\nimport { MobileMenuComponent, MobileMenuProps } from './types';\n\nexport const cnMobileMenu = cn('MobileMenu');\n\nconst MobileMenuRender = (\n props: MobileMenuProps,\n ref: React.Ref<HTMLButtonElement>,\n) => {\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 =\n typeof props.style?.zIndex === 'number'\n ? props.style.zIndex + 1\n : 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"],"mappings":"6QAAA,yBAEA,OAASA,MAAT,KAAuB,sBAAvB,CACA,OAASC,aAAT,KAA8B,6BAA9B,CACA,OAASC,OAAT,KAAwB,uBAAxB,CACA,OAASC,OAAT,KAAwB,uBAAxB,CACA,MAAOC,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,YAAT,uBACA,OAASC,EAAT,uBAIA,MAAO,MAAMC,aAAY,CAAGD,EAAE,CAAC,YAAD,CAAvB,CAEP,KAAME,iBAAgB,CAAG,CACvBC,CADuB,CAEvBC,CAFuB,GAGpB,YACG,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,CAfD,CAcEc,CAdF,0BAeCd,CAfD,YAiBG,CAACe,CAAD,CAAc,CAAEC,MAAM,CAANA,CAAF,CAAUC,GAAG,CAAHA,CAAV,CAAd,EAAiCxB,OAAO,EAjB3C,CAmBGyB,CAAa,CACc,QAA/B,mBAAOlB,CAAK,CAACmB,KAAb,qBAAO,EAAaC,MAApB,EACIpB,CAAK,CAACmB,KAAN,CAAYC,MAAZ,CAAqB,CADzB,OApBC,CAwBH,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,CAAEZ,aALZ,CAME,GAAG,CAAEU,CANP,CAOE,OAAO,CAAEe,CAPX,GADF,CAUE,oBAAC,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,EAQE,oBAAC,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,CA9DD,CAgEA,MAAO,MAAMQ,WAAU,CAAG1B,UAAU,CAACI,gBAAD,CAA7B,CAEP"}
1
+ {"version":3,"file":"MobileMenu.js","names":["Button","IconHamburger","Sidebar","useFlag","React","forwardRef","VerticalMenu","cn","cnMobileMenu","MobileMenuRender","props","ref","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","header","onItemClick","sidebarClassName","footer","otherProps","visibleMenu","toogle","off","elementZIndex","style","zIndex","MobileMenu"],"sources":["../../../../../src/components/MobileMenu/MobileMenu.tsx"],"sourcesContent":["import './MobileMenu.css';\n\nimport { Button } from '@consta/uikit/Button';\nimport { IconHamburger } from '@consta/uikit/IconHamburger';\nimport { Sidebar } from '@consta/uikit/Sidebar';\nimport { useFlag } from '@consta/uikit/useFlag';\nimport React, { forwardRef } from 'react';\n\nimport { VerticalMenu } from '##/components/VerticalMenu';\nimport { cn } from '##/utils/bem';\n\nimport { MobileMenuComponent, MobileMenuProps } from './types';\n\nexport const cnMobileMenu = cn('MobileMenu');\n\nconst MobileMenuRender = (\n props: MobileMenuProps,\n ref: React.Ref<HTMLButtonElement>,\n) => {\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 =\n typeof props.style?.zIndex === 'number'\n ? props.style.zIndex + 1\n : 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"],"mappings":"6QAAA,yBAEA,OAASA,MAAM,KAAQ,sBAAsB,CAC7C,OAASC,aAAa,KAAQ,6BAA6B,CAC3D,OAASC,OAAO,KAAQ,uBAAuB,CAC/C,OAASC,OAAO,KAAQ,uBAAuB,CAC/C,MAAOC,MAAK,EAAIC,UAAU,KAAQ,OAAO,CAEzC,OAASC,YAAY,uBACrB,OAASC,EAAE,uBAIX,MAAO,MAAMC,aAAY,CAAGD,EAAE,CAAC,YAAY,CAAC,CAE5C,KAAME,iBAAgB,CAAG,CACvBC,CAAsB,CACtBC,CAAiC,GAC9B,YACG,CACJC,KAAK,CAALA,CAAK,CACLC,SAAS,CAATA,CAAS,CACTC,aAAa,CAAbA,CAAa,CACbC,WAAW,CAAXA,CAAW,CACXC,YAAY,CAAZA,CAAY,CACZC,cAAc,CAAdA,CAAc,CACdC,aAAa,CAAbA,CAAa,CACbC,cAAc,CAAdA,CAAc,CACdC,MAAM,CAANA,CAAM,CACNC,WAAW,CAAXA,CAAW,CACXC,gBAAgB,CAAhBA,CAAgB,CAChBC,MAAM,CAANA,CAEF,CAAC,CAAGb,CAAK,CADJc,CAAU,0BACXd,CAAK,YAEH,CAACe,CAAW,CAAE,CAAEC,MAAM,CAANA,CAAM,CAAEC,GAAG,CAAHA,CAAI,CAAC,CAAC,CAAGxB,OAAO,EAAE,CAE1CyB,CAAa,CACc,QAAQ,EAAvC,iBAAOlB,CAAK,CAACmB,KAAK,qBAAX,EAAaC,MAAM,CAAa,CACnCpB,CAAK,CAACmB,KAAK,CAACC,MAAM,CAAG,CAAC,OACb,CAEf,MACE,yCACE,oBAAC,MAAM,kBACDN,CAAU,EACd,IAAI,CAAC,GAAG,CACR,IAAI,CAAC,OAAO,CACZ,SAAS,CAAEhB,YAAY,CAAC,IAAI,CAAE,CAACK,CAAS,CAAC,CAAE,CAC3C,QAAQ,CAAEZ,aAAc,CACxB,GAAG,CAAEU,CAAI,CACT,OAAO,CAAEe,CAAO,GAChB,CACF,oBAAC,OAAO,EACN,SAAS,CAAElB,YAAY,CAAC,SAAS,CAAE,CAACc,CAAgB,CAAC,CAAE,CACvD,QAAQ,CAAC,MAAM,CACf,MAAM,CAAEG,CAAY,CACpB,cAAc,CAAEE,CAAI,CACpB,IAAI,CAAC,GAAG,CACR,KAAK,CAAE,CAAEG,MAAM,CAAEF,CAAc,CAAE,EAEjC,oBAAC,YAAY,EACX,SAAS,CAAEpB,YAAY,CAAC,MAAM,CAAE,CAChC,KAAK,CAAEI,CAAM,CACb,aAAa,CAAEE,CAAc,CAC7B,WAAW,CAAEC,CAAY,CACzB,YAAY,CAAEC,CAAa,CAC3B,cAAc,CAAEC,CAAe,CAC/B,aAAa,CAAEC,CAAc,CAC7B,cAAc,CAAEC,CAAe,CAC/B,WAAW,CAAEE,CAAY,CACzB,MAAM,CAAED,CAAO,CACf,MAAM,CAAEG,CAAO,EACf,CACM,CAGhB,CAAC,CAED,MAAO,MAAMQ,WAAU,CAAG1B,UAAU,CAACI,gBAAgB,CAAwB,CAE7E"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { DefaultItem, VerticalMenuPropGetItemActive, VerticalMenuPropGetItemGroup, VerticalMenuPropGetItemHref, VerticalMenuPropGetItemLabel, VerticalMenuPropGetItemOnClick, VerticalMenuPropGetItemSubMenu, VerticalMenuPropGetItemTarget, VerticalMenuPropOnItemClick } from "../VerticalMenu";
3
3
  import { PropsWithHTMLAttributesAndRef } from "../../utils/types/PropsWithHTMLAttributes";
4
- export declare type MobileMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttributesAndRef<{
4
+ export type MobileMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttributesAndRef<{
5
5
  items: ITEM[];
6
6
  getItemHref?: VerticalMenuPropGetItemHref<ITEM>;
7
7
  getItemLabel?: VerticalMenuPropGetItemLabel<ITEM>;
@@ -20,5 +20,5 @@ export declare type MobileMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttribute
20
20
  } ? {} : {
21
21
  getItemLabel: VerticalMenuPropGetItemLabel<ITEM>;
22
22
  });
23
- export declare type MobileMenuComponent = <ITEM = DefaultItem>(props: MobileMenuProps<ITEM>) => React.ReactElement | null;
23
+ export type MobileMenuComponent = <ITEM = DefaultItem>(props: MobileMenuProps<ITEM>) => React.ReactElement | null;
24
24
  export type { DefaultItem };
@@ -0,0 +1 @@
1
+ .che--NavBar.ListBox{background:var(--color-bg-default);border-right:1px solid var(--color-bg-border);box-sizing:border-box;height:100%;padding:var(--space-2xl) 0;width:100%}.che--NavBar-Item.ListItemGrid{color:var(--color-control-typo-clear);line-height:var(--line-height-text-2xs)}.che--NavBar-Item.ListItemGrid:hover{background:var(--color-control-bg-ghost-hover)}.che--NavBar-Item.ListItemGrid.che--NavBar-Item_active{background:var(--color-control-bg-ghost);color:var(--color-control-typo-ghost)}
@@ -0,0 +1,3 @@
1
+ import './NavBar.css';
2
+ import { NavBarComponent } from './types';
3
+ export declare const NavBar: NavBarComponent;
@@ -0,0 +1,2 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";const _excluded=["items","onItemClick","getItemActive","getItemIconLeft","getItemIconRight","getItemLabel","getItemOnClick","getItemAs","getItemAttributes","className"];import"./NavBar.css";import{List,ListBox}from"@consta/uikit/ListCanary";import React,{forwardRef}from"react";import{cn}from"../../utils/bem";import{withDefaultGetters}from"./helper";const cnNavBar=cn("NavBar"),NavBarRender=(a,b)=>{const c=withDefaultGetters(a),{items:d,onItemClick:f,getItemActive:g,getItemIconLeft:h,getItemIconRight:i,getItemLabel:j,getItemOnClick:k,getItemAs:l,getItemAttributes:m,className:n}=c,o=_objectWithoutProperties(c,_excluded),p=a=>b=>{var c;null===(c=k(a))||void 0===c?void 0:c(b),null===f||void 0===f?void 0:f({e:b,item:a})};return React.createElement(ListBox,Object.assign({ref:b,className:cnNavBar(null,[n])},o),React.createElement(List,{items:d,size:"m",getItemLabel:j,getItemActive:g,getItemLeftIcon:h,getItemRightIcon:i,getItemOnClick:a=>p(a),getItemAs:l,itemSpase:{pV:"s",pH:"l"},getItemAttributes:m,getItemAdditionalClassName:a=>cnNavBar("Item",{active:g(a)})}))};export const NavBar=forwardRef(NavBarRender);
2
+ //# sourceMappingURL=NavBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavBar.js","names":["List","ListBox","React","forwardRef","cn","withDefaultGetters","cnNavBar","NavBarRender","props","ref","items","onItemClick","getItemActive","getItemIconLeft","getItemIconRight","getItemLabel","getItemOnClick","getItemAs","getItemAttributes","className","otherProps","onClick","item","e","pV","pH","active","NavBar"],"sources":["../../../../../src/components/NavBar/NavBar.tsx"],"sourcesContent":["import './NavBar.css';\n\nimport { List, ListBox } from '@consta/uikit/ListCanary';\nimport React, { forwardRef } from 'react';\n\nimport { cn } from '##/utils/bem';\n\nimport { withDefaultGetters } from './helper';\nimport { NavBarComponent, NavBarProps } from './types';\n\nconst cnNavBar = cn('NavBar');\n\nconst NavBarRender = (props: NavBarProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n items,\n onItemClick,\n getItemActive,\n getItemIconLeft,\n getItemIconRight,\n getItemLabel,\n getItemOnClick,\n getItemAs,\n getItemAttributes,\n className,\n ...otherProps\n } = withDefaultGetters(props);\n\n type ITEM = (typeof items)[number];\n\n const onClick = (item: ITEM) => (e: React.MouseEvent) => {\n getItemOnClick(item)?.(e);\n onItemClick?.({ e, item });\n };\n\n return (\n <ListBox ref={ref} className={cnNavBar(null, [className])} {...otherProps}>\n <List\n items={items}\n size=\"m\"\n getItemLabel={getItemLabel}\n getItemActive={getItemActive}\n getItemLeftIcon={getItemIconLeft}\n getItemRightIcon={getItemIconRight}\n getItemOnClick={(item) => onClick(item)}\n getItemAs={getItemAs}\n itemSpase={{ pV: 's', pH: 'l' }}\n getItemAttributes={getItemAttributes}\n getItemAdditionalClassName={(item) =>\n cnNavBar('Item', { active: getItemActive(item) })\n }\n />\n </ListBox>\n );\n};\n\nexport const NavBar = forwardRef(NavBarRender) as NavBarComponent;\n"],"mappings":"8PAAA,qBAEA,OAASA,IAAI,CAAEC,OAAO,KAAQ,0BAA0B,CACxD,MAAOC,MAAK,EAAIC,UAAU,KAAQ,OAAO,CAEzC,OAASC,EAAE,uBAEX,OAASC,kBAAkB,gBAAmB,KAGxCC,SAAQ,CAAGF,EAAE,CAAC,QAAQ,CAAC,CAEvBG,YAAY,CAAG,CAACC,CAAkB,CAAEC,CAA8B,GAAK,SAavEJ,kBAAkB,CAACG,CAAK,CAAC,CAZvB,CACJE,KAAK,CAALA,CAAK,CACLC,WAAW,CAAXA,CAAW,CACXC,aAAa,CAAbA,CAAa,CACbC,eAAe,CAAfA,CAAe,CACfC,gBAAgB,CAAhBA,CAAgB,CAChBC,YAAY,CAAZA,CAAY,CACZC,cAAc,CAAdA,CAAc,CACdC,SAAS,CAATA,CAAS,CACTC,iBAAiB,CAAjBA,CAAiB,CACjBC,SAAS,CAATA,CAEF,CAAC,GADIC,CAAU,uCAKTC,CAAO,CAAIC,CAAU,EAAMC,CAAmB,EAAK,iBACvDP,CAAc,CAACM,CAAI,CAAC,qBAApB,EAAuBC,CAAC,CAAC,QACzBZ,CAAW,WAAXA,CAAW,QAAXA,CAAW,CAAG,CAAEY,CAAC,CAADA,CAAC,CAAED,IAAI,CAAJA,CAAK,CAAC,CAC3B,CAAC,CAED,MACE,qBAAC,OAAO,gBAAC,GAAG,CAAEb,CAAI,CAAC,SAAS,CAAEH,QAAQ,CAAC,IAAI,CAAE,CAACa,CAAS,CAAC,CAAE,EAAKC,CAAU,EACvE,oBAAC,IAAI,EACH,KAAK,CAAEV,CAAM,CACb,IAAI,CAAC,GAAG,CACR,YAAY,CAAEK,CAAa,CAC3B,aAAa,CAAEH,CAAc,CAC7B,eAAe,CAAEC,CAAgB,CACjC,gBAAgB,CAAEC,CAAiB,CACnC,cAAc,CAAGQ,CAAI,EAAKD,CAAO,CAACC,CAAI,CAAE,CACxC,SAAS,CAAEL,CAAU,CACrB,SAAS,CAAE,CAAEO,EAAE,CAAE,GAAG,CAAEC,EAAE,CAAE,GAAI,CAAE,CAChC,iBAAiB,CAAEP,CAAkB,CACrC,0BAA0B,CAAGI,CAAI,EAC/BhB,QAAQ,CAAC,MAAM,CAAE,CAAEoB,MAAM,CAAEd,CAAa,CAACU,CAAI,CAAE,CAAC,CACjD,EACD,CAGR,CAAC,CAED,MAAO,MAAMK,OAAM,CAAGxB,UAAU,CAACI,YAAY,CAAoB"}
@@ -0,0 +1,31 @@
1
+ /// <reference types="react" />
2
+ import { NavBarDefaultItem, NavBarPropGetItemActive, NavBarPropGetItemAs, NavBarPropGetItemAttributes, NavBarPropGetItemIconLeft, NavBarPropGetItemIconRight, NavBarPropGetItemLabel, NavBarPropGetItemOnClick, NavBarProps } from './types';
3
+ export declare const withDefaultGetters: <ITEM>(props: NavBarProps<ITEM>) => {
4
+ items: ITEM[];
5
+ getItemLabel?: NavBarPropGetItemLabel<ITEM> | undefined;
6
+ getItemActive?: NavBarPropGetItemActive<ITEM> | undefined;
7
+ getItemOnClick?: NavBarPropGetItemOnClick<ITEM> | undefined;
8
+ getItemIconLeft?: NavBarPropGetItemIconLeft<ITEM> | undefined;
9
+ getItemIconRight?: NavBarPropGetItemIconRight<ITEM> | undefined;
10
+ getItemAs?: NavBarPropGetItemAs<ITEM> | undefined;
11
+ getItemAttributes?: NavBarPropGetItemAttributes<ITEM> | undefined;
12
+ onItemClick?: import("./types").NavBarPropOnItemClick<ITEM> | undefined;
13
+ } & (ITEM extends {
14
+ label: string;
15
+ } ? {} : {
16
+ getItemLabel: NavBarPropGetItemLabel<ITEM>;
17
+ }) & Omit<import("react").HTMLAttributes<HTMLDivElement>, "css" | "items" | "getItemLabel" | "getItemOnClick" | "getItemAs" | "getItemAttributes" | "onItemClick" | "getItemActive" | "getItemIconLeft" | "getItemIconRight" | keyof (ITEM extends {
18
+ label: string;
19
+ } ? {} : {
20
+ getItemLabel: NavBarPropGetItemLabel<ITEM>;
21
+ })> & {
22
+ getItemLabel: NavBarPropGetItemLabel<NavBarDefaultItem> | NavBarPropGetItemLabel<ITEM>;
23
+ getItemActive: NavBarPropGetItemActive<NavBarDefaultItem> | NavBarPropGetItemActive<ITEM>;
24
+ getItemOnClick: NavBarPropGetItemOnClick<NavBarDefaultItem> | NavBarPropGetItemOnClick<ITEM>;
25
+ getItemIconLeft: NavBarPropGetItemIconLeft<NavBarDefaultItem> | NavBarPropGetItemIconLeft<ITEM>;
26
+ getItemIconRight: NavBarPropGetItemIconRight<NavBarDefaultItem> | NavBarPropGetItemIconRight<ITEM>;
27
+ getItemAs: NavBarPropGetItemAs<NavBarDefaultItem> | NavBarPropGetItemAs<ITEM>;
28
+ getItemAttributes: NavBarPropGetItemAttributes<NavBarDefaultItem> | NavBarPropGetItemAttributes<ITEM>;
29
+ ref?: import("react").Ref<HTMLDivElement> | undefined;
30
+ key?: import("react").Key | null | undefined;
31
+ };
@@ -0,0 +1,2 @@
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}const defaultGetItemLabel=a=>a.label,defaultGetItemActive=a=>a.active,defaultGetItemOnClick=a=>a.onClick,defaultGetItemIconLeft=a=>a.iconLeft,defaultGetItemIconRight=a=>a.iconRight,defaultGetItemAs=a=>a.as,defaultGetItemAttributes=a=>a.attributes;export const withDefaultGetters=a=>_objectSpread(_objectSpread({},a),{},{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemActive:a.getItemActive||defaultGetItemActive,getItemOnClick:a.getItemOnClick||defaultGetItemOnClick,getItemIconLeft:a.getItemIconLeft||defaultGetItemIconLeft,getItemIconRight:a.getItemIconRight||defaultGetItemIconRight,getItemAs:a.getItemAs||defaultGetItemAs,getItemAttributes:a.getItemAttributes||defaultGetItemAttributes});
2
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","names":["defaultGetItemLabel","item","label","defaultGetItemActive","active","defaultGetItemOnClick","onClick","defaultGetItemIconLeft","iconLeft","defaultGetItemIconRight","iconRight","defaultGetItemAs","as","defaultGetItemAttributes","attributes","withDefaultGetters","props","getItemLabel","getItemActive","getItemOnClick","getItemIconLeft","getItemIconRight","getItemAs","getItemAttributes"],"sources":["../../../../../src/components/NavBar/helper.ts"],"sourcesContent":["import {\n NavBarDefaultItem,\n NavBarPropGetItemActive,\n NavBarPropGetItemAs,\n NavBarPropGetItemAttributes,\n NavBarPropGetItemIconLeft,\n NavBarPropGetItemIconRight,\n NavBarPropGetItemLabel,\n NavBarPropGetItemOnClick,\n NavBarProps,\n} from './types';\n\nconst defaultGetItemLabel: NavBarPropGetItemLabel<NavBarDefaultItem> = (item) =>\n item.label;\nconst defaultGetItemActive: NavBarPropGetItemActive<NavBarDefaultItem> = (\n item,\n) => item.active;\nconst defaultGetItemOnClick: NavBarPropGetItemOnClick<NavBarDefaultItem> = (\n item,\n) => item.onClick;\nconst defaultGetItemIconLeft: NavBarPropGetItemIconLeft<NavBarDefaultItem> = (\n item,\n) => item.iconLeft;\nconst defaultGetItemIconRight: NavBarPropGetItemIconRight<NavBarDefaultItem> = (\n item,\n) => item.iconRight;\nconst defaultGetItemAs: NavBarPropGetItemAs<NavBarDefaultItem> = (item) =>\n item.as;\nconst defaultGetItemAttributes: NavBarPropGetItemAttributes<\n NavBarDefaultItem\n> = (item) => item.attributes;\n\nexport const withDefaultGetters = <ITEM>(props: NavBarProps<ITEM>) => {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemActive: props.getItemActive || defaultGetItemActive,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n getItemIconLeft: props.getItemIconLeft || defaultGetItemIconLeft,\n getItemIconRight: props.getItemIconRight || defaultGetItemIconRight,\n getItemAs: props.getItemAs || defaultGetItemAs,\n getItemAttributes: props.getItemAttributes || defaultGetItemAttributes,\n };\n};\n"],"mappings":"0qBAYMA,oBAA8D,CAAIC,CAAI,EAC1EA,CAAI,CAACC,KAAK,CACNC,oBAAgE,CACpEF,CAAI,EACDA,CAAI,CAACG,MAAM,CACVC,qBAAkE,CACtEJ,CAAI,EACDA,CAAI,CAACK,OAAO,CACXC,sBAAoE,CACxEN,CAAI,EACDA,CAAI,CAACO,QAAQ,CACZC,uBAAsE,CAC1ER,CAAI,EACDA,CAAI,CAACS,SAAS,CACbC,gBAAwD,CAAIV,CAAI,EACpEA,CAAI,CAACW,EAAE,CACHC,wBAEL,CAAIZ,CAAI,EAAKA,CAAI,CAACa,UAAU,CAE7B,MAAO,MAAMC,mBAAkB,CAAUC,CAAwB,iCAE1DA,CAAK,MACRC,YAAY,CAAED,CAAK,CAACC,YAAY,EAAIjB,mBAAmB,CACvDkB,aAAa,CAAEF,CAAK,CAACE,aAAa,EAAIf,oBAAoB,CAC1DgB,cAAc,CAAEH,CAAK,CAACG,cAAc,EAAId,qBAAqB,CAC7De,eAAe,CAAEJ,CAAK,CAACI,eAAe,EAAIb,sBAAsB,CAChEc,gBAAgB,CAAEL,CAAK,CAACK,gBAAgB,EAAIZ,uBAAuB,CACnEa,SAAS,CAAEN,CAAK,CAACM,SAAS,EAAIX,gBAAgB,CAC9CY,iBAAiB,CAAEP,CAAK,CAACO,iBAAiB,EAAIV,wBAAwB,EAEzE"}
@@ -0,0 +1 @@
1
+ export * from './NavBar';
@@ -0,0 +1,2 @@
1
+ export*from"./NavBar";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/NavBar/index.ts"],"sourcesContent":["export * from './NavBar';\n"],"mappings":"AAAA"}
@@ -0,0 +1,48 @@
1
+ import { PropsWithAsAttributes } from '@consta/uikit/__internal__/src/utils/types/PropsWithAsAttributes';
2
+ import { IconComponent } from '@consta/uikit/Icon';
3
+ import React from 'react';
4
+ import { PropsWithHTMLAttributesAndRef } from "../../utils/types/PropsWithHTMLAttributes";
5
+ export type NavBarDefaultItem = {
6
+ label: string;
7
+ iconLeft?: IconComponent;
8
+ iconRight?: IconComponent;
9
+ active?: boolean;
10
+ as?: keyof JSX.IntrinsicElements;
11
+ attributes?: JSX.IntrinsicElements[keyof JSX.IntrinsicElements];
12
+ onClick?: React.MouseEventHandler;
13
+ };
14
+ export type NavBarPropGetItemLabel<ITEM> = (item: ITEM) => string;
15
+ export type NavBarPropGetItemIconLeft<ITEM> = (item: ITEM) => IconComponent | undefined;
16
+ export type NavBarPropGetItemIconRight<ITEM> = (item: ITEM) => IconComponent | undefined;
17
+ export type NavBarPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;
18
+ export type NavBarPropGetItemOnClick<ITEM> = (item: ITEM) => React.MouseEventHandler | undefined;
19
+ export type NavBarPropGetItemAs<ITEM> = (item: ITEM) => keyof JSX.IntrinsicElements | undefined;
20
+ export type NavBarPropGetItemAttributes<ITEM> = (item: ITEM) => JSX.IntrinsicElements[keyof JSX.IntrinsicElements] | undefined;
21
+ export type NavBarPropOnItemClick<ITEM> = (params: {
22
+ e: React.MouseEvent;
23
+ item: ITEM;
24
+ }) => void;
25
+ export type NavBarProps<ITEM = NavBarDefaultItem> = PropsWithHTMLAttributesAndRef<{
26
+ items: ITEM[];
27
+ getItemLabel?: NavBarPropGetItemLabel<ITEM>;
28
+ getItemActive?: NavBarPropGetItemActive<ITEM>;
29
+ getItemOnClick?: NavBarPropGetItemOnClick<ITEM>;
30
+ getItemIconLeft?: NavBarPropGetItemIconLeft<ITEM>;
31
+ getItemIconRight?: NavBarPropGetItemIconRight<ITEM>;
32
+ getItemAs?: NavBarPropGetItemAs<ITEM>;
33
+ getItemAttributes?: NavBarPropGetItemAttributes<ITEM>;
34
+ onItemClick?: NavBarPropOnItemClick<ITEM>;
35
+ } & (ITEM extends {
36
+ label: string;
37
+ } ? {} : {
38
+ getItemLabel: NavBarPropGetItemLabel<ITEM>;
39
+ }), HTMLDivElement>;
40
+ export type NavBarComponent = <ITEM = NavBarDefaultItem>(props: NavBarProps<ITEM>, ref: React.Ref<HTMLDivElement>) => React.ReactElement | null;
41
+ export type NavBarItemProps<AS extends keyof JSX.IntrinsicElements = 'div'> = PropsWithAsAttributes<{
42
+ label: string;
43
+ active?: boolean;
44
+ onClick?: React.MouseEventHandler;
45
+ iconLeft?: IconComponent;
46
+ iconRight?: IconComponent;
47
+ }, AS>;
48
+ export type NavBarItemComponent = <AS extends keyof JSX.IntrinsicElements = 'div'>(props: NavBarItemProps<AS>, ref: React.Ref<HTMLElement>) => React.ReactElement | null;
@@ -0,0 +1,2 @@
1
+ export{};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/NavBar/types.ts"],"sourcesContent":["import { PropsWithAsAttributes } from '@consta/uikit/__internal__/src/utils/types/PropsWithAsAttributes';\nimport { IconComponent } from '@consta/uikit/Icon';\nimport React from 'react';\n\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport type NavBarDefaultItem = {\n label: string;\n iconLeft?: IconComponent;\n iconRight?: IconComponent;\n active?: boolean;\n as?: keyof JSX.IntrinsicElements;\n attributes?: JSX.IntrinsicElements[keyof JSX.IntrinsicElements];\n onClick?: React.MouseEventHandler;\n};\n\nexport type NavBarPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type NavBarPropGetItemIconLeft<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\nexport type NavBarPropGetItemIconRight<ITEM> = (\n item: ITEM,\n) => IconComponent | undefined;\nexport type NavBarPropGetItemActive<ITEM> = (item: ITEM) => boolean | undefined;\nexport type NavBarPropGetItemOnClick<ITEM> = (\n item: ITEM,\n) => React.MouseEventHandler | undefined;\nexport type NavBarPropGetItemAs<ITEM> = (\n item: ITEM,\n) => keyof JSX.IntrinsicElements | undefined;\nexport type NavBarPropGetItemAttributes<ITEM> = (\n item: ITEM,\n) => JSX.IntrinsicElements[keyof JSX.IntrinsicElements] | undefined;\n\nexport type NavBarPropOnItemClick<ITEM> = (params: {\n e: React.MouseEvent;\n item: ITEM;\n}) => void;\n\nexport type NavBarProps<ITEM = NavBarDefaultItem> =\n PropsWithHTMLAttributesAndRef<\n {\n items: ITEM[];\n getItemLabel?: NavBarPropGetItemLabel<ITEM>;\n getItemActive?: NavBarPropGetItemActive<ITEM>;\n getItemOnClick?: NavBarPropGetItemOnClick<ITEM>;\n getItemIconLeft?: NavBarPropGetItemIconLeft<ITEM>;\n getItemIconRight?: NavBarPropGetItemIconRight<ITEM>;\n getItemAs?: NavBarPropGetItemAs<ITEM>;\n getItemAttributes?: NavBarPropGetItemAttributes<ITEM>;\n onItemClick?: NavBarPropOnItemClick<ITEM>;\n } & (ITEM extends { label: string }\n ? {}\n : {\n getItemLabel: NavBarPropGetItemLabel<ITEM>;\n }),\n HTMLDivElement\n >;\n\nexport type NavBarComponent = <ITEM = NavBarDefaultItem>(\n props: NavBarProps<ITEM>,\n ref: React.Ref<HTMLDivElement>,\n) => React.ReactElement | null;\n\nexport type NavBarItemProps<AS extends keyof JSX.IntrinsicElements = 'div'> =\n PropsWithAsAttributes<\n {\n label: string;\n active?: boolean;\n onClick?: React.MouseEventHandler;\n iconLeft?: IconComponent;\n iconRight?: IconComponent;\n },\n AS\n >;\n\nexport type NavBarItemComponent = <\n AS extends keyof JSX.IntrinsicElements = 'div',\n>(\n props: NavBarItemProps<AS>,\n ref: React.Ref<HTMLElement>,\n) => React.ReactElement | null;\n"],"mappings":""}
@@ -2,5 +2,5 @@ import './NotificationCard.css';
2
2
  import React from 'react';
3
3
  import { NotificationCardProps } from './types';
4
4
  export declare const cnNotificationCard: import("@bem-react/classname").ClassNameFormatter;
5
- export declare const NotificationCard: React.ForwardRefExoticComponent<Pick<NotificationCardProps, "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "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" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "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" | "view" | "key" | "date" | "setVisibleMenu" | "description" | "imageUrl" | "read" | "dateFormat" | "badges" | "actions" | "actionsMenuOpened"> & React.RefAttributes<HTMLDivElement>>;
5
+ export declare const NotificationCard: React.ForwardRefExoticComponent<Pick<NotificationCardProps, "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "nonce" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "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" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "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" | "onResize" | "onResizeCapture" | "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" | "view" | "key" | "date" | "description" | "setVisibleMenu" | "imageUrl" | "read" | "dateFormat" | "badges" | "actions" | "actionsMenuOpened"> & React.RefAttributes<HTMLDivElement>>;
6
6
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationCard.js","names":["Avatar","Text","React","forwardRef","Badges","NotificationsActions","cn","defaultDateFormat","cnNotificationCard","NotificationCard","props","ref","title","className","description","imageUrl","view","read","date","dateFormat","badges","actions","actionsMenuOpened","setVisibleMenu","otherProps","cardWithActions","length","zIndex","style"],"sources":["../../../../../src/components/NotificationCard/NotificationCard.tsx"],"sourcesContent":["import './NotificationCard.css';\n\nimport { Avatar } from '@consta/uikit/Avatar';\nimport { Text } from '@consta/uikit/Text';\nimport React, { forwardRef } from 'react';\n\nimport { Badges } from '##/components/Badges';\nimport { NotificationsActions } from '##/components/NotificationsActions';\nimport { cn } from '##/utils/bem';\n\nimport { defaultDateFormat } from './helpers';\nimport { NotificationCardProps } from './types';\n\nexport const cnNotificationCard = cn('NotificationCard');\n\nexport const NotificationCard = forwardRef(\n (props: NotificationCardProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n title,\n className,\n description,\n imageUrl,\n view = 'default',\n read,\n date,\n dateFormat = defaultDateFormat,\n badges,\n actions,\n actionsMenuOpened,\n setVisibleMenu,\n ...otherProps\n } = props;\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnNotificationCard(null, [className])}\n >\n {(imageUrl || view === 'user') && (\n <Avatar\n size=\"l\"\n name={title}\n url={imageUrl}\n className={cnNotificationCard('Image')}\n />\n )}\n <div className={cnNotificationCard('Content')}>\n <div className={cnNotificationCard('Text')}>\n <Text\n weight={!read ? 'bold' : undefined}\n className={cnNotificationCard('Title', {\n cardWithActions: !!actions?.length,\n })}\n >\n {title}\n </Text>\n {description && <Text size=\"s\">{description}</Text>}\n </div>\n {(badges || date) && (\n <div className={cnNotificationCard('Footer')}>\n <Badges\n className={cnNotificationCard('Badges')}\n items={badges}\n view=\"stroked\"\n />\n {date && (\n <Text size=\"xs\" view=\"secondary\">\n {dateFormat(date)}\n </Text>\n )}\n </div>\n )}\n {actions?.length && (\n <NotificationsActions\n className={cnNotificationCard('Actions')}\n items={actions}\n mainButtonOnlyIcon\n opened={actionsMenuOpened}\n setVisibleMenu={setVisibleMenu}\n style={{ zIndex: props.style?.zIndex }}\n />\n )}\n </div>\n </div>\n );\n },\n);\n\nexport * from './types';\n"],"mappings":"8OAAA,+BAEA,OAASA,MAAT,KAAuB,sBAAvB,CACA,OAASC,IAAT,KAAqB,oBAArB,CACA,MAAOC,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,MAAT,iBACA,OAASC,oBAAT,+BACA,OAASC,EAAT,uBAEA,OAASC,iBAAT,iBAGA,MAAO,MAAMC,mBAAkB,CAAGF,EAAE,CAAC,kBAAD,CAA7B,CAEP,MAAO,MAAMG,iBAAgB,CAAGN,UAAU,CACxC,CAACO,CAAD,CAA+BC,CAA/B,GAAkE,OAChE,KAAM,CACJC,KAAK,CAALA,CADI,CAEJC,SAAS,CAATA,CAFI,CAGJC,WAAW,CAAXA,CAHI,CAIJC,QAAQ,CAARA,CAJI,CAKJC,IAAI,CAAJA,CAAI,CAAG,SALH,CAMJC,IAAI,CAAJA,CANI,CAOJC,IAAI,CAAJA,CAPI,CAQJC,UAAU,CAAVA,CAAU,CAAGZ,iBART,CASJa,MAAM,CAANA,CATI,CAUJC,OAAO,CAAPA,CAVI,CAWJC,iBAAiB,CAAjBA,CAXI,CAYJC,cAAc,CAAdA,CAZI,EAcFb,CAdJ,CAaKc,CAbL,0BAcId,CAdJ,YAgBA,MACE,4CACMc,CADN,EAEE,GAAG,CAAEb,CAFP,CAGE,SAAS,CAAEH,kBAAkB,CAAC,IAAD,CAAO,CAACK,CAAD,CAAP,CAH/B,GAKG,CAACE,CAAQ,EAAa,MAAT,GAAAC,CAAb,GACC,oBAAC,MAAD,EACE,IAAI,CAAC,GADP,CAEE,IAAI,CAAEJ,CAFR,CAGE,GAAG,CAAEG,CAHP,CAIE,SAAS,CAAEP,kBAAkB,CAAC,OAAD,CAJ/B,EANJ,CAaE,2BAAK,SAAS,CAAEA,kBAAkB,CAAC,SAAD,CAAlC,EACE,2BAAK,SAAS,CAAEA,kBAAkB,CAAC,MAAD,CAAlC,EACE,oBAAC,IAAD,EACE,MAAM,CAAGS,CAAD,QAAQ,MADlB,CAEE,SAAS,CAAET,kBAAkB,CAAC,OAAD,CAAU,CACrCiB,eAAe,CAAE,CAAC,SAACJ,CAAD,WAACA,CAAD,EAACA,CAAO,CAAEK,MAAV,CADmB,CAAV,CAF/B,EAMGd,CANH,CADF,CASGE,CAAW,EAAI,oBAAC,IAAD,EAAM,IAAI,CAAC,GAAX,EAAgBA,CAAhB,CATlB,CADF,CAYG,CAACM,CAAM,EAAIF,CAAX,GACC,2BAAK,SAAS,CAAEV,kBAAkB,CAAC,QAAD,CAAlC,EACE,oBAAC,MAAD,EACE,SAAS,CAAEA,kBAAkB,CAAC,QAAD,CAD/B,CAEE,KAAK,CAAEY,CAFT,CAGE,IAAI,CAAC,SAHP,EADF,CAMGF,CAAI,EACH,oBAAC,IAAD,EAAM,IAAI,CAAC,IAAX,CAAgB,IAAI,CAAC,WAArB,EACGC,CAAU,CAACD,CAAD,CADb,CAPJ,CAbJ,CA0BG,QAAAG,CAAO,WAAPA,CAAA,QAAAA,CAAO,CAAEK,MAAT,GACC,oBAAC,oBAAD,EACE,SAAS,CAAElB,kBAAkB,CAAC,SAAD,CAD/B,CAEE,KAAK,CAAEa,CAFT,CAGE,kBAAkB,GAHpB,CAIE,MAAM,CAAEC,CAJV,CAKE,cAAc,CAAEC,CALlB,CAME,KAAK,CAAE,CAAEI,MAAM,WAAEjB,CAAK,CAACkB,KAAR,qBAAE,EAAaD,MAAvB,CANT,EA3BJ,CAbF,CAoDH,CAvEuC,CAAnC,CA0EP"}
1
+ {"version":3,"file":"NotificationCard.js","names":["Avatar","Text","React","forwardRef","Badges","NotificationsActions","cn","defaultDateFormat","cnNotificationCard","NotificationCard","props","ref","title","className","description","imageUrl","view","read","date","dateFormat","badges","actions","actionsMenuOpened","setVisibleMenu","otherProps","cardWithActions","length","zIndex","style"],"sources":["../../../../../src/components/NotificationCard/NotificationCard.tsx"],"sourcesContent":["import './NotificationCard.css';\n\nimport { Avatar } from '@consta/uikit/Avatar';\nimport { Text } from '@consta/uikit/Text';\nimport React, { forwardRef } from 'react';\n\nimport { Badges } from '##/components/Badges';\nimport { NotificationsActions } from '##/components/NotificationsActions';\nimport { cn } from '##/utils/bem';\n\nimport { defaultDateFormat } from './helpers';\nimport { NotificationCardProps } from './types';\n\nexport const cnNotificationCard = cn('NotificationCard');\n\nexport const NotificationCard = forwardRef(\n (props: NotificationCardProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n title,\n className,\n description,\n imageUrl,\n view = 'default',\n read,\n date,\n dateFormat = defaultDateFormat,\n badges,\n actions,\n actionsMenuOpened,\n setVisibleMenu,\n ...otherProps\n } = props;\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnNotificationCard(null, [className])}\n >\n {(imageUrl || view === 'user') && (\n <Avatar\n size=\"l\"\n name={title}\n url={imageUrl}\n className={cnNotificationCard('Image')}\n />\n )}\n <div className={cnNotificationCard('Content')}>\n <div className={cnNotificationCard('Text')}>\n <Text\n weight={!read ? 'bold' : undefined}\n className={cnNotificationCard('Title', {\n cardWithActions: !!actions?.length,\n })}\n >\n {title}\n </Text>\n {description && <Text size=\"s\">{description}</Text>}\n </div>\n {(badges || date) && (\n <div className={cnNotificationCard('Footer')}>\n <Badges\n className={cnNotificationCard('Badges')}\n items={badges}\n view=\"stroked\"\n />\n {date && (\n <Text size=\"xs\" view=\"secondary\">\n {dateFormat(date)}\n </Text>\n )}\n </div>\n )}\n {actions?.length && (\n <NotificationsActions\n className={cnNotificationCard('Actions')}\n items={actions}\n mainButtonOnlyIcon\n opened={actionsMenuOpened}\n setVisibleMenu={setVisibleMenu}\n style={{ zIndex: props.style?.zIndex }}\n />\n )}\n </div>\n </div>\n );\n },\n);\n\nexport * from './types';\n"],"mappings":"8OAAA,+BAEA,OAASA,MAAM,KAAQ,sBAAsB,CAC7C,OAASC,IAAI,KAAQ,oBAAoB,CACzC,MAAOC,MAAK,EAAIC,UAAU,KAAQ,OAAO,CAEzC,OAASC,MAAM,iBACf,OAASC,oBAAoB,+BAC7B,OAASC,EAAE,uBAEX,OAASC,iBAAiB,iBAG1B,MAAO,MAAMC,mBAAkB,CAAGF,EAAE,CAAC,kBAAkB,CAAC,CAExD,MAAO,MAAMG,iBAAgB,CAAGN,UAAU,CACxC,CAACO,CAA4B,CAAEC,CAA8B,GAAK,OAChE,KAAM,CACJC,KAAK,CAALA,CAAK,CACLC,SAAS,CAATA,CAAS,CACTC,WAAW,CAAXA,CAAW,CACXC,QAAQ,CAARA,CAAQ,CACRC,IAAI,CAAJA,CAAI,CAAG,SAAS,CAChBC,IAAI,CAAJA,CAAI,CACJC,IAAI,CAAJA,CAAI,CACJC,UAAU,CAAVA,CAAU,CAAGZ,iBAAiB,CAC9Ba,MAAM,CAANA,CAAM,CACNC,OAAO,CAAPA,CAAO,CACPC,iBAAiB,CAAjBA,CAAiB,CACjBC,cAAc,CAAdA,CAEF,CAAC,CAAGb,CAAK,CADJc,CAAU,0BACXd,CAAK,YAET,MACE,4CACMc,CAAU,EACd,GAAG,CAAEb,CAAI,CACT,SAAS,CAAEH,kBAAkB,CAAC,IAAI,CAAE,CAACK,CAAS,CAAC,CAAE,GAEhD,CAACE,CAAQ,EAAa,MAAM,GAAfC,CAAe,GAC3B,oBAAC,MAAM,EACL,IAAI,CAAC,GAAG,CACR,IAAI,CAAEJ,CAAM,CACZ,GAAG,CAAEG,CAAS,CACd,SAAS,CAAEP,kBAAkB,CAAC,OAAO,CAAE,EAE1C,CACD,2BAAK,SAAS,CAAEA,kBAAkB,CAAC,SAAS,CAAE,EAC5C,2BAAK,SAAS,CAAEA,kBAAkB,CAAC,MAAM,CAAE,EACzC,oBAAC,IAAI,EACH,MAAM,CAAGS,CAAI,QAAG,MAAmB,CACnC,SAAS,CAAET,kBAAkB,CAAC,OAAO,CAAE,CACrCiB,eAAe,CAAE,CAAC,SAACJ,CAAO,WAAPA,CAAO,EAAPA,CAAO,CAAEK,MAAM,CACpC,CAAC,CAAE,EAEFd,CAAK,CACD,CACNE,CAAW,EAAI,oBAAC,IAAI,EAAC,IAAI,CAAC,GAAG,EAAEA,CAAW,CAAQ,CAC/C,CACL,CAACM,CAAM,EAAIF,CAAI,GACd,2BAAK,SAAS,CAAEV,kBAAkB,CAAC,QAAQ,CAAE,EAC3C,oBAAC,MAAM,EACL,SAAS,CAAEA,kBAAkB,CAAC,QAAQ,CAAE,CACxC,KAAK,CAAEY,CAAO,CACd,IAAI,CAAC,SAAS,EACd,CACDF,CAAI,EACH,oBAAC,IAAI,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAC7BC,CAAU,CAACD,CAAI,CAAC,CAEpB,CAEJ,CACA,QAAAG,CAAO,WAAPA,CAAO,QAAPA,CAAO,CAAEK,MAAM,GACd,oBAAC,oBAAoB,EACnB,SAAS,CAAElB,kBAAkB,CAAC,SAAS,CAAE,CACzC,KAAK,CAAEa,CAAQ,CACf,kBAAkB,IAClB,MAAM,CAAEC,CAAkB,CAC1B,cAAc,CAAEC,CAAe,CAC/B,KAAK,CAAE,CAAEI,MAAM,WAAEjB,CAAK,CAACkB,KAAK,qBAAX,EAAaD,MAAO,CAAE,EAE1C,CACG,CAGZ,CAAC,CACF,CAED"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["format","formatDistanceToNow","ruLocale","defaultDateFormat","date","currentDate","Date","getTime","locale","addSuffix"],"sources":["../../../../../src/components/NotificationCard/helpers.ts"],"sourcesContent":["import format from 'date-fns/format';\nimport formatDistanceToNow from 'date-fns/formatDistanceToNow';\nimport ruLocale from 'date-fns/locale/ru';\n\nexport const defaultDateFormat = (date: Date): string => {\n const currentDate = new Date();\n\n if (currentDate.getTime() - date.getTime() < 3600000) {\n return formatDistanceToNow(date, { locale: ruLocale, addSuffix: true });\n }\n\n if (format(currentDate, 'dd.MM.yyyy') === format(date, 'dd.MM.yyyy')) {\n return format(date, 'HH:mm');\n }\n\n return format(date, 'dd.MM.yyyy HH:mm');\n};\n"],"mappings":"AAAA,MAAOA,OAAP,KAAmB,iBAAnB,CACA,MAAOC,oBAAP,KAAgC,8BAAhC,CACA,MAAOC,SAAP,KAAqB,oBAArB,CAEA,MAAO,MAAMC,kBAAiB,CAAIC,CAAD,EAAwB,CACvD,KAAMC,EAAW,CAAG,GAAIC,KAAxB,CADuD,MAGV,KAAzC,CAAAD,CAAW,CAACE,OAAZ,GAAwBH,CAAI,CAACG,OAAL,EAH2B,CAI9CN,mBAAmB,CAACG,CAAD,CAAO,CAAEI,MAAM,CAAEN,QAAV,CAAoBO,SAAS,GAA7B,CAAP,CAJ2B,CAOnDT,MAAM,CAACK,CAAD,CAAc,YAAd,CAAN,GAAsCL,MAAM,CAACI,CAAD,CAAO,YAAP,CAPO,CAQ9CJ,MAAM,CAACI,CAAD,CAAO,OAAP,CARwC,CAWhDJ,MAAM,CAACI,CAAD,CAAO,kBAAP,CACd,CAZM"}
1
+ {"version":3,"file":"helpers.js","names":["format","formatDistanceToNow","ruLocale","defaultDateFormat","date","currentDate","Date","getTime","locale","addSuffix"],"sources":["../../../../../src/components/NotificationCard/helpers.ts"],"sourcesContent":["import format from 'date-fns/format';\nimport formatDistanceToNow from 'date-fns/formatDistanceToNow';\nimport ruLocale from 'date-fns/locale/ru';\n\nexport const defaultDateFormat = (date: Date): string => {\n const currentDate = new Date();\n\n if (currentDate.getTime() - date.getTime() < 3600000) {\n return formatDistanceToNow(date, { locale: ruLocale, addSuffix: true });\n }\n\n if (format(currentDate, 'dd.MM.yyyy') === format(date, 'dd.MM.yyyy')) {\n return format(date, 'HH:mm');\n }\n\n return format(date, 'dd.MM.yyyy HH:mm');\n};\n"],"mappings":"AAAA,MAAOA,OAAM,KAAM,iBAAiB,CACpC,MAAOC,oBAAmB,KAAM,8BAA8B,CAC9D,MAAOC,SAAQ,KAAM,oBAAoB,CAEzC,MAAO,MAAMC,kBAAiB,CAAIC,CAAU,EAAa,CACvD,KAAMC,EAAW,CAAG,GAAIC,KAAM,CAAC,MAEc,KAAO,CAAhDD,CAAW,CAACE,OAAO,EAAE,CAAGH,CAAI,CAACG,OAAO,EAAY,CAC3CN,mBAAmB,CAACG,CAAI,CAAE,CAAEI,MAAM,CAAEN,QAAQ,CAAEO,SAAS,GAAO,CAAC,CAAC,CAGrET,MAAM,CAACK,CAAW,CAAE,YAAY,CAAC,GAAKL,MAAM,CAACI,CAAI,CAAE,YAAY,CAAC,CAC3DJ,MAAM,CAACI,CAAI,CAAE,OAAO,CAAC,CAGvBJ,MAAM,CAACI,CAAI,CAAE,kBAAkB,CACxC,CAAC"}