@gravity-ui/navigation 1.6.1 → 1.7.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 (131) hide show
  1. package/README.md +20 -7
  2. package/build/cjs/{ActionBar-393db3ea.js → ActionBar-96a59723.js} +8 -7
  3. package/build/cjs/{ActionBar-393db3ea.js.map → ActionBar-96a59723.js.map} +1 -1
  4. package/build/cjs/AsideFallback.js +31 -0
  5. package/build/cjs/AsideFallback.js.map +1 -0
  6. package/build/cjs/AsideHeader.js +9 -21
  7. package/build/cjs/AsideHeader.js.map +1 -1
  8. package/build/cjs/{Content-20bde76c.js → Content-64d5738a.js} +3 -10
  9. package/build/cjs/Content-64d5738a.js.map +1 -0
  10. package/build/cjs/Drawer.js +3 -2
  11. package/build/cjs/Drawer.js.map +1 -1
  12. package/build/cjs/{FooterItem-907eca32.js → FooterItem-eafaeac3.js} +10 -9
  13. package/build/cjs/{FooterItem-907eca32.js.map → FooterItem-eafaeac3.js.map} +1 -1
  14. package/build/cjs/FooterItem.js +6 -4
  15. package/build/cjs/FooterItem.js.map +1 -1
  16. package/build/cjs/{HotkeysPanel-7823f66a.js → HotkeysPanel-2e240e4d.js} +4 -3
  17. package/build/cjs/{HotkeysPanel-7823f66a.js.map → HotkeysPanel-2e240e4d.js.map} +1 -1
  18. package/build/cjs/{Item-15bdb320.js → Item-836015b7.js} +10 -16
  19. package/build/cjs/Item-836015b7.js.map +1 -0
  20. package/build/cjs/PageLayout.js +15 -85
  21. package/build/cjs/PageLayout.js.map +1 -1
  22. package/build/cjs/PageLayoutAside.js +879 -11
  23. package/build/cjs/PageLayoutAside.js.map +1 -1
  24. package/build/cjs/{Settings-6db7b88c.js → Settings-11b021e4.js} +8 -7
  25. package/build/cjs/{Settings-6db7b88c.js.map → Settings-11b021e4.js.map} +1 -1
  26. package/build/cjs/{Title-d58ff158.js → Title-c539667f.js} +4 -3
  27. package/build/cjs/{Title-d58ff158.js.map → Title-c539667f.js.map} +1 -1
  28. package/build/cjs/TopPanel-b531a2be.js +82 -0
  29. package/build/cjs/TopPanel-b531a2be.js.map +1 -0
  30. package/build/cjs/cn-1964a72a.js +10 -0
  31. package/build/cjs/cn-1964a72a.js.map +1 -0
  32. package/build/cjs/components/AsideHeader/AsideHeader.d.ts +0 -15
  33. package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +4 -0
  34. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.d.ts +6 -0
  35. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +2 -3
  36. package/build/cjs/components/AsideHeader/types.d.ts +0 -1
  37. package/build/cjs/components/CompositeBar/constants.d.ts +0 -1
  38. package/build/cjs/components/Content/Content.d.ts +0 -1
  39. package/build/cjs/components/constants.d.ts +2 -0
  40. package/build/cjs/components/index.d.ts +1 -0
  41. package/build/cjs/constants-d81c3867.js +14 -0
  42. package/build/cjs/constants-d81c3867.js.map +1 -0
  43. package/build/cjs/divider-collapsed-153868e7.js +41 -0
  44. package/build/cjs/divider-collapsed-153868e7.js.map +1 -0
  45. package/build/cjs/index.js +14 -9
  46. package/build/cjs/index.js.map +1 -1
  47. package/build/cjs/index2.js +3 -2
  48. package/build/cjs/index2.js.map +1 -1
  49. package/build/cjs/index3.js +3 -2
  50. package/build/cjs/index3.js.map +1 -1
  51. package/build/cjs/index4.js +3 -2
  52. package/build/cjs/index4.js.map +1 -1
  53. package/build/cjs/index5.js +4 -3
  54. package/build/cjs/index5.js.map +1 -1
  55. package/build/cjs/index6.js +4 -3
  56. package/build/cjs/index6.js.map +1 -1
  57. package/build/cjs/{style-inject.es-935afc04.js → style-inject.es-dcee06b6.js} +1 -8
  58. package/build/cjs/style-inject.es-dcee06b6.js.map +1 -0
  59. package/build/cjs/utils-a93dd754.js +8 -0
  60. package/build/cjs/utils-a93dd754.js.map +1 -0
  61. package/build/esm/{ActionBar-f1c9a2d3.js → ActionBar-68f814a3.js} +3 -2
  62. package/build/esm/{ActionBar-f1c9a2d3.js.map → ActionBar-68f814a3.js.map} +1 -1
  63. package/build/esm/AsideFallback.js +23 -0
  64. package/build/esm/AsideFallback.js.map +1 -0
  65. package/build/esm/AsideHeader.js +9 -21
  66. package/build/esm/AsideHeader.js.map +1 -1
  67. package/build/esm/Content-f94ba85d.js +14 -0
  68. package/build/esm/Content-f94ba85d.js.map +1 -0
  69. package/build/esm/Drawer.js +2 -1
  70. package/build/esm/Drawer.js.map +1 -1
  71. package/build/esm/{FooterItem-70c9cb68.js → FooterItem-39ac7c22.js} +4 -3
  72. package/build/esm/{FooterItem-70c9cb68.js.map → FooterItem-39ac7c22.js.map} +1 -1
  73. package/build/esm/FooterItem.js +4 -2
  74. package/build/esm/FooterItem.js.map +1 -1
  75. package/build/esm/{HotkeysPanel-82fe991b.js → HotkeysPanel-bd0e997d.js} +3 -2
  76. package/build/esm/{HotkeysPanel-82fe991b.js.map → HotkeysPanel-bd0e997d.js.map} +1 -1
  77. package/build/esm/{Item-f02541c1.js → Item-ab589218.js} +5 -8
  78. package/build/esm/Item-ab589218.js.map +1 -0
  79. package/build/esm/PageLayout.js +14 -84
  80. package/build/esm/PageLayout.js.map +1 -1
  81. package/build/esm/PageLayoutAside.js +859 -9
  82. package/build/esm/PageLayoutAside.js.map +1 -1
  83. package/build/esm/{Settings-21bc1aba.js → Settings-31634d93.js} +4 -3
  84. package/build/esm/{Settings-21bc1aba.js.map → Settings-31634d93.js.map} +1 -1
  85. package/build/esm/{Title-3d579ca4.js → Title-b2f2c4e9.js} +3 -2
  86. package/build/esm/{Title-3d579ca4.js.map → Title-b2f2c4e9.js.map} +1 -1
  87. package/build/esm/TopPanel-36ffc4c7.js +76 -0
  88. package/build/esm/TopPanel-36ffc4c7.js.map +1 -0
  89. package/build/esm/cn-589cd9e2.js +8 -0
  90. package/build/esm/cn-589cd9e2.js.map +1 -0
  91. package/build/esm/components/AsideHeader/AsideHeader.d.ts +0 -15
  92. package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +4 -0
  93. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.d.ts +6 -0
  94. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +2 -3
  95. package/build/esm/components/AsideHeader/types.d.ts +0 -1
  96. package/build/esm/components/CompositeBar/constants.d.ts +0 -1
  97. package/build/esm/components/Content/Content.d.ts +0 -1
  98. package/build/esm/components/constants.d.ts +2 -0
  99. package/build/esm/components/index.d.ts +1 -0
  100. package/build/esm/constants-b1604ff5.js +8 -0
  101. package/build/esm/constants-b1604ff5.js.map +1 -0
  102. package/build/esm/divider-collapsed-6468fa36.js +19 -0
  103. package/build/esm/divider-collapsed-6468fa36.js.map +1 -0
  104. package/build/esm/index.js +13 -9
  105. package/build/esm/index.js.map +1 -1
  106. package/build/esm/index2.js +3 -2
  107. package/build/esm/index2.js.map +1 -1
  108. package/build/esm/index3.js +3 -2
  109. package/build/esm/index3.js.map +1 -1
  110. package/build/esm/index4.js +3 -2
  111. package/build/esm/index4.js.map +1 -1
  112. package/build/esm/index5.js +4 -3
  113. package/build/esm/index5.js.map +1 -1
  114. package/build/esm/index6.js +4 -3
  115. package/build/esm/index6.js.map +1 -1
  116. package/build/esm/{style-inject.es-cfd97593.js → style-inject.es-1f59c1d0.js} +2 -8
  117. package/build/esm/style-inject.es-1f59c1d0.js.map +1 -0
  118. package/build/esm/utils-6d5146c7.js +6 -0
  119. package/build/esm/utils-6d5146c7.js.map +1 -0
  120. package/package.json +1 -1
  121. package/build/cjs/Content-20bde76c.js.map +0 -1
  122. package/build/cjs/FirstPanel-2f78b962.js +0 -902
  123. package/build/cjs/FirstPanel-2f78b962.js.map +0 -1
  124. package/build/cjs/Item-15bdb320.js.map +0 -1
  125. package/build/cjs/style-inject.es-935afc04.js.map +0 -1
  126. package/build/esm/Content-d8b28d56.js +0 -21
  127. package/build/esm/Content-d8b28d56.js.map +0 -1
  128. package/build/esm/FirstPanel-bafddc24.js +0 -875
  129. package/build/esm/FirstPanel-bafddc24.js.map +0 -1
  130. package/build/esm/Item-f02541c1.js.map +0 -1
  131. package/build/esm/style-inject.es-cfd97593.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  import React__default, { useState, useCallback, useMemo, useEffect } from 'react';
2
- import { s as styleInject, b as block } from './style-inject.es-cfd97593.js';
2
+ import { b as block } from './cn-589cd9e2.js';
3
3
  import { Drawer, DrawerItem } from './Drawer.js';
4
- import { C as Content } from './Content-d8b28d56.js';
4
+ import { C as Content } from './Content-f94ba85d.js';
5
+ import { s as styleInject } from './style-inject.es-1f59c1d0.js';
5
6
  import { Icon, List, Sheet, eventBroker } from '@gravity-ui/uikit';
6
7
  import { r as registerKeyset } from './registerKeyset-35f1ea08.js';
7
8
 
@@ -276,4 +277,4 @@ const FooterItem = ({ icon, iconSize = MOBILE_HEADER_ICON_SIZE, className, modal
276
277
  };
277
278
 
278
279
  export { FooterItem as F, MobileHeader as M };
279
- //# sourceMappingURL=FooterItem-70c9cb68.js.map
280
+ //# sourceMappingURL=FooterItem-39ac7c22.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FooterItem-70c9cb68.js","sources":["../../../src/hooks/useForwardRef.tsx","../../../src/components/MobileHeader/Burger/Burger.tsx","../../../src/components/MobileHeader/Logo/Logo.tsx","../../../src/components/MobileHeader/constants.ts","../../../src/components/MobileHeader/utils.ts","../../../src/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.tsx","../../../src/components/MobileHeader/BurgerMenu/BurgerMenu.tsx","../../../src/components/MobileHeader/i18n/index.ts","../../../src/components/MobileHeader/MobileHeader.tsx","../../../src/components/MobileHeader/FooterItem/FooterItem.tsx"],"sourcesContent":["import React from 'react';\n\nexport const useForwardRef = <T,>(\n ref: ((instance: T | null) => void) | React.MutableRefObject<T | null> | null,\n initialValue: any = null,\n) => {\n const targetRef = React.useRef<T>(initialValue);\n\n React.useEffect(() => {\n if (!ref) return;\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n }, [ref]);\n\n return targetRef;\n};\n","import React from 'react';\nimport {block} from '../../utils/cn';\n\nimport './Burger.scss';\n\nconst b = block('mobile-header-burger');\n\ninterface BurgerProps {\n closeTitle: string;\n openTitle: string;\n opened?: boolean;\n className?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\nexport const Burger = React.memo(\n ({closeTitle, openTitle, opened, className, onClick}: BurgerProps) => (\n <button\n className={b({opened}, className)}\n onClick={onClick}\n aria-label={opened ? closeTitle : openTitle}\n >\n <span className={b('icon')}>\n <span className={b('icon-dash')}></span>\n </span>\n </button>\n ),\n);\n\nBurger.displayName = 'Burger';\n","import React from 'react';\nimport {Icon} from '@gravity-ui/uikit';\nimport {block} from '../../utils/cn';\nimport {LogoProps} from '../../types';\n\nimport './Logo.scss';\n\nconst b = block('mobile-header-logo');\n\ninterface LogoInnerProps extends LogoProps {\n compact: boolean;\n}\n\nexport const Logo: React.FC<LogoInnerProps> = ({\n text,\n compact,\n icon,\n iconSrc,\n iconClassName,\n iconSize = 32,\n textSize = 20,\n href = '/',\n wrapper,\n onClick,\n}) => {\n const hasClickHandler = typeof onClick === 'function';\n const hasWrapper = typeof wrapper === 'function';\n\n const linkProps = hasClickHandler\n ? {}\n : {\n target: '_self',\n href,\n };\n\n let logoIcon;\n\n if (iconSrc) {\n logoIcon = (\n <img\n alt=\"logo icon\"\n src={iconSrc}\n width={iconSize}\n height={iconSize}\n className={iconClassName}\n />\n );\n } else if (icon) {\n logoIcon = <Icon data={icon} size={iconSize} className={b('icon', iconClassName)} />;\n }\n\n let logoTitle: React.ReactNode;\n\n if (typeof text === 'function') {\n logoTitle = text();\n } else {\n logoTitle = (\n <span className={b('title')} style={{fontSize: textSize}}>\n {text}\n </span>\n );\n }\n\n const logo = (\n <React.Fragment>\n {logoIcon}\n {logoTitle}\n </React.Fragment>\n );\n\n return hasWrapper ? (\n <div className={b()} onClick={onClick}>\n {wrapper(logo, compact)}\n </div>\n ) : (\n <a {...linkProps} className={b()} onClick={onClick}>\n {logo}\n </a>\n );\n};\n","import {ItemEventsConfig} from './types';\n\nexport const MOBILE_ITEM_HEIGHT = 48;\nexport const MOBILE_HEADER_COMPACT_HEIGHT = 50;\nexport const MOBILE_HEADER_EXPANDED_HEIGHT = 120;\nexport const MOBILE_HEADER_ICON_SIZE = 20;\n\nexport const EVENT_NAMES: ItemEventsConfig = {\n toggleEvent: 'MOBILE_PANEL_TOGGLE',\n closeEvent: 'MOBILE_PANEL_CLOSE',\n openEvent: 'MOBILE_PANEL_OPEN',\n};\n\nexport const BURGER_PANEL_ITEM_ID = 'burger';\n","import {MobileMenuItem} from './types';\nimport {MOBILE_ITEM_HEIGHT} from './constants';\n\nexport const getItemHeight = (item: MobileMenuItem) => {\n switch (item.type) {\n case 'divider':\n return 1;\n default:\n return MOBILE_ITEM_HEIGHT;\n }\n};\n\nexport const getSelectedItemIndex = (items: MobileMenuItem[]) => {\n const index = items.findIndex(({current}) => Boolean(current));\n\n return index === -1 ? undefined : index;\n};\n","import React from 'react';\nimport {List, Icon} from '@gravity-ui/uikit';\n\nimport {block} from '../../../utils/cn';\nimport {MobileMenuItem} from '../../types';\nimport {MOBILE_HEADER_ICON_SIZE} from '../../constants';\nimport {getItemHeight, getSelectedItemIndex} from '../../utils';\n\nimport './BurgerCompositeBar.scss';\n\nconst b = block('burger-composite-bar');\n\ninterface ItemProps {\n item: MobileMenuItem;\n onItemClick?: (item: MobileMenuItem) => void;\n}\n\nconst Item = ({item, onItemClick}: ItemProps) => {\n const {icon, type = 'regular', iconSize = MOBILE_HEADER_ICON_SIZE} = item;\n\n if (type === 'divider') {\n return <div className={b('menu-divider')} />;\n }\n\n const node = (\n <div\n className={b('item', {type})}\n onClick={() => {\n if (typeof item.onItemClick === 'function') {\n item.onItemClick(item);\n }\n\n if (type === 'regular') {\n onItemClick?.(item);\n }\n }}\n >\n <div className={b('item-icon-place')}>\n {icon && <Icon data={icon} size={iconSize} className={b('item-icon')} />}\n </div>\n <div className={b('item-title')}>{item.title}</div>\n </div>\n );\n\n if (typeof item.itemWrapper === 'function') {\n return item.itemWrapper(node, item) as React.ReactElement;\n }\n\n return item.link ? (\n <a href={item.link} className={b('link')}>\n {node}\n </a>\n ) : (\n node\n );\n};\nItem.displayName = 'Item';\n\ninterface BurgerCompositeBarProps {\n items: MobileMenuItem[];\n onItemClick?: (item: MobileMenuItem) => void;\n}\n\nexport const BurgerCompositeBar = React.memo(({items, onItemClick}: BurgerCompositeBarProps) => {\n return (\n <nav className={b()}>\n <List<MobileMenuItem>\n items={items}\n selectedItemIndex={getSelectedItemIndex(items)}\n itemHeight={getItemHeight}\n itemClassName={b('root-menu-item')}\n virtualized={false}\n filterable={false}\n sortable={false}\n renderItem={(item) => <Item item={item} onItemClick={onItemClick} />}\n />\n </nav>\n );\n});\n\nBurgerCompositeBar.displayName = 'BurgerCompositeBar';\n","import React from 'react';\nimport {Sheet} from '@gravity-ui/uikit';\nimport {block} from '../../utils/cn';\n\nimport {MobileMenuItem, ModalItem} from '../types';\nimport {BurgerCompositeBar} from './BurgerCompositeBar/BurgerCompositeBar';\n\nimport './BurgerMenu.scss';\n\nconst b = block('mobile-header-burger-menu');\n\nexport interface BurgerMenuInnerProps {\n items?: MobileMenuItem[];\n modalItem?: ModalItem;\n renderFooter?: () => React.ReactNode;\n onItemClick?: (item: MobileMenuItem) => void;\n className?: string;\n}\n\nexport const BurgerMenu = React.memo(\n ({items = [], renderFooter, modalItem, className, onItemClick}: BurgerMenuInnerProps) => {\n return (\n <div className={b(null, className)}>\n {modalItem && (\n <Sheet\n visible={modalItem.visible}\n id={modalItem.id}\n title={modalItem.title}\n onClose={modalItem.onClose}\n contentClassName={modalItem.contentClassName}\n className={modalItem.className}\n >\n {modalItem.renderContent?.()}\n </Sheet>\n )}\n\n <BurgerCompositeBar items={items} onItemClick={onItemClick} />\n\n {renderFooter && <div className={b('footer')}>{renderFooter?.()}</div>}\n </div>\n );\n },\n);\n\nBurgerMenu.displayName = 'BurgerMenu';\n","import {registerKeyset} from '../../utils/registerKeyset';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nconst COMPONENT = 'MobileHeader';\nexport default registerKeyset({en, ru}, COMPONENT);\n","import React, {useCallback, useState, useMemo, useEffect} from 'react';\n\nimport {block} from '../utils/cn';\nimport {LogoProps} from '../types';\nimport {MobileMenuItem, MobileHeaderEvent} from './types';\nimport {useForwardRef} from '../../hooks/useForwardRef';\nimport {Drawer, DrawerItem, DrawerItemProps} from '../Drawer/Drawer';\nimport {Content, RenderContentType} from '../Content';\nimport {Burger} from './Burger/Burger';\nimport {Logo} from './Logo/Logo';\nimport {BurgerMenu, BurgerMenuInnerProps} from './BurgerMenu/BurgerMenu';\nimport {\n MOBILE_HEADER_COMPACT_HEIGHT,\n MOBILE_HEADER_EXPANDED_HEIGHT,\n EVENT_NAMES,\n BURGER_PANEL_ITEM_ID,\n} from './constants';\nimport i18n from './i18n';\n\nimport './MobileHeader.scss';\n\nconst b = block('mobile-header');\n\ntype PanelName = DrawerItemProps['id'] | null;\n\ninterface BurgerMenuProps extends Omit<BurgerMenuInnerProps, 'renderFooter'> {\n renderFooter?: (data: {size: number; isCompact: boolean}) => React.ReactNode;\n}\n\ninterface PanelItem extends Omit<DrawerItemProps, 'visible'> {}\n\nexport interface MobileHeaderProps {\n logo: LogoProps;\n burgerMenu: BurgerMenuProps;\n burgerCloseTitle?: string;\n burgerOpenTitle?: string;\n panelItems?: PanelItem[];\n renderContent?: RenderContentType;\n sideItemRenderContent?: RenderContentType;\n onEvent?: (itemName: string, eventName: MobileHeaderEvent) => void;\n onClosePanel?: () => void;\n className?: string;\n}\n\nexport const MobileHeader = React.forwardRef<HTMLDivElement, MobileHeaderProps>(\n (\n {\n logo,\n burgerMenu,\n burgerCloseTitle = i18n('burger_button_close'),\n burgerOpenTitle = i18n('burger_button_open'),\n panelItems = [],\n renderContent,\n sideItemRenderContent,\n onClosePanel,\n onEvent,\n className,\n },\n ref,\n ): React.ReactElement => {\n const targetRef = useForwardRef<HTMLDivElement>(ref);\n const [compact] = useState(true);\n const [visiblePanel, setVisiblePanel] = useState<PanelName>(null);\n\n // for expand top panel cases (i.e. switch service panel). Will be removed if not used in future design\n const size = compact ? MOBILE_HEADER_COMPACT_HEIGHT : MOBILE_HEADER_EXPANDED_HEIGHT;\n\n const onPanelToggle = useCallback(\n (name: PanelName) => {\n if (!name) return;\n\n setVisiblePanel((prev) => {\n const panelOpen = prev === name;\n\n onEvent?.(name, panelOpen ? EVENT_NAMES.closeEvent : EVENT_NAMES.openEvent);\n\n return panelOpen ? null : name;\n });\n },\n [onEvent],\n );\n\n const onMobilePanelToggle = useCallback(\n ({detail}) => {\n if (typeof detail?.panelName === 'string') {\n onPanelToggle(detail?.panelName);\n }\n },\n [onPanelToggle],\n );\n\n const onMobilePanelOpen = useCallback(\n ({detail}) => {\n if (typeof detail?.panelName === 'string') {\n onEvent?.(detail?.panelName, EVENT_NAMES.openEvent);\n setVisiblePanel(detail?.panelName);\n }\n },\n [onEvent],\n );\n\n const onMobilePanelClose = useCallback(\n ({detail}) => {\n if (typeof detail?.panelName === 'string') {\n onEvent?.(detail?.panelName, EVENT_NAMES.closeEvent);\n setVisiblePanel(null);\n }\n },\n [onEvent],\n );\n\n const onBurgerOpen = useCallback(() => {\n onEvent?.(BURGER_PANEL_ITEM_ID, EVENT_NAMES.openEvent);\n setVisiblePanel(BURGER_PANEL_ITEM_ID);\n }, [onEvent]);\n\n const onBurgerClose = useCallback(() => {\n onEvent?.(BURGER_PANEL_ITEM_ID, EVENT_NAMES.closeEvent);\n setVisiblePanel(null);\n }, [onEvent]);\n\n const onCloseDrawer = useCallback(() => {\n if (visiblePanel) {\n onEvent?.(visiblePanel, EVENT_NAMES.closeEvent);\n }\n setVisiblePanel(null);\n }, [visiblePanel, onEvent]);\n\n const onBurgerMenuItemClick = useCallback(\n (item: MobileMenuItem) => {\n const closeMenuOnClick = item.closeMenuOnClick ?? true;\n\n if (closeMenuOnClick) {\n onBurgerClose();\n }\n },\n [onBurgerClose],\n );\n\n const renderBurgerMenuFooter = useCallback(\n () =>\n burgerMenu.renderFooter?.({\n size,\n isCompact: compact,\n }),\n [burgerMenu, size, compact],\n );\n\n const onLogoClick = useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n onClosePanel?.();\n logo.onClick?.(event);\n },\n [logo, onClosePanel],\n );\n\n const burgerPanelItem: PanelItem = useMemo(\n () => ({\n id: BURGER_PANEL_ITEM_ID,\n content: (\n <BurgerMenu\n items={burgerMenu.items}\n modalItem={burgerMenu.modalItem}\n renderFooter={renderBurgerMenuFooter}\n onItemClick={onBurgerMenuItemClick}\n className={b('burger-menu')}\n />\n ),\n }),\n [burgerMenu.items, burgerMenu.modalItem, onBurgerMenuItemClick, renderBurgerMenuFooter],\n );\n\n useEffect(() => {\n const node = targetRef?.current;\n\n if (node) {\n node.addEventListener('MOBILE_BURGER_OPEN', onBurgerOpen);\n node.addEventListener('MOBILE_BURGER_CLOSE', onBurgerClose);\n\n node.addEventListener('MOBILE_PANEL_TOGGLE', onMobilePanelToggle);\n node.addEventListener('MOBILE_PANEL_OPEN', onMobilePanelOpen);\n node.addEventListener('MOBILE_PANEL_CLOSE', onMobilePanelClose);\n }\n\n return () => {\n if (node) {\n node.removeEventListener('MOBILE_BURGER_OPEN', onBurgerOpen);\n node.removeEventListener('MOBILE_BURGER_CLOSE', onBurgerClose);\n\n node.removeEventListener('MOBILE_PANEL_TOGGLE', onMobilePanelToggle);\n node.removeEventListener('MOBILE_PANEL_OPEN', onMobilePanelOpen);\n node.removeEventListener('MOBILE_PANEL_CLOSE', onMobilePanelClose);\n }\n };\n }, [\n targetRef,\n onBurgerClose,\n onBurgerOpen,\n onMobilePanelToggle,\n onMobilePanelOpen,\n onMobilePanelClose,\n ]);\n\n return (\n <div className={b({compact}, className)} ref={targetRef}>\n <header className={b('header')} style={{height: size}}>\n <Burger\n opened={visiblePanel === burgerPanelItem.id}\n onClick={() => onPanelToggle(BURGER_PANEL_ITEM_ID)}\n className={b('burger')}\n closeTitle={burgerCloseTitle}\n openTitle={burgerOpenTitle}\n />\n <Logo {...logo} compact={compact} onClick={onLogoClick} />\n\n <div className={b('side-item')}>{sideItemRenderContent?.({size})}</div>\n </header>\n\n <Drawer\n className={b('panels')}\n onVeilClick={onCloseDrawer}\n onEscape={onCloseDrawer}\n style={{top: size}}\n >\n {[burgerPanelItem, ...panelItems].map((item) => (\n <DrawerItem\n {...item}\n key={item.id}\n visible={visiblePanel === item.id}\n className={b('panel-item', item.className)}\n />\n ))}\n </Drawer>\n\n <Content\n size={size}\n renderContent={renderContent}\n className={b('content')}\n cssSizeVariableName=\"--mobile-header-size\"\n />\n </div>\n );\n },\n);\n\nMobileHeader.displayName = 'MobileHeader';\n","import React from 'react';\nimport {block} from '../../utils/cn';\n\nimport {eventBroker, Icon, IconProps, Sheet} from '@gravity-ui/uikit';\n\nimport {MOBILE_HEADER_ICON_SIZE} from '../constants';\nimport {ModalItem} from '../types';\n\nimport './FooterItem.scss';\n\nconst b = block('mobile-header-footer-item');\n\nexport interface FooterItemProps {\n icon?: IconProps['data'];\n iconSize?: string | number;\n className?: string;\n modalItem: ModalItem;\n onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n}\n\nexport const FooterItem = ({\n icon,\n iconSize = MOBILE_HEADER_ICON_SIZE,\n className,\n modalItem = {visible: false},\n onClick,\n}: FooterItemProps) => {\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n eventBroker.publish({\n componentId: 'MobileHeaderFooterItem',\n eventId: 'click',\n domEvent: event,\n });\n\n onClick?.(event);\n },\n [onClick],\n );\n\n return (\n <div className={b()}>\n <button className={b('button', className)} onClick={handleClick}>\n {icon ? <Icon data={icon} size={iconSize} className={b('icon')} /> : null}\n </button>\n\n <Sheet\n id={modalItem.id}\n title={modalItem.title}\n visible={modalItem.visible}\n className={b('modal', modalItem.className)}\n contentClassName={b('modal-content', modalItem.contentClassName)}\n allowHideOnContentScroll={modalItem.modalAllowHideOnContentScroll}\n onClose={modalItem.onClose}\n >\n {modalItem.renderContent?.()}\n </Sheet>\n </div>\n );\n};\n"],"names":["React","b"],"mappings":"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"}
1
+ {"version":3,"file":"FooterItem-39ac7c22.js","sources":["../../../src/hooks/useForwardRef.tsx","../../../src/components/MobileHeader/Burger/Burger.tsx","../../../src/components/MobileHeader/Logo/Logo.tsx","../../../src/components/MobileHeader/constants.ts","../../../src/components/MobileHeader/utils.ts","../../../src/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.tsx","../../../src/components/MobileHeader/BurgerMenu/BurgerMenu.tsx","../../../src/components/MobileHeader/i18n/index.ts","../../../src/components/MobileHeader/MobileHeader.tsx","../../../src/components/MobileHeader/FooterItem/FooterItem.tsx"],"sourcesContent":["import React from 'react';\n\nexport const useForwardRef = <T,>(\n ref: ((instance: T | null) => void) | React.MutableRefObject<T | null> | null,\n initialValue: any = null,\n) => {\n const targetRef = React.useRef<T>(initialValue);\n\n React.useEffect(() => {\n if (!ref) return;\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n }, [ref]);\n\n return targetRef;\n};\n","import React from 'react';\nimport {block} from '../../utils/cn';\n\nimport './Burger.scss';\n\nconst b = block('mobile-header-burger');\n\ninterface BurgerProps {\n closeTitle: string;\n openTitle: string;\n opened?: boolean;\n className?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\nexport const Burger = React.memo(\n ({closeTitle, openTitle, opened, className, onClick}: BurgerProps) => (\n <button\n className={b({opened}, className)}\n onClick={onClick}\n aria-label={opened ? closeTitle : openTitle}\n >\n <span className={b('icon')}>\n <span className={b('icon-dash')}></span>\n </span>\n </button>\n ),\n);\n\nBurger.displayName = 'Burger';\n","import React from 'react';\nimport {Icon} from '@gravity-ui/uikit';\nimport {block} from '../../utils/cn';\nimport {LogoProps} from '../../types';\n\nimport './Logo.scss';\n\nconst b = block('mobile-header-logo');\n\ninterface LogoInnerProps extends LogoProps {\n compact: boolean;\n}\n\nexport const Logo: React.FC<LogoInnerProps> = ({\n text,\n compact,\n icon,\n iconSrc,\n iconClassName,\n iconSize = 32,\n textSize = 20,\n href = '/',\n wrapper,\n onClick,\n}) => {\n const hasClickHandler = typeof onClick === 'function';\n const hasWrapper = typeof wrapper === 'function';\n\n const linkProps = hasClickHandler\n ? {}\n : {\n target: '_self',\n href,\n };\n\n let logoIcon;\n\n if (iconSrc) {\n logoIcon = (\n <img\n alt=\"logo icon\"\n src={iconSrc}\n width={iconSize}\n height={iconSize}\n className={iconClassName}\n />\n );\n } else if (icon) {\n logoIcon = <Icon data={icon} size={iconSize} className={b('icon', iconClassName)} />;\n }\n\n let logoTitle: React.ReactNode;\n\n if (typeof text === 'function') {\n logoTitle = text();\n } else {\n logoTitle = (\n <span className={b('title')} style={{fontSize: textSize}}>\n {text}\n </span>\n );\n }\n\n const logo = (\n <React.Fragment>\n {logoIcon}\n {logoTitle}\n </React.Fragment>\n );\n\n return hasWrapper ? (\n <div className={b()} onClick={onClick}>\n {wrapper(logo, compact)}\n </div>\n ) : (\n <a {...linkProps} className={b()} onClick={onClick}>\n {logo}\n </a>\n );\n};\n","import {ItemEventsConfig} from './types';\n\nexport const MOBILE_ITEM_HEIGHT = 48;\nexport const MOBILE_HEADER_COMPACT_HEIGHT = 50;\nexport const MOBILE_HEADER_EXPANDED_HEIGHT = 120;\nexport const MOBILE_HEADER_ICON_SIZE = 20;\n\nexport const EVENT_NAMES: ItemEventsConfig = {\n toggleEvent: 'MOBILE_PANEL_TOGGLE',\n closeEvent: 'MOBILE_PANEL_CLOSE',\n openEvent: 'MOBILE_PANEL_OPEN',\n};\n\nexport const BURGER_PANEL_ITEM_ID = 'burger';\n","import {MobileMenuItem} from './types';\nimport {MOBILE_ITEM_HEIGHT} from './constants';\n\nexport const getItemHeight = (item: MobileMenuItem) => {\n switch (item.type) {\n case 'divider':\n return 1;\n default:\n return MOBILE_ITEM_HEIGHT;\n }\n};\n\nexport const getSelectedItemIndex = (items: MobileMenuItem[]) => {\n const index = items.findIndex(({current}) => Boolean(current));\n\n return index === -1 ? undefined : index;\n};\n","import React from 'react';\nimport {List, Icon} from '@gravity-ui/uikit';\n\nimport {block} from '../../../utils/cn';\nimport {MobileMenuItem} from '../../types';\nimport {MOBILE_HEADER_ICON_SIZE} from '../../constants';\nimport {getItemHeight, getSelectedItemIndex} from '../../utils';\n\nimport './BurgerCompositeBar.scss';\n\nconst b = block('burger-composite-bar');\n\ninterface ItemProps {\n item: MobileMenuItem;\n onItemClick?: (item: MobileMenuItem) => void;\n}\n\nconst Item = ({item, onItemClick}: ItemProps) => {\n const {icon, type = 'regular', iconSize = MOBILE_HEADER_ICON_SIZE} = item;\n\n if (type === 'divider') {\n return <div className={b('menu-divider')} />;\n }\n\n const node = (\n <div\n className={b('item', {type})}\n onClick={() => {\n if (typeof item.onItemClick === 'function') {\n item.onItemClick(item);\n }\n\n if (type === 'regular') {\n onItemClick?.(item);\n }\n }}\n >\n <div className={b('item-icon-place')}>\n {icon && <Icon data={icon} size={iconSize} className={b('item-icon')} />}\n </div>\n <div className={b('item-title')}>{item.title}</div>\n </div>\n );\n\n if (typeof item.itemWrapper === 'function') {\n return item.itemWrapper(node, item) as React.ReactElement;\n }\n\n return item.link ? (\n <a href={item.link} className={b('link')}>\n {node}\n </a>\n ) : (\n node\n );\n};\nItem.displayName = 'Item';\n\ninterface BurgerCompositeBarProps {\n items: MobileMenuItem[];\n onItemClick?: (item: MobileMenuItem) => void;\n}\n\nexport const BurgerCompositeBar = React.memo(({items, onItemClick}: BurgerCompositeBarProps) => {\n return (\n <nav className={b()}>\n <List<MobileMenuItem>\n items={items}\n selectedItemIndex={getSelectedItemIndex(items)}\n itemHeight={getItemHeight}\n itemClassName={b('root-menu-item')}\n virtualized={false}\n filterable={false}\n sortable={false}\n renderItem={(item) => <Item item={item} onItemClick={onItemClick} />}\n />\n </nav>\n );\n});\n\nBurgerCompositeBar.displayName = 'BurgerCompositeBar';\n","import React from 'react';\nimport {Sheet} from '@gravity-ui/uikit';\nimport {block} from '../../utils/cn';\n\nimport {MobileMenuItem, ModalItem} from '../types';\nimport {BurgerCompositeBar} from './BurgerCompositeBar/BurgerCompositeBar';\n\nimport './BurgerMenu.scss';\n\nconst b = block('mobile-header-burger-menu');\n\nexport interface BurgerMenuInnerProps {\n items?: MobileMenuItem[];\n modalItem?: ModalItem;\n renderFooter?: () => React.ReactNode;\n onItemClick?: (item: MobileMenuItem) => void;\n className?: string;\n}\n\nexport const BurgerMenu = React.memo(\n ({items = [], renderFooter, modalItem, className, onItemClick}: BurgerMenuInnerProps) => {\n return (\n <div className={b(null, className)}>\n {modalItem && (\n <Sheet\n visible={modalItem.visible}\n id={modalItem.id}\n title={modalItem.title}\n onClose={modalItem.onClose}\n contentClassName={modalItem.contentClassName}\n className={modalItem.className}\n >\n {modalItem.renderContent?.()}\n </Sheet>\n )}\n\n <BurgerCompositeBar items={items} onItemClick={onItemClick} />\n\n {renderFooter && <div className={b('footer')}>{renderFooter?.()}</div>}\n </div>\n );\n },\n);\n\nBurgerMenu.displayName = 'BurgerMenu';\n","import {registerKeyset} from '../../utils/registerKeyset';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nconst COMPONENT = 'MobileHeader';\nexport default registerKeyset({en, ru}, COMPONENT);\n","import React, {useCallback, useState, useMemo, useEffect} from 'react';\n\nimport {block} from '../utils/cn';\nimport {LogoProps} from '../types';\nimport {MobileMenuItem, MobileHeaderEvent} from './types';\nimport {useForwardRef} from '../../hooks/useForwardRef';\nimport {Drawer, DrawerItem, DrawerItemProps} from '../Drawer/Drawer';\nimport {Content, RenderContentType} from '../Content';\nimport {Burger} from './Burger/Burger';\nimport {Logo} from './Logo/Logo';\nimport {BurgerMenu, BurgerMenuInnerProps} from './BurgerMenu/BurgerMenu';\nimport {\n MOBILE_HEADER_COMPACT_HEIGHT,\n MOBILE_HEADER_EXPANDED_HEIGHT,\n EVENT_NAMES,\n BURGER_PANEL_ITEM_ID,\n} from './constants';\nimport i18n from './i18n';\n\nimport './MobileHeader.scss';\n\nconst b = block('mobile-header');\n\ntype PanelName = DrawerItemProps['id'] | null;\n\ninterface BurgerMenuProps extends Omit<BurgerMenuInnerProps, 'renderFooter'> {\n renderFooter?: (data: {size: number; isCompact: boolean}) => React.ReactNode;\n}\n\ninterface PanelItem extends Omit<DrawerItemProps, 'visible'> {}\n\nexport interface MobileHeaderProps {\n logo: LogoProps;\n burgerMenu: BurgerMenuProps;\n burgerCloseTitle?: string;\n burgerOpenTitle?: string;\n panelItems?: PanelItem[];\n renderContent?: RenderContentType;\n sideItemRenderContent?: RenderContentType;\n onEvent?: (itemName: string, eventName: MobileHeaderEvent) => void;\n onClosePanel?: () => void;\n className?: string;\n}\n\nexport const MobileHeader = React.forwardRef<HTMLDivElement, MobileHeaderProps>(\n (\n {\n logo,\n burgerMenu,\n burgerCloseTitle = i18n('burger_button_close'),\n burgerOpenTitle = i18n('burger_button_open'),\n panelItems = [],\n renderContent,\n sideItemRenderContent,\n onClosePanel,\n onEvent,\n className,\n },\n ref,\n ): React.ReactElement => {\n const targetRef = useForwardRef<HTMLDivElement>(ref);\n const [compact] = useState(true);\n const [visiblePanel, setVisiblePanel] = useState<PanelName>(null);\n\n // for expand top panel cases (i.e. switch service panel). Will be removed if not used in future design\n const size = compact ? MOBILE_HEADER_COMPACT_HEIGHT : MOBILE_HEADER_EXPANDED_HEIGHT;\n\n const onPanelToggle = useCallback(\n (name: PanelName) => {\n if (!name) return;\n\n setVisiblePanel((prev) => {\n const panelOpen = prev === name;\n\n onEvent?.(name, panelOpen ? EVENT_NAMES.closeEvent : EVENT_NAMES.openEvent);\n\n return panelOpen ? null : name;\n });\n },\n [onEvent],\n );\n\n const onMobilePanelToggle = useCallback(\n ({detail}) => {\n if (typeof detail?.panelName === 'string') {\n onPanelToggle(detail?.panelName);\n }\n },\n [onPanelToggle],\n );\n\n const onMobilePanelOpen = useCallback(\n ({detail}) => {\n if (typeof detail?.panelName === 'string') {\n onEvent?.(detail?.panelName, EVENT_NAMES.openEvent);\n setVisiblePanel(detail?.panelName);\n }\n },\n [onEvent],\n );\n\n const onMobilePanelClose = useCallback(\n ({detail}) => {\n if (typeof detail?.panelName === 'string') {\n onEvent?.(detail?.panelName, EVENT_NAMES.closeEvent);\n setVisiblePanel(null);\n }\n },\n [onEvent],\n );\n\n const onBurgerOpen = useCallback(() => {\n onEvent?.(BURGER_PANEL_ITEM_ID, EVENT_NAMES.openEvent);\n setVisiblePanel(BURGER_PANEL_ITEM_ID);\n }, [onEvent]);\n\n const onBurgerClose = useCallback(() => {\n onEvent?.(BURGER_PANEL_ITEM_ID, EVENT_NAMES.closeEvent);\n setVisiblePanel(null);\n }, [onEvent]);\n\n const onCloseDrawer = useCallback(() => {\n if (visiblePanel) {\n onEvent?.(visiblePanel, EVENT_NAMES.closeEvent);\n }\n setVisiblePanel(null);\n }, [visiblePanel, onEvent]);\n\n const onBurgerMenuItemClick = useCallback(\n (item: MobileMenuItem) => {\n const closeMenuOnClick = item.closeMenuOnClick ?? true;\n\n if (closeMenuOnClick) {\n onBurgerClose();\n }\n },\n [onBurgerClose],\n );\n\n const renderBurgerMenuFooter = useCallback(\n () =>\n burgerMenu.renderFooter?.({\n size,\n isCompact: compact,\n }),\n [burgerMenu, size, compact],\n );\n\n const onLogoClick = useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n onClosePanel?.();\n logo.onClick?.(event);\n },\n [logo, onClosePanel],\n );\n\n const burgerPanelItem: PanelItem = useMemo(\n () => ({\n id: BURGER_PANEL_ITEM_ID,\n content: (\n <BurgerMenu\n items={burgerMenu.items}\n modalItem={burgerMenu.modalItem}\n renderFooter={renderBurgerMenuFooter}\n onItemClick={onBurgerMenuItemClick}\n className={b('burger-menu')}\n />\n ),\n }),\n [burgerMenu.items, burgerMenu.modalItem, onBurgerMenuItemClick, renderBurgerMenuFooter],\n );\n\n useEffect(() => {\n const node = targetRef?.current;\n\n if (node) {\n node.addEventListener('MOBILE_BURGER_OPEN', onBurgerOpen);\n node.addEventListener('MOBILE_BURGER_CLOSE', onBurgerClose);\n\n node.addEventListener('MOBILE_PANEL_TOGGLE', onMobilePanelToggle);\n node.addEventListener('MOBILE_PANEL_OPEN', onMobilePanelOpen);\n node.addEventListener('MOBILE_PANEL_CLOSE', onMobilePanelClose);\n }\n\n return () => {\n if (node) {\n node.removeEventListener('MOBILE_BURGER_OPEN', onBurgerOpen);\n node.removeEventListener('MOBILE_BURGER_CLOSE', onBurgerClose);\n\n node.removeEventListener('MOBILE_PANEL_TOGGLE', onMobilePanelToggle);\n node.removeEventListener('MOBILE_PANEL_OPEN', onMobilePanelOpen);\n node.removeEventListener('MOBILE_PANEL_CLOSE', onMobilePanelClose);\n }\n };\n }, [\n targetRef,\n onBurgerClose,\n onBurgerOpen,\n onMobilePanelToggle,\n onMobilePanelOpen,\n onMobilePanelClose,\n ]);\n\n return (\n <div className={b({compact}, className)} ref={targetRef}>\n <header className={b('header')} style={{height: size}}>\n <Burger\n opened={visiblePanel === burgerPanelItem.id}\n onClick={() => onPanelToggle(BURGER_PANEL_ITEM_ID)}\n className={b('burger')}\n closeTitle={burgerCloseTitle}\n openTitle={burgerOpenTitle}\n />\n <Logo {...logo} compact={compact} onClick={onLogoClick} />\n\n <div className={b('side-item')}>{sideItemRenderContent?.({size})}</div>\n </header>\n\n <Drawer\n className={b('panels')}\n onVeilClick={onCloseDrawer}\n onEscape={onCloseDrawer}\n style={{top: size}}\n >\n {[burgerPanelItem, ...panelItems].map((item) => (\n <DrawerItem\n {...item}\n key={item.id}\n visible={visiblePanel === item.id}\n className={b('panel-item', item.className)}\n />\n ))}\n </Drawer>\n\n <Content\n size={size}\n renderContent={renderContent}\n className={b('content')}\n cssSizeVariableName=\"--mobile-header-size\"\n />\n </div>\n );\n },\n);\n\nMobileHeader.displayName = 'MobileHeader';\n","import React from 'react';\nimport {block} from '../../utils/cn';\n\nimport {eventBroker, Icon, IconProps, Sheet} from '@gravity-ui/uikit';\n\nimport {MOBILE_HEADER_ICON_SIZE} from '../constants';\nimport {ModalItem} from '../types';\n\nimport './FooterItem.scss';\n\nconst b = block('mobile-header-footer-item');\n\nexport interface FooterItemProps {\n icon?: IconProps['data'];\n iconSize?: string | number;\n className?: string;\n modalItem: ModalItem;\n onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n}\n\nexport const FooterItem = ({\n icon,\n iconSize = MOBILE_HEADER_ICON_SIZE,\n className,\n modalItem = {visible: false},\n onClick,\n}: FooterItemProps) => {\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n eventBroker.publish({\n componentId: 'MobileHeaderFooterItem',\n eventId: 'click',\n domEvent: event,\n });\n\n onClick?.(event);\n },\n [onClick],\n );\n\n return (\n <div className={b()}>\n <button className={b('button', className)} onClick={handleClick}>\n {icon ? <Icon data={icon} size={iconSize} className={b('icon')} /> : null}\n </button>\n\n <Sheet\n id={modalItem.id}\n title={modalItem.title}\n visible={modalItem.visible}\n className={b('modal', modalItem.className)}\n contentClassName={b('modal-content', modalItem.contentClassName)}\n allowHideOnContentScroll={modalItem.modalAllowHideOnContentScroll}\n onClose={modalItem.onClose}\n >\n {modalItem.renderContent?.()}\n </Sheet>\n </div>\n );\n};\n"],"names":["React","b"],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { _ as __rest } from './tslib.es6-3cd4e99f.js';
2
2
  import React__default from 'react';
3
- import { s as styleInject, b as block } from './style-inject.es-cfd97593.js';
4
- import { I as Item, A as ASIDE_HEADER_ICON_SIZE } from './Item-f02541c1.js';
3
+ import { b as block } from './cn-589cd9e2.js';
4
+ import { I as Item } from './Item-ab589218.js';
5
+ import { A as ASIDE_HEADER_ICON_SIZE } from './constants-b1604ff5.js';
6
+ import { s as styleInject } from './style-inject.es-1f59c1d0.js';
5
7
  import '@bem-react/classname';
6
8
  import '@gravity-ui/uikit';
7
9
  import '@gravity-ui/icons';
@@ -1 +1 @@
1
- {"version":3,"file":"FooterItem.js","sources":["../../../src/components/FooterItem/FooterItem.tsx"],"sourcesContent":["import React from 'react';\nimport {block} from '../utils/cn';\n\nimport {Item, ItemProps} from '../CompositeBar/Item/Item';\nimport {ASIDE_HEADER_ICON_SIZE} from '../constants';\n\nimport './FooterItem.scss';\n\nconst b = block('footer-item');\n\nexport interface FooterItemProps extends Omit<ItemProps, 'onItemClick' | 'onItemClickCapture'> {\n compact: boolean;\n}\n\nexport const FooterItem: React.FC<FooterItemProps> = ({item, ...props}) => {\n return (\n <Item\n {...props}\n item={{iconSize: ASIDE_HEADER_ICON_SIZE, ...item}}\n className={b({compact: props.compact})}\n onItemClick={item.onItemClick}\n onItemClickCapture={item.onItemClickCapture}\n />\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;;;;;;AAQA,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;AAMlB,MAAA,UAAU,GAA8B,CAAC,EAAgB,KAAI;AAApB,IAAA,IAAA,EAAC,IAAI,EAAW,GAAA,EAAA,EAAN,KAAK,GAAA,MAAA,CAAA,EAAA,EAAf,QAAgB,CAAD,CAAA;AACjE,IAAA,QACIA,cAAC,CAAA,aAAA,CAAA,IAAI,oBACG,KAAK,EAAA,EACT,IAAI,EAAG,MAAA,CAAA,MAAA,CAAA,EAAA,QAAQ,EAAE,sBAAsB,IAAK,IAAI,CAAA,EAChD,SAAS,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC,EACtC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAA,CAAA,CAC7C,EACJ;AACN;;;;"}
1
+ {"version":3,"file":"FooterItem.js","sources":["../../../src/components/FooterItem/FooterItem.tsx"],"sourcesContent":["import React from 'react';\nimport {block} from '../utils/cn';\n\nimport {Item, ItemProps} from '../CompositeBar/Item/Item';\nimport {ASIDE_HEADER_ICON_SIZE} from '../constants';\n\nimport './FooterItem.scss';\n\nconst b = block('footer-item');\n\nexport interface FooterItemProps extends Omit<ItemProps, 'onItemClick' | 'onItemClickCapture'> {\n compact: boolean;\n}\n\nexport const FooterItem: React.FC<FooterItemProps> = ({item, ...props}) => {\n return (\n <Item\n {...props}\n item={{iconSize: ASIDE_HEADER_ICON_SIZE, ...item}}\n className={b({compact: props.compact})}\n onItemClick={item.onItemClick}\n onItemClickCapture={item.onItemClickCapture}\n />\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;;;;;;;;AAQA,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;AAMlB,MAAA,UAAU,GAA8B,CAAC,EAAgB,KAAI;AAApB,IAAA,IAAA,EAAC,IAAI,EAAW,GAAA,EAAA,EAAN,KAAK,GAAA,MAAA,CAAA,EAAA,EAAf,QAAgB,CAAD,CAAA;AACjE,IAAA,QACIA,cAAC,CAAA,aAAA,CAAA,IAAI,oBACG,KAAK,EAAA,EACT,IAAI,EAAG,MAAA,CAAA,MAAA,CAAA,EAAA,QAAQ,EAAE,sBAAsB,IAAK,IAAI,CAAA,EAChD,SAAS,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC,EACtC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAA,CAAA,CAC7C,EACJ;AACN;;;;"}
@@ -2,7 +2,8 @@ import { _ as __rest } from './tslib.es6-3cd4e99f.js';
2
2
  import React__default, { useState, useMemo, useCallback } from 'react';
3
3
  import { Hotkey, TextInput, List } from '@gravity-ui/uikit';
4
4
  import { Drawer, DrawerItem } from './Drawer.js';
5
- import { s as styleInject, b as block } from './style-inject.es-cfd97593.js';
5
+ import { b as block } from './cn-589cd9e2.js';
6
+ import { s as styleInject } from './style-inject.es-1f59c1d0.js';
6
7
 
7
8
  function flattenHotkeyGroups(hotkeys) {
8
9
  const result = [];
@@ -57,4 +58,4 @@ function HotkeysPanel(_a) {
57
58
  }
58
59
 
59
60
  export { HotkeysPanel as H };
60
- //# sourceMappingURL=HotkeysPanel-82fe991b.js.map
61
+ //# sourceMappingURL=HotkeysPanel-bd0e997d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HotkeysPanel-82fe991b.js","sources":["../../../src/components/HotkeysPanel/utils/flattenHotkeyGroups.ts","../../../src/components/HotkeysPanel/utils/filterHotkeys.ts","../../../src/components/HotkeysPanel/HotkeysPanel.tsx"],"sourcesContent":["import type {HotkeysGroup, HotkeysListItem} from '../types';\n\nexport function flattenHotkeyGroups<T>(hotkeys: HotkeysGroup<T>[]) {\n const result: HotkeysListItem[] = [];\n\n for (const hotkeysGroup of hotkeys) {\n result.push({\n title: hotkeysGroup.title,\n group: true,\n });\n\n result.push(...hotkeysGroup.items);\n }\n\n return result;\n}\n","import type {HotkeysGroup} from '..';\n\nexport function filterHotkeys<T>(hotkeys: HotkeysGroup<T>[], filter: string) {\n if (filter) {\n const result = [];\n const normalizedFilter = filter.toLowerCase();\n\n for (const hotkeysBlock of hotkeys) {\n const filteredItems = hotkeysBlock.items.filter((item) =>\n item.title.toLowerCase().includes(normalizedFilter),\n );\n if (filteredItems.length > 0) {\n result.push({\n ...hotkeysBlock,\n items: filteredItems,\n });\n }\n }\n\n return result;\n }\n\n return hotkeys;\n}\n","import React, {useMemo, useCallback, useState} from 'react';\nimport type {ReactNode} from 'react';\n\nimport {Hotkey, List, TextInput} from '@gravity-ui/uikit';\nimport type {ListProps} from '@gravity-ui/uikit';\n\nimport {Drawer, DrawerItem} from '../Drawer/Drawer';\nimport type {DrawerProps} from '../Drawer/Drawer';\nimport {block} from '../utils/cn';\n\nimport {flattenHotkeyGroups} from './utils/flattenHotkeyGroups';\nimport {filterHotkeys} from './utils/filterHotkeys';\nimport type {HotkeysListItem, HotkeysGroup} from './types';\nimport './HotkeysPanel.scss';\n\nconst b = block('hotkeys-panel');\n\nexport type HotkeysPanelProps<T> = {\n hotkeys: HotkeysGroup<T>[];\n title?: ReactNode;\n filterPlaceholder?: string;\n emptyState?: ReactNode;\n visible: boolean;\n onClose?: () => void;\n className?: string;\n leftOffset?: number | string;\n topOffset?: number | string;\n preventScrollBody?: DrawerProps['preventScrollBody'];\n} & Omit<ListProps<HotkeysListItem>, 'items' | 'emptyPlaceholder'>;\n\nexport function HotkeysPanel<T = {}>({\n visible,\n onClose,\n leftOffset,\n topOffset,\n className,\n preventScrollBody,\n hotkeys,\n itemClassName,\n filterPlaceholder,\n title,\n emptyState,\n ...listProps\n}: HotkeysPanelProps<T>) {\n const [filter, setFilter] = useState('');\n\n const hotkeysList = useMemo(() => {\n const filteredHotkeys = filterHotkeys(hotkeys, filter);\n return flattenHotkeyGroups(filteredHotkeys);\n }, [hotkeys, filter]);\n\n const renderItem = useCallback(\n (item: HotkeysListItem) => (\n <div className={b('item-content', {group: item.group})} key={item.title}>\n {item.title}\n {item.value && <Hotkey className={b('hotkey')} value={item.value} />}\n </div>\n ),\n [],\n );\n\n const drawerItemContent = (\n <React.Fragment>\n <h2 className={b('title')}>{title}</h2>\n <TextInput\n value={filter}\n onUpdate={setFilter}\n placeholder={filterPlaceholder}\n autoFocus\n className={b('search')}\n hasClear\n />\n <List<HotkeysListItem>\n className={b('list')}\n virtualized={false}\n filterable={false}\n items={hotkeysList}\n renderItem={renderItem}\n itemClassName={b('item', itemClassName)}\n emptyPlaceholder={emptyState as string}\n {...listProps}\n />\n </React.Fragment>\n );\n\n return (\n <Drawer\n className={b(null, className)}\n onVeilClick={onClose}\n onEscape={onClose}\n preventScrollBody={preventScrollBody}\n style={{\n left: leftOffset,\n top: topOffset,\n }}\n >\n <DrawerItem\n id=\"hotkeys\"\n visible={visible}\n className={b('drawer-item')}\n content={drawerItemContent}\n />\n </Drawer>\n );\n}\n"],"names":["React"],"mappings":";;;;;;AAEM,SAAU,mBAAmB,CAAI,OAA0B,EAAA;IAC7D,MAAM,MAAM,GAAsB,EAAE,CAAC;AAErC,IAAA,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE;QAChC,MAAM,CAAC,IAAI,CAAC;YACR,KAAK,EAAE,YAAY,CAAC,KAAK;AACzB,YAAA,KAAK,EAAE,IAAI;AACd,SAAA,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,KAAA;AAED,IAAA,OAAO,MAAM,CAAC;AAClB;;ACbgB,SAAA,aAAa,CAAI,OAA0B,EAAE,MAAc,EAAA;AACvE,IAAA,IAAI,MAAM,EAAE;QACR,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;AAE9C,QAAA,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE;YAChC,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KACjD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CACtD,CAAC;AACF,YAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,MAAM,CAAC,IAAI,CACJ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,YAAY,KACf,KAAK,EAAE,aAAa,EAAA,CAAA,CACtB,CAAC;AACN,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;AACjB,KAAA;AAED,IAAA,OAAO,OAAO,CAAC;AACnB;;;;;ACRA,MAAM,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;AAe3B,SAAU,YAAY,CAAS,EAad,EAAA;QAbc,EACjC,OAAO,EACP,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,KAAK,EACL,UAAU,EAAA,GAAA,EAES,EADhB,SAAS,GAZqB,MAAA,CAAA,EAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,YAAA,CAapC,CADe,CAAA;IAEZ,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AAEzC,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,MAAK;QAC7B,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvD,QAAA,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAAC;AAChD,KAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtB,IAAA,MAAM,UAAU,GAAG,WAAW,CAC1B,CAAC,IAAqB,MAClBA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAA;AAClE,QAAA,IAAI,CAAC,KAAK;QACV,IAAI,CAAC,KAAK,IAAIA,cAAC,CAAA,aAAA,CAAA,MAAM,IAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAA,CAAI,CAClE,CACT,EACD,EAAE,CACL,CAAC;AAEF,IAAA,MAAM,iBAAiB,IACnBA,cAAC,CAAA,aAAA,CAAAA,cAAK,CAAC,QAAQ,EAAA,IAAA;QACXA,cAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EAAA,EAAG,KAAK,CAAM;QACvCA,cAAC,CAAA,aAAA,CAAA,SAAS,EACN,EAAA,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,EACnB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EACT,IAAA,EAAA,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EACtB,QAAQ,EACV,IAAA,EAAA,CAAA;AACF,QAAAA,cAAA,CAAA,aAAA,CAAC,IAAI,EACD,MAAA,CAAA,MAAA,CAAA,EAAA,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EACpB,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,KAAK,EACjB,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,EACvC,gBAAgB,EAAE,UAAoB,EAAA,EAClC,SAAS,CACf,CAAA,CACW,CACpB,CAAC;IAEF,QACIA,cAAC,CAAA,aAAA,CAAA,MAAM,EACH,EAAA,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAC7B,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,OAAO,EACjB,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE;AACH,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,GAAG,EAAE,SAAS;AACjB,SAAA,EAAA;QAEDA,cAAC,CAAA,aAAA,CAAA,UAAU,IACP,EAAE,EAAC,SAAS,EACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,EAC3B,OAAO,EAAE,iBAAiB,EAAA,CAC5B,CACG,EACX;AACN;;;;"}
1
+ {"version":3,"file":"HotkeysPanel-bd0e997d.js","sources":["../../../src/components/HotkeysPanel/utils/flattenHotkeyGroups.ts","../../../src/components/HotkeysPanel/utils/filterHotkeys.ts","../../../src/components/HotkeysPanel/HotkeysPanel.tsx"],"sourcesContent":["import type {HotkeysGroup, HotkeysListItem} from '../types';\n\nexport function flattenHotkeyGroups<T>(hotkeys: HotkeysGroup<T>[]) {\n const result: HotkeysListItem[] = [];\n\n for (const hotkeysGroup of hotkeys) {\n result.push({\n title: hotkeysGroup.title,\n group: true,\n });\n\n result.push(...hotkeysGroup.items);\n }\n\n return result;\n}\n","import type {HotkeysGroup} from '..';\n\nexport function filterHotkeys<T>(hotkeys: HotkeysGroup<T>[], filter: string) {\n if (filter) {\n const result = [];\n const normalizedFilter = filter.toLowerCase();\n\n for (const hotkeysBlock of hotkeys) {\n const filteredItems = hotkeysBlock.items.filter((item) =>\n item.title.toLowerCase().includes(normalizedFilter),\n );\n if (filteredItems.length > 0) {\n result.push({\n ...hotkeysBlock,\n items: filteredItems,\n });\n }\n }\n\n return result;\n }\n\n return hotkeys;\n}\n","import React, {useMemo, useCallback, useState} from 'react';\nimport type {ReactNode} from 'react';\n\nimport {Hotkey, List, TextInput} from '@gravity-ui/uikit';\nimport type {ListProps} from '@gravity-ui/uikit';\n\nimport {Drawer, DrawerItem} from '../Drawer/Drawer';\nimport type {DrawerProps} from '../Drawer/Drawer';\nimport {block} from '../utils/cn';\n\nimport {flattenHotkeyGroups} from './utils/flattenHotkeyGroups';\nimport {filterHotkeys} from './utils/filterHotkeys';\nimport type {HotkeysListItem, HotkeysGroup} from './types';\nimport './HotkeysPanel.scss';\n\nconst b = block('hotkeys-panel');\n\nexport type HotkeysPanelProps<T> = {\n hotkeys: HotkeysGroup<T>[];\n title?: ReactNode;\n filterPlaceholder?: string;\n emptyState?: ReactNode;\n visible: boolean;\n onClose?: () => void;\n className?: string;\n leftOffset?: number | string;\n topOffset?: number | string;\n preventScrollBody?: DrawerProps['preventScrollBody'];\n} & Omit<ListProps<HotkeysListItem>, 'items' | 'emptyPlaceholder'>;\n\nexport function HotkeysPanel<T = {}>({\n visible,\n onClose,\n leftOffset,\n topOffset,\n className,\n preventScrollBody,\n hotkeys,\n itemClassName,\n filterPlaceholder,\n title,\n emptyState,\n ...listProps\n}: HotkeysPanelProps<T>) {\n const [filter, setFilter] = useState('');\n\n const hotkeysList = useMemo(() => {\n const filteredHotkeys = filterHotkeys(hotkeys, filter);\n return flattenHotkeyGroups(filteredHotkeys);\n }, [hotkeys, filter]);\n\n const renderItem = useCallback(\n (item: HotkeysListItem) => (\n <div className={b('item-content', {group: item.group})} key={item.title}>\n {item.title}\n {item.value && <Hotkey className={b('hotkey')} value={item.value} />}\n </div>\n ),\n [],\n );\n\n const drawerItemContent = (\n <React.Fragment>\n <h2 className={b('title')}>{title}</h2>\n <TextInput\n value={filter}\n onUpdate={setFilter}\n placeholder={filterPlaceholder}\n autoFocus\n className={b('search')}\n hasClear\n />\n <List<HotkeysListItem>\n className={b('list')}\n virtualized={false}\n filterable={false}\n items={hotkeysList}\n renderItem={renderItem}\n itemClassName={b('item', itemClassName)}\n emptyPlaceholder={emptyState as string}\n {...listProps}\n />\n </React.Fragment>\n );\n\n return (\n <Drawer\n className={b(null, className)}\n onVeilClick={onClose}\n onEscape={onClose}\n preventScrollBody={preventScrollBody}\n style={{\n left: leftOffset,\n top: topOffset,\n }}\n >\n <DrawerItem\n id=\"hotkeys\"\n visible={visible}\n className={b('drawer-item')}\n content={drawerItemContent}\n />\n </Drawer>\n );\n}\n"],"names":["React"],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import React__default, { useState, useMemo, useCallback, useEffect } from 'react';
2
- import { s as styleInject, b as block } from './style-inject.es-cfd97593.js';
2
+ import { b as block } from './cn-589cd9e2.js';
3
3
  import { Portal, Icon, Popup, List, Tooltip } from '@gravity-ui/uikit';
4
4
  import { Ellipsis } from '@gravity-ui/icons';
5
+ import { I as ITEM_HEIGHT, A as ASIDE_HEADER_ICON_SIZE } from './constants-b1604ff5.js';
5
6
  import { d as debounce_1 } from './debounce-64cd2b4c.js';
6
7
  import { useAsideHeaderInnerContext, useAsideHeaderContext } from './AsideHeaderContext.js';
8
+ import { s as styleInject } from './style-inject.es-1f59c1d0.js';
7
9
 
8
- const ITEM_HEIGHT = 40;
9
10
  const ITEM_TYPE_REGULAR = 'regular';
10
11
  const COLLAPSE_ITEM_ID = 'collapse-item-id';
11
12
  const POPUP_PLACEMENT = ['right-start', 'right-end', 'right'];
@@ -103,10 +104,6 @@ function isMenuItem(item) {
103
104
  return (item === null || item === void 0 ? void 0 : item.id) !== undefined;
104
105
  }
105
106
 
106
- const ASIDE_HEADER_ICON_SIZE = 18;
107
- const ASIDE_HEADER_COMPACT_WIDTH = 56;
108
- const ASIDE_HEADER_EXPANDED_WIDTH = 236;
109
-
110
107
  var css_248z$1 = ".gn-composite-bar-highlighted-item{display:flex;justify-content:center;position:absolute;z-index:10000}.gn-composite-bar-highlighted-item__icon{align-items:center;background-color:var(--g-color-base-background);border-radius:7px;box-shadow:0 8px 20px 0 var(--g-color-sfx-shadow);cursor:pointer;display:flex;height:var(--gn-aside-header-item-icon-background-size);justify-content:center;overflow:hidden;position:relative;transform:translateY(1px);width:var(--gn-aside-header-item-icon-background-size)}.gn-composite-bar-highlighted-item__icon:before{background-color:var(--g-color-base-selection);content:\"\";height:100%;position:absolute;width:100%;z-index:-1}.gn-composite-bar-highlighted-item__icon:hover:before{background-color:var(--g-color-base-selection-hover)}";
111
108
  styleInject(css_248z$1);
112
109
 
@@ -283,5 +280,5 @@ function CollapsedPopup({ onItemClick, collapseItems, anchorRef, onClose, }) {
283
280
  } })))) : null;
284
281
  }
285
282
 
286
- export { ASIDE_HEADER_ICON_SIZE as A, COLLAPSE_ITEM_ID as C, Item as I, ASIDE_HEADER_COMPACT_WIDTH as a, ASIDE_HEADER_EXPANDED_WIDTH as b, getAutosizeListItems as c, getSelectedItemIndex as d, getItemHeight as e, getItemsHeight as f, getItemsMinHeight as g, getMoreButtonItem as h, isMenuItem as i };
287
- //# sourceMappingURL=Item-f02541c1.js.map
283
+ export { COLLAPSE_ITEM_ID as C, Item as I, getAutosizeListItems as a, getSelectedItemIndex as b, getItemHeight as c, getItemsHeight as d, getMoreButtonItem as e, getItemsMinHeight as g, isMenuItem as i };
284
+ //# sourceMappingURL=Item-ab589218.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Item-ab589218.js","sources":["../../../src/components/CompositeBar/constants.ts","../../../src/components/CompositeBar/utils.ts","../../../src/components/CompositeBar/HighlightedItem/HighlightedItem.tsx","../../../src/components/CompositeBar/Item/Item.tsx"],"sourcesContent":["import {PopupPlacement} from '@gravity-ui/uikit';\n\nexport const ITEM_TYPE_REGULAR = 'regular';\nexport const COLLAPSE_ITEM_ID = 'collapse-item-id';\n\nexport const POPUP_PLACEMENT: PopupPlacement = ['right-start', 'right-end', 'right'];\nexport const POPUP_ITEM_HEIGHT = 28;\n","import {Ellipsis} from '@gravity-ui/icons';\nimport {MenuItem} from './../types';\nimport {COLLAPSE_ITEM_ID} from './constants';\nimport {CompositeBarItem} from '../CompositeBar/CompositeBar';\nimport {ITEM_HEIGHT} from '../constants';\n\nexport function getItemHeight(item: CompositeBarItem) {\n if (!isMenuItem(item)) {\n return ITEM_HEIGHT;\n }\n\n switch (item.type) {\n case 'action':\n return 50;\n case 'divider':\n return 15;\n\n default:\n return ITEM_HEIGHT;\n }\n}\n\nexport function getItemsHeight<T extends CompositeBarItem>(items: T[]) {\n return items.reduce((sum, item) => sum + getItemHeight(item), 0);\n}\n\nexport function getSelectedItemIndex(items: MenuItem[]) {\n const index = items.findIndex(({current}) => Boolean(current));\n return index === -1 ? undefined : index;\n}\n\nexport function getPinnedItems(items: MenuItem[]) {\n const pinnedItems: MenuItem[] = [];\n for (const item of items) {\n if (item.pinned) {\n pinnedItems.push(item);\n } else if (item.type === 'divider') {\n if (pinnedItems.length > 0 && pinnedItems[pinnedItems.length - 1].type !== 'divider') {\n pinnedItems.push(item);\n }\n }\n }\n return pinnedItems;\n}\n\nexport function getItemsMinHeight(items: MenuItem[]) {\n const pinnedItems = getPinnedItems(items);\n const afterMoreButtonItems = items.filter((item) => item.afterMoreButton);\n\n return (\n getItemsHeight(pinnedItems) +\n getItemsHeight(afterMoreButtonItems) +\n (pinnedItems.length === items.length ? 0 : ITEM_HEIGHT)\n );\n}\n\nexport function getMoreButtonItem(menuMoreTitle?: string): MenuItem {\n return {\n id: COLLAPSE_ITEM_ID,\n title: menuMoreTitle,\n icon: Ellipsis,\n iconSize: 18,\n };\n}\n\nexport function getAutosizeListItems(\n items: MenuItem[],\n height: number,\n collapseItem: MenuItem,\n): {\n listItems: MenuItem[];\n collapseItems: MenuItem[];\n} {\n const afterMoreButtonItems = items.filter((item) => item.afterMoreButton);\n const regularItems = items.filter((item) => !item.afterMoreButton);\n const listItems = [...regularItems, ...afterMoreButtonItems];\n\n const allItemsHeight = getItemsHeight(listItems);\n if (allItemsHeight <= height) {\n return {listItems, collapseItems: []};\n }\n\n const collapseItemHeight = getItemHeight(collapseItem);\n\n listItems.splice(regularItems.length, 0, collapseItem);\n const collapseItems: MenuItem[] = [];\n\n let listHeight = allItemsHeight + collapseItemHeight;\n let index = listItems.length;\n while (listHeight > height) {\n if (index === 0) {\n break;\n }\n index--;\n\n const item = listItems[index];\n if (item.pinned || item.id === COLLAPSE_ITEM_ID || item.afterMoreButton) {\n continue;\n }\n if (item.type === 'divider') {\n if (index + 1 < listItems.length && listItems[index + 1]?.type === 'divider') {\n listHeight -= getItemHeight(item);\n listItems.splice(index, 1);\n }\n continue;\n }\n listHeight -= getItemHeight(item);\n collapseItems.unshift(...listItems.splice(index, 1));\n }\n if (\n listItems[index]?.type === 'divider' &&\n (index === 0 || listItems[index - 1]?.type === 'divider')\n ) {\n listItems.splice(index, 1);\n }\n\n return {listItems, collapseItems};\n}\n\nexport function isMenuItem(item: CompositeBarItem): item is MenuItem {\n return (item as MenuItem)?.id !== undefined;\n}\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\nimport debounceFn from 'lodash/debounce';\n\nimport {Portal} from '@gravity-ui/uikit';\n\nimport {useAsideHeaderInnerContext} from '../../AsideHeader/AsideHeaderContext';\nimport {block} from '../../utils/cn';\n\nimport './HighlightedItem.scss';\n\nconst b = block('composite-bar-highlighted-item');\n\ninterface ItemInnerProps {\n iconRef: React.RefObject<HTMLDivElement>;\n iconNode: React.ReactNode;\n onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n onClickCapture?: (event: React.SyntheticEvent) => void;\n}\n\nconst DEBOUNCE_TIME = 200;\n\nexport const HighlightedItem: React.FC<ItemInnerProps> = ({\n iconRef,\n iconNode,\n onClick,\n onClickCapture,\n}: ItemInnerProps) => {\n const {openModalSubscriber} = useAsideHeaderInnerContext();\n const [{top, left, width, height}, setPosition] = useState({\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n });\n const [isModalOpen, setIsModalOpen] = useState<boolean>(false);\n\n const handleResizeDebounced = useMemo(\n () =>\n debounceFn(\n () => {\n const {\n top = 0,\n left = 0,\n width = 0,\n height = 0,\n } = iconRef?.current?.getBoundingClientRect() || {};\n\n setPosition({\n top: top + window.scrollY,\n left: left + window.scrollX,\n width,\n height,\n });\n },\n DEBOUNCE_TIME,\n {leading: true},\n ),\n [iconRef],\n );\n\n const handleResize = useCallback(() => handleResizeDebounced(), [handleResizeDebounced]);\n\n useEffect(() => {\n if (!isModalOpen) {\n return;\n }\n\n handleResize();\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize, isModalOpen]);\n\n openModalSubscriber?.((open: boolean) => {\n setIsModalOpen(open);\n });\n\n if (!iconNode || !isModalOpen) {\n return null;\n }\n\n return (\n <Portal>\n <div\n className={b()}\n style={{left, top, width, height}}\n onClick={onClick}\n onClickCapture={onClickCapture}\n data-toast\n >\n <div className={b('icon')}>{iconNode}</div>\n </div>\n </Portal>\n );\n};\n\nHighlightedItem.displayName = 'HighlightedItem';\n","import React from 'react';\nimport {block} from '../../utils/cn';\n\nimport {List, Icon, Popup, PopupPlacement, PopupProps, Tooltip} from '@gravity-ui/uikit';\n\nimport {MakeItemParams, MenuItem} from '../../types';\nimport {getSelectedItemIndex} from '../utils';\nimport {ASIDE_HEADER_ICON_SIZE} from '../../constants';\nimport {\n COLLAPSE_ITEM_ID,\n POPUP_ITEM_HEIGHT,\n POPUP_PLACEMENT,\n ITEM_TYPE_REGULAR,\n} from '../constants';\n\nimport {HighlightedItem} from '../HighlightedItem/HighlightedItem';\nimport {useAsideHeaderContext} from '../../AsideHeader/AsideHeaderContext';\n\nimport './Item.scss';\n\nconst b = block('composite-bar-item');\n\ninterface ItemPopup {\n popupVisible?: PopupProps['open'];\n popupAnchor?: PopupProps['anchorRef'];\n popupPlacement?: PopupProps['placement'];\n popupOffset?: PopupProps['offset'];\n popupKeepMounted?: PopupProps['keepMounted'];\n renderPopupContent?: () => React.ReactNode;\n onClosePopup?: () => void;\n}\n\nexport interface ItemProps extends ItemPopup {\n item: MenuItem;\n enableTooltip?: boolean;\n onItemClick?: (\n item: MenuItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => void;\n onItemClickCapture?: (event: React.SyntheticEvent) => void;\n bringForward?: boolean;\n}\n\ninterface ItemInnerProps extends ItemProps {\n className?: string;\n collapseItems?: MenuItem[];\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n}\n\nfunction renderItemTitle(item: MenuItem) {\n let titleNode = <div className={b('title-text')}>{item.title}</div>;\n\n if (item.rightAdornment) {\n titleNode = (\n <React.Fragment>\n {titleNode}\n <div className={b('title-adornment')}>{item.rightAdornment}</div>\n </React.Fragment>\n );\n }\n\n return titleNode;\n}\n\nexport const defaultPopupPlacement: PopupPlacement = ['right-end'];\nexport const defaultPopupOffset: NonNullable<PopupProps['offset']> = [-20, 8];\n\nexport const Item: React.FC<ItemInnerProps> = (props) => {\n const {\n item,\n className,\n collapseItems,\n onMouseLeave,\n onMouseEnter,\n enableTooltip = true,\n popupVisible = false,\n popupAnchor,\n popupPlacement = defaultPopupPlacement,\n popupOffset = defaultPopupOffset,\n popupKeepMounted,\n renderPopupContent,\n onClosePopup,\n onItemClick,\n onItemClickCapture,\n bringForward,\n } = props;\n\n const {compact} = useAsideHeaderContext();\n\n const [open, toggleOpen] = React.useState<boolean>(false);\n\n const ref = React.useRef<HTMLDivElement>(null);\n const anchorRef = popupAnchor || ref;\n const highlightedRef = React.useRef<HTMLDivElement>(null);\n\n const type = item.type || ITEM_TYPE_REGULAR;\n const current = item.current || false;\n const tooltipText = item.tooltipText || item.title;\n const icon = item.icon;\n const iconSize = item.iconSize || ASIDE_HEADER_ICON_SIZE;\n const collapsedItem = item.id === COLLAPSE_ITEM_ID;\n\n const modifiers: Required<PopupProps>['modifiers'] = React.useMemo(\n () => [\n {\n name: 'compact',\n enabled: true,\n options: {compact},\n phase: 'main',\n fn() {},\n },\n ],\n [compact],\n );\n\n const onClose = React.useCallback(\n (event: MouseEvent | KeyboardEvent) => {\n if (\n event instanceof MouseEvent &&\n event.target &&\n ref.current?.contains(event.target as Node)\n ) {\n return;\n }\n onClosePopup?.();\n },\n [onClosePopup],\n );\n\n if (item.type === 'divider') {\n return <div className={b('menu-divider')} />;\n }\n\n const makeIconNode = (iconEl: React.ReactNode): React.ReactNode => {\n return compact ? (\n <Tooltip\n content={tooltipText}\n disabled={!enableTooltip || (collapsedItem && open) || popupVisible}\n placement=\"right\"\n className={b('icon-tooltip', {'item-type': type})}\n >\n <div\n onMouseEnter={() => onMouseEnter?.()}\n onMouseLeave={() => onMouseLeave?.()}\n className={b('btn-icon')}\n >\n {iconEl}\n </div>\n </Tooltip>\n ) : (\n iconEl\n );\n };\n\n const makeNode = ({icon: iconEl, title: titleEl}: MakeItemParams) => {\n const createdNode = (\n <React.Fragment>\n <div\n className={b({type, current, compact}, className)}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (collapsedItem) {\n /**\n * If we call onItemClick for collapsedItem then:\n * - User get unexpected item in onItemClick callback\n * - onClosePanel calls twice for each popuped item, as result it will prevent opening of panelItems\n */\n toggleOpen(!open);\n } else {\n onItemClick?.(item, false, event);\n }\n }}\n onClickCapture={onItemClickCapture}\n onMouseEnter={() => {\n if (!compact) {\n onMouseEnter?.();\n }\n }}\n onMouseLeave={() => {\n if (!compact) {\n onMouseLeave?.();\n }\n }}\n >\n <div className={b('icon-place')} ref={highlightedRef}>\n {makeIconNode(iconEl)}\n </div>\n\n <div\n className={b('title')}\n title={typeof item.title === 'string' ? item.title : undefined}\n >\n {titleEl}\n </div>\n </div>\n {renderPopupContent && Boolean(anchorRef?.current) && (\n <Popup\n contentClassName={b('popup')}\n open={popupVisible}\n keepMounted={popupKeepMounted}\n placement={popupPlacement}\n offset={popupOffset}\n anchorRef={anchorRef}\n onClose={onClose}\n modifiers={modifiers}\n >\n {renderPopupContent()}\n </Popup>\n )}\n </React.Fragment>\n );\n\n return item.link ? (\n <a href={item.link} className={b('link')}>\n {createdNode}\n </a>\n ) : (\n createdNode\n );\n };\n\n const iconNode = icon ? <Icon data={icon} size={iconSize} className={b('icon')} /> : null;\n const titleNode = renderItemTitle(item);\n const params = {icon: iconNode, title: titleNode};\n let highlightedNode = null;\n let node;\n\n const opts = {compact: Boolean(compact), collapsed: false, item, ref};\n\n if (typeof item.itemWrapper === 'function') {\n node = item.itemWrapper(params, makeNode, opts) as React.ReactElement;\n highlightedNode =\n bringForward &&\n (item.itemWrapper(\n params,\n ({icon: iconEl}) => makeIconNode(iconEl),\n opts,\n ) as React.ReactElement);\n } else {\n node = makeNode(params);\n highlightedNode = bringForward && makeIconNode(iconNode);\n }\n\n return (\n <>\n {bringForward && (\n <HighlightedItem\n iconNode={highlightedNode}\n iconRef={highlightedRef}\n onClick={(event: React.MouseEvent<HTMLDivElement, MouseEvent>) =>\n onItemClick?.(item, false, event)\n }\n onClickCapture={onItemClickCapture}\n />\n )}\n {node}\n {open && collapsedItem && collapseItems?.length && Boolean(anchorRef?.current) && (\n <CollapsedPopup {...props} anchorRef={ref} onClose={() => toggleOpen(false)} />\n )}\n </>\n );\n};\n\nItem.displayName = 'Item';\n\ninterface CollapsedPopupProps {\n anchorRef: React.RefObject<HTMLElement>;\n onClose: () => void;\n}\n\nfunction CollapsedPopup({\n onItemClick,\n collapseItems,\n anchorRef,\n onClose,\n}: ItemInnerProps & CollapsedPopupProps) {\n const {compact} = useAsideHeaderContext();\n return collapseItems?.length ? (\n <Popup placement={POPUP_PLACEMENT} open={true} anchorRef={anchorRef} onClose={onClose}>\n <div className={b('collapse-items-popup-content')}>\n <List\n itemClassName={b('root-collapse-item')}\n items={collapseItems}\n selectedItemIndex={getSelectedItemIndex(collapseItems)}\n itemHeight={POPUP_ITEM_HEIGHT}\n itemsHeight={collapseItems.length * POPUP_ITEM_HEIGHT}\n virtualized={false}\n filterable={false}\n sortable={false}\n onItemClick={onClose}\n renderItem={(collapseItem) => {\n const makeCollapseNode = ({title: titleEl}: MakeItemParams) => {\n const res = (\n <div\n className={b('collapse-item')}\n onClick={(\n event: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n onItemClick?.(collapseItem, true, event);\n }}\n >\n {titleEl}\n </div>\n );\n\n return collapseItem.link ? (\n <a href={collapseItem.link} className={b('link')}>\n {res}\n </a>\n ) : (\n res\n );\n };\n\n const titleNode = renderItemTitle(collapseItem);\n const params = {title: titleNode};\n const opts = {\n compact: Boolean(compact),\n collapsed: true,\n item: collapseItem,\n ref: anchorRef,\n };\n if (typeof collapseItem.itemWrapper === 'function') {\n return collapseItem.itemWrapper(params, makeCollapseNode, opts);\n } else {\n return makeCollapseNode(params);\n }\n }}\n />\n </div>\n </Popup>\n ) : null;\n}\n"],"names":["b","debounceFn","React"],"mappings":"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"}
@@ -1,98 +1,28 @@
1
- import React__default, { useMemo } from 'react';
1
+ import React__default, { useMemo, Suspense } from 'react';
2
2
  import { AsideHeaderContextProvider, useAsideHeaderContext } from './AsideHeaderContext.js';
3
- import { C as Content } from './Content-d8b28d56.js';
4
- import { b } from './FirstPanel-bafddc24.js';
5
- import { Alert } from '@gravity-ui/uikit';
6
- import { d as debounce_1 } from './debounce-64cd2b4c.js';
7
- import { a as ASIDE_HEADER_COMPACT_WIDTH, b as ASIDE_HEADER_EXPANDED_WIDTH } from './Item-f02541c1.js';
8
- import { s as styleInject } from './style-inject.es-cfd97593.js';
9
- import '@gravity-ui/icons';
10
- import './registerKeyset-35f1ea08.js';
11
- import './Drawer.js';
12
- import 'react-dom';
3
+ import { C as Content } from './Content-f94ba85d.js';
4
+ import { a as ASIDE_HEADER_COMPACT_WIDTH, b as ASIDE_HEADER_EXPANDED_WIDTH } from './constants-b1604ff5.js';
5
+ import { b } from './utils-6d5146c7.js';
6
+ import { s as styleInject } from './style-inject.es-1f59c1d0.js';
7
+ import './cn-589cd9e2.js';
13
8
  import '@bem-react/classname';
14
9
 
15
- const G_ROOT_CLASS_NAME = 'g-root';
16
- const useRefHeight = (ref) => {
17
- const [topHeight, setTopHeight] = React__default.useState(0);
18
- React__default.useEffect(() => {
19
- if (ref.current) {
20
- const { current } = ref;
21
- setTopHeight(current.clientHeight);
22
- }
23
- }, [ref]);
24
- return topHeight;
25
- };
26
- const useAsideHeaderTopPanel = ({ topAlert, }) => {
27
- const topRef = React__default.useRef(null);
28
- const topHeight = useRefHeight(topRef);
29
- const setAsideTopPanelHeight = React__default.useCallback((clientHeight) => {
30
- const gRootElement = document
31
- .getElementsByClassName(G_ROOT_CLASS_NAME)
32
- .item(0);
33
- gRootElement === null || gRootElement === void 0 ? void 0 : gRootElement.style.setProperty('--gn-aside-top-panel-height', clientHeight + 'px');
34
- }, []);
35
- const updateTopSize = React__default.useCallback(() => {
36
- var _a;
37
- if (topRef.current) {
38
- setAsideTopPanelHeight(((_a = topRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0);
39
- }
40
- }, [topRef, setAsideTopPanelHeight]);
41
- React__default.useLayoutEffect(() => {
42
- const updateTopSizeDebounce = debounce_1(updateTopSize, 200, { leading: true });
43
- if (topAlert) {
44
- window.addEventListener('resize', updateTopSizeDebounce);
45
- updateTopSizeDebounce();
46
- }
47
- return () => {
48
- window.removeEventListener('resize', updateTopSizeDebounce);
49
- setAsideTopPanelHeight(0);
50
- };
51
- }, [topAlert, topHeight, topRef, updateTopSize]);
52
- return {
53
- topRef,
54
- updateTopSize,
55
- };
56
- };
57
-
58
- const TopPanel = ({ topAlert }) => {
59
- const { topRef, updateTopSize } = useAsideHeaderTopPanel({ topAlert });
60
- const [opened, setOpened] = React__default.useState(true);
61
- const handleClose = React__default.useCallback(() => {
62
- var _a;
63
- setOpened(false);
64
- (_a = topAlert === null || topAlert === void 0 ? void 0 : topAlert.onCloseTopAlert) === null || _a === void 0 ? void 0 : _a.call(topAlert);
65
- }, [topAlert]);
66
- React__default.useEffect(() => {
67
- if (!opened) {
68
- updateTopSize();
69
- }
70
- }, [opened, updateTopSize]);
71
- if (!topAlert || !topAlert.message) {
72
- return null;
73
- }
74
- return (React__default.createElement("div", { ref: topRef, className: b('pane-top', { opened }) }, opened && (React__default.createElement(React__default.Fragment, null,
75
- React__default.createElement(Alert, { className: b('pane-top-alert', {
76
- centered: topAlert.centered,
77
- dense: topAlert.dense,
78
- }), corners: "square", layout: "horizontal", theme: topAlert.theme || 'warning', icon: topAlert.icon, title: topAlert.title, message: topAlert.message, actions: topAlert.actions, onClose: topAlert.closable ? handleClose : undefined }),
79
- React__default.createElement("div", { className: b('pane-top-divider') })))));
80
- };
81
-
82
- var css_248z = ".g-root{--gn-aside-header-background-color:var(--g-color-base-warning-light);--gn-aside-header-collapse-button-divider-line-color:var(\n --gn-aside-header-subheader-divider-line-color\n );--gn-aside-header-footer-item-icon-color:var(--g-color-text-primary);--gn-aside-header-subheader-item-icon-color:var(--g-color-text-primary);--gn-aside-header-item-icon-background-size:38px;--gn-aside-top-panel-height:0px}.g-root_theme_light,.g-root_theme_light-hc{--gn-aside-header-divider-line-color:var(--g-color-line-generic);--gn-aside-header-subheader-divider-line-color:var(--g-color-line-generic)}.g-root_theme_dark,.g-root_theme_dark-hc{--gn-aside-header-divider-line-color:var(--g-color-line-generic-solid);--gn-aside-header-subheader-divider-line-color:var(--g-color-line-generic-solid)}.gn-aside-header{--gn-aside-header-min-width:56px;height:100%;position:relative;width:100%}.gn-aside-header,.gn-aside-header__aside{background-color:var(--g-color-base-background)}.gn-aside-header__aside{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;max-height:calc(100vh - var(--gn-aside-top-panel-height));position:sticky;top:0;width:inherit;z-index:100}.gn-aside-header__aside:after{background-color:var(--gn-aside-header-divider-line-color);content:\"\";height:100%;position:absolute;right:0;top:0;width:1px;z-index:2}.gn-aside-header__aside-popup-anchor{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.gn-aside-header__aside-content{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;overflow-x:hidden;position:relative;user-select:none;width:inherit;z-index:2}.gn-aside-header__aside-content>.gn-aside-header-logo{margin:8px 0}.gn-aside-header__aside-content_with-decoration{background:linear-gradient(180deg,var(--gn-aside-header-background-color) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.gn-aside-header_compact .gn-aside-header__aside-content{background:transparent}.gn-aside-header__header{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.gn-aside-header__header .gn-aside-header__header-divider{bottom:0;color:var(--gn-aside-header-background-color);display:none;left:0;position:absolute;z-index:-2}.gn-aside-header__header_with-decoration:before{background-color:var(--gn-aside-header-background-color);content:\"\";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.gn-aside-header__header:after{background-color:var(--gn-aside-header-subheader-divider-line-color);bottom:12px;content:\"\";height:1px;left:0;position:absolute;width:100%;z-index:-2}.gn-aside-header_compact .gn-aside-header__header:before,.gn-aside-header_compact .gn-aside-header__header_with-decoration .gn-aside-header__header-divider{display:block}.gn-aside-header_compact .gn-aside-header__header_with-decoration:after{display:none}.gn-aside-header__menu-items{flex-grow:1}.gn-aside-header__footer{display:flex;flex-direction:column;flex-shrink:0;margin:8px 0;width:100%}.gn-aside-header__panels{bottom:0;left:0;max-height:calc(100vh - var(--gn-aside-top-panel-height));overflow:auto;position:fixed;right:0;top:var(--gn-aside-top-panel-height);z-index:98}.gn-aside-header__panel{height:100%}.gn-aside-header__pane-container{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.gn-aside-header__pane-top-divider{background-color:var(--gn-aside-header-collapse-button-divider-line-color);height:1px;margin-top:-1px}.gn-aside-header__pane-top-alert_centered{display:flex;justify-content:space-around}.gn-aside-header__pane-top-alert_dense{padding-bottom:var(--g-spacing-2);padding-top:var(--g-spacing-2)}.gn-aside-header_reverse .gn-aside-header__pane-container{flex-direction:row-reverse}.gn-aside-header__content{width:calc(100% - var(--gn-aside-header-size));z-index:95}.gn-aside-header__collapse-button{--yc-button-background-color-hover:transparent;border-top:1px solid var(--gn-aside-header-collapse-button-divider-line-color);box-sizing:border-box;flex:none;height:20px;margin-top:auto;overflow:hidden;width:100%}.gn-aside-header__collapse-button>.yc-button__text{align-items:center;display:flex;height:20px;justify-content:center}.gn-aside-header__collapse-button:not(.gn-aside-header__collapse-button_compact) .gn-aside-header__collapse-icon{transform:rotate(180deg)}.gn-aside-header__collapse-button .gn-aside-header__collapse-icon{color:var(--g-color-text-secondary)}.gn-aside-header__collapse-button:hover .gn-aside-header__collapse-icon{color:var(--g-color-text-primary)}";
10
+ var css_248z = ".g-root{--gn-aside-header-background-color:var(--g-color-base-warning-light);--gn-aside-header-collapse-button-divider-line-color:var(\n --gn-aside-header-subheader-divider-line-color\n );--gn-aside-header-footer-item-icon-color:var(--g-color-text-primary);--gn-aside-header-subheader-item-icon-color:var(--g-color-text-primary);--gn-aside-header-item-icon-background-size:38px;--gn-aside-top-panel-height:0px}.g-root_theme_light,.g-root_theme_light-hc{--gn-aside-header-divider-line-color:var(--g-color-line-generic);--gn-aside-header-subheader-divider-line-color:var(--g-color-line-generic)}.g-root_theme_dark,.g-root_theme_dark-hc{--gn-aside-header-divider-line-color:var(--g-color-line-generic-solid);--gn-aside-header-subheader-divider-line-color:var(--g-color-line-generic-solid)}.gn-aside-header{--gn-aside-header-min-width:56px;height:100%;position:relative;width:100%}.gn-aside-header,.gn-aside-header__aside{background-color:var(--g-color-base-background)}.gn-aside-header__aside{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;margin-top:var(--gn-aside-top-panel-height);max-height:calc(100vh - var(--gn-aside-top-panel-height));position:sticky;top:var(--gn-aside-top-panel-height);width:inherit;z-index:100}.gn-aside-header__aside:after{background-color:var(--gn-aside-header-divider-line-color);content:\"\";height:100%;position:absolute;right:0;top:0;width:1px;z-index:2}.gn-aside-header__aside-popup-anchor{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.gn-aside-header__aside-content{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;overflow-x:hidden;position:relative;user-select:none;width:inherit;z-index:2}.gn-aside-header__aside-content>.gn-aside-header-logo{margin:8px 0}.gn-aside-header__aside-content_with-decoration{background:linear-gradient(180deg,var(--gn-aside-header-background-color) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.gn-aside-header_compact .gn-aside-header__aside-content{background:transparent}.gn-aside-header__header{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.gn-aside-header__header .gn-aside-header__header-divider{bottom:0;color:var(--gn-aside-header-background-color);display:none;left:0;position:absolute;z-index:-2}.gn-aside-header__header_with-decoration:before{background-color:var(--gn-aside-header-background-color);content:\"\";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.gn-aside-header__header:after{background-color:var(--gn-aside-header-subheader-divider-line-color);bottom:12px;content:\"\";height:1px;left:0;position:absolute;width:100%;z-index:-2}.gn-aside-header_compact .gn-aside-header__header:before,.gn-aside-header_compact .gn-aside-header__header_with-decoration .gn-aside-header__header-divider{display:block}.gn-aside-header_compact .gn-aside-header__header_with-decoration:after{display:none}.gn-aside-header__menu-items{flex-grow:1}.gn-aside-header__footer{display:flex;flex-direction:column;flex-shrink:0;margin:8px 0;width:100%}.gn-aside-header__panels{bottom:0;left:0;max-height:calc(100vh - var(--gn-aside-top-panel-height));overflow:auto;position:fixed;right:0;top:var(--gn-aside-top-panel-height);z-index:98}.gn-aside-header__panel{height:100%}.gn-aside-header__pane-container{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.gn-aside-header__pane-top-divider{background-color:var(--gn-aside-header-divider-line-color);height:1px;margin-top:-1px}.gn-aside-header__pane-top{background:var(--g-color-base-background);position:fixed;top:0;width:100%;z-index:98}.gn-aside-header__pane-top-alert_centered{display:flex;justify-content:space-around}.gn-aside-header__pane-top-alert_dense{padding-bottom:var(--g-spacing-2);padding-top:var(--g-spacing-2)}.gn-aside-header__content{margin-top:var(--gn-aside-top-panel-height);width:calc(100% - var(--gn-aside-header-size));z-index:95}.gn-aside-header__collapse-button{--yc-button-background-color-hover:transparent;border-top:1px solid var(--gn-aside-header-collapse-button-divider-line-color);box-sizing:border-box;flex:none;height:20px;margin-top:auto;overflow:hidden;width:100%}.gn-aside-header__collapse-button>.yc-button__text{align-items:center;display:flex;height:20px;justify-content:center}.gn-aside-header__collapse-button:not(.gn-aside-header__collapse-button_compact) .gn-aside-header__collapse-icon{transform:rotate(180deg)}.gn-aside-header__collapse-button .gn-aside-header__collapse-icon{color:var(--g-color-text-secondary)}.gn-aside-header__collapse-button:hover .gn-aside-header__collapse-icon{color:var(--g-color-text-primary)}";
83
11
  styleInject(css_248z);
84
12
 
85
- const Layout = ({ compact, reverse, className, children, topAlert }) => {
13
+ const TopPanel = React__default.lazy(() => import('./TopPanel-36ffc4c7.js').then((module) => ({ default: module.TopPanel })));
14
+ const Layout = ({ compact, className, children, topAlert }) => {
86
15
  const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;
87
16
  const asideHeaderContextValue = useMemo(() => ({ size, compact }), [compact, size]);
88
17
  return (React__default.createElement(AsideHeaderContextProvider, { value: asideHeaderContextValue },
89
- React__default.createElement("div", { className: b({ compact, reverse }, className), style: Object.assign({}, { '--gn-aside-header-size': `${size}px` }) },
90
- topAlert && React__default.createElement(TopPanel, { topAlert: topAlert }),
18
+ React__default.createElement("div", { className: b({ compact }, className), style: Object.assign({}, { '--gn-aside-header-size': `${size}px` }) },
19
+ topAlert && (React__default.createElement(Suspense, { fallback: null },
20
+ React__default.createElement(TopPanel, { topAlert: topAlert }))),
91
21
  React__default.createElement("div", { className: b('pane-container') }, children))));
92
22
  };
93
- const ConnectedContent = ({ children, withTop, renderContent }) => {
23
+ const ConnectedContent = ({ children, renderContent, }) => {
94
24
  const { size } = useAsideHeaderContext();
95
- return (React__default.createElement(Content, { withTop: withTop, size: size, className: b('content'), renderContent: renderContent }, children));
25
+ return (React__default.createElement(Content, { size: size, className: b('content'), renderContent: renderContent }, children));
96
26
  };
97
27
  const PageLayout = Object.assign(Layout, {
98
28
  Content: ConnectedContent,
@@ -1 +1 @@
1
- {"version":3,"file":"PageLayout.js","sources":["../../../src/components/AsideHeader/useAsideHeaderTopPanel.tsx","../../../src/components/AsideHeader/components/TopPanel.tsx","../../../src/components/AsideHeader/components/PageLayout/PageLayout.tsx"],"sourcesContent":["import React from 'react';\n\nimport debounceFn from 'lodash/debounce';\nimport {AsideHeaderTopAlertProps} from '../types';\n\ntype AsideHeaderTopPanel = {\n topRef: React.RefObject<HTMLDivElement>;\n updateTopSize: () => void;\n};\n\nconst G_ROOT_CLASS_NAME = 'g-root';\n\nconst useRefHeight = (ref: React.RefObject<HTMLDivElement>) => {\n const [topHeight, setTopHeight] = React.useState(0);\n React.useEffect(() => {\n if (ref.current) {\n const {current} = ref;\n setTopHeight(current.clientHeight);\n }\n }, [ref]);\n return topHeight;\n};\n\nexport const useAsideHeaderTopPanel = ({\n topAlert,\n}: {\n topAlert?: AsideHeaderTopAlertProps;\n}): AsideHeaderTopPanel => {\n const topRef = React.useRef<HTMLDivElement>(null);\n const topHeight = useRefHeight(topRef);\n\n const setAsideTopPanelHeight = React.useCallback((clientHeight: number) => {\n const gRootElement = document\n .getElementsByClassName(G_ROOT_CLASS_NAME)\n .item(0) as HTMLElement | null;\n gRootElement?.style.setProperty('--gn-aside-top-panel-height', clientHeight + 'px');\n }, []);\n\n const updateTopSize = React.useCallback(() => {\n if (topRef.current) {\n setAsideTopPanelHeight(topRef.current?.clientHeight || 0);\n }\n }, [topRef, setAsideTopPanelHeight]);\n\n React.useLayoutEffect(() => {\n const updateTopSizeDebounce = debounceFn(updateTopSize, 200, {leading: true});\n\n if (topAlert) {\n window.addEventListener('resize', updateTopSizeDebounce);\n updateTopSizeDebounce();\n }\n return () => {\n window.removeEventListener('resize', updateTopSizeDebounce);\n setAsideTopPanelHeight(0);\n };\n }, [topAlert, topHeight, topRef, updateTopSize]);\n\n return {\n topRef,\n updateTopSize,\n };\n};\n","import React from 'react';\nimport {Alert} from '@gravity-ui/uikit';\n\nimport {b} from '../utils';\nimport {AsideHeaderTopAlertProps} from '../../types';\nimport {useAsideHeaderTopPanel} from '../useAsideHeaderTopPanel';\n\ntype Props = {\n topAlert?: AsideHeaderTopAlertProps;\n};\n\nexport const TopPanel = ({topAlert}: Props) => {\n const {topRef, updateTopSize} = useAsideHeaderTopPanel({topAlert});\n\n const [opened, setOpened] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setOpened(false);\n topAlert?.onCloseTopAlert?.();\n }, [topAlert]);\n\n React.useEffect(() => {\n if (!opened) {\n updateTopSize();\n }\n }, [opened, updateTopSize]);\n\n if (!topAlert || !topAlert.message) {\n return null;\n }\n\n return (\n <div ref={topRef} className={b('pane-top', {opened})}>\n {opened && (\n <React.Fragment>\n <Alert\n className={b('pane-top-alert', {\n centered: topAlert.centered,\n dense: topAlert.dense,\n })}\n corners=\"square\"\n layout=\"horizontal\"\n theme={topAlert.theme || 'warning'}\n icon={topAlert.icon}\n title={topAlert.title}\n message={topAlert.message}\n actions={topAlert.actions}\n onClose={topAlert.closable ? handleClose : undefined}\n />\n <div className={b('pane-top-divider')}></div>\n </React.Fragment>\n )}\n </div>\n );\n};\n","import React, {PropsWithChildren, useMemo} from 'react';\nimport {AsideHeaderContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {Content, ContentProps} from '../../../Content';\nimport {TopPanel} from '..';\nimport {ASIDE_HEADER_COMPACT_WIDTH, ASIDE_HEADER_EXPANDED_WIDTH} from '../../../constants';\nimport {LayoutProps} from '../../types';\nimport {b} from '../../utils';\n\nimport '../../AsideHeader.scss';\n\nexport interface PageLayoutProps extends PropsWithChildren<LayoutProps> {\n reverse?: boolean;\n}\n\nconst Layout = ({compact, reverse, className, children, topAlert}: PageLayoutProps) => {\n const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;\n const asideHeaderContextValue = useMemo(() => ({size, compact}), [compact, size]);\n\n return (\n <AsideHeaderContextProvider value={asideHeaderContextValue}>\n <div\n className={b({compact, reverse}, className)}\n style={{\n ...({'--gn-aside-header-size': `${size}px`} as React.CSSProperties),\n }}\n >\n {topAlert && <TopPanel topAlert={topAlert} />}\n <div className={b('pane-container')}>{children}</div>\n </div>\n </AsideHeaderContextProvider>\n );\n};\n\nconst ConnectedContent: React.FC<\n PropsWithChildren<Pick<ContentProps, 'renderContent' | 'withTop'>>\n> = ({children, withTop, renderContent}) => {\n const {size} = useAsideHeaderContext();\n\n return (\n <Content\n withTop={withTop}\n size={size}\n className={b('content')}\n renderContent={renderContent}\n >\n {children}\n </Content>\n );\n};\n\nconst PageLayout = Object.assign(Layout, {\n Content: ConnectedContent,\n});\n\nexport {PageLayout};\n"],"names":["React","debounceFn"],"mappings":";;;;;;;;;;;;;;AAUA,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEnC,MAAM,YAAY,GAAG,CAAC,GAAoC,KAAI;AAC1D,IAAA,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpD,IAAAA,cAAK,CAAC,SAAS,CAAC,MAAK;QACjB,IAAI,GAAG,CAAC,OAAO,EAAE;AACb,YAAA,MAAM,EAAC,OAAO,EAAC,GAAG,GAAG,CAAC;AACtB,YAAA,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACtC,SAAA;AACL,KAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACV,IAAA,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAC,EACnC,QAAQ,GAGX,KAAyB;IACtB,MAAM,MAAM,GAAGA,cAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;AAClD,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEvC,MAAM,sBAAsB,GAAGA,cAAK,CAAC,WAAW,CAAC,CAAC,YAAoB,KAAI;QACtE,MAAM,YAAY,GAAG,QAAQ;aACxB,sBAAsB,CAAC,iBAAiB,CAAC;aACzC,IAAI,CAAC,CAAC,CAAuB,CAAC;AACnC,QAAA,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAE,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;KACvF,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,aAAa,GAAGA,cAAK,CAAC,WAAW,CAAC,MAAK;;QACzC,IAAI,MAAM,CAAC,OAAO,EAAE;YAChB,sBAAsB,CAAC,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,KAAI,CAAC,CAAC,CAAC;AAC7D,SAAA;AACL,KAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;AAErC,IAAAA,cAAK,CAAC,eAAe,CAAC,MAAK;AACvB,QAAA,MAAM,qBAAqB,GAAGC,UAAU,CAAC,aAAa,EAAE,GAAG,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;AAE9E,QAAA,IAAI,QAAQ,EAAE;AACV,YAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;AACzD,YAAA,qBAAqB,EAAE,CAAC;AAC3B,SAAA;AACD,QAAA,OAAO,MAAK;AACR,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;YAC5D,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAC9B,SAAC,CAAC;KACL,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjD,OAAO;QACH,MAAM;QACN,aAAa;KAChB,CAAC;AACN,CAAC;;AClDM,MAAM,QAAQ,GAAG,CAAC,EAAC,QAAQ,EAAQ,KAAI;AAC1C,IAAA,MAAM,EAAC,MAAM,EAAE,aAAa,EAAC,GAAG,sBAAsB,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;AAEnE,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGD,cAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAEjD,IAAA,MAAM,WAAW,GAAGA,cAAK,CAAC,WAAW,CAAC,MAAK;;QACvC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,CAAA,EAAA,GAAA,QAAQ,aAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,eAAe,wDAAI,CAAC;AAClC,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEf,IAAAA,cAAK,CAAC,SAAS,CAAC,MAAK;QACjB,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,aAAa,EAAE,CAAC;AACnB,SAAA;AACL,KAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AAE5B,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAChC,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;IAED,QACIA,sCAAK,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,EAAC,MAAM,EAAC,CAAC,EAC/C,EAAA,MAAM,KACHA,cAAA,CAAA,aAAA,CAACA,cAAK,CAAC,QAAQ,EAAA,IAAA;AACX,QAAAA,cAAA,CAAA,aAAA,CAAC,KAAK,EACF,EAAA,SAAS,EAAE,CAAC,CAAC,gBAAgB,EAAE;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;aACxB,CAAC,EACF,OAAO,EAAC,QAAQ,EAChB,MAAM,EAAC,YAAY,EACnB,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,SAAS,EAClC,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,OAAO,EAAE,QAAQ,CAAC,QAAQ,GAAG,WAAW,GAAG,SAAS,EACtD,CAAA;QACFA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAA,CAAQ,CAChC,CACpB,CACC,EACR;AACN,CAAC;;;;;ACxCD,MAAM,MAAM,GAAG,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAkB,KAAI;IAClF,MAAM,IAAI,GAAG,OAAO,GAAG,0BAA0B,GAAG,2BAA2B,CAAC;IAChF,MAAM,uBAAuB,GAAG,OAAO,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAElF,IAAA,QACIA,cAAC,CAAA,aAAA,CAAA,0BAA0B,EAAC,EAAA,KAAK,EAAE,uBAAuB,EAAA;QACtDA,cACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE,SAAS,CAAC,EAC3C,KAAK,EACG,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAC,wBAAwB,EAAE,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,EAAyB,CAAA,EAAA;AAGtE,YAAA,QAAQ,IAAIA,cAAC,CAAA,aAAA,CAAA,QAAQ,IAAC,QAAQ,EAAE,QAAQ,EAAI,CAAA;AAC7C,YAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAG,EAAA,QAAQ,CAAO,CACnD,CACmB,EAC/B;AACN,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAElB,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAC,KAAI;AACvC,IAAA,MAAM,EAAC,IAAI,EAAC,GAAG,qBAAqB,EAAE,CAAC;IAEvC,QACIA,cAAC,CAAA,aAAA,CAAA,OAAO,EACJ,EAAA,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,EACvB,aAAa,EAAE,aAAa,EAE3B,EAAA,QAAQ,CACH,EACZ;AACN,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACrC,IAAA,OAAO,EAAE,gBAAgB;AAC5B,CAAA;;;;"}
1
+ {"version":3,"file":"PageLayout.js","sources":["../../../src/components/AsideHeader/components/PageLayout/PageLayout.tsx"],"sourcesContent":["import React, {PropsWithChildren, Suspense, useMemo} from 'react';\nimport {AsideHeaderContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {Content, ContentProps} from '../../../Content';\nimport {ASIDE_HEADER_COMPACT_WIDTH, ASIDE_HEADER_EXPANDED_WIDTH} from '../../../constants';\nimport {LayoutProps} from '../../types';\nimport {b} from '../../utils';\n\nimport '../../AsideHeader.scss';\n\nconst TopPanel = React.lazy(() =>\n import('../TopPanel').then((module) => ({default: module.TopPanel})),\n);\n\nexport interface PageLayoutProps extends PropsWithChildren<LayoutProps> {}\n\nconst Layout = ({compact, className, children, topAlert}: PageLayoutProps) => {\n const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;\n const asideHeaderContextValue = useMemo(() => ({size, compact}), [compact, size]);\n\n return (\n <AsideHeaderContextProvider value={asideHeaderContextValue}>\n <div\n className={b({compact}, className)}\n style={{\n ...({'--gn-aside-header-size': `${size}px`} as React.CSSProperties),\n }}\n >\n {topAlert && (\n <Suspense fallback={null}>\n <TopPanel topAlert={topAlert} />\n </Suspense>\n )}\n <div className={b('pane-container')}>{children}</div>\n </div>\n </AsideHeaderContextProvider>\n );\n};\n\nconst ConnectedContent: React.FC<PropsWithChildren<Pick<ContentProps, 'renderContent'>>> = ({\n children,\n renderContent,\n}) => {\n const {size} = useAsideHeaderContext();\n\n return (\n <Content size={size} className={b('content')} renderContent={renderContent}>\n {children}\n </Content>\n );\n};\n\nconst PageLayout = Object.assign(Layout, {\n Content: ConnectedContent,\n});\n\nexport {PageLayout};\n"],"names":["React"],"mappings":";;;;;;;;;;;;AASA,MAAM,QAAQ,GAAGA,cAAK,CAAC,IAAI,CAAC,MACxB,OAAO,wBAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,MAAM,EAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CACvE,CAAC;AAIF,MAAM,MAAM,GAAG,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAkB,KAAI;IACzE,MAAM,IAAI,GAAG,OAAO,GAAG,0BAA0B,GAAG,2BAA2B,CAAC;IAChF,MAAM,uBAAuB,GAAG,OAAO,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAElF,IAAA,QACIA,cAAC,CAAA,aAAA,CAAA,0BAA0B,EAAC,EAAA,KAAK,EAAE,uBAAuB,EAAA;AACtD,QAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,SAAS,CAAC,EAClC,KAAK,oBACG,EAAC,wBAAwB,EAAE,CAAG,EAAA,IAAI,IAAI,EAAyB,CAAA,EAAA;AAGtE,YAAA,QAAQ,KACLA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAC,EAAA,QAAQ,EAAE,IAAI,EAAA;AACpB,gBAAAA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAC,EAAA,QAAQ,EAAE,QAAQ,EAAA,CAAI,CACzB,CACd;AACD,YAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAG,EAAA,QAAQ,CAAO,CACnD,CACmB,EAC/B;AACN,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAqE,CAAC,EACxF,QAAQ,EACR,aAAa,GAChB,KAAI;AACD,IAAA,MAAM,EAAC,IAAI,EAAC,GAAG,qBAAqB,EAAE,CAAC;IAEvC,QACIA,6BAAC,OAAO,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EACrE,EAAA,QAAQ,CACH,EACZ;AACN,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACrC,IAAA,OAAO,EAAE,gBAAgB;AAC5B,CAAA;;;;"}