@consta/header 1.0.1 → 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 (157) 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/__internal__/src/components/Badges/Badges.js.map +1 -1
  10. package/__internal__/src/components/Badges/helpers.js.map +1 -1
  11. package/__internal__/src/components/Badges/types.d.ts +6 -6
  12. package/__internal__/src/components/BannerBar/BannerBar.css +1 -0
  13. package/__internal__/src/components/BannerBar/BannerBar.d.ts +3 -0
  14. package/__internal__/src/components/BannerBar/BannerBar.js +2 -0
  15. package/__internal__/src/components/BannerBar/BannerBar.js.map +1 -0
  16. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.css +1 -0
  17. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.d.ts +3 -0
  18. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.js +2 -0
  19. package/__internal__/src/components/BannerBar/BannerBarItem/BannerBarItem.js.map +1 -0
  20. package/__internal__/src/components/BannerBar/BannerBarItem/index.d.ts +1 -0
  21. package/__internal__/src/components/BannerBar/BannerBarItem/index.js +2 -0
  22. package/__internal__/src/components/BannerBar/BannerBarItem/index.js.map +1 -0
  23. package/__internal__/src/components/BannerBar/helpers.d.ts +274 -0
  24. package/__internal__/src/components/BannerBar/helpers.js +2 -0
  25. package/__internal__/src/components/BannerBar/helpers.js.map +1 -0
  26. package/__internal__/src/components/BannerBar/index.d.ts +3 -0
  27. package/__internal__/src/components/BannerBar/index.js +2 -0
  28. package/__internal__/src/components/BannerBar/index.js.map +1 -0
  29. package/__internal__/src/components/BannerBar/types.d.ts +42 -0
  30. package/__internal__/src/components/BannerBar/types.js +2 -0
  31. package/__internal__/src/components/BannerBar/types.js.map +1 -0
  32. package/__internal__/src/components/ButtonMenu/ButtonMenu.js.map +1 -1
  33. package/__internal__/src/components/ButtonMenu/helpers.d.ts +2 -2
  34. package/__internal__/src/components/ButtonMenu/helpers.js.map +1 -1
  35. package/__internal__/src/components/ButtonMenu/types.d.ts +9 -9
  36. package/__internal__/src/components/GlobalMenu/GlobalMenu.css +1 -0
  37. package/__internal__/src/components/GlobalMenu/GlobalMenu.d.ts +3 -0
  38. package/__internal__/src/components/GlobalMenu/GlobalMenu.js +2 -0
  39. package/__internal__/src/components/GlobalMenu/GlobalMenu.js.map +1 -0
  40. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.css +1 -0
  41. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.d.ts +3 -0
  42. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.js +2 -0
  43. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/GlobalMenuGroup.js.map +1 -0
  44. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/index.d.ts +1 -0
  45. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/index.js +2 -0
  46. package/__internal__/src/components/GlobalMenu/GlobalMenuGroup/index.js.map +1 -0
  47. package/__internal__/src/components/GlobalMenu/helper.d.ts +281 -0
  48. package/__internal__/src/components/GlobalMenu/helper.js +2 -0
  49. package/__internal__/src/components/GlobalMenu/helper.js.map +1 -0
  50. package/__internal__/src/components/GlobalMenu/index.d.ts +2 -0
  51. package/__internal__/src/components/GlobalMenu/index.js +2 -0
  52. package/__internal__/src/components/GlobalMenu/index.js.map +1 -0
  53. package/__internal__/src/components/GlobalMenu/types.d.ts +75 -0
  54. package/__internal__/src/components/GlobalMenu/types.js +2 -0
  55. package/__internal__/src/components/GlobalMenu/types.js.map +1 -0
  56. package/__internal__/src/components/Header/Header.js.map +1 -1
  57. package/__internal__/src/components/Header/HeaderLogin/HeaderLogin.d.ts +2 -2
  58. package/__internal__/src/components/Header/HeaderLogin/HeaderLogin.js.map +1 -1
  59. package/__internal__/src/components/Header/HeaderLogo/HeaderLogo.d.ts +2 -2
  60. package/__internal__/src/components/Header/HeaderLogo/HeaderLogo.js.map +1 -1
  61. package/__internal__/src/components/Header/HeaderSearch/HeaderSearch.d.ts +1 -1
  62. package/__internal__/src/components/Header/HeaderSearch/HeaderSearch.js.map +1 -1
  63. package/__internal__/src/components/Header/helpers.d.ts +1 -1
  64. package/__internal__/src/components/Header/helpers.js.map +1 -1
  65. package/__internal__/src/components/Header/types.d.ts +12 -12
  66. package/__internal__/src/components/Languages/Languages.js.map +1 -1
  67. package/__internal__/src/components/Languages/helpers.d.ts +1 -1
  68. package/__internal__/src/components/Languages/helpers.js.map +1 -1
  69. package/__internal__/src/components/Languages/types.d.ts +3 -3
  70. package/__internal__/src/components/Layout/Layout.d.ts +1 -1
  71. package/__internal__/src/components/Layout/Layout.js.map +1 -1
  72. package/__internal__/src/components/Layout/LayoutRow/LayoutRow.d.ts +1 -1
  73. package/__internal__/src/components/Layout/LayoutRow/LayoutRow.js.map +1 -1
  74. package/__internal__/src/components/Layout/helpers.js.map +1 -1
  75. package/__internal__/src/components/Layout/types.d.ts +3 -3
  76. package/__internal__/src/components/MegaMenu/MegaMenu.css +1 -0
  77. package/__internal__/src/components/MegaMenu/MegaMenu.d.ts +4 -0
  78. package/__internal__/src/components/MegaMenu/MegaMenu.js +2 -0
  79. package/__internal__/src/components/MegaMenu/MegaMenu.js.map +1 -0
  80. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.css +1 -0
  81. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.d.ts +3 -0
  82. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.js +2 -0
  83. package/__internal__/src/components/MegaMenu/MegaMenuBox/MegaMenuBox.js.map +1 -0
  84. package/__internal__/src/components/MegaMenu/MegaMenuBox/index.d.ts +2 -0
  85. package/__internal__/src/components/MegaMenu/MegaMenuBox/index.js +2 -0
  86. package/__internal__/src/components/MegaMenu/MegaMenuBox/index.js.map +1 -0
  87. package/__internal__/src/components/MegaMenu/MegaMenuBox/types.d.ts +10 -0
  88. package/__internal__/src/components/MegaMenu/MegaMenuBox/types.js +2 -0
  89. package/__internal__/src/components/MegaMenu/MegaMenuBox/types.js.map +1 -0
  90. package/__internal__/src/components/MegaMenu/helper.d.ts +301 -0
  91. package/__internal__/src/components/MegaMenu/helper.js +2 -0
  92. package/__internal__/src/components/MegaMenu/helper.js.map +1 -0
  93. package/__internal__/src/components/MegaMenu/index.d.ts +3 -0
  94. package/__internal__/src/components/MegaMenu/index.js +2 -0
  95. package/__internal__/src/components/MegaMenu/index.js.map +1 -0
  96. package/__internal__/src/components/MegaMenu/types.d.ts +65 -0
  97. package/__internal__/src/components/MegaMenu/types.js +2 -0
  98. package/__internal__/src/components/MegaMenu/types.js.map +1 -0
  99. package/__internal__/src/components/Menu/Menu.js.map +1 -1
  100. package/__internal__/src/components/Menu/helpers.d.ts +1 -1
  101. package/__internal__/src/components/Menu/helpers.js.map +1 -1
  102. package/__internal__/src/components/Menu/types.d.ts +10 -10
  103. package/__internal__/src/components/MobileMenu/MobileMenu.js.map +1 -1
  104. package/__internal__/src/components/MobileMenu/types.d.ts +2 -2
  105. package/__internal__/src/components/NavBar/NavBar.css +1 -0
  106. package/__internal__/src/components/NavBar/NavBar.d.ts +3 -0
  107. package/__internal__/src/components/NavBar/NavBar.js +2 -0
  108. package/__internal__/src/components/NavBar/NavBar.js.map +1 -0
  109. package/__internal__/src/components/NavBar/helper.d.ts +31 -0
  110. package/__internal__/src/components/NavBar/helper.js +2 -0
  111. package/__internal__/src/components/NavBar/helper.js.map +1 -0
  112. package/__internal__/src/components/NavBar/index.d.ts +1 -0
  113. package/__internal__/src/components/NavBar/index.js +2 -0
  114. package/__internal__/src/components/NavBar/index.js.map +1 -0
  115. package/__internal__/src/components/NavBar/types.d.ts +48 -0
  116. package/__internal__/src/components/NavBar/types.js +2 -0
  117. package/__internal__/src/components/NavBar/types.js.map +1 -0
  118. package/__internal__/src/components/NotificationCard/NotificationCard.d.ts +1 -1
  119. package/__internal__/src/components/NotificationCard/NotificationCard.js.map +1 -1
  120. package/__internal__/src/components/NotificationCard/helpers.js.map +1 -1
  121. package/__internal__/src/components/NotificationCard/types.d.ts +3 -3
  122. package/__internal__/src/components/Notifications/Notifications.js.map +1 -1
  123. package/__internal__/src/components/Notifications/types.d.ts +2 -2
  124. package/__internal__/src/components/NotificationsActions/NotificationsActions.js.map +1 -1
  125. package/__internal__/src/components/NotificationsActions/helpers.js.map +1 -1
  126. package/__internal__/src/components/NotificationsActions/types.d.ts +7 -7
  127. package/__internal__/src/components/NotificationsList/NotificationsList.js.map +1 -1
  128. package/__internal__/src/components/NotificationsList/helpers.d.ts +2 -2
  129. package/__internal__/src/components/NotificationsList/helpers.js.map +1 -1
  130. package/__internal__/src/components/NotificationsList/types.d.ts +23 -23
  131. package/__internal__/src/components/SelectMenu/SelectMenu.js.map +1 -1
  132. package/__internal__/src/components/SelectMenu/helpers.d.ts +1 -1
  133. package/__internal__/src/components/SelectMenu/helpers.js.map +1 -1
  134. package/__internal__/src/components/SelectMenu/types.d.ts +9 -9
  135. package/__internal__/src/components/Sidebar/Sidebar.d.ts +1 -1
  136. package/__internal__/src/components/Sidebar/Sidebar.js.map +1 -1
  137. package/__internal__/src/components/TileMenu/TileMenu.js.map +1 -1
  138. package/__internal__/src/components/TileMenu/TileMenuItem/TileMenuItem.d.ts +2 -2
  139. package/__internal__/src/components/TileMenu/TileMenuItem/TileMenuItem.js.map +1 -1
  140. package/__internal__/src/components/TileMenu/TileMenuList/TileMenuList.js.map +1 -1
  141. package/__internal__/src/components/TileMenu/TileMenuList/types.d.ts +8 -8
  142. package/__internal__/src/components/TileMenu/helpers.d.ts +3 -0
  143. package/__internal__/src/components/TileMenu/helpers.js.map +1 -1
  144. package/__internal__/src/components/TileMenu/types.d.ts +14 -14
  145. package/__internal__/src/components/TileMenu/types.js.map +1 -1
  146. package/__internal__/src/components/VerticalMenu/VerticalMenu.js.map +1 -1
  147. package/__internal__/src/components/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js.map +1 -1
  148. package/__internal__/src/components/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js.map +1 -1
  149. package/__internal__/src/components/VerticalMenu/helpers.d.ts +1 -1
  150. package/__internal__/src/components/VerticalMenu/helpers.js.map +1 -1
  151. package/__internal__/src/components/VerticalMenu/types.d.ts +16 -16
  152. package/__internal__/src/docs/start/start.stand.js.map +1 -1
  153. package/__internal__/src/helpers/getItemClick.d.ts +2 -2
  154. package/__internal__/src/helpers/getItemClick.js.map +1 -1
  155. package/__internal__/src/utils/bem.js.map +1 -1
  156. package/__internal__/src/utils/types/PropsWithHTMLAttributes.d.ts +2 -2
  157. package/package.json +2 -2
@@ -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
- {"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":"q5BAAA,mBAEA,OAASA,MAAT,KAAuB,sBAAvB,CACA,OAASC,WAAT,KAA4B,2BAA5B,CACA,OAASC,YAAT,KAA6B,4BAA7B,CACA,OAASC,UAAT,KAA2B,0BAA3B,CACA,OAASC,cAAT,KAA+B,iCAA/B,CACA,OAASC,WAAT,KAA4B,2BAA5B,CACA,OAASC,OAAT,KAAwB,uBAAxB,CACA,OAASC,qBAAT,KAAsC,qCAAtC,CACA,OAASC,aAAT,KAA8B,6BAA9B,CACA,MAAOC,MAAP,EACEC,UADF,CAEEC,WAFF,CAGEC,SAHF,CAIEC,MAJF,CAKEC,QALF,KAMO,OANP,CAQA,OAASC,YAAT,kCACA,OAASC,EAAT,uBAEA,OAASC,kBAAT,iBAGA,MAAO,MAAMC,OAAM,CAAGF,EAAE,CAAC,MAAD,CAAjB,CAEP,KAAMG,WAAU,CAAG,CAACC,CAAD,CAAmBC,CAAnB,GAAsD,eAanEJ,kBAAkB,CAACG,CAAD,CAbiD,CACjE,CACJE,KAAK,CAALA,CADI,CAEJC,SAAS,CAATA,CAFI,CAGJC,KAAK,CAALA,CAHI,CAIJC,aAAa,CAAbA,CAJI,CAKJC,WAAW,CAAXA,CALI,CAMJC,YAAY,CAAZA,CANI,CAOJC,cAAc,CAAdA,CAPI,CAQJC,aAAa,CAAbA,CARI,CASJC,cAAc,CAAdA,CATI,CAUJC,WAAW,CAAXA,CAVI,CADiE,GAYlEC,CAZkE,uCAejE,CAACC,CAAD,CAAgBC,CAAhB,EAAoCpB,QAAQ,EAfqB,CAkBjE,CAACqB,CAAD,CAAcC,CAAd,EAAgC9B,OAAO,EAlB0B,CAoBjE,CAAE+B,YAAY,CAAZA,CAAF,CAAgBC,SAAS,CAATA,CAAhB,CAA2BC,UAAU,CAAVA,CAA3B,CAAuCC,WAAW,CAAXA,CAAvC,CAAoDC,OAAO,CAAPA,CAApD,EACJlC,qBAAqB,CAInBe,CAJmB,CArBgD,CA2BjEoB,CAAa,CAAG7B,MAAM,CAAoB,IAApB,CA3B2C,CA6BjE8B,CAAc,CAAGnC,aAAa,CAACkB,CAAD,CA7BmC,CA8BjEkB,CAAgB,CAAGpC,aAAa,CAACqB,CAAD,CA9BiC,CAgCjEgB,CAAS,CAAGlC,WAAW,CAAEmC,CAAD,EACxBH,CAAc,CAACI,OAAf,CAAuBD,CAAvB,CADwB,CAEnB,GAFmB,CAIrB,MAJoB,CAK1B,EAL0B,CAhC0C,CAuCjEE,CAAqB,CAAGrC,WAAW,CAAEmC,CAAD,EAAgC,MAClEG,EAAI,CAAGN,CAAc,CAACI,OAAf,CAAuBD,CAAvB,CAD2D,CAElEI,CAAM,CAAGN,CAAgB,CAACG,OAAjB,CAAyBD,CAAzB,CAFyD,CAIxE,sCACMG,CAAI,EAAI,CAAEA,IAAI,CAAEN,CAAc,CAACI,OAAf,CAAuBD,CAAvB,CAAR,CADd,EAEMI,CAAM,EAAI,CAAED,IAAI,CAAEL,CAAgB,CAACG,OAAjB,CAAyBD,CAAzB,CAAR,CAFhB,CAID,CARwC,CAQtC,EARsC,CAvC8B,CAiDjEK,CAAa,CACc,QAA/B,mBAAO/B,CAAK,CAACgC,KAAb,qBAAO,EAAaC,MAApB,EACIjC,CAAK,CAACgC,KAAN,CAAYC,MAAZ,CAAqB,CADzB,OAlDqE,CA+DvE,MATAzC,UAAS,CACPP,WAAW,CAAC,IAAM,CACX8B,CADW,EAEdD,CAAgB,QAEnB,CAJU,CAIR9B,cAJQ,CADJ,CAMP,CAAC+B,CAAD,CANO,CAST,CACE,2CACMH,CADN,EAEE,SAAS,CAAEd,MAAM,CAAC,CAAEM,KAAK,CAALA,CAAF,CAAD,CAAY,CAACD,CAAD,CAAZ,CAFnB,CAGE,YAAY,CAAEa,CAAc,CAACkB,GAH/B,CAIE,YAAY,CAAElB,CAAc,CAACmB,EAJ/B,CAKE,GAAG,CAAElC,CALP,GAOE,0BAAI,SAAS,CAAEH,MAAM,CAAC,MAAD,CAArB,CAA+B,GAAG,CAAEqB,CAApC,EACGjB,CAAK,CAACkC,GAAN,CAAU,CAACV,CAAD,CAAOW,CAAP,GAAiB,MACpBC,EAAK,CAAG/B,CAAY,CAACmB,CAAD,CADA,CAEpBG,CAAI,CAAGvB,CAAW,CAACoB,CAAD,CAFE,CAGpBI,CAAM,CAAGD,CAAI,CAAGpB,CAAa,CAACiB,CAAD,CAAhB,OAHO,CAIpBa,CAAM,CAAGlC,CAAa,CAACqB,CAAD,CAJF,CAKpBc,CAAG,CAAGX,CAAI,CAAG,GAAH,CAAS,MALC,CAMpBY,CAAQ,CAAG/B,CAAc,CAACgB,CAAD,CANL,CAOpBgB,CAAM,CAAG7B,CAAa,GAAKwB,CAPP,CAQpBM,CAAM,CAAG,CAAC1B,CAAY,CAACoB,CAAD,CARF,CAS1B,MACE,2BACE,SAAS,CAAEvC,MAAM,CAAC,MAAD,CAAS,CAAE6C,MAAM,CAANA,CAAF,CAAUJ,MAAM,CAANA,CAAV,CAAkBG,MAAM,CAANA,CAAlB,CAAT,CADnB,CAEE,GAAG,CAAE5C,MAAM,CAAC,MAAD,CAAS,CAAEuC,KAAK,CAALA,CAAF,CAAT,CAFb,CAGE,GAAG,CAAEnB,CAAS,CAACmB,CAAD,CAHhB,CAIE,YAAY,CAAE,IAAMvB,CAAgB,CAACuB,CAAD,CAJtC,EAME,oBAAC,CAAD,EACE,SAAS,CAAEvC,MAAM,CAAC,MAAD,CADnB,CAEE,IAAI,CAAE+B,CAFR,CAGE,MAAM,CAAEC,CAHV,CAIE,OAAO,CAAEnC,YAAY,CAAC+B,CAAD,CAAOlB,CAAP,CAAuBG,CAAvB,CAJvB,EAMG2B,CANH,CANF,CAcGG,CAAQ,EAAI,oBAAC,UAAD,EAAY,IAAI,CAAC,GAAjB,CAAqB,SAAS,CAAE3C,MAAM,CAAC,OAAD,CAAtC,EAdf,CAeE,oBAAC,WAAD,EACE,MAAM,CAAE2C,CAAQ,EAAsB,CAAlB,CAAAA,CAAQ,CAACG,MAArB,EAAmCF,CAD7C,CAEE,KAAK,CAAED,CAAQ,EAAI,EAFrB,CAGE,YAAY,CAAElC,CAHhB,CAIE,cAAc,CAAEG,CAJlB,CAKE,SAAS,CAAEQ,CAAS,CAACmB,CAAD,CALtB,CAME,WAAW,CAAE,CAAC,CAAEQ,CAAC,CAADA,CAAF,CAAKnB,IAAI,CAAJA,CAAL,CAAD,GACX/B,YAAY,CAAC+B,CAAD,CAAOlB,CAAP,CAAuBG,CAAvB,CAAZ,CAAgDkC,CAAhD,CAPJ,CASE,SAAS,CAAC,eATZ,CAUE,kBAAkB,CAAE,CAClB,aADkB,CAElB,gBAFkB,CAGlB,eAHkB,CAIlB,cAJkB,CAVtB,CAgBE,cAAc,CAAC,eAhBjB,CAiBE,SAAS,CAAEpB,CAjBb,CAkBE,iBAAiB,CAAEG,CAlBrB,CAmBE,KAAK,CAAE,CAAEK,MAAM,CAAEF,CAAV,CAnBT,EAfF,CAsCH,CAhDA,CADH,CAkDwB,CAArB,CAAAX,CAAW,CAACwB,MAAZ,EACC,0BACE,SAAS,CAAE9C,MAAM,CAAC,MAAD,CADnB,CAEE,GAAG,CAAEA,MAAM,CAAC,MAAD,CAAS,CAAEgD,IAAI,GAAN,CAAT,CAFb,CAGE,GAAG,CAAEzB,CAHP,CAIE,YAAY,CAAE,IAAMP,CAAgB,CAAC,MAAD,CAJtC,EAME,oBAAC,MAAD,EACE,QAAQ,CAAEhC,YADZ,CAEE,GAAG,CAAEwC,CAFP,CAGE,IAAI,CAAC,IAHP,CAIE,IAAI,CAAC,OAJP,EANF,CAYE,oBAAC,WAAD,EACE,MAAM,CAAoB,MAAlB,GAAAT,CADV,CAEE,KAAK,CAAEO,CAFT,CAGE,YAAY,CAAEb,CAHhB,CAIE,cAAc,CAAEG,CAJlB,CAKE,SAAS,CAAEY,CALb,CAME,WAAW,CAAE,CAAC,CAAEuB,CAAC,CAADA,CAAF,CAAKnB,IAAI,CAAJA,CAAL,CAAD,GACX/B,YAAY,CAAC+B,CAAD,CAAOlB,CAAP,CAAuBG,CAAvB,CAAZ,CAAgDkC,CAAhD,CAPJ,CASE,SAAS,CAAC,eATZ,CAUE,kBAAkB,CAAE,CAClB,aADkB,CAElB,gBAFkB,CAGlB,eAHkB,CAIlB,cAJkB,CAVtB,CAgBE,cAAc,CAAC,gBAhBjB,CAiBE,SAAS,CAAEpB,CAjBb,CAkBE,iBAAiB,CAAEG,CAlBrB,CAmBE,KAAK,CAAE,CAAEK,MAAM,CAAEF,CAAV,CAnBT,CAoBE,MAAM,CAAE,CApBV,EAZF,CAnDJ,CAPF,CAiGH,CAjKD,CAmKA,MAAO,MAAMgB,KAAI,CAAGzD,UAAU,CAACS,UAAD,CAAvB,CAEP"}
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":"q5BAAA,mBAEA,OAASA,MAAM,KAAQ,sBAAsB,CAC7C,OAASC,WAAW,KAAQ,2BAA2B,CACvD,OAASC,YAAY,KAAQ,4BAA4B,CACzD,OAASC,UAAU,KAAQ,0BAA0B,CACrD,OAASC,cAAc,KAAQ,iCAAiC,CAChE,OAASC,WAAW,KAAQ,2BAA2B,CACvD,OAASC,OAAO,KAAQ,uBAAuB,CAC/C,OAASC,qBAAqB,KAAQ,qCAAqC,CAC3E,OAASC,aAAa,KAAQ,6BAA6B,CAC3D,MAAOC,MAAK,EACVC,UAAU,CACVC,WAAW,CACXC,SAAS,CACTC,MAAM,CACNC,QAAQ,KACH,OAAO,CAEd,OAASC,YAAY,kCACrB,OAASC,EAAE,uBAEX,OAASC,kBAAkB,iBAG3B,MAAO,MAAMC,OAAM,CAAGF,EAAE,CAAC,MAAM,CAAC,CAEhC,KAAMG,WAAU,CAAG,CAACC,CAAgB,CAAEC,CAA8B,GAAK,eAanEJ,kBAAkB,CAACG,CAAK,CAAC,CAZvB,CACJE,KAAK,CAALA,CAAK,CACLC,SAAS,CAATA,CAAS,CACTC,KAAK,CAALA,CAAK,CACLC,aAAa,CAAbA,CAAa,CACbC,WAAW,CAAXA,CAAW,CACXC,YAAY,CAAZA,CAAY,CACZC,cAAc,CAAdA,CAAc,CACdC,aAAa,CAAbA,CAAa,CACbC,cAAc,CAAdA,CAAc,CACdC,WAAW,CAAXA,CAEF,CAAC,GADIC,CAAU,uCAGT,CAACC,CAAa,CAAEC,CAAgB,CAAC,CAAGpB,QAAQ,EAE/C,CACG,CAACqB,CAAW,CAAEC,CAAc,CAAC,CAAG9B,OAAO,EAAE,CAEzC,CAAE+B,YAAY,CAAZA,CAAY,CAAEC,SAAS,CAATA,CAAS,CAAEC,UAAU,CAAVA,CAAU,CAAEC,WAAW,CAAXA,CAAW,CAAEC,OAAO,CAAPA,CAAQ,CAAC,CACjElC,qBAAqB,CAInBe,CAAK,CAAC,CAEJoB,CAAa,CAAG7B,MAAM,CAAoB,IAAI,CAAC,CAE/C8B,CAAc,CAAGnC,aAAa,CAACkB,CAAW,CAAC,CAC3CkB,CAAgB,CAAGpC,aAAa,CAACqB,CAAa,CAAC,CAE/CgB,CAAS,CAAGlC,WAAW,CAAEmC,CAA0B,EACnDH,CAAc,CAACI,OAAO,CAACD,CAAI,CAAC,CACvB,GAAG,CAEL,MACR,CAAE,EAAE,CAAC,CAEAE,CAAqB,CAAGrC,WAAW,CAAEmC,CAA0B,EAAK,MAClEG,EAAI,CAAGN,CAAc,CAACI,OAAO,CAACD,CAAI,CAAC,CACnCI,CAAM,CAAGN,CAAgB,CAACG,OAAO,CAACD,CAAI,CAAC,CAE7C,sCACMG,CAAI,EAAI,CAAEA,IAAI,CAAEN,CAAc,CAACI,OAAO,CAACD,CAAI,CAAE,CAAC,EAC9CI,CAAM,EAAI,CAAED,IAAI,CAAEL,CAAgB,CAACG,OAAO,CAACD,CAAI,CAAE,CAAC,CAE1D,CAAC,CAAE,EAAE,CAAC,CAEAK,CAAa,CACc,QAAQ,EAAvC,iBAAO/B,CAAK,CAACgC,KAAK,qBAAX,EAAaC,MAAM,CAAa,CACnCjC,CAAK,CAACgC,KAAK,CAACC,MAAM,CAAG,CAAC,OACb,CAWf,MATAzC,UAAS,CACPP,WAAW,CAAC,IAAM,CACX8B,CAAW,EACdD,CAAgB,QAEpB,CAAC,CAAE9B,cAAc,CAAC,CAClB,CAAC+B,CAAW,CAAC,CACd,CAGC,2CACMH,CAAU,EACd,SAAS,CAAEd,MAAM,CAAC,CAAEM,KAAK,CAALA,CAAM,CAAC,CAAE,CAACD,CAAS,CAAC,CAAE,CAC1C,YAAY,CAAEa,CAAc,CAACkB,GAAI,CACjC,YAAY,CAAElB,CAAc,CAACmB,EAAG,CAChC,GAAG,CAAElC,CAAI,GAET,0BAAI,SAAS,CAAEH,MAAM,CAAC,MAAM,CAAE,CAAC,GAAG,CAAEqB,CAAW,EAC5CjB,CAAK,CAACkC,GAAG,CAAC,CAACV,CAAI,CAAEW,CAAK,GAAK,MACpBC,EAAK,CAAG/B,CAAY,CAACmB,CAAI,CAAC,CAC1BG,CAAI,CAAGvB,CAAW,CAACoB,CAAI,CAAC,CACxBI,CAAM,CAAGD,CAAI,CAAGpB,CAAa,CAACiB,CAAI,CAAC,OAAY,CAC/Ca,CAAM,CAAGlC,CAAa,CAACqB,CAAI,CAAC,CAC5Bc,CAAG,CAAGX,CAAI,CAAG,GAAG,CAAG,MAAM,CACzBY,CAAQ,CAAG/B,CAAc,CAACgB,CAAI,CAAC,CAC/BgB,CAAM,CAAG7B,CAAa,GAAKwB,CAAK,CAChCM,CAAM,CAAG,CAAC1B,CAAY,CAACoB,CAAK,CAAC,CACnC,MACE,2BACE,SAAS,CAAEvC,MAAM,CAAC,MAAM,CAAE,CAAE6C,MAAM,CAANA,CAAM,CAAEJ,MAAM,CAANA,CAAM,CAAEG,MAAM,CAANA,CAAO,CAAC,CAAE,CACtD,GAAG,CAAE5C,MAAM,CAAC,MAAM,CAAE,CAAEuC,KAAK,CAALA,CAAM,CAAC,CAAE,CAC/B,GAAG,CAAEnB,CAAS,CAACmB,CAAK,CAAE,CACtB,YAAY,CAAE,IAAMvB,CAAgB,CAACuB,CAAK,CAAE,EAE5C,oBAAC,CAAG,EACF,SAAS,CAAEvC,MAAM,CAAC,MAAM,CAAE,CAC1B,IAAI,CAAE+B,CAAK,CACX,MAAM,CAAEC,CAAO,CACf,OAAO,CAAEnC,YAAY,CAAC+B,CAAI,CAAElB,CAAc,CAAEG,CAAW,CAAE,EAExD2B,CAAK,CACF,CACLG,CAAQ,EAAI,oBAAC,UAAU,EAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAE3C,MAAM,CAAC,OAAO,CAAE,EAAG,CAChE,oBAAC,WAAW,EACV,MAAM,CAAE2C,CAAQ,EAAsB,CAAC,CAAnBA,CAAQ,CAACG,MAAU,EAAIF,CAAO,CAClD,KAAK,CAAED,CAAQ,EAAI,EAAG,CACtB,YAAY,CAAElC,CAAa,CAC3B,cAAc,CAAEG,CAAe,CAC/B,SAAS,CAAEQ,CAAS,CAACmB,CAAK,CAAE,CAC5B,WAAW,CAAE,CAAC,CAAEQ,CAAC,CAADA,CAAC,CAAEnB,IAAI,CAAJA,CAAK,CAAC,GACvB/B,YAAY,CAAC+B,CAAI,CAAElB,CAAc,CAAEG,CAAW,CAAC,CAACkC,CAAC,CAClD,CACD,SAAS,CAAC,eAAe,CACzB,kBAAkB,CAAE,CAClB,aAAa,CACb,gBAAgB,CAChB,eAAe,CACf,cAAc,CACd,CACF,cAAc,CAAC,eAAe,CAC9B,SAAS,CAAEpB,CAAU,CACrB,iBAAiB,CAAEG,CAAsB,CACzC,KAAK,CAAE,CAAEK,MAAM,CAAEF,CAAc,CAAE,EACjC,CAGR,CAAC,CAAC,CACoB,CAAC,CAAtBX,CAAW,CAACwB,MAAU,EACrB,0BACE,SAAS,CAAE9C,MAAM,CAAC,MAAM,CAAE,CAC1B,GAAG,CAAEA,MAAM,CAAC,MAAM,CAAE,CAAEgD,IAAI,GAAO,CAAC,CAAE,CACpC,GAAG,CAAEzB,CAAQ,CACb,YAAY,CAAE,IAAMP,CAAgB,CAAC,MAAM,CAAE,EAE7C,oBAAC,MAAM,EACL,QAAQ,CAAEhC,YAAa,CACvB,GAAG,CAAEwC,CAAc,CACnB,IAAI,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,EACZ,CACF,oBAAC,WAAW,EACV,MAAM,CAAoB,MAAM,GAAxBT,CAAyB,CACjC,KAAK,CAAEO,CAAY,CACnB,YAAY,CAAEb,CAAa,CAC3B,cAAc,CAAEG,CAAe,CAC/B,SAAS,CAAEY,CAAc,CACzB,WAAW,CAAE,CAAC,CAAEuB,CAAC,CAADA,CAAC,CAAEnB,IAAI,CAAJA,CAAK,CAAC,GACvB/B,YAAY,CAAC+B,CAAI,CAAElB,CAAc,CAAEG,CAAW,CAAC,CAACkC,CAAC,CAClD,CACD,SAAS,CAAC,eAAe,CACzB,kBAAkB,CAAE,CAClB,aAAa,CACb,gBAAgB,CAChB,eAAe,CACf,cAAc,CACd,CACF,cAAc,CAAC,gBAAgB,CAC/B,SAAS,CAAEpB,CAAU,CACrB,iBAAiB,CAAEG,CAAsB,CACzC,KAAK,CAAE,CAAEK,MAAM,CAAEF,CAAc,CAAE,CACjC,MAAM,CAAE,CAAE,EACV,CAEL,CACE,CAGX,CAAC,CAED,MAAO,MAAMgB,KAAI,CAAGzD,UAAU,CAACS,UAAU,CAAkB,CAE3D"}
@@ -31,7 +31,7 @@ export declare function withDefaultGetters<ITEM>(props: MenuProps<ITEM>): {
31
31
  getItemActive?: MenuPropGetItemActive<ITEM> | undefined;
32
32
  getItemOnClick?: MenuPropGetItemOnClick<ITEM> | undefined;
33
33
  getItemSubMenu?: MenuPropGetItemSubMenu<ITEM> | undefined;
34
- } & Omit<import("react").HTMLAttributes<HTMLDivElement>, "css" | "items" | "getItemLabel" | "width" | "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 {
35
35
  label: string;
36
36
  } ? {} : {
37
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,17 +8,17 @@ 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
23
  width?: 'full';
24
24
  onItemClick?: MenuPropOnItemClick<ITEM>;
@@ -33,4 +33,4 @@ export declare type MenuProps<ITEM = MenuDefaultItem> = PropsWithHTMLAttributesA
33
33
  } ? {} : {
34
34
  getItemLabel: MenuPropGetItemLabel<ITEM>;
35
35
  });
36
- 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":"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"}
@@ -2,16 +2,16 @@ import { BadgePropStatus } from '@consta/uikit/Badge';
2
2
  import { IconProps } from '@consta/uikit/Icon';
3
3
  import React from 'react';
4
4
  import { PropsWithHTMLAttributesAndRef } from "../../utils/types/PropsWithHTMLAttributes";
5
- export declare type NotificationCardAction = {
5
+ export type NotificationCardAction = {
6
6
  label: string;
7
7
  onClick?: React.EventHandler<React.MouseEvent>;
8
8
  icon?: React.FC<IconProps>;
9
9
  };
10
- export declare type NotificationCardBadge = {
10
+ export type NotificationCardBadge = {
11
11
  label: string;
12
12
  status?: BadgePropStatus;
13
13
  };
14
- export declare type NotificationCardProps = PropsWithHTMLAttributesAndRef<{
14
+ export type NotificationCardProps = PropsWithHTMLAttributesAndRef<{
15
15
  title: string;
16
16
  description?: string;
17
17
  imageUrl?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Notifications.js","names":["Button","IconRing","animateTimeout","cnMixPopoverAnimate","cnMixPopoverArrow","Popover","useFlag","useForkRef","React","forwardRef","useRef","useState","Transition","NotificationsList","Sidebar","cn","ARROW_SIZE","ARROW_OFFSET","cnNotifications","NotificationsRender","props","ref","className","items","groupByDay","groups","groupLabelFormat","itemDateFormat","title","actions","getActionIcon","getActionLabel","getActionOnClick","getGroupId","getGroupLabel","getItemActions","getItemBadges","getItemDate","getItemDescription","getItemGroup","getItemImage","getItemLabel","getItemRead","getItemView","listClassName","isMobile","otherProps","buttonRef","direction","setDirection","visibleMenu","toogle","off","listProps","elementZIndex","style","zIndex","animate","Notifications"],"sources":["../../../../../src/components/Notifications/Notifications.tsx"],"sourcesContent":["import './Notifications.css';\n\nimport { Button } from '@consta/uikit/Button';\nimport { IconRing } from '@consta/uikit/IconRing';\nimport {\n animateTimeout,\n cnMixPopoverAnimate,\n} from '@consta/uikit/MixPopoverAnimate';\nimport { cnMixPopoverArrow } from '@consta/uikit/MixPopoverArrow';\nimport { Direction, Popover } from '@consta/uikit/Popover';\nimport { useFlag } from '@consta/uikit/useFlag';\nimport { useForkRef } from '@consta/uikit/useForkRef';\nimport React, { forwardRef, useRef, useState } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport { NotificationsList } from '##/components/NotificationsList';\nimport { Sidebar } from '##/components/Sidebar';\nimport { cn } from '##/utils/bem';\n\nimport { NotificationsComponent, NotificationsProps } from './types';\n\nconst ARROW_SIZE = 6;\nconst ARROW_OFFSET = 10;\n\nexport const cnNotifications = cn('Notifications');\n\nconst NotificationsRender = (\n props: NotificationsProps,\n ref: React.Ref<HTMLButtonElement>,\n) => {\n const {\n className,\n items,\n groupByDay,\n groups,\n groupLabelFormat,\n itemDateFormat,\n title,\n actions,\n getActionIcon,\n getActionLabel,\n getActionOnClick,\n getGroupId,\n getGroupLabel,\n getItemActions,\n getItemBadges,\n getItemDate,\n getItemDescription,\n getItemGroup,\n getItemImage,\n getItemLabel,\n getItemRead,\n getItemView,\n listClassName,\n isMobile,\n ...otherProps\n } = props;\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n const [direction, setDirection] = useState<Direction | undefined>(undefined);\n\n const [visibleMenu, { toogle, off }] = useFlag();\n\n const listProps = {\n className: cnNotifications('List', [listClassName]),\n items,\n groupByDay,\n groups,\n groupLabelFormat,\n title,\n actions,\n getActionIcon,\n getActionLabel,\n getActionOnClick,\n getGroupId,\n getGroupLabel,\n getItemActions,\n getItemBadges,\n getItemDate,\n getItemDescription,\n getItemGroup,\n getItemImage,\n getItemLabel,\n getItemRead,\n getItemView,\n };\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={cnNotifications(null, [className])}\n iconLeft={IconRing}\n ref={useForkRef([ref, buttonRef])}\n onClick={toogle}\n />\n {isMobile ? (\n <Sidebar\n isOpen={visibleMenu}\n onClickOutside={off}\n style={{ zIndex: elementZIndex }}\n >\n <NotificationsList\n {...listProps}\n onClose={off}\n style={{ zIndex: elementZIndex }}\n />\n </Sidebar>\n ) : (\n <Transition timeout={animateTimeout} unmountOnExit in={visibleMenu}>\n {(animate) => (\n <Popover\n className={cnNotifications('Popover', [\n cnMixPopoverAnimate({ animate, direction }),\n ])}\n anchorRef={buttonRef}\n arrowOffset={ARROW_OFFSET + ARROW_SIZE}\n offset={ARROW_SIZE + 4}\n onSetDirection={setDirection}\n style={{\n ['--popover-arrow-size' as string]: `${ARROW_SIZE}px`,\n ['--popover-arrow-offset' as string]: `${ARROW_OFFSET}px`,\n zIndex: elementZIndex,\n }}\n onClickOutside={off}\n >\n <div className={cnMixPopoverArrow({ direction })} />\n <NotificationsList\n {...listProps}\n style={{ zIndex: elementZIndex }}\n />\n </Popover>\n )}\n </Transition>\n )}\n </>\n );\n};\n\nexport const Notifications = forwardRef(\n NotificationsRender,\n) as NotificationsComponent;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Notifications.js","names":["Button","IconRing","animateTimeout","cnMixPopoverAnimate","cnMixPopoverArrow","Popover","useFlag","useForkRef","React","forwardRef","useRef","useState","Transition","NotificationsList","Sidebar","cn","ARROW_SIZE","ARROW_OFFSET","cnNotifications","NotificationsRender","props","ref","className","items","groupByDay","groups","groupLabelFormat","itemDateFormat","title","actions","getActionIcon","getActionLabel","getActionOnClick","getGroupId","getGroupLabel","getItemActions","getItemBadges","getItemDate","getItemDescription","getItemGroup","getItemImage","getItemLabel","getItemRead","getItemView","listClassName","isMobile","otherProps","buttonRef","direction","setDirection","visibleMenu","toogle","off","listProps","elementZIndex","style","zIndex","animate","Notifications"],"sources":["../../../../../src/components/Notifications/Notifications.tsx"],"sourcesContent":["import './Notifications.css';\n\nimport { Button } from '@consta/uikit/Button';\nimport { IconRing } from '@consta/uikit/IconRing';\nimport {\n animateTimeout,\n cnMixPopoverAnimate,\n} from '@consta/uikit/MixPopoverAnimate';\nimport { cnMixPopoverArrow } from '@consta/uikit/MixPopoverArrow';\nimport { Direction, Popover } from '@consta/uikit/Popover';\nimport { useFlag } from '@consta/uikit/useFlag';\nimport { useForkRef } from '@consta/uikit/useForkRef';\nimport React, { forwardRef, useRef, useState } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport { NotificationsList } from '##/components/NotificationsList';\nimport { Sidebar } from '##/components/Sidebar';\nimport { cn } from '##/utils/bem';\n\nimport { NotificationsComponent, NotificationsProps } from './types';\n\nconst ARROW_SIZE = 6;\nconst ARROW_OFFSET = 10;\n\nexport const cnNotifications = cn('Notifications');\n\nconst NotificationsRender = (\n props: NotificationsProps,\n ref: React.Ref<HTMLButtonElement>,\n) => {\n const {\n className,\n items,\n groupByDay,\n groups,\n groupLabelFormat,\n itemDateFormat,\n title,\n actions,\n getActionIcon,\n getActionLabel,\n getActionOnClick,\n getGroupId,\n getGroupLabel,\n getItemActions,\n getItemBadges,\n getItemDate,\n getItemDescription,\n getItemGroup,\n getItemImage,\n getItemLabel,\n getItemRead,\n getItemView,\n listClassName,\n isMobile,\n ...otherProps\n } = props;\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n const [direction, setDirection] = useState<Direction | undefined>(undefined);\n\n const [visibleMenu, { toogle, off }] = useFlag();\n\n const listProps = {\n className: cnNotifications('List', [listClassName]),\n items,\n groupByDay,\n groups,\n groupLabelFormat,\n title,\n actions,\n getActionIcon,\n getActionLabel,\n getActionOnClick,\n getGroupId,\n getGroupLabel,\n getItemActions,\n getItemBadges,\n getItemDate,\n getItemDescription,\n getItemGroup,\n getItemImage,\n getItemLabel,\n getItemRead,\n getItemView,\n };\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={cnNotifications(null, [className])}\n iconLeft={IconRing}\n ref={useForkRef([ref, buttonRef])}\n onClick={toogle}\n />\n {isMobile ? (\n <Sidebar\n isOpen={visibleMenu}\n onClickOutside={off}\n style={{ zIndex: elementZIndex }}\n >\n <NotificationsList\n {...listProps}\n onClose={off}\n style={{ zIndex: elementZIndex }}\n />\n </Sidebar>\n ) : (\n <Transition timeout={animateTimeout} unmountOnExit in={visibleMenu}>\n {(animate) => (\n <Popover\n className={cnNotifications('Popover', [\n cnMixPopoverAnimate({ animate, direction }),\n ])}\n anchorRef={buttonRef}\n arrowOffset={ARROW_OFFSET + ARROW_SIZE}\n offset={ARROW_SIZE + 4}\n onSetDirection={setDirection}\n style={{\n ['--popover-arrow-size' as string]: `${ARROW_SIZE}px`,\n ['--popover-arrow-offset' as string]: `${ARROW_OFFSET}px`,\n zIndex: elementZIndex,\n }}\n onClickOutside={off}\n >\n <div className={cnMixPopoverArrow({ direction })} />\n <NotificationsList\n {...listProps}\n style={{ zIndex: elementZIndex }}\n />\n </Popover>\n )}\n </Transition>\n )}\n </>\n );\n};\n\nexport const Notifications = forwardRef(\n NotificationsRender,\n) as NotificationsComponent;\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { NotificationsDefaultAction, NotificationsDefaultGroup, NotificationsDefaultItem, Props } from "../NotificationsList";
3
3
  import { PropsWithHTMLAttributesAndRef } from "../../utils/types/PropsWithHTMLAttributes";
4
- export declare type NotificationsProps<ITEM = NotificationsDefaultItem, GROUP = NotificationsDefaultGroup, ACTION = NotificationsDefaultAction, GROUP_BY_DAY extends boolean = false> = PropsWithHTMLAttributesAndRef<Omit<Props<ITEM, GROUP, ACTION, GROUP_BY_DAY>, 'onClose'> & {
4
+ export type NotificationsProps<ITEM = NotificationsDefaultItem, GROUP = NotificationsDefaultGroup, ACTION = NotificationsDefaultAction, GROUP_BY_DAY extends boolean = false> = PropsWithHTMLAttributesAndRef<Omit<Props<ITEM, GROUP, ACTION, GROUP_BY_DAY>, 'onClose'> & {
5
5
  listClassName?: string;
6
6
  isMobile?: boolean;
7
7
  }, HTMLButtonElement>;
8
- export declare type NotificationsComponent = <ITEM = NotificationsDefaultItem, GROUP = NotificationsDefaultGroup, ACTION = NotificationsDefaultAction, GROUP_BY_DAY extends boolean = false>(props: NotificationsProps<ITEM, GROUP, ACTION, GROUP_BY_DAY>) => React.ReactElement | null;
8
+ export type NotificationsComponent = <ITEM = NotificationsDefaultItem, GROUP = NotificationsDefaultGroup, ACTION = NotificationsDefaultAction, GROUP_BY_DAY extends boolean = false>(props: NotificationsProps<ITEM, GROUP, ACTION, GROUP_BY_DAY>) => React.ReactElement | null;