@gravity-ui/navigation 6.6.0 → 7.0.0-beta.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.
- package/build/cjs/components/AsideHeader/AsideHeader.css +9 -1
- package/build/cjs/components/AsideHeader/AsideHeader.js +2 -2
- package/build/cjs/components/AsideHeader/AsideHeader.js.map +1 -1
- package/build/cjs/components/AsideHeader/AsideHeader.module.scss.js +1 -1
- package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +5 -0
- package/build/cjs/components/AsideHeader/AsideHeaderContext.js +2 -0
- package/build/cjs/components/AsideHeader/AsideHeaderContext.js.map +1 -1
- package/build/cjs/components/AsideHeader/__playwright__/AsideTransitionExample.d.ts +8 -0
- package/build/cjs/components/AsideHeader/__playwright__/CollapseButtonExample.d.ts +14 -0
- package/build/cjs/components/AsideHeader/__playwright__/CompactTransitionExample.d.ts +12 -0
- package/build/cjs/components/AsideHeader/__playwright__/CurrentIndicatorExample.d.ts +20 -0
- package/build/cjs/components/AsideHeader/__playwright__/QuickAccessOverflowExample.d.ts +8 -0
- package/build/cjs/components/AsideHeader/__playwright__/currentIndicatorPaint.d.ts +21 -0
- package/build/cjs/components/AsideHeader/__playwright__/transitionTestUtils.d.ts +4 -0
- package/build/cjs/components/AsideHeader/__stories__/fullNavigationMoc.d.ts +6 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +2 -4
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -3
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +2 -4
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/AsideDivider.d.ts +7 -0
- package/build/cjs/components/AsideHeader/components/AsideDivider.js +13 -0
- package/build/cjs/components/AsideHeader/components/AsideDivider.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
- package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +3 -1
- package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js +12 -8
- package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
- package/build/cjs/components/AsideHeader/components/CollapseButton/useCollapseAnchor.d.ts +20 -0
- package/build/cjs/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js +170 -0
- package/build/cjs/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.css +3 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +13 -2
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +53 -39
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js +4 -2
- package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.css +33 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +158 -43
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +22 -4
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.d.ts +19 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +137 -20
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.d.ts +7 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js +25 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.d.ts +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js +5 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +4 -6
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +14 -5
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.d.ts +8 -8
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js +68 -33
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/constants.d.ts +1 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/constants.js +2 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/constants.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/presentationCurrent.d.ts +24 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/presentationCurrent.js +39 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/presentationCurrent.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +12 -7
- package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js +42 -35
- package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/FirstPanel.js +129 -10
- package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
- package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js +18 -2
- package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
- package/build/cjs/components/AsideHeader/components/Header.js +7 -3
- package/build/cjs/components/AsideHeader/components/Header.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +9 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.d.ts +1 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js +13 -6
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideLayoutTransition.d.ts +80 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js +600 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.d.ts +14 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js +164 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.d.ts +14 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js +94 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +9 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js +14 -5
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +9 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -2
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorDom.d.ts +7 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorDom.js +25 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorDom.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorModel.d.ts +25 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorModel.js +89 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorModel.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/Panels.js +2 -2
- package/build/cjs/components/AsideHeader/components/Panels.js.map +1 -1
- package/build/cjs/components/AsideHeader/density.d.ts +21 -0
- package/build/cjs/components/AsideHeader/density.js +61 -0
- package/build/cjs/components/AsideHeader/density.js.map +1 -0
- package/build/cjs/components/AsideHeader/i18n/__mocks__/index.d.ts +1 -0
- package/build/cjs/components/AsideHeader/i18n/en.json.js +10 -1
- package/build/cjs/components/AsideHeader/i18n/en.json.js.map +1 -1
- package/build/cjs/components/AsideHeader/i18n/index.d.ts +4 -4
- package/build/cjs/components/AsideHeader/i18n/ru.json.js +10 -1
- package/build/cjs/components/AsideHeader/i18n/ru.json.js.map +1 -1
- package/build/cjs/components/AsideHeader/index.d.ts +1 -0
- package/build/cjs/components/AsideHeader/quickAccess.d.ts +9 -0
- package/build/cjs/components/AsideHeader/quickAccess.js +31 -0
- package/build/cjs/components/AsideHeader/quickAccess.js.map +1 -0
- package/build/cjs/components/AsideHeader/types.d.ts +50 -5
- package/build/cjs/components/AsideHeader/types.js.map +1 -1
- package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js +18 -3
- package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
- package/build/cjs/components/AsideHeader/utils.d.ts +1 -0
- package/build/cjs/components/AsideHeader/utils.js +2 -0
- package/build/cjs/components/AsideHeader/utils.js.map +1 -1
- package/build/cjs/components/Footer/desktop/Footer.css +1 -1
- package/build/cjs/components/Footer/mobile/Footer.css +1 -1
- package/build/cjs/components/HotkeysPanel/HotkeysPanel.css +1 -1
- package/build/cjs/components/HotkeysPanel/HotkeysPanel.js +1 -1
- package/build/cjs/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
- package/build/cjs/components/HotkeysPanel/HotkeysPanel.module.scss.js +1 -1
- package/build/cjs/components/Logo/Logo.css +1 -1
- package/build/cjs/components/Logo/Logo.d.ts +1 -0
- package/build/cjs/components/Logo/Logo.js +4 -4
- package/build/cjs/components/Logo/Logo.js.map +1 -1
- package/build/cjs/components/constants.d.ts +5 -0
- package/build/cjs/components/constants.js +6 -0
- package/build/cjs/components/constants.js.map +1 -1
- package/build/cjs/components/types.d.ts +4 -4
- package/build/docs/components/AsideHeader.md +234 -42
- package/build/esm/components/AsideHeader/AsideHeader.css +9 -1
- package/build/esm/components/AsideHeader/AsideHeader.js +2 -2
- package/build/esm/components/AsideHeader/AsideHeader.js.map +1 -1
- package/build/esm/components/AsideHeader/AsideHeader.module.scss.js +1 -1
- package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +5 -0
- package/build/esm/components/AsideHeader/AsideHeaderContext.js +2 -0
- package/build/esm/components/AsideHeader/AsideHeaderContext.js.map +1 -1
- package/build/esm/components/AsideHeader/__playwright__/AsideTransitionExample.d.ts +8 -0
- package/build/esm/components/AsideHeader/__playwright__/CollapseButtonExample.d.ts +14 -0
- package/build/esm/components/AsideHeader/__playwright__/CompactTransitionExample.d.ts +12 -0
- package/build/esm/components/AsideHeader/__playwright__/CurrentIndicatorExample.d.ts +20 -0
- package/build/esm/components/AsideHeader/__playwright__/QuickAccessOverflowExample.d.ts +8 -0
- package/build/esm/components/AsideHeader/__playwright__/currentIndicatorPaint.d.ts +21 -0
- package/build/esm/components/AsideHeader/__playwright__/transitionTestUtils.d.ts +4 -0
- package/build/esm/components/AsideHeader/__stories__/fullNavigationMoc.d.ts +6 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +3 -5
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -3
- package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
- package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +2 -4
- package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
- package/build/esm/components/AsideHeader/components/AsideDivider.d.ts +7 -0
- package/build/esm/components/AsideHeader/components/AsideDivider.js +11 -0
- package/build/esm/components/AsideHeader/components/AsideDivider.js.map +1 -0
- package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
- package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +3 -1
- package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js +12 -8
- package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
- package/build/esm/components/AsideHeader/components/CollapseButton/useCollapseAnchor.d.ts +20 -0
- package/build/esm/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js +167 -0
- package/build/esm/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js.map +1 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.css +3 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +13 -2
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +54 -40
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js +4 -2
- package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.css +33 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +161 -46
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +22 -4
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.d.ts +19 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +139 -23
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.d.ts +7 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js +23 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js.map +1 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.d.ts +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js +5 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +4 -6
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +15 -6
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.d.ts +8 -8
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js +68 -33
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/constants.d.ts +1 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/constants.js +2 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/constants.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/presentationCurrent.d.ts +24 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/presentationCurrent.js +36 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/presentationCurrent.js.map +1 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +12 -7
- package/build/esm/components/AsideHeader/components/CompositeBar/utils.js +44 -35
- package/build/esm/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
- package/build/esm/components/AsideHeader/components/FirstPanel.js +131 -12
- package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -1
- package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
- package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js +18 -2
- package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
- package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
- package/build/esm/components/AsideHeader/components/Header.js +8 -4
- package/build/esm/components/AsideHeader/components/Header.js.map +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +9 -1
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.d.ts +1 -0
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js +14 -7
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/AsideLayoutTransition.d.ts +80 -0
- package/build/esm/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js +598 -0
- package/build/esm/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js.map +1 -0
- package/build/esm/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.d.ts +14 -0
- package/build/esm/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js +162 -0
- package/build/esm/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js.map +1 -0
- package/build/esm/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.d.ts +14 -0
- package/build/esm/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js +92 -0
- package/build/esm/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js.map +1 -0
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +9 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js +15 -6
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +9 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -2
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorDom.d.ts +7 -0
- package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorDom.js +17 -0
- package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorDom.js.map +1 -0
- package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorModel.d.ts +25 -0
- package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorModel.js +84 -0
- package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorModel.js.map +1 -0
- package/build/esm/components/AsideHeader/components/Panels.js +3 -3
- package/build/esm/components/AsideHeader/components/Panels.js.map +1 -1
- package/build/esm/components/AsideHeader/density.d.ts +21 -0
- package/build/esm/components/AsideHeader/density.js +58 -0
- package/build/esm/components/AsideHeader/density.js.map +1 -0
- package/build/esm/components/AsideHeader/i18n/__mocks__/index.d.ts +1 -0
- package/build/esm/components/AsideHeader/i18n/en.json.js +8 -2
- package/build/esm/components/AsideHeader/i18n/en.json.js.map +1 -1
- package/build/esm/components/AsideHeader/i18n/index.d.ts +4 -4
- package/build/esm/components/AsideHeader/i18n/ru.json.js +8 -2
- package/build/esm/components/AsideHeader/i18n/ru.json.js.map +1 -1
- package/build/esm/components/AsideHeader/index.d.ts +1 -0
- package/build/esm/components/AsideHeader/quickAccess.d.ts +9 -0
- package/build/esm/components/AsideHeader/quickAccess.js +27 -0
- package/build/esm/components/AsideHeader/quickAccess.js.map +1 -0
- package/build/esm/components/AsideHeader/types.d.ts +50 -5
- package/build/esm/components/AsideHeader/types.js.map +1 -1
- package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js +18 -3
- package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
- package/build/esm/components/AsideHeader/utils.d.ts +1 -0
- package/build/esm/components/AsideHeader/utils.js +2 -1
- package/build/esm/components/AsideHeader/utils.js.map +1 -1
- package/build/esm/components/Footer/desktop/Footer.css +1 -1
- package/build/esm/components/Footer/mobile/Footer.css +1 -1
- package/build/esm/components/HotkeysPanel/HotkeysPanel.css +1 -1
- package/build/esm/components/HotkeysPanel/HotkeysPanel.js +1 -1
- package/build/esm/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
- package/build/esm/components/HotkeysPanel/HotkeysPanel.module.scss.js +1 -1
- package/build/esm/components/Logo/Logo.css +1 -1
- package/build/esm/components/Logo/Logo.d.ts +1 -0
- package/build/esm/components/Logo/Logo.js +4 -4
- package/build/esm/components/Logo/Logo.js.map +1 -1
- package/build/esm/components/constants.d.ts +5 -0
- package/build/esm/components/constants.js +6 -1
- package/build/esm/components/constants.js.map +1 -1
- package/build/esm/components/types.d.ts +4 -4
- package/package.json +1 -1
- package/build/cjs/assets/icons/control-menu-button.svg.js +0 -41
- package/build/cjs/assets/icons/control-menu-button.svg.js.map +0 -1
- package/build/esm/assets/icons/control-menu-button.svg.js +0 -18
- package/build/esm/assets/icons/control-menu-button.svg.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayout.js","sources":["../../../../../../../src/components/AsideHeader/components/PageLayout/PageLayout.tsx"],"sourcesContent":["import React, {PropsWithChildren, Suspense, useMemo} from 'react';\n\nimport {Content, ContentProps} from '../../../Content';\nimport {
|
|
1
|
+
{"version":3,"file":"PageLayout.js","sources":["../../../../../../../src/components/AsideHeader/components/PageLayout/PageLayout.tsx"],"sourcesContent":["import React, {PropsWithChildren, Suspense, useMemo} from 'react';\n\nimport {Content, ContentProps} from '../../../Content';\nimport {TopAlertProps} from '../../../types';\nimport {AsideHeaderContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {getAsideHeaderDensityConfig, getAsideHeaderDensityCssProperties} from '../../density';\nimport {LayoutProps} from '../../types';\nimport {b, getCompactTransitionClassName} from '../../utils';\n\nimport {AsideLayoutTransition} from './AsideLayoutTransition';\n\nconst TopAlert = React.lazy(() =>\n import('../../../TopAlert').then((module) => ({default: module.TopAlert})),\n);\n\n// Constants for TopAlert height calculation (in pixels)\nconst BASE_ALERT_HEIGHT = 60; // Base height of the alert component\nconst TITLE_HEIGHT_BONUS = 14; // Additional height when title is present\nconst DENSE_HEIGHT_REDUCTION = 16; // Height reduction when dense mode is enabled\n\nfunction calcEstimatedTopAlertHeight(topAlert?: TopAlertProps) {\n if (!topAlert || 'render' in topAlert) {\n return 0;\n }\n\n return (\n BASE_ALERT_HEIGHT +\n (topAlert.title ? TITLE_HEIGHT_BONUS : 0) -\n (topAlert.dense ? DENSE_HEIGHT_REDUCTION : 0)\n );\n}\n\nexport interface PageLayoutProps extends PropsWithChildren<LayoutProps> {}\n\nconst Layout = ({\n compact,\n compactTransition = true,\n className,\n children,\n topAlert,\n menuDensity = 'default',\n}: PageLayoutProps) => {\n const densityConfig = getAsideHeaderDensityConfig(menuDensity);\n const densityCssProperties = getAsideHeaderDensityCssProperties(menuDensity);\n const isCompact = Boolean(compact);\n const size = isCompact ? densityConfig.compactWidth : densityConfig.expandedWidth;\n const asideHeaderContextValue = useMemo(\n () => ({size, compact: isCompact, compactTransition, menuDensity}),\n [isCompact, compactTransition, size, menuDensity],\n );\n\n const estimatedTopAlertHeight = calcEstimatedTopAlertHeight(topAlert);\n\n // Reserve margin immediately on server render through inline variable on container.\n // After TopAlert mount, the exact height will be set by hook.\n const getPreloadHeightValue = (): number | undefined => {\n if (!topAlert || 'render' in topAlert || typeof topAlert.preloadHeight === 'undefined') {\n return undefined;\n }\n\n if (topAlert.preloadHeight === true) {\n return estimatedTopAlertHeight;\n }\n\n if (typeof topAlert.preloadHeight === 'number') {\n return topAlert.preloadHeight;\n }\n\n return undefined;\n };\n\n const preloadHeightValue = getPreloadHeightValue();\n\n return (\n <AsideHeaderContextProvider value={asideHeaderContextValue}>\n <AsideLayoutTransition\n compact={isCompact}\n compactTransition={compactTransition}\n className={b({compact: isCompact}, [\n getCompactTransitionClassName(compactTransition),\n className ?? '',\n ])}\n style={{\n ...densityCssProperties,\n ...({'--gn-aside-header-size': `${size}px`} as React.CSSProperties),\n ...({\n '--_--gn-aside-header-expanded-width': `${densityConfig.expandedWidth}px`,\n } as React.CSSProperties),\n }}\n >\n {typeof preloadHeightValue === 'number' ? (\n <style\n dangerouslySetInnerHTML={{\n __html: `.g-root{--gn-top-alert-height:${preloadHeightValue}px;}`,\n }}\n />\n ) : null}\n {topAlert && (\n <Suspense fallback={null}>\n <TopAlert className={b('top-alert')} alert={topAlert} />\n </Suspense>\n )}\n <div className={b('pane-container')}>{children}</div>\n </AsideLayoutTransition>\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":["getAsideHeaderDensityConfig","getAsideHeaderDensityCssProperties","useMemo","AsideHeaderContextProvider","AsideLayoutTransition","b","getCompactTransitionClassName","Suspense","useAsideHeaderContext","Content"],"mappings":";;;;;;;;;AAWA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MACxB,oDAAO,4BAAmB,KAAC,CAAC,IAAI,CAAC,CAAC,MAAM,MAAM,EAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CAC7E;AAED;AACA,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,SAAS,2BAA2B,CAAC,QAAwB,EAAA;AACzD,IAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,QAAQ,EAAE;AACnC,QAAA,OAAO,CAAC;;AAGZ,IAAA,QACI,iBAAiB;SAChB,QAAQ,CAAC,KAAK,GAAG,kBAAkB,GAAG,CAAC,CAAC;AACzC,SAAC,QAAQ,CAAC,KAAK,GAAG,sBAAsB,GAAG,CAAC,CAAC;AAErD;AAIA,MAAM,MAAM,GAAG,CAAC,EACZ,OAAO,EACP,iBAAiB,GAAG,IAAI,EACxB,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,WAAW,GAAG,SAAS,GACT,KAAI;AAClB,IAAA,MAAM,aAAa,GAAGA,mCAA2B,CAAC,WAAW,CAAC;AAC9D,IAAA,MAAM,oBAAoB,GAAGC,0CAAkC,CAAC,WAAW,CAAC;AAC5E,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;AAClC,IAAA,MAAM,IAAI,GAAG,SAAS,GAAG,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,aAAa;AACjF,IAAA,MAAM,uBAAuB,GAAGC,aAAO,CACnC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAC,CAAC,EAClE,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,CAAC,CACpD;AAED,IAAA,MAAM,uBAAuB,GAAG,2BAA2B,CAAC,QAAQ,CAAC;;;IAIrE,MAAM,qBAAqB,GAAG,MAAyB;AACnD,QAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,WAAW,EAAE;AACpF,YAAA,OAAO,SAAS;;AAGpB,QAAA,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE;AACjC,YAAA,OAAO,uBAAuB;;AAGlC,QAAA,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,EAAE;YAC5C,OAAO,QAAQ,CAAC,aAAa;;AAGjC,QAAA,OAAO,SAAS;AACpB,KAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,qBAAqB,EAAE;AAElD,IAAA,QACI,KAAC,CAAA,aAAA,CAAAC,6CAA0B,EAAC,EAAA,KAAK,EAAE,uBAAuB,EAAA;AACtD,QAAA,KAAA,CAAA,aAAA,CAACC,2CAAqB,EAClB,EAAA,OAAO,EAAE,SAAS,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAEC,OAAC,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,EAAE;gBAC/BC,mCAA6B,CAAC,iBAAiB,CAAC;AAChD,gBAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,SAAA,GAAA,SAAS,GAAI,EAAE;AAClB,aAAA,CAAC,EACF,KAAK,EACE,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,oBAAoB,CACnB,EAAA,EAAC,wBAAwB,EAAE,CAAG,EAAA,IAAI,CAAI,EAAA,CAAA,EAAyB,CAC/D,EAAA;AACA,gBAAA,qCAAqC,EAAE,CAAA,EAAG,aAAa,CAAC,aAAa,CAAI,EAAA,CAAA;AACpD,aAAA,CAAA,EAAA;YAG5B,OAAO,kBAAkB,KAAK,QAAQ,IACnC,KACI,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,uBAAuB,EAAE;oBACrB,MAAM,EAAE,CAAiC,8BAAA,EAAA,kBAAkB,CAAM,IAAA,CAAA;AACpE,iBAAA,EAAA,CACH,IACF,IAAI;AACP,YAAA,QAAQ,KACL,KAAA,CAAA,aAAA,CAACC,cAAQ,EAAC,EAAA,QAAQ,EAAE,IAAI,EAAA;AACpB,gBAAA,KAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAEF,OAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAA,CAAI,CACjD,CACd;AACD,YAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEA,OAAC,CAAC,gBAAgB,CAAC,EAAG,EAAA,QAAQ,CAAO,CACjC,CACC;AAErC,CAAC;AAED,MAAM,gBAAgB,GAAqE,CAAC,EACxF,QAAQ,EACR,aAAa,GAChB,KAAI;AACD,IAAA,MAAM,EAAC,IAAI,EAAC,GAAGG,wCAAqB,EAAE;IAEtC,QACI,oBAACC,eAAO,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAEJ,OAAC,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EACrE,EAAA,QAAQ,CACH;AAElB,CAAC;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACrC,IAAA,OAAO,EAAE,gBAAgB;AAC5B,CAAA;;;;"}
|
|
@@ -1,2 +1,10 @@
|
|
|
1
1
|
.AsideHeader-module__g-root___EuNRw{--gn-aside-top-panel-height:0px}
|
|
2
|
-
.AsideHeader-module__gn-aside-header___Z0Sa7{--gn-aside-header-min-width:
|
|
2
|
+
.AsideHeader-module__gn-aside-header___Z0Sa7{--gn-aside-header-min-width:var(--_--gn-aside-header-density-compact-width,56px);--_--item-margin-inline:var(
|
|
3
|
+
--_--gn-aside-header-density-item-margin-inline,8px
|
|
4
|
+
);--_--item-expanded-radius:var(
|
|
5
|
+
--_--gn-aside-header-density-item-expanded-radius,8px
|
|
6
|
+
);--_--item-icon-background-size:var(
|
|
7
|
+
--gn-aside-header-item-icon-background-size,var(--_--gn-aside-header-density-icon-background-size,38px)
|
|
8
|
+
);--_--background-color:var(--g-color-base-background);--_--decoration-collapsed-background-color:var(--g-color-base-warning-light);--_--decoration-expanded-background-color:var(--g-color-base-warning-light);--_--vertical-divider-line-color:var(--g-color-line-generic);--_--horizontal-divider-line-color:var(--g-color-line-generic);--_--section-divider-gap:var(--g-spacing-1);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.AsideHeader-module__gn-aside-header__compact-transition___bBGfN{--_--gn-aside-width-transition:width 0.2s ease-in-out;--_--gn-aside-collapse-geometry-transition:inset-inline-end 0.2s ease-in-out,width 0.2s ease-in-out,border-radius 0.2s ease-in-out;--_--gn-aside-drawer-transition:left 0.2s ease-in-out,background-color var(--_--animation-duration,300ms)}.AsideHeader-module__gn-aside-header__compact-transition_disabled___ztpdX{--_--gn-aside-width-transition:none;--_--gn-aside-collapse-geometry-transition:none;--_--gn-aside-drawer-transition:background-color var(--_--animation-duration,300ms)}.AsideHeader-module__gn-aside-header__aside___AyP0y{background-color:var(--gn-aside-header-expanded-background-color,var(--gn-aside-header-background-color,var(--_--background-color)));box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;margin-top:var(--gn-top-alert-height,0);max-height:calc(100vh - var(--gn-top-alert-height, 0));overflow:hidden;position:sticky;top:var(--gn-top-alert-height,0);transition:var(--_--gn-aside-width-transition);width:inherit;z-index:var(--gn-aside-header-z-index,100)}.AsideHeader-module__gn-aside-header__aside___AyP0y:after{background-color:var(--gn-aside-header-divider-vertical-color,var(--_--vertical-divider-line-color));content:"";height:100%;inset-inline-end:0;position:absolute;top:0;width:1px;z-index:2}.AsideHeader-module__gn-aside-header__aside-popup-anchor___N3tgM{inset:0;position:absolute;z-index:1}.AsideHeader-module__gn-aside-header__aside-content___w5GOS{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;min-height:0;overflow:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:var(--gn-aside-header-size);z-index:2}.AsideHeader-module__gn-aside-header__aside-content___w5GOS>.AsideHeader-module__gn-aside-header-logo___6MdXx{margin:8px 0}.AsideHeader-module__gn-aside-header__aside-content_with-decoration___UsCye{background:linear-gradient(180deg,var(--gn-aside-header-decoration-expanded-background-color,var(--_--decoration-expanded-background-color)) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.AsideHeader-module__gn-aside-header__aside-custom-background___-bqdE{bottom:0;display:flex;position:absolute;top:0;transition:var(--_--gn-aside-width-transition);width:var(--gn-aside-header-size);z-index:-1}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__aside___AyP0y{background-color:var(--gn-aside-header-collapsed-background-color,var(--gn-aside-header-background-color,var(--_--background-color)))}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__aside-content___w5GOS{background:transparent}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] [data-gn-aside-divider]{flex-shrink:0}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .AsideHeader-module__gn-aside-header__aside-content___w5GOS{overflow:visible}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .g-list__item, .AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .g-list__item-content{min-width:0;overflow:visible}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] [data-gn-aside-scrollport]{width:var(--_--gn-aside-header-expanded-width)}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .AsideHeader-module__gn-aside-header__unified-menu-content___cpugB{width:var(--gn-aside-header-size)}.AsideHeader-module__gn-aside-header__header___m5aIU{--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}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{bottom:0;color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;z-index:-2}.AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-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}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-bottom-divider___x9Bzo{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));bottom:12px;content:"";height:1px;left:0;position:absolute;width:100%;z-index:-2}.AsideHeader-module__gn-aside-header__aside-content_with-quick-access___Yucty:not(.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB) .AsideHeader-module__gn-aside-header__header___m5aIU{padding-bottom:var(--_--section-divider-gap)}.AsideHeader-module__gn-aside-header__aside-content_with-quick-access___Yucty:not(.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB) .AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-bottom-divider___x9Bzo{bottom:0}.AsideHeader-module__gn-aside-header__aside-content_with-quick-access___Yucty:not(.AsideHeader-module__gn-aside-header__aside-content_with-quick-access-items___oU0Yz):not(.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB) .AsideHeader-module__gn-aside-header__header___m5aIU{margin-bottom:var(--_--section-divider-gap)}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header___m5aIU:before, .AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:block}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-bottom-divider___x9Bzo{display:none}.AsideHeader-module__gn-aside-header__logo-button___5u2iH .AsideHeader-module__gn-aside-header__logo-icon-place___3Oo9i{height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));width:var(--gn-aside-header-min-width)}.AsideHeader-module__gn-aside-header__logo___QvKKT{--_--gn-logo-height:var(
|
|
9
|
+
--_--gn-aside-header-density-item-height,40px
|
|
10
|
+
)}.AsideHeader-module__gn-aside-header__quick-access___ykXmy{box-sizing:border-box;flex:none;margin-bottom:var(--_--section-divider-gap);padding-block:var(--_--section-divider-gap);position:relative;width:100%}.AsideHeader-module__gn-aside-header__quick-access-divider___AzkVl{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));bottom:0;content:"";height:1px;left:var(--_--item-margin-inline);position:absolute;right:var(--_--item-margin-inline);width:auto;z-index:1}.AsideHeader-module__gn-aside-header__quick-access-title___im4TL{color:var(--g-color-text-secondary);font-family:var(--g-text-caption-font-family);font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height);margin-inline:var(--_--item-margin-inline);padding-inline:calc(var(--_--gn-aside-header-density-item-height, 40px) + var(--_--gn-aside-header-density-item-title-gap, var(--g-spacing-2))) var(--_--gn-aside-header-density-item-title-gap-end,var(--g-spacing-4));padding-bottom:var(--g-spacing-1);user-select:none}.AsideHeader-module__gn-aside-header__unified-menu-scroll___EHnK-{flex:1 1 auto;min-height:0}.AsideHeader-module__gn-aside-header__unified-menu-content___cpugB{display:flex;flex-direction:column;min-height:100%;position:relative;z-index:0}.AsideHeader-module__gn-aside-header___Z0Sa7 [data-gn-aside-current-container]>:not([data-gn-aside-current-indicator-layer]):not([data-gn-aside-divider]){position:relative;z-index:1}.AsideHeader-module__gn-aside-header__menu-items___SOI2-{flex-grow:1}.AsideHeader-module__gn-aside-header__menu-item___q2y31:not(:has([data-type=action])){margin-inline:var(--_--item-margin-inline)}.AsideHeader-module__gn-aside-header__menu-item___q2y31:has([data-type=regular]), .AsideHeader-module__gn-aside-header__menu-item_type_regular___XYYbc, .AsideHeader-module__gn-aside-header__root-menu-item___eNfkk[class]:hover{border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.AsideHeader-module__gn-aside-header__collapse-fallback___R6O7X{flex-shrink:0;height:var(--_--gn-aside-header-density-footer-item-height,32px)}.AsideHeader-module__gn-aside-header__footer___vmoTl{display:flex;flex-direction:column;flex-shrink:0;margin:var(--g-spacing-2) var(--_--item-margin-inline);position:relative}.AsideHeader-module__gn-aside-header__footer___vmoTl .AsideHeader-module__gn-aside-header__footer-divider___9Jewp{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));content:"";height:1px;left:calc(var(--_--item-margin-inline)*-1);opacity:0;pointer-events:none;position:absolute;right:calc(var(--_--item-margin-inline)*-1);top:calc(var(--g-spacing-2)*-1);transition:opacity .3s ease-in-out}.AsideHeader-module__gn-aside-header__footer_with-divider___66E1w .AsideHeader-module__gn-aside-header__footer-divider___9Jewp{opacity:1}.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__header___m5aIU{margin-bottom:0;padding-bottom:0}.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__header___m5aIU:before{height:100%}.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__footer-divider___9Jewp, .AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-bottom-divider___x9Bzo, .AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:none}.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__footer___vmoTl{margin-top:0}.AsideHeader-module__gn-aside-header__panels___-fdu4{z-index:var(--gn-aside-header-panel-z-index,98)}.AsideHeader-module__gn-aside-header__panels___-fdu4.g-drawer[data-floating-ui-status]{transition:var(--_--gn-aside-drawer-transition)}.AsideHeader-module__gn-aside-header__panel___HywH6, .AsideHeader-module__gn-aside-header__panel___HywH6.g-drawer__item{bottom:0;height:auto;top:0}.AsideHeader-module__gn-aside-header__pane-container___y-v2e{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.AsideHeader-module__gn-aside-header__top-alert___hY12r{background:var(--g-color-base-background);position:fixed;top:0;width:100%;z-index:var(--gn-aside-header-pane-top-z-index,98)}.AsideHeader-module__gn-aside-header__content___4-mBl{margin-top:var(--gn-top-alert-height,0);transition:var(--_--gn-aside-width-transition);width:calc(100% - var(--gn-aside-header-size));z-index:var(--gn-aside-header-content-z-index,95)}@media (prefers-reduced-motion:reduce){.AsideHeader-module__gn-aside-header__aside-custom-background___-bqdE, .AsideHeader-module__gn-aside-header__aside___AyP0y, .AsideHeader-module__gn-aside-header__content___4-mBl, .AsideHeader-module__gn-aside-header__panels___-fdu4.g-drawer[data-floating-ui-status]{transition:none}}.AsideHeader-module__gn-aside-header__all-pages-panel___O94IU{width:fit-content!important}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AsideHeaderProps } from '../../types';
|
|
3
|
-
type Props = Omit<AsideHeaderProps, 'compact' | 'size'>;
|
|
3
|
+
type Props = Omit<AsideHeaderProps, 'compact' | 'compactTransition' | 'size' | 'menuDensity'>;
|
|
4
4
|
export declare const PageLayoutAside: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
|
5
5
|
export {};
|
|
@@ -7,8 +7,11 @@ var AsideHeaderContext = require('../../AsideHeaderContext.js');
|
|
|
7
7
|
var useAsideHeaderInnerContextValue = require('../../useAsideHeaderInnerContextValue.js');
|
|
8
8
|
|
|
9
9
|
const PageLayoutAside = React.forwardRef((props, ref) => {
|
|
10
|
-
const { size, compact } = AsideHeaderContext.useAsideHeaderContext();
|
|
11
|
-
const asideHeaderInnerContextValue = useAsideHeaderInnerContextValue.useAsideHeaderInnerContextValue(Object.assign(Object.assign({}, props), { size,
|
|
10
|
+
const { size, compact, compactTransition = true, menuDensity } = AsideHeaderContext.useAsideHeaderContext();
|
|
11
|
+
const asideHeaderInnerContextValue = useAsideHeaderInnerContextValue.useAsideHeaderInnerContextValue(Object.assign(Object.assign({}, props), { size,
|
|
12
|
+
compact,
|
|
13
|
+
compactTransition,
|
|
14
|
+
menuDensity }));
|
|
12
15
|
return (React.createElement(AsideHeaderContext.AsideHeaderInnerContextProvider, { value: asideHeaderInnerContextValue },
|
|
13
16
|
React.createElement(FirstPanel.FirstPanel, { ref: ref })));
|
|
14
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayoutAside.js","sources":["../../../../../../../src/components/AsideHeader/components/PageLayout/PageLayoutAside.tsx"],"sourcesContent":["import React from 'react';\n\nimport {FirstPanel} from '..';\nimport {AsideHeaderInnerContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {AsideHeaderProps} from '../../types';\nimport {useAsideHeaderInnerContextValue} from '../../useAsideHeaderInnerContextValue';\n\ntype Props = Omit<AsideHeaderProps, 'compact' | 'size'>;\n\nexport const PageLayoutAside = React.forwardRef<HTMLDivElement, Props>((props, ref) => {\n const {size, compact} = useAsideHeaderContext();\n\n const asideHeaderInnerContextValue = useAsideHeaderInnerContextValue({...props
|
|
1
|
+
{"version":3,"file":"PageLayoutAside.js","sources":["../../../../../../../src/components/AsideHeader/components/PageLayout/PageLayoutAside.tsx"],"sourcesContent":["import React from 'react';\n\nimport {FirstPanel} from '..';\nimport {AsideHeaderInnerContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {AsideHeaderProps} from '../../types';\nimport {useAsideHeaderInnerContextValue} from '../../useAsideHeaderInnerContextValue';\n\ntype Props = Omit<AsideHeaderProps, 'compact' | 'compactTransition' | 'size' | 'menuDensity'>;\n\nexport const PageLayoutAside = React.forwardRef<HTMLDivElement, Props>((props, ref) => {\n const {size, compact, compactTransition = true, menuDensity} = useAsideHeaderContext();\n\n const asideHeaderInnerContextValue = useAsideHeaderInnerContextValue({\n ...props,\n size,\n compact,\n compactTransition,\n menuDensity,\n });\n\n return (\n <AsideHeaderInnerContextProvider value={asideHeaderInnerContextValue}>\n <FirstPanel ref={ref} />\n </AsideHeaderInnerContextProvider>\n );\n});\n\nPageLayoutAside.displayName = 'PageLayoutAside';\n"],"names":["useAsideHeaderContext","useAsideHeaderInnerContextValue","AsideHeaderInnerContextProvider","FirstPanel"],"mappings":";;;;;;;AASO,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAwB,CAAC,KAAK,EAAE,GAAG,KAAI;AAClF,IAAA,MAAM,EAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,EAAE,WAAW,EAAC,GAAGA,wCAAqB,EAAE;AAEtF,IAAA,MAAM,4BAA4B,GAAGC,+DAA+B,CAC7D,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KACR,IAAI;QACJ,OAAO;QACP,iBAAiB;AACjB,QAAA,WAAW,IACb;AAEF,IAAA,QACI,KAAC,CAAA,aAAA,CAAAC,kDAA+B,EAAC,EAAA,KAAK,EAAE,4BAA4B,EAAA;QAChE,KAAC,CAAA,aAAA,CAAAC,qBAAU,IAAC,GAAG,EAAE,GAAG,EAAI,CAAA,CACM;AAE1C,CAAC;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const CURRENT_ROW_SELECTOR = "[data-gn-composite-bar-item-id]";
|
|
2
|
+
export declare const CURRENT_IDS_ATTRIBUTE = "data-gn-aside-current-ids";
|
|
3
|
+
export declare const SURFACE_SELECTOR = "[data-gn-aside-part=\"surface\"]";
|
|
4
|
+
export declare const CURRENT_SUPPRESSED_ATTRIBUTE = "data-gn-aside-current-suppressed";
|
|
5
|
+
export declare const CURRENT_GHOST_SUPPRESSED_ATTRIBUTE = "data-gn-aside-current-ghost-suppressed";
|
|
6
|
+
export declare const CURRENT_ROW_KEY_ATTRIBUTE = "data-gn-aside-current-row-key";
|
|
7
|
+
export declare function getCompositeBarSection(element: HTMLElement, fallback?: string): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var constants = require('../CompositeBar/constants.js');
|
|
4
|
+
|
|
5
|
+
const CURRENT_ROW_SELECTOR = `[${constants.COMPOSITE_BAR_ITEM_ID_ATTRIBUTE}]`;
|
|
6
|
+
const CURRENT_IDS_ATTRIBUTE = 'data-gn-aside-current-ids';
|
|
7
|
+
const SURFACE_SELECTOR = '[data-gn-aside-part="surface"]';
|
|
8
|
+
const CURRENT_SUPPRESSED_ATTRIBUTE = 'data-gn-aside-current-suppressed';
|
|
9
|
+
const CURRENT_GHOST_SUPPRESSED_ATTRIBUTE = 'data-gn-aside-current-ghost-suppressed';
|
|
10
|
+
const CURRENT_ROW_KEY_ATTRIBUTE = 'data-gn-aside-current-row-key';
|
|
11
|
+
function getCompositeBarSection(element, fallback = 'footer') {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
// UIKit row wrappers append "-item-N" to the bar ID. They are layout
|
|
14
|
+
// positions, not sections, and can change while the logical row persists.
|
|
15
|
+
return (_b = (_a = element.closest('[id^="gravity-ui/navigation-"][id$="-composite-bar"]')) === null || _a === undefined ? undefined : _a.id) !== null && _b !== undefined ? _b : fallback;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.CURRENT_GHOST_SUPPRESSED_ATTRIBUTE = CURRENT_GHOST_SUPPRESSED_ATTRIBUTE;
|
|
19
|
+
exports.CURRENT_IDS_ATTRIBUTE = CURRENT_IDS_ATTRIBUTE;
|
|
20
|
+
exports.CURRENT_ROW_KEY_ATTRIBUTE = CURRENT_ROW_KEY_ATTRIBUTE;
|
|
21
|
+
exports.CURRENT_ROW_SELECTOR = CURRENT_ROW_SELECTOR;
|
|
22
|
+
exports.CURRENT_SUPPRESSED_ATTRIBUTE = CURRENT_SUPPRESSED_ATTRIBUTE;
|
|
23
|
+
exports.SURFACE_SELECTOR = SURFACE_SELECTOR;
|
|
24
|
+
exports.getCompositeBarSection = getCompositeBarSection;
|
|
25
|
+
//# sourceMappingURL=currentIndicatorDom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currentIndicatorDom.js","sources":["../../../../../../../src/components/AsideHeader/components/PageLayout/currentIndicatorDom.ts"],"sourcesContent":["import {COMPOSITE_BAR_ITEM_ID_ATTRIBUTE} from '../CompositeBar/constants';\n\nexport const CURRENT_ROW_SELECTOR = `[${COMPOSITE_BAR_ITEM_ID_ATTRIBUTE}]`;\nexport const CURRENT_IDS_ATTRIBUTE = 'data-gn-aside-current-ids';\nexport const SURFACE_SELECTOR = '[data-gn-aside-part=\"surface\"]';\nexport const CURRENT_SUPPRESSED_ATTRIBUTE = 'data-gn-aside-current-suppressed';\nexport const CURRENT_GHOST_SUPPRESSED_ATTRIBUTE = 'data-gn-aside-current-ghost-suppressed';\nexport const CURRENT_ROW_KEY_ATTRIBUTE = 'data-gn-aside-current-row-key';\n\nexport function getCompositeBarSection(element: HTMLElement, fallback = 'footer'): string {\n // UIKit row wrappers append \"-item-N\" to the bar ID. They are layout\n // positions, not sections, and can change while the logical row persists.\n return element.closest('[id^=\"gravity-ui/navigation-\"][id$=\"-composite-bar\"]')?.id ?? fallback;\n}\n"],"names":["COMPOSITE_BAR_ITEM_ID_ATTRIBUTE"],"mappings":";;;;AAEa,MAAA,oBAAoB,GAAG,CAAI,CAAA,EAAAA,yCAA+B;AAChE,MAAM,qBAAqB,GAAG;AAC9B,MAAM,gBAAgB,GAAG;AACzB,MAAM,4BAA4B,GAAG;AACrC,MAAM,kCAAkC,GAAG;AAC3C,MAAM,yBAAyB,GAAG;SAEzB,sBAAsB,CAAC,OAAoB,EAAE,QAAQ,GAAG,QAAQ,EAAA;;;;AAG5E,IAAA,OAAO,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,OAAO,CAAC,sDAAsD,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,SAAA,GAAA,EAAA,CAAA,EAAE,MAAI,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,EAAA,GAAA,QAAQ;AAClG;;;;;;;;;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type CurrentIdentity = {
|
|
2
|
+
key: string;
|
|
3
|
+
section: string;
|
|
4
|
+
rowId: string;
|
|
5
|
+
currentIds: string[];
|
|
6
|
+
row: HTMLElement;
|
|
7
|
+
surface: HTMLElement;
|
|
8
|
+
};
|
|
9
|
+
export type CurrentIdentitySnapshot = Map<HTMLElement, CurrentIdentity>;
|
|
10
|
+
export type CurrentPresentation = CurrentIdentity & {
|
|
11
|
+
rect: DOMRect;
|
|
12
|
+
color: string;
|
|
13
|
+
radius: string;
|
|
14
|
+
inFlight?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export type CurrentSnapshot = Map<string, CurrentPresentation>;
|
|
17
|
+
export type CurrentTransfer = {
|
|
18
|
+
from: CurrentPresentation;
|
|
19
|
+
to: CurrentPresentation;
|
|
20
|
+
};
|
|
21
|
+
export declare function getCurrentRowKey(row: HTMLElement): string;
|
|
22
|
+
export declare function captureCurrentIdentity(panel: HTMLElement): CurrentIdentitySnapshot;
|
|
23
|
+
export declare function captureCurrentPresentation(panel: HTMLElement, identities?: CurrentIdentitySnapshot): CurrentSnapshot;
|
|
24
|
+
export declare function matchCurrentPresentations(before: CurrentSnapshot, after: CurrentSnapshot): CurrentTransfer[];
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var constants = require('../CompositeBar/constants.js');
|
|
4
|
+
var currentIndicatorDom = require('./currentIndicatorDom.js');
|
|
5
|
+
|
|
6
|
+
const DECORATIVE_SELECTOR = '[data-gn-aside-transition-overlay], [data-gn-aside-current-indicator-layer]';
|
|
7
|
+
function getCurrentRowKey(row) {
|
|
8
|
+
return JSON.stringify([
|
|
9
|
+
currentIndicatorDom.getCompositeBarSection(row),
|
|
10
|
+
row.getAttribute(constants.COMPOSITE_BAR_ITEM_ID_ATTRIBUTE),
|
|
11
|
+
]);
|
|
12
|
+
}
|
|
13
|
+
function captureCurrentIdentity(panel) {
|
|
14
|
+
const snapshot = new Map();
|
|
15
|
+
panel.querySelectorAll(currentIndicatorDom.CURRENT_ROW_SELECTOR).forEach((row) => {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
if (row.closest(DECORATIVE_SELECTOR))
|
|
18
|
+
return;
|
|
19
|
+
let currentIds;
|
|
20
|
+
try {
|
|
21
|
+
currentIds = JSON.parse((_a = row.getAttribute(currentIndicatorDom.CURRENT_IDS_ATTRIBUTE)) !== null && _a !== void 0 ? _a : '[]');
|
|
22
|
+
}
|
|
23
|
+
catch (_c) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (!Array.isArray(currentIds) ||
|
|
27
|
+
!currentIds.length ||
|
|
28
|
+
!currentIds.every((id) => typeof id === 'string'))
|
|
29
|
+
return;
|
|
30
|
+
const surface = row.querySelector(currentIndicatorDom.SURFACE_SELECTOR);
|
|
31
|
+
if (!surface)
|
|
32
|
+
return;
|
|
33
|
+
snapshot.set(row, {
|
|
34
|
+
key: getCurrentRowKey(row),
|
|
35
|
+
section: currentIndicatorDom.getCompositeBarSection(row),
|
|
36
|
+
rowId: (_b = row.getAttribute(constants.COMPOSITE_BAR_ITEM_ID_ATTRIBUTE)) !== null && _b !== undefined ? _b : '',
|
|
37
|
+
currentIds,
|
|
38
|
+
row,
|
|
39
|
+
surface,
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
return snapshot;
|
|
43
|
+
}
|
|
44
|
+
function captureCurrentPresentation(panel, identities = captureCurrentIdentity(panel)) {
|
|
45
|
+
const snapshot = new Map();
|
|
46
|
+
identities.forEach((identity) => {
|
|
47
|
+
const rect = identity.surface.getBoundingClientRect();
|
|
48
|
+
const style = getComputedStyle(identity.surface);
|
|
49
|
+
// Preserve duplicate representatives so matching can reject ambiguity.
|
|
50
|
+
snapshot.set(`${identity.key}/${snapshot.size}`, Object.assign(Object.assign({}, identity), { rect, color: style.backgroundColor, radius: style.borderRadius }));
|
|
51
|
+
});
|
|
52
|
+
return snapshot;
|
|
53
|
+
}
|
|
54
|
+
function indexCurrents(snapshot) {
|
|
55
|
+
const currents = new Map();
|
|
56
|
+
snapshot.forEach((presentation) => {
|
|
57
|
+
presentation.currentIds.forEach((id) => {
|
|
58
|
+
var _a;
|
|
59
|
+
const key = JSON.stringify([presentation.section, id]);
|
|
60
|
+
currents.set(key, [...((_a = currents.get(key)) !== null && _a !== undefined ? _a : []), presentation]);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
return currents;
|
|
64
|
+
}
|
|
65
|
+
function matchCurrentPresentations(before, after) {
|
|
66
|
+
const targets = indexCurrents(after);
|
|
67
|
+
const transfers = [];
|
|
68
|
+
indexCurrents(before).forEach((sources, key) => {
|
|
69
|
+
const destinations = targets.get(key);
|
|
70
|
+
if (sources.length !== 1 || (destinations === null || destinations === undefined ? undefined : destinations.length) !== 1)
|
|
71
|
+
return;
|
|
72
|
+
const [from] = sources;
|
|
73
|
+
const [to] = destinations;
|
|
74
|
+
if (from.currentIds.length !== 1 || to.currentIds.length !== 1)
|
|
75
|
+
return;
|
|
76
|
+
if (from.key === to.key && !from.inFlight)
|
|
77
|
+
return;
|
|
78
|
+
if (![from, to].every(({ rect }) => rect.width > 0 && rect.height > 0))
|
|
79
|
+
return;
|
|
80
|
+
transfers.push({ from, to });
|
|
81
|
+
});
|
|
82
|
+
return transfers;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
exports.captureCurrentIdentity = captureCurrentIdentity;
|
|
86
|
+
exports.captureCurrentPresentation = captureCurrentPresentation;
|
|
87
|
+
exports.getCurrentRowKey = getCurrentRowKey;
|
|
88
|
+
exports.matchCurrentPresentations = matchCurrentPresentations;
|
|
89
|
+
//# sourceMappingURL=currentIndicatorModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currentIndicatorModel.js","sources":["../../../../../../../src/components/AsideHeader/components/PageLayout/currentIndicatorModel.ts"],"sourcesContent":["import {COMPOSITE_BAR_ITEM_ID_ATTRIBUTE} from '../CompositeBar/constants';\n\nimport {\n CURRENT_IDS_ATTRIBUTE,\n CURRENT_ROW_SELECTOR,\n SURFACE_SELECTOR,\n getCompositeBarSection,\n} from './currentIndicatorDom';\n\ntype CurrentIdentity = {\n key: string;\n section: string;\n rowId: string;\n currentIds: string[];\n row: HTMLElement;\n surface: HTMLElement;\n};\nexport type CurrentIdentitySnapshot = Map<HTMLElement, CurrentIdentity>;\nexport type CurrentPresentation = CurrentIdentity & {\n rect: DOMRect;\n color: string;\n radius: string;\n inFlight?: boolean;\n};\nexport type CurrentSnapshot = Map<string, CurrentPresentation>;\nexport type CurrentTransfer = {from: CurrentPresentation; to: CurrentPresentation};\n\nconst DECORATIVE_SELECTOR =\n '[data-gn-aside-transition-overlay], [data-gn-aside-current-indicator-layer]';\n\nexport function getCurrentRowKey(row: HTMLElement): string {\n return JSON.stringify([\n getCompositeBarSection(row),\n row.getAttribute(COMPOSITE_BAR_ITEM_ID_ATTRIBUTE),\n ]);\n}\n\nexport function captureCurrentIdentity(panel: HTMLElement): CurrentIdentitySnapshot {\n const snapshot: CurrentIdentitySnapshot = new Map();\n panel.querySelectorAll<HTMLElement>(CURRENT_ROW_SELECTOR).forEach((row) => {\n if (row.closest(DECORATIVE_SELECTOR)) return;\n let currentIds: unknown;\n try {\n currentIds = JSON.parse(row.getAttribute(CURRENT_IDS_ATTRIBUTE) ?? '[]');\n } catch {\n return;\n }\n if (\n !Array.isArray(currentIds) ||\n !currentIds.length ||\n !currentIds.every((id) => typeof id === 'string')\n )\n return;\n const surface = row.querySelector<HTMLElement>(SURFACE_SELECTOR);\n if (!surface) return;\n snapshot.set(row, {\n key: getCurrentRowKey(row),\n section: getCompositeBarSection(row),\n rowId: row.getAttribute(COMPOSITE_BAR_ITEM_ID_ATTRIBUTE) ?? '',\n currentIds,\n row,\n surface,\n });\n });\n return snapshot;\n}\n\nexport function captureCurrentPresentation(\n panel: HTMLElement,\n identities = captureCurrentIdentity(panel),\n): CurrentSnapshot {\n const snapshot: CurrentSnapshot = new Map();\n identities.forEach((identity) => {\n const rect = identity.surface.getBoundingClientRect();\n const style = getComputedStyle(identity.surface);\n // Preserve duplicate representatives so matching can reject ambiguity.\n snapshot.set(`${identity.key}/${snapshot.size}`, {\n ...identity,\n rect,\n color: style.backgroundColor,\n radius: style.borderRadius,\n });\n });\n return snapshot;\n}\n\nfunction indexCurrents(snapshot: CurrentSnapshot) {\n const currents = new Map<string, CurrentPresentation[]>();\n snapshot.forEach((presentation) => {\n presentation.currentIds.forEach((id) => {\n const key = JSON.stringify([presentation.section, id]);\n currents.set(key, [...(currents.get(key) ?? []), presentation]);\n });\n });\n return currents;\n}\n\nexport function matchCurrentPresentations(\n before: CurrentSnapshot,\n after: CurrentSnapshot,\n): CurrentTransfer[] {\n const targets = indexCurrents(after);\n const transfers: CurrentTransfer[] = [];\n indexCurrents(before).forEach((sources, key) => {\n const destinations = targets.get(key);\n if (sources.length !== 1 || destinations?.length !== 1) return;\n const [from] = sources;\n const [to] = destinations;\n if (from.currentIds.length !== 1 || to.currentIds.length !== 1) return;\n if (from.key === to.key && !from.inFlight) return;\n if (![from, to].every(({rect}) => rect.width > 0 && rect.height > 0)) return;\n transfers.push({from, to});\n });\n return transfers;\n}\n"],"names":["getCompositeBarSection","COMPOSITE_BAR_ITEM_ID_ATTRIBUTE","CURRENT_ROW_SELECTOR","CURRENT_IDS_ATTRIBUTE","SURFACE_SELECTOR"],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@ var AsideHeaderContext = require('../AsideHeaderContext.js');
|
|
|
7
7
|
var utils = require('../utils.js');
|
|
8
8
|
|
|
9
9
|
const Panels = () => {
|
|
10
|
-
const { panelItems, onClosePanel, size } = AsideHeaderContext.useAsideHeaderInnerContext();
|
|
10
|
+
const { panelItems, onClosePanel, size, compactTransition = true } = AsideHeaderContext.useAsideHeaderInnerContext();
|
|
11
11
|
return panelItems ? (React.createElement(React.Fragment, null, panelItems.map((_a) => {
|
|
12
12
|
var { id, className, style: itemStyle } = _a, rest = tslib.__rest(_a, ["id", "className", "style"]);
|
|
13
|
-
return (React.createElement(uikit.Drawer, Object.assign({}, rest, { key: id, className: utils.b('panels'), onOpenChange: (open) => !open && (onClosePanel === null || onClosePanel === undefined ? undefined : onClosePanel()), style: Object.assign(Object.assign({}, itemStyle), { left: size, top: 'var(--gn-top-alert-height, 0px)' }), contentClassName: utils.b('panel', className) })));
|
|
13
|
+
return (React.createElement(uikit.Drawer, Object.assign({}, rest, { key: id, className: utils.b('panels', utils.getCompactTransitionClassName(compactTransition)), onOpenChange: (open) => !open && (onClosePanel === null || onClosePanel === undefined ? undefined : onClosePanel()), style: Object.assign(Object.assign({}, itemStyle), { left: size, top: 'var(--gn-top-alert-height, 0px)' }), contentClassName: utils.b('panel', className) })));
|
|
14
14
|
}))) : null;
|
|
15
15
|
};
|
|
16
16
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Panels.js","sources":["../../../../../../src/components/AsideHeader/components/Panels.tsx"],"sourcesContent":["import React from 'react';\n\nimport {Drawer} from '@gravity-ui/uikit';\n\nimport {useAsideHeaderInnerContext} from '../AsideHeaderContext';\nimport {b} from '../utils';\n\nexport const Panels = () => {\n const {panelItems, onClosePanel, size} = useAsideHeaderInnerContext();\n\n return panelItems ? (\n <React.Fragment>\n {panelItems.map(({id, className, style: itemStyle, ...rest}) => (\n <Drawer\n {...rest}\n key={id}\n className={b('panels')}\n onOpenChange={(open) => !open && onClosePanel?.()}\n style={{...itemStyle, left: size, top: 'var(--gn-top-alert-height, 0px)'}}\n contentClassName={b('panel', className)}\n />\n ))}\n </React.Fragment>\n ) : null;\n};\n"],"names":["useAsideHeaderInnerContext","__rest","Drawer","b"],"mappings":";;;;;;;;AAOO,MAAM,MAAM,GAAG,MAAK;
|
|
1
|
+
{"version":3,"file":"Panels.js","sources":["../../../../../../src/components/AsideHeader/components/Panels.tsx"],"sourcesContent":["import React from 'react';\n\nimport {Drawer} from '@gravity-ui/uikit';\n\nimport {useAsideHeaderInnerContext} from '../AsideHeaderContext';\nimport {b, getCompactTransitionClassName} from '../utils';\n\nexport const Panels = () => {\n const {panelItems, onClosePanel, size, compactTransition = true} = useAsideHeaderInnerContext();\n\n return panelItems ? (\n <React.Fragment>\n {panelItems.map(({id, className, style: itemStyle, ...rest}) => (\n <Drawer\n {...rest}\n key={id}\n className={b('panels', getCompactTransitionClassName(compactTransition))}\n onOpenChange={(open) => !open && onClosePanel?.()}\n style={{...itemStyle, left: size, top: 'var(--gn-top-alert-height, 0px)'}}\n contentClassName={b('panel', className)}\n />\n ))}\n </React.Fragment>\n ) : null;\n};\n"],"names":["useAsideHeaderInnerContext","__rest","Drawer","b","getCompactTransitionClassName"],"mappings":";;;;;;;;AAOO,MAAM,MAAM,GAAG,MAAK;AACvB,IAAA,MAAM,EAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAAC,GAAGA,6CAA0B,EAAE;AAE/F,IAAA,OAAO,UAAU,IACb,oBAAC,KAAK,CAAC,QAAQ,EAAA,IAAA,EACV,UAAU,CAAC,GAAG,CAAC,CAAC,EAA0C,KAAI;AAA9C,QAAA,IAAA,EAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAA,GAAA,EAAU,EAAL,IAAI,GAAzCC,YAAA,CAAA,EAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,OAAA,CAA0C,CAAD;AAAM,QAAA,QAC5D,KAAA,CAAA,aAAA,CAACC,YAAM,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACC,IAAI,EAAA,EACR,GAAG,EAAE,EAAE,EACP,SAAS,EAAEC,OAAC,CAAC,QAAQ,EAAEC,mCAA6B,CAAC,iBAAiB,CAAC,CAAC,EACxE,YAAY,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,KAAI,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,SAAA,GAAA,SAAA,GAAA,YAAY,EAAI,CAAA,EACjD,KAAK,EAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,SAAS,CAAE,EAAA,EAAA,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,iCAAiC,EACxE,CAAA,EAAA,gBAAgB,EAAED,OAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAA,CAAA,CACzC;AACL,KAAA,CAAC,CACW,IACjB,IAAI;AACZ;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
export type AsideHeaderMenuDensity = 'default' | 'compact';
|
|
3
|
+
interface AsideHeaderDensityConfig {
|
|
4
|
+
itemHeight: number;
|
|
5
|
+
twoLineItemHeight: number;
|
|
6
|
+
actionSize: number;
|
|
7
|
+
actionItemHeight: number;
|
|
8
|
+
iconSize: number;
|
|
9
|
+
itemMarginInline: number;
|
|
10
|
+
iconBackgroundSize: number;
|
|
11
|
+
compactWidth: number;
|
|
12
|
+
expandedWidth: number;
|
|
13
|
+
footerItemHeight: number;
|
|
14
|
+
itemExpandedRadius: number;
|
|
15
|
+
itemCollapsedRadius: number;
|
|
16
|
+
itemTitleGap: number;
|
|
17
|
+
itemTitleGapEnd: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function getAsideHeaderDensityConfig(density?: AsideHeaderMenuDensity): AsideHeaderDensityConfig;
|
|
20
|
+
export declare function getAsideHeaderDensityCssProperties(density?: AsideHeaderMenuDensity): CSSProperties;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var constants = require('../constants.js');
|
|
4
|
+
|
|
5
|
+
const ASIDE_HEADER_DENSITY_CONFIG = {
|
|
6
|
+
default: {
|
|
7
|
+
itemHeight: constants.ITEM_HEIGHT,
|
|
8
|
+
twoLineItemHeight: 56,
|
|
9
|
+
actionSize: 36,
|
|
10
|
+
actionItemHeight: 50,
|
|
11
|
+
iconSize: constants.ASIDE_HEADER_ICON_SIZE,
|
|
12
|
+
itemMarginInline: 8,
|
|
13
|
+
iconBackgroundSize: 38,
|
|
14
|
+
compactWidth: constants.ASIDE_HEADER_COMPACT_WIDTH,
|
|
15
|
+
expandedWidth: constants.ASIDE_HEADER_EXPANDED_WIDTH,
|
|
16
|
+
footerItemHeight: constants.ITEM_HEIGHT,
|
|
17
|
+
itemExpandedRadius: 8,
|
|
18
|
+
itemCollapsedRadius: 7,
|
|
19
|
+
itemTitleGap: 8,
|
|
20
|
+
itemTitleGapEnd: 16,
|
|
21
|
+
},
|
|
22
|
+
compact: {
|
|
23
|
+
itemHeight: 32,
|
|
24
|
+
twoLineItemHeight: 45,
|
|
25
|
+
actionSize: 32,
|
|
26
|
+
actionItemHeight: 46,
|
|
27
|
+
iconSize: 16,
|
|
28
|
+
itemMarginInline: 6,
|
|
29
|
+
iconBackgroundSize: 32,
|
|
30
|
+
compactWidth: 44,
|
|
31
|
+
expandedWidth: 220,
|
|
32
|
+
footerItemHeight: 32,
|
|
33
|
+
itemExpandedRadius: 6,
|
|
34
|
+
itemCollapsedRadius: 6,
|
|
35
|
+
itemTitleGap: 4,
|
|
36
|
+
itemTitleGapEnd: 8,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
function getAsideHeaderDensityConfig(density = 'default') {
|
|
40
|
+
return ASIDE_HEADER_DENSITY_CONFIG[density];
|
|
41
|
+
}
|
|
42
|
+
function getAsideHeaderDensityCssProperties(density = 'default') {
|
|
43
|
+
const config = getAsideHeaderDensityConfig(density);
|
|
44
|
+
return {
|
|
45
|
+
'--_--gn-aside-header-density-item-height': `${config.itemHeight}px`,
|
|
46
|
+
'--_--gn-aside-header-density-action-size': `${config.actionSize}px`,
|
|
47
|
+
'--_--gn-aside-header-density-icon-size': `${config.iconSize}px`,
|
|
48
|
+
'--_--gn-aside-header-density-footer-item-height': `${config.footerItemHeight}px`,
|
|
49
|
+
'--_--gn-aside-header-density-item-margin-inline': `${config.itemMarginInline}px`,
|
|
50
|
+
'--_--gn-aside-header-density-icon-background-size': `${config.iconBackgroundSize}px`,
|
|
51
|
+
'--_--gn-aside-header-density-compact-width': `${config.compactWidth}px`,
|
|
52
|
+
'--_--gn-aside-header-density-item-expanded-radius': `${config.itemExpandedRadius}px`,
|
|
53
|
+
'--_--gn-aside-header-density-item-collapsed-radius': `${config.itemCollapsedRadius}px`,
|
|
54
|
+
'--_--gn-aside-header-density-item-title-gap': `${config.itemTitleGap}px`,
|
|
55
|
+
'--_--gn-aside-header-density-item-title-gap-end': `${config.itemTitleGapEnd}px`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
exports.getAsideHeaderDensityConfig = getAsideHeaderDensityConfig;
|
|
60
|
+
exports.getAsideHeaderDensityCssProperties = getAsideHeaderDensityCssProperties;
|
|
61
|
+
//# sourceMappingURL=density.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"density.js","sources":["../../../../../src/components/AsideHeader/density.ts"],"sourcesContent":["import type {CSSProperties} from 'react';\n\nimport {\n ASIDE_HEADER_COMPACT_WIDTH,\n ASIDE_HEADER_EXPANDED_WIDTH,\n ASIDE_HEADER_ICON_SIZE,\n ITEM_HEIGHT,\n} from '../constants';\n\nexport type AsideHeaderMenuDensity = 'default' | 'compact';\n\ninterface AsideHeaderDensityConfig {\n itemHeight: number;\n twoLineItemHeight: number;\n actionSize: number;\n actionItemHeight: number;\n iconSize: number;\n itemMarginInline: number;\n iconBackgroundSize: number;\n compactWidth: number;\n expandedWidth: number;\n footerItemHeight: number;\n itemExpandedRadius: number;\n itemCollapsedRadius: number;\n itemTitleGap: number;\n itemTitleGapEnd: number;\n}\n\nconst ASIDE_HEADER_DENSITY_CONFIG: Record<AsideHeaderMenuDensity, AsideHeaderDensityConfig> = {\n default: {\n itemHeight: ITEM_HEIGHT,\n twoLineItemHeight: 56,\n actionSize: 36,\n actionItemHeight: 50,\n iconSize: ASIDE_HEADER_ICON_SIZE,\n itemMarginInline: 8,\n iconBackgroundSize: 38,\n compactWidth: ASIDE_HEADER_COMPACT_WIDTH,\n expandedWidth: ASIDE_HEADER_EXPANDED_WIDTH,\n footerItemHeight: ITEM_HEIGHT,\n itemExpandedRadius: 8,\n itemCollapsedRadius: 7,\n itemTitleGap: 8,\n itemTitleGapEnd: 16,\n },\n compact: {\n itemHeight: 32,\n twoLineItemHeight: 45,\n actionSize: 32,\n actionItemHeight: 46,\n iconSize: 16,\n itemMarginInline: 6,\n iconBackgroundSize: 32,\n compactWidth: 44,\n expandedWidth: 220,\n footerItemHeight: 32,\n itemExpandedRadius: 6,\n itemCollapsedRadius: 6,\n itemTitleGap: 4,\n itemTitleGapEnd: 8,\n },\n};\n\nexport function getAsideHeaderDensityConfig(\n density: AsideHeaderMenuDensity = 'default',\n): AsideHeaderDensityConfig {\n return ASIDE_HEADER_DENSITY_CONFIG[density];\n}\n\nexport function getAsideHeaderDensityCssProperties(\n density: AsideHeaderMenuDensity = 'default',\n): CSSProperties {\n const config = getAsideHeaderDensityConfig(density);\n\n return {\n '--_--gn-aside-header-density-item-height': `${config.itemHeight}px`,\n '--_--gn-aside-header-density-action-size': `${config.actionSize}px`,\n '--_--gn-aside-header-density-icon-size': `${config.iconSize}px`,\n '--_--gn-aside-header-density-footer-item-height': `${config.footerItemHeight}px`,\n '--_--gn-aside-header-density-item-margin-inline': `${config.itemMarginInline}px`,\n '--_--gn-aside-header-density-icon-background-size': `${config.iconBackgroundSize}px`,\n '--_--gn-aside-header-density-compact-width': `${config.compactWidth}px`,\n '--_--gn-aside-header-density-item-expanded-radius': `${config.itemExpandedRadius}px`,\n '--_--gn-aside-header-density-item-collapsed-radius': `${config.itemCollapsedRadius}px`,\n '--_--gn-aside-header-density-item-title-gap': `${config.itemTitleGap}px`,\n '--_--gn-aside-header-density-item-title-gap-end': `${config.itemTitleGapEnd}px`,\n } as CSSProperties;\n}\n"],"names":["ITEM_HEIGHT","ASIDE_HEADER_ICON_SIZE","ASIDE_HEADER_COMPACT_WIDTH","ASIDE_HEADER_EXPANDED_WIDTH"],"mappings":";;;;AA4BA,MAAM,2BAA2B,GAA6D;AAC1F,IAAA,OAAO,EAAE;AACL,QAAA,UAAU,EAAEA,qBAAW;AACvB,QAAA,iBAAiB,EAAE,EAAE;AACrB,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,gBAAgB,EAAE,EAAE;AACpB,QAAA,QAAQ,EAAEC,gCAAsB;AAChC,QAAA,gBAAgB,EAAE,CAAC;AACnB,QAAA,kBAAkB,EAAE,EAAE;AACtB,QAAA,YAAY,EAAEC,oCAA0B;AACxC,QAAA,aAAa,EAAEC,qCAA2B;AAC1C,QAAA,gBAAgB,EAAEH,qBAAW;AAC7B,QAAA,kBAAkB,EAAE,CAAC;AACrB,QAAA,mBAAmB,EAAE,CAAC;AACtB,QAAA,YAAY,EAAE,CAAC;AACf,QAAA,eAAe,EAAE,EAAE;AACtB,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,iBAAiB,EAAE,EAAE;AACrB,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,gBAAgB,EAAE,EAAE;AACpB,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,gBAAgB,EAAE,CAAC;AACnB,QAAA,kBAAkB,EAAE,EAAE;AACtB,QAAA,YAAY,EAAE,EAAE;AAChB,QAAA,aAAa,EAAE,GAAG;AAClB,QAAA,gBAAgB,EAAE,EAAE;AACpB,QAAA,kBAAkB,EAAE,CAAC;AACrB,QAAA,mBAAmB,EAAE,CAAC;AACtB,QAAA,YAAY,EAAE,CAAC;AACf,QAAA,eAAe,EAAE,CAAC;AACrB,KAAA;CACJ;AAEe,SAAA,2BAA2B,CACvC,OAAA,GAAkC,SAAS,EAAA;AAE3C,IAAA,OAAO,2BAA2B,CAAC,OAAO,CAAC;AAC/C;AAEgB,SAAA,kCAAkC,CAC9C,OAAA,GAAkC,SAAS,EAAA;AAE3C,IAAA,MAAM,MAAM,GAAG,2BAA2B,CAAC,OAAO,CAAC;IAEnD,OAAO;AACH,QAAA,0CAA0C,EAAE,CAAA,EAAG,MAAM,CAAC,UAAU,CAAI,EAAA,CAAA;AACpE,QAAA,0CAA0C,EAAE,CAAA,EAAG,MAAM,CAAC,UAAU,CAAI,EAAA,CAAA;AACpE,QAAA,wCAAwC,EAAE,CAAA,EAAG,MAAM,CAAC,QAAQ,CAAI,EAAA,CAAA;AAChE,QAAA,iDAAiD,EAAE,CAAA,EAAG,MAAM,CAAC,gBAAgB,CAAI,EAAA,CAAA;AACjF,QAAA,iDAAiD,EAAE,CAAA,EAAG,MAAM,CAAC,gBAAgB,CAAI,EAAA,CAAA;AACjF,QAAA,mDAAmD,EAAE,CAAA,EAAG,MAAM,CAAC,kBAAkB,CAAI,EAAA,CAAA;AACrF,QAAA,4CAA4C,EAAE,CAAA,EAAG,MAAM,CAAC,YAAY,CAAI,EAAA,CAAA;AACxE,QAAA,mDAAmD,EAAE,CAAA,EAAG,MAAM,CAAC,kBAAkB,CAAI,EAAA,CAAA;AACrF,QAAA,oDAAoD,EAAE,CAAA,EAAG,MAAM,CAAC,mBAAmB,CAAI,EAAA,CAAA;AACvF,QAAA,6CAA6C,EAAE,CAAA,EAAG,MAAM,CAAC,YAAY,CAAI,EAAA,CAAA;AACzE,QAAA,iDAAiD,EAAE,CAAA,EAAG,MAAM,CAAC,eAAe,CAAI,EAAA,CAAA;KAClE;AACtB;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function translate(key: string): string;
|
|
@@ -5,14 +5,23 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var button_collapse = "Collapse";
|
|
6
6
|
var button_expand = "Expand";
|
|
7
7
|
var label_more = "More";
|
|
8
|
+
var quick_access_pin = "Pin to quick access";
|
|
9
|
+
var quick_access_unpin = "Remove from quick access";
|
|
10
|
+
var quick_access_title = "Pinned";
|
|
8
11
|
var en = {
|
|
9
12
|
button_collapse: button_collapse,
|
|
10
13
|
button_expand: button_expand,
|
|
11
|
-
label_more: label_more
|
|
14
|
+
label_more: label_more,
|
|
15
|
+
quick_access_pin: quick_access_pin,
|
|
16
|
+
quick_access_unpin: quick_access_unpin,
|
|
17
|
+
quick_access_title: quick_access_title
|
|
12
18
|
};
|
|
13
19
|
|
|
14
20
|
exports.button_collapse = button_collapse;
|
|
15
21
|
exports.button_expand = button_expand;
|
|
16
22
|
exports.default = en;
|
|
17
23
|
exports.label_more = label_more;
|
|
24
|
+
exports.quick_access_pin = quick_access_pin;
|
|
25
|
+
exports.quick_access_title = quick_access_title;
|
|
26
|
+
exports.quick_access_unpin = quick_access_unpin;
|
|
18
27
|
//# sourceMappingURL=en.json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
declare const _default: ((key: "button_collapse" | "button_expand" | "label_more", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
1
|
+
declare const _default: ((key: "button_collapse" | "button_expand" | "label_more" | "quick_access_pin" | "quick_access_unpin" | "quick_access_title", params?: import("@gravity-ui/i18n").Params) => string) & {
|
|
2
2
|
Translation: import("react").ComponentType<{
|
|
3
3
|
children: (props: {
|
|
4
|
-
t: (key: "button_collapse" | "button_expand" | "label_more", params?: import("@gravity-ui/i18n").Params) => string;
|
|
4
|
+
t: (key: "button_collapse" | "button_expand" | "label_more" | "quick_access_pin" | "quick_access_unpin" | "quick_access_title", params?: import("@gravity-ui/i18n").Params) => string;
|
|
5
5
|
}) => React.ReactNode;
|
|
6
6
|
}>;
|
|
7
7
|
useTranslation: () => {
|
|
8
|
-
t: (key: "button_collapse" | "button_expand" | "label_more", params?: import("@gravity-ui/i18n").Params) => string;
|
|
8
|
+
t: (key: "button_collapse" | "button_expand" | "label_more" | "quick_access_pin" | "quick_access_unpin" | "quick_access_title", params?: import("@gravity-ui/i18n").Params) => string;
|
|
9
9
|
};
|
|
10
10
|
keysetData: {
|
|
11
|
-
"gn-AsideHeader": Record<"button_collapse" | "button_expand" | "label_more", import("@gravity-ui/i18n").KeyData>;
|
|
11
|
+
"gn-AsideHeader": Record<"button_collapse" | "button_expand" | "label_more" | "quick_access_pin" | "quick_access_unpin" | "quick_access_title", import("@gravity-ui/i18n").KeyData>;
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
14
|
export default _default;
|
|
@@ -5,14 +5,23 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var button_collapse = "Свернуть";
|
|
6
6
|
var button_expand = "Развернуть";
|
|
7
7
|
var label_more = "Ещё";
|
|
8
|
+
var quick_access_pin = "Закрепить в быстром доступе";
|
|
9
|
+
var quick_access_unpin = "Убрать из быстрого доступа";
|
|
10
|
+
var quick_access_title = "Закреплённые";
|
|
8
11
|
var ru = {
|
|
9
12
|
button_collapse: button_collapse,
|
|
10
13
|
button_expand: button_expand,
|
|
11
|
-
label_more: label_more
|
|
14
|
+
label_more: label_more,
|
|
15
|
+
quick_access_pin: quick_access_pin,
|
|
16
|
+
quick_access_unpin: quick_access_unpin,
|
|
17
|
+
quick_access_title: quick_access_title
|
|
12
18
|
};
|
|
13
19
|
|
|
14
20
|
exports.button_collapse = button_collapse;
|
|
15
21
|
exports.button_expand = button_expand;
|
|
16
22
|
exports.default = ru;
|
|
17
23
|
exports.label_more = label_more;
|
|
24
|
+
exports.quick_access_pin = quick_access_pin;
|
|
25
|
+
exports.quick_access_title = quick_access_title;
|
|
26
|
+
exports.quick_access_unpin = quick_access_unpin;
|
|
18
27
|
//# sourceMappingURL=ru.json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ru.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ru.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { AsideHeader } from './AsideHeader';
|
|
2
|
+
export type { AsideHeaderMenuDensity } from './density';
|
|
2
3
|
export type { AsideHeaderProps, AsideHeaderItem, PanelItemProps } from './types';
|
|
3
4
|
export type { MenuGroup } from '../types';
|
|
4
5
|
export { AsideHeaderContextProvider, useAsideHeaderContext } from './AsideHeaderContext';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MenuGroup } from '../types';
|
|
2
|
+
import { AsideHeaderItem } from './types';
|
|
3
|
+
type QuickAccessPinCandidate = Pick<AsideHeaderItem, 'id' | 'type' | 'hidden' | 'quickAccess' | 'compositeBarMenuPopupItems'> & {
|
|
4
|
+
groupHeaderExpanded?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function isQuickAccessPinEligible(item: QuickAccessPinCandidate): boolean;
|
|
7
|
+
export declare function isQuickAccessMenuItem(item: AsideHeaderItem): boolean;
|
|
8
|
+
export declare function getQuickAccessMenuItems(items: AsideHeaderItem[], menuGroups?: MenuGroup[]): AsideHeaderItem[];
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var constants = require('./components/CompositeBar/constants.js');
|
|
4
|
+
var types = require('./types.js');
|
|
5
|
+
|
|
6
|
+
function isQuickAccessPinEligible(item) {
|
|
7
|
+
var _a;
|
|
8
|
+
if (item.hidden || item.groupHeaderExpanded !== undefined) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
if (item.type === 'divider' || item.type === 'action') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
if (item.id === constants.COLLAPSE_ITEM_ID || item.id === types.ALL_PAGES_ID) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return !((_a = item.compositeBarMenuPopupItems) === null || _a === undefined ? undefined : _a.length);
|
|
18
|
+
}
|
|
19
|
+
function isQuickAccessMenuItem(item) {
|
|
20
|
+
return Boolean(item.quickAccess) && isQuickAccessPinEligible(item);
|
|
21
|
+
}
|
|
22
|
+
function getQuickAccessMenuItems(items, menuGroups) {
|
|
23
|
+
var _a;
|
|
24
|
+
const hiddenGroupIds = new Set((_a = menuGroups === null || menuGroups === undefined ? undefined : menuGroups.filter((group) => group.hidden).map((group) => group.id)) !== null && _a !== undefined ? _a : []);
|
|
25
|
+
return items.filter((item) => isQuickAccessMenuItem(item) && (!item.groupId || !hiddenGroupIds.has(item.groupId)));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
exports.getQuickAccessMenuItems = getQuickAccessMenuItems;
|
|
29
|
+
exports.isQuickAccessMenuItem = isQuickAccessMenuItem;
|
|
30
|
+
exports.isQuickAccessPinEligible = isQuickAccessPinEligible;
|
|
31
|
+
//# sourceMappingURL=quickAccess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quickAccess.js","sources":["../../../../../src/components/AsideHeader/quickAccess.ts"],"sourcesContent":["import {MenuGroup} from '../types';\n\nimport {COLLAPSE_ITEM_ID} from './components/CompositeBar/constants';\nimport {ALL_PAGES_ID, AsideHeaderItem} from './types';\n\ntype QuickAccessPinCandidate = Pick<\n AsideHeaderItem,\n 'id' | 'type' | 'hidden' | 'quickAccess' | 'compositeBarMenuPopupItems'\n> & {\n groupHeaderExpanded?: boolean;\n};\n\nexport function isQuickAccessPinEligible(item: QuickAccessPinCandidate): boolean {\n if (item.hidden || item.groupHeaderExpanded !== undefined) {\n return false;\n }\n\n if (item.type === 'divider' || item.type === 'action') {\n return false;\n }\n\n if (item.id === COLLAPSE_ITEM_ID || item.id === ALL_PAGES_ID) {\n return false;\n }\n\n return !item.compositeBarMenuPopupItems?.length;\n}\n\nexport function isQuickAccessMenuItem(item: AsideHeaderItem): boolean {\n return Boolean(item.quickAccess) && isQuickAccessPinEligible(item);\n}\n\nexport function getQuickAccessMenuItems(\n items: AsideHeaderItem[],\n menuGroups?: MenuGroup[],\n): AsideHeaderItem[] {\n const hiddenGroupIds = new Set(\n menuGroups?.filter((group) => group.hidden).map((group) => group.id) ?? [],\n );\n\n return items.filter(\n (item) =>\n isQuickAccessMenuItem(item) && (!item.groupId || !hiddenGroupIds.has(item.groupId)),\n );\n}\n"],"names":["COLLAPSE_ITEM_ID","ALL_PAGES_ID"],"mappings":";;;;;AAYM,SAAU,wBAAwB,CAAC,IAA6B,EAAA;;IAClE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE;AACvD,QAAA,OAAO,KAAK;;AAGhB,IAAA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACnD,QAAA,OAAO,KAAK;;AAGhB,IAAA,IAAI,IAAI,CAAC,EAAE,KAAKA,0BAAgB,IAAI,IAAI,CAAC,EAAE,KAAKC,kBAAY,EAAE;AAC1D,QAAA,OAAO,KAAK;;IAGhB,OAAO,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,0BAA0B,MAAA,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,SAAA,GAAA,EAAA,CAAE,MAAM,CAAA;AACnD;AAEM,SAAU,qBAAqB,CAAC,IAAqB,EAAA;IACvD,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC;AACtE;AAEgB,SAAA,uBAAuB,CACnC,KAAwB,EACxB,UAAwB,EAAA;;AAExB,IAAA,MAAM,cAAc,GAAG,IAAI,GAAG,CAC1B,MAAA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,SAAA,GAAA,SAAA,GAAV,UAAU,CAAE,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAA,CAAE,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,EAAA,GAAA,EAAE,CAC7E;AAED,IAAA,OAAO,KAAK,CAAC,MAAM,CACf,CAAC,IAAI,KACD,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAC1F;AACL;;;;;;"}
|