@gravity-ui/navigation 5.0.0-beta.3 → 5.0.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/assets/icons/divider-collapsed-compact.svg.js +41 -0
- package/build/cjs/assets/icons/divider-collapsed-compact.svg.js.map +1 -0
- package/build/cjs/components/AsideHeader/AsideHeader.css +1 -1
- package/build/cjs/components/AsideHeader/AsideHeader.js +3 -3
- 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 +17 -4
- package/build/cjs/components/AsideHeader/AsideHeaderContext.js +10 -8
- package/build/cjs/components/AsideHeader/AsideHeaderContext.js.map +1 -1
- package/build/cjs/components/AsideHeader/FooterLayoutContext.d.ts +7 -0
- package/build/cjs/components/AsideHeader/FooterLayoutContext.js +10 -0
- package/build/cjs/components/AsideHeader/FooterLayoutContext.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +23 -15
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +10 -5
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.d.ts +9 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js +27 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +71 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +122 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +3 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +23 -22
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
- package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +2 -1
- package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js +13 -13
- 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/CompositeBar/CompositeBar.css +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +11 -5
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +63 -165
- 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/Item/Item.css +25 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +7 -2
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +26 -8
- 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/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +8 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +27 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +8 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/index.d.ts +1 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.d.ts +21 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js +146 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +4 -2
- package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js +57 -7
- package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/FirstPanel.js +29 -9
- package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.css +1 -0
- package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.d.ts +19 -0
- package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.js +95 -0
- package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js +8 -0
- package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/FooterBar/constants.d.ts +1 -0
- package/build/cjs/components/AsideHeader/components/FooterBar/constants.js +6 -0
- package/build/cjs/components/AsideHeader/components/FooterBar/constants.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/FooterBar/index.d.ts +1 -0
- package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
- package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.d.ts +2 -0
- package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js +12 -1
- 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 +9 -6
- package/build/cjs/components/AsideHeader/components/Header.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +2 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js +4 -3
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +2 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +4 -2
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js +12 -9
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +2 -0
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -3
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/Panels.js +6 -3
- package/build/cjs/components/AsideHeader/components/Panels.js.map +1 -1
- package/build/cjs/components/AsideHeader/hooks/useIsExpanded.d.ts +3 -1
- package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js +34 -11
- package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js.map +1 -1
- package/build/cjs/components/AsideHeader/i18n/en.json.js +4 -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 +4 -1
- package/build/cjs/components/AsideHeader/i18n/ru.json.js.map +1 -1
- package/build/cjs/components/AsideHeader/index.d.ts +3 -2
- package/build/cjs/components/AsideHeader/types.d.ts +30 -14
- package/build/cjs/components/AsideHeader/types.js.map +1 -1
- package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +3 -2
- package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js +31 -9
- package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
- package/build/cjs/components/AsideHeader/utils/getGroupHeight.d.ts +1 -1
- package/build/cjs/components/AsideHeader/utils/getGroupHeight.js +5 -5
- package/build/cjs/components/AsideHeader/utils/getGroupHeight.js.map +1 -1
- package/build/cjs/components/Footer/desktop/Footer.js +1 -1
- package/build/cjs/components/Footer/desktop/Footer.js.map +1 -1
- package/build/cjs/components/Footer/mobile/Footer.js +1 -1
- package/build/cjs/components/Footer/mobile/Footer.js.map +1 -1
- package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +6 -4
- package/build/cjs/components/HotkeysPanel/HotkeysPanel.js +4 -7
- package/build/cjs/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
- package/build/cjs/components/Logo/Logo.css +1 -1
- package/build/cjs/components/Logo/Logo.d.ts +7 -3
- package/build/cjs/components/Logo/Logo.js +9 -6
- package/build/cjs/components/Logo/Logo.js.map +1 -1
- package/build/cjs/components/Logo/Logo.module.scss.js +1 -1
- package/build/cjs/components/MobileHeader/MobileHeader.d.ts +4 -8
- package/build/cjs/components/MobileHeader/MobileHeader.js +24 -20
- package/build/cjs/components/MobileHeader/MobileHeader.js.map +1 -1
- package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.d.ts +2 -2
- package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.js +2 -2
- package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.js.map +1 -1
- package/build/cjs/components/MobileLogo/MobileLogo.d.ts +1 -1
- package/build/cjs/components/MobileLogo/MobileLogo.js +2 -2
- package/build/cjs/components/MobileLogo/MobileLogo.js.map +1 -1
- package/build/cjs/components/Settings/Settings.css +1 -1
- package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.css +1 -1
- package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.js +5 -1
- package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.js.map +1 -1
- package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.module.scss.js +1 -1
- package/build/cjs/components/constants.d.ts +6 -2
- package/build/cjs/components/constants.js +11 -3
- package/build/cjs/components/constants.js.map +1 -1
- package/build/cjs/components/types.d.ts +11 -6
- package/build/cjs/components/utils/getCollapsedWidth.d.ts +1 -0
- package/build/cjs/components/utils/getCollapsedWidth.js +10 -0
- package/build/cjs/components/utils/getCollapsedWidth.js.map +1 -0
- package/build/cjs/index.js +4 -0
- package/build/cjs/index.js.map +1 -1
- package/build/esm/assets/icons/divider-collapsed-compact.svg.js +18 -0
- package/build/esm/assets/icons/divider-collapsed-compact.svg.js.map +1 -0
- package/build/esm/components/AsideHeader/AsideHeader.css +1 -1
- package/build/esm/components/AsideHeader/AsideHeader.js +3 -3
- 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 +17 -4
- package/build/esm/components/AsideHeader/AsideHeaderContext.js +10 -9
- package/build/esm/components/AsideHeader/AsideHeaderContext.js.map +1 -1
- package/build/esm/components/AsideHeader/FooterLayoutContext.d.ts +7 -0
- package/build/esm/components/AsideHeader/FooterLayoutContext.js +7 -0
- package/build/esm/components/AsideHeader/FooterLayoutContext.js.map +1 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +24 -16
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +10 -5
- package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.d.ts +9 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js +25 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js.map +1 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +71 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +117 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +3 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +23 -22
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
- package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +2 -1
- package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js +13 -13
- 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/CompositeBar/CompositeBar.css +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +11 -5
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +62 -164
- 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/Item/Item.css +25 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +7 -2
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +26 -8
- 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/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +8 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +25 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +4 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js.map +1 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/index.d.ts +1 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.d.ts +21 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js +144 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js.map +1 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +4 -2
- package/build/esm/components/AsideHeader/components/CompositeBar/utils.js +57 -9
- package/build/esm/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
- package/build/esm/components/AsideHeader/components/FirstPanel.js +30 -10
- package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -1
- package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.css +1 -0
- package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.d.ts +19 -0
- package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.js +93 -0
- package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.js.map +1 -0
- package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js +4 -0
- package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js.map +1 -0
- package/build/esm/components/AsideHeader/components/FooterBar/constants.d.ts +1 -0
- package/build/esm/components/AsideHeader/components/FooterBar/constants.js +4 -0
- package/build/esm/components/AsideHeader/components/FooterBar/constants.js.map +1 -0
- package/build/esm/components/AsideHeader/components/FooterBar/index.d.ts +1 -0
- package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
- package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.d.ts +2 -0
- package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js +12 -1
- 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 +10 -7
- package/build/esm/components/AsideHeader/components/Header.js.map +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +2 -0
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js +5 -4
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +2 -0
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +4 -2
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js +13 -10
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +2 -0
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -3
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
- package/build/esm/components/AsideHeader/components/Panels.js +6 -3
- package/build/esm/components/AsideHeader/components/Panels.js.map +1 -1
- package/build/esm/components/AsideHeader/hooks/useIsExpanded.d.ts +3 -1
- package/build/esm/components/AsideHeader/hooks/useIsExpanded.js +35 -12
- package/build/esm/components/AsideHeader/hooks/useIsExpanded.js.map +1 -1
- package/build/esm/components/AsideHeader/i18n/en.json.js +4 -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 +4 -2
- package/build/esm/components/AsideHeader/i18n/ru.json.js.map +1 -1
- package/build/esm/components/AsideHeader/index.d.ts +3 -2
- package/build/esm/components/AsideHeader/types.d.ts +30 -14
- package/build/esm/components/AsideHeader/types.js.map +1 -1
- package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +3 -2
- package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js +31 -9
- package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
- package/build/esm/components/AsideHeader/utils/getGroupHeight.d.ts +1 -1
- package/build/esm/components/AsideHeader/utils/getGroupHeight.js +6 -6
- package/build/esm/components/AsideHeader/utils/getGroupHeight.js.map +1 -1
- package/build/esm/components/Footer/desktop/Footer.js +1 -1
- package/build/esm/components/Footer/desktop/Footer.js.map +1 -1
- package/build/esm/components/Footer/mobile/Footer.js +1 -1
- package/build/esm/components/Footer/mobile/Footer.js.map +1 -1
- package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +6 -4
- package/build/esm/components/HotkeysPanel/HotkeysPanel.js +4 -7
- package/build/esm/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
- package/build/esm/components/Logo/Logo.css +1 -1
- package/build/esm/components/Logo/Logo.d.ts +7 -3
- package/build/esm/components/Logo/Logo.js +9 -6
- package/build/esm/components/Logo/Logo.js.map +1 -1
- package/build/esm/components/Logo/Logo.module.scss.js +1 -1
- package/build/esm/components/MobileHeader/MobileHeader.d.ts +4 -8
- package/build/esm/components/MobileHeader/MobileHeader.js +25 -21
- package/build/esm/components/MobileHeader/MobileHeader.js.map +1 -1
- package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.d.ts +2 -2
- package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.js +2 -2
- package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.js.map +1 -1
- package/build/esm/components/MobileLogo/MobileLogo.d.ts +1 -1
- package/build/esm/components/MobileLogo/MobileLogo.js +2 -2
- package/build/esm/components/MobileLogo/MobileLogo.js.map +1 -1
- package/build/esm/components/Settings/Settings.css +1 -1
- package/build/esm/components/Settings/SettingsMenu/SettingsMenu.css +1 -1
- package/build/esm/components/Settings/SettingsMenu/SettingsMenu.js +5 -1
- package/build/esm/components/Settings/SettingsMenu/SettingsMenu.js.map +1 -1
- package/build/esm/components/Settings/SettingsMenu/SettingsMenu.module.scss.js +1 -1
- package/build/esm/components/constants.d.ts +6 -2
- package/build/esm/components/constants.js +7 -3
- package/build/esm/components/constants.js.map +1 -1
- package/build/esm/components/types.d.ts +11 -6
- package/build/esm/components/utils/getCollapsedWidth.d.ts +1 -0
- package/build/esm/components/utils/getCollapsedWidth.js +8 -0
- package/build/esm/components/utils/getCollapsedWidth.js.map +1 -0
- package/build/esm/index.js +2 -1
- package/build/esm/index.js.map +1 -1
- package/codemods/bin/cli.js +19 -6
- package/codemods/transforms/compactToIsExpanded.ts +345 -0
- package/codemods/transforms/compactToPinned.ts +135 -0
- package/codemods/transforms/v5.ts +36 -0
- package/package.json +2 -2
- package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
- package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
- package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
- package/build/cjs/components/ActionBar/__stories__/ActionBarStretchGroupShowcase.d.ts +0 -2
- package/build/cjs/components/ActionBar/__tests__/helpersPlaywright.d.ts +0 -5
- package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -23
- package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
- package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
- package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +0 -17
- package/build/cjs/components/AsideHeader/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.d.ts +0 -2
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js +0 -16
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js.map +0 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.css +0 -9
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +0 -9
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +0 -34
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +0 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js +0 -8
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js.map +0 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +0 -24
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +0 -29
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +0 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/index.d.ts +0 -2
- package/build/cjs/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -6
- package/build/cjs/components/AsideHeader/components/FooterItem/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/cjs/components/Footer/desktop/__stories__/Footer.stories.d.ts +0 -8
- package/build/cjs/components/Footer/desktop/__stories__/FooterShowcase.d.ts +0 -4
- package/build/cjs/components/Footer/desktop/__stories__/moc.d.ts +0 -3
- package/build/cjs/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/cjs/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +0 -8
- package/build/cjs/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +0 -4
- package/build/cjs/components/Footer/mobile/__stories__/moc.d.ts +0 -3
- package/build/cjs/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -5
- package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -6
- package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
- package/build/cjs/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/cjs/components/Logo/__stories__/Logo.stories.d.ts +0 -7
- package/build/cjs/components/Logo/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -6
- package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
- package/build/cjs/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +0 -6
- package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +0 -2
- package/build/cjs/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -4
- package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
- package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +0 -1
- package/build/cjs/components/MobileHeader/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/cjs/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +0 -6
- package/build/cjs/components/MobileLogo/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +0 -5
- package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
- package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
- package/build/cjs/components/Settings/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
- package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
- package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
- package/build/esm/components/ActionBar/__stories__/ActionBarStretchGroupShowcase.d.ts +0 -2
- package/build/esm/components/ActionBar/__tests__/helpersPlaywright.d.ts +0 -5
- package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -23
- package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
- package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
- package/build/esm/components/AsideHeader/__stories__/moc.d.ts +0 -17
- package/build/esm/components/AsideHeader/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.d.ts +0 -2
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js +0 -14
- package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js.map +0 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.css +0 -9
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +0 -9
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +0 -32
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +0 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js +0 -4
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js.map +0 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +0 -24
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +0 -26
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +0 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/index.d.ts +0 -2
- package/build/esm/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -6
- package/build/esm/components/AsideHeader/components/FooterItem/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/Footer/desktop/__stories__/Footer.stories.d.ts +0 -8
- package/build/esm/components/Footer/desktop/__stories__/FooterShowcase.d.ts +0 -4
- package/build/esm/components/Footer/desktop/__stories__/moc.d.ts +0 -3
- package/build/esm/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +0 -8
- package/build/esm/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +0 -4
- package/build/esm/components/Footer/mobile/__stories__/moc.d.ts +0 -3
- package/build/esm/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -5
- package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -6
- package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
- package/build/esm/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/Logo/__stories__/Logo.stories.d.ts +0 -7
- package/build/esm/components/Logo/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -6
- package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
- package/build/esm/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +0 -6
- package/build/esm/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +0 -2
- package/build/esm/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -4
- package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
- package/build/esm/components/MobileHeader/__stories__/moc.d.ts +0 -1
- package/build/esm/components/MobileHeader/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +0 -6
- package/build/esm/components/MobileLogo/__tests__/helpersPlaywright.d.ts +0 -2
- package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +0 -5
- package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
- package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
- package/build/esm/components/Settings/__tests__/helpersPlaywright.d.ts +0 -2
package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js
CHANGED
|
@@ -1,38 +1,39 @@
|
|
|
1
1
|
import { getIsMenuItem } from './getIsMenuItem.js';
|
|
2
2
|
|
|
3
|
-
/**
|
|
3
|
+
/** Items that stay at their position when sorting (not draggable). */
|
|
4
|
+
function isFixedPositionItem(item) {
|
|
5
|
+
return item.type === 'divider' || item.type === 'action';
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Sorts menu items while preserving divider and action positions at their original locations.
|
|
9
|
+
*/
|
|
4
10
|
function sortMenuItemsWithDividers(oldIndex, newIndex, currentFlatList) {
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const itemsWithoutDividers = [];
|
|
11
|
+
const fixedPositionItems = [];
|
|
12
|
+
const sortableItems = [];
|
|
8
13
|
currentFlatList.forEach((item, index) => {
|
|
9
|
-
if (item
|
|
10
|
-
|
|
14
|
+
if (isFixedPositionItem(item)) {
|
|
15
|
+
fixedPositionItems.push({ index, item });
|
|
11
16
|
}
|
|
12
17
|
else if (getIsMenuItem(item)) {
|
|
13
|
-
|
|
18
|
+
sortableItems.push(item);
|
|
14
19
|
}
|
|
15
20
|
});
|
|
16
|
-
if (
|
|
17
|
-
itemsWithoutDividers[newIndex] === undefined) {
|
|
21
|
+
if (sortableItems[oldIndex] === undefined || sortableItems[newIndex] === undefined) {
|
|
18
22
|
return currentFlatList;
|
|
19
23
|
}
|
|
20
|
-
const
|
|
21
|
-
const [movedElement] =
|
|
22
|
-
|
|
23
|
-
// Insert dividers back at their original positions in currentFlatList
|
|
24
|
+
const sortedItems = [...sortableItems];
|
|
25
|
+
const [movedElement] = sortedItems.splice(oldIndex, 1);
|
|
26
|
+
sortedItems.splice(newIndex, 0, movedElement);
|
|
24
27
|
const result = [];
|
|
25
|
-
const
|
|
26
|
-
let
|
|
28
|
+
const fixedMap = new Map(fixedPositionItems.map((f) => [f.index, f.item]));
|
|
29
|
+
let sortableIndex = 0;
|
|
27
30
|
for (let originalIndex = 0; originalIndex < currentFlatList.length; originalIndex++) {
|
|
28
|
-
const
|
|
29
|
-
if (
|
|
30
|
-
|
|
31
|
-
result.push(dividerItem);
|
|
31
|
+
const fixedItem = fixedMap.get(originalIndex);
|
|
32
|
+
if (fixedItem) {
|
|
33
|
+
result.push(fixedItem);
|
|
32
34
|
}
|
|
33
|
-
else if (
|
|
34
|
-
|
|
35
|
-
result.push(sortedItemsWithoutDividers[sortedIndex++]);
|
|
35
|
+
else if (sortableIndex < sortedItems.length) {
|
|
36
|
+
result.push(sortedItems[sortableIndex++]);
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortMenuItemsWithDividers.js","sources":["../../../../../../../../src/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.ts"],"sourcesContent":["import {MenuItemsWithGroups} from '../../../types';\n\nimport {getIsMenuItem} from './getIsMenuItem';\n\n/** Sorts menu items while preserving divider positions at their original locations
|
|
1
|
+
{"version":3,"file":"sortMenuItemsWithDividers.js","sources":["../../../../../../../../src/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.ts"],"sourcesContent":["import {MenuItemsWithGroups} from '../../../types';\n\nimport {getIsMenuItem} from './getIsMenuItem';\n\n/** Items that stay at their position when sorting (not draggable). */\nfunction isFixedPositionItem(item: MenuItemsWithGroups): boolean {\n return item.type === 'divider' || item.type === 'action';\n}\n\n/**\n * Sorts menu items while preserving divider and action positions at their original locations.\n */\nexport function sortMenuItemsWithDividers(\n oldIndex: number,\n newIndex: number,\n currentFlatList: MenuItemsWithGroups[],\n): MenuItemsWithGroups[] {\n const fixedPositionItems: Array<{index: number; item: MenuItemsWithGroups}> = [];\n const sortableItems: MenuItemsWithGroups[] = [];\n\n currentFlatList.forEach((item, index) => {\n if (isFixedPositionItem(item)) {\n fixedPositionItems.push({index, item});\n } else if (getIsMenuItem(item)) {\n sortableItems.push(item);\n }\n });\n\n if (sortableItems[oldIndex] === undefined || sortableItems[newIndex] === undefined) {\n return currentFlatList;\n }\n\n const sortedItems = [...sortableItems];\n const [movedElement] = sortedItems.splice(oldIndex, 1);\n sortedItems.splice(newIndex, 0, movedElement);\n\n const result: MenuItemsWithGroups[] = [];\n const fixedMap = new Map(fixedPositionItems.map((f) => [f.index, f.item]));\n let sortableIndex = 0;\n\n for (let originalIndex = 0; originalIndex < currentFlatList.length; originalIndex++) {\n const fixedItem = fixedMap.get(originalIndex);\n\n if (fixedItem) {\n result.push(fixedItem);\n } else if (sortableIndex < sortedItems.length) {\n result.push(sortedItems[sortableIndex++]);\n }\n }\n\n return result;\n}\n"],"names":[],"mappings":";;AAIA;AACA,SAAS,mBAAmB,CAAC,IAAyB,EAAA;IAClD,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;AAC5D;AAEA;;AAEG;SACa,yBAAyB,CACrC,QAAgB,EAChB,QAAgB,EAChB,eAAsC,EAAA;IAEtC,MAAM,kBAAkB,GAAsD,EAAE;IAChF,MAAM,aAAa,GAA0B,EAAE;IAE/C,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AACpC,QAAA,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE;YAC3B,kBAAkB,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;;AACnC,aAAA,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;AAC5B,YAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEhC,KAAC,CAAC;AAEF,IAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;AAChF,QAAA,OAAO,eAAe;;AAG1B,IAAA,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC;AACtC,IAAA,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC;IAE7C,MAAM,MAAM,GAA0B,EAAE;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,IAAI,aAAa,GAAG,CAAC;AAErB,IAAA,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE;QACjF,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;QAE7C,IAAI,SAAS,EAAE;AACX,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;;AACnB,aAAA,IAAI,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE;YAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;;;AAIjD,IAAA,OAAO,MAAM;AACjB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.CollapseButton-module__gn-collapse-
|
|
1
|
+
.CollapseButton-module__gn-collapse-button_collapsed___c19gr .CollapseButton-module__gn-collapse-button__icon___iMooT{transform:rotate(180deg)}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
interface CollapseButtonProps {
|
|
3
3
|
className?: string;
|
|
4
|
+
isCompactMode?: boolean;
|
|
4
5
|
}
|
|
5
|
-
export declare const CollapseButton: ({ className }: CollapseButtonProps) => string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
|
|
6
|
+
export declare const CollapseButton: ({ className, isCompactMode }: CollapseButtonProps) => string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
|
|
6
7
|
export {};
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import './CollapseButton.css';
|
|
2
2
|
import React__default, { useCallback } from 'react';
|
|
3
|
+
import { ArrowLeftFromLine } from '@gravity-ui/icons';
|
|
3
4
|
import { Button, Icon } from '@gravity-ui/uikit';
|
|
4
5
|
import { createBlock } from '../../../utils/cn.js';
|
|
5
6
|
import { useAsideHeaderContext, useAsideHeaderInnerContext } from '../../AsideHeaderContext.js';
|
|
6
7
|
import i18n from '../../i18n/index.js';
|
|
7
|
-
import ArrowLeftFromLineIcon from '@gravity-ui/icons/svgs/arrow-left-from-line.svg';
|
|
8
8
|
import styles from './CollapseButton.module.scss.js';
|
|
9
9
|
|
|
10
10
|
const b = createBlock('collapse-button', styles);
|
|
11
|
-
const CollapseButton = ({ className }) => {
|
|
12
|
-
const {
|
|
11
|
+
const CollapseButton = ({ className, isCompactMode }) => {
|
|
12
|
+
const { pinned, onChangePinned } = useAsideHeaderContext();
|
|
13
13
|
const { expandTitle, collapseTitle, collapseButtonWrapper } = useAsideHeaderInnerContext();
|
|
14
14
|
const onCollapseButtonClick = useCallback(() => {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
}, [
|
|
18
|
-
const buttonTitle =
|
|
19
|
-
?
|
|
20
|
-
:
|
|
21
|
-
const defaultButton = (React__default.createElement(Button, { view: "flat-secondary", size:
|
|
22
|
-
React__default.createElement(Icon, { data:
|
|
15
|
+
const newPinned = !pinned;
|
|
16
|
+
onChangePinned === null || onChangePinned === undefined ? undefined : onChangePinned(newPinned);
|
|
17
|
+
}, [pinned, onChangePinned]);
|
|
18
|
+
const buttonTitle = pinned
|
|
19
|
+
? collapseTitle || i18n('button_collapse')
|
|
20
|
+
: expandTitle || i18n('button_expand');
|
|
21
|
+
const defaultButton = (React__default.createElement(Button, { view: "flat-secondary", size: isCompactMode ? 'm' : 'l', className: b({ collapsed: !pinned }, className), onClick: onCollapseButtonClick, "aria-label": buttonTitle, title: buttonTitle },
|
|
22
|
+
React__default.createElement(Icon, { data: ArrowLeftFromLine, className: b('icon'), size: 16 })));
|
|
23
23
|
if (collapseButtonWrapper) {
|
|
24
24
|
return collapseButtonWrapper(defaultButton, {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
isExpanded: pinned,
|
|
26
|
+
onChangePinned,
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
return defaultButton;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapseButton.js","sources":["../../../../../../../src/components/AsideHeader/components/CollapseButton/CollapseButton.tsx"],"sourcesContent":["import React, {useCallback} from 'react';\n\nimport {Button, Icon} from '@gravity-ui/uikit';\n\nimport {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderContext, useAsideHeaderInnerContext} from '../../AsideHeaderContext';\nimport i18n from '../../i18n';\n\nimport
|
|
1
|
+
{"version":3,"file":"CollapseButton.js","sources":["../../../../../../../src/components/AsideHeader/components/CollapseButton/CollapseButton.tsx"],"sourcesContent":["import React, {useCallback} from 'react';\n\nimport {ArrowLeftFromLine} from '@gravity-ui/icons';\nimport {Button, Icon} from '@gravity-ui/uikit';\n\nimport {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderContext, useAsideHeaderInnerContext} from '../../AsideHeaderContext';\nimport i18n from '../../i18n';\n\nimport styles from './CollapseButton.module.scss';\n\nconst b = createBlock('collapse-button', styles);\n\ninterface CollapseButtonProps {\n className?: string;\n isCompactMode?: boolean;\n}\n\nexport const CollapseButton = ({className, isCompactMode}: CollapseButtonProps) => {\n const {pinned, onChangePinned} = useAsideHeaderContext();\n const {expandTitle, collapseTitle, collapseButtonWrapper} = useAsideHeaderInnerContext();\n\n const onCollapseButtonClick = useCallback(() => {\n const newPinned = !pinned;\n\n onChangePinned?.(newPinned);\n }, [pinned, onChangePinned]);\n\n const buttonTitle = pinned\n ? collapseTitle || i18n('button_collapse')\n : expandTitle || i18n('button_expand');\n\n const defaultButton = (\n <Button\n view=\"flat-secondary\"\n size={isCompactMode ? 'm' : 'l'}\n className={b({collapsed: !pinned}, className)}\n onClick={onCollapseButtonClick}\n aria-label={buttonTitle}\n title={buttonTitle}\n >\n <Icon data={ArrowLeftFromLine} className={b('icon')} size={16} />\n </Button>\n );\n\n if (collapseButtonWrapper) {\n return collapseButtonWrapper(defaultButton, {\n isExpanded: pinned,\n onChangePinned,\n });\n }\n\n return defaultButton;\n};\n"],"names":["React"],"mappings":";;;;;;;;AAWA,MAAM,CAAC,GAAG,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC;AAOnC,MAAA,cAAc,GAAG,CAAC,EAAC,SAAS,EAAE,aAAa,EAAsB,KAAI;IAC9E,MAAM,EAAC,MAAM,EAAE,cAAc,EAAC,GAAG,qBAAqB,EAAE;IACxD,MAAM,EAAC,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAC,GAAG,0BAA0B,EAAE;AAExF,IAAA,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAK;AAC3C,QAAA,MAAM,SAAS,GAAG,CAAC,MAAM;AAEzB,QAAA,cAAc,aAAd,cAAc,KAAA,SAAA,GAAA,SAAA,GAAd,cAAc,CAAG,SAAS,CAAC;AAC/B,KAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAE5B,MAAM,WAAW,GAAG;AAChB,UAAE,aAAa,IAAI,IAAI,CAAC,iBAAiB;AACzC,UAAE,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC;IAE1C,MAAM,aAAa,IACfA,cAAA,CAAA,aAAA,CAAC,MAAM,EACH,EAAA,IAAI,EAAC,gBAAgB,EACrB,IAAI,EAAE,aAAa,GAAG,GAAG,GAAG,GAAG,EAC/B,SAAS,EAAE,CAAC,CAAC,EAAC,SAAS,EAAE,CAAC,MAAM,EAAC,EAAE,SAAS,CAAC,EAC7C,OAAO,EAAE,qBAAqB,EAAA,YAAA,EAClB,WAAW,EACvB,KAAK,EAAE,WAAW,EAAA;AAElB,QAAAA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAC,EAAA,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAI,CAAA,CAC5D,CACZ;IAED,IAAI,qBAAqB,EAAE;QACvB,OAAO,qBAAqB,CAAC,aAAa,EAAE;AACxC,YAAA,UAAU,EAAE,MAAM;YAClB,cAAc;AACjB,SAAA,CAAC;;AAGN,IAAA,OAAO,aAAa;AACxB;;;;"}
|
package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var styles = {"gn-collapse-
|
|
1
|
+
var styles = {"gn-collapse-button_collapsed":"CollapseButton-module__gn-collapse-button_collapsed___c19gr","gnCollapseButtonCollapsed":"CollapseButton-module__gn-collapse-button_collapsed___c19gr","gn-collapse-button__icon":"CollapseButton-module__gn-collapse-button__icon___iMooT","gnCollapseButtonIcon":"CollapseButton-module__gn-collapse-button__icon___iMooT"};
|
|
2
2
|
|
|
3
3
|
export { styles as default };
|
|
4
4
|
//# sourceMappingURL=CollapseButton.module.scss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.CompositeBar-module__gn-composite-bar___WoCDY{--gn-aside-
|
|
1
|
+
.CompositeBar-module__gn-composite-bar___WoCDY{background-color:var(--gn-aside-main-background-color);display:flex;flex:1 1 auto;flex-direction:column;min-height:40px;width:100%}.CompositeBar-module__gn-composite-bar___WoCDY .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class]{background-color:transparent}.CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21, .CompositeBar-module__gn-composite-bar__menu-group-item___TLcnI, .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class]{margin-bottom:2px}.CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21:last-child, .CompositeBar-module__gn-composite-bar__menu-group-item___TLcnI:last-child, .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class]:last-child{margin-bottom:0}.CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF:has(.CompositeBar-module__gn-composite-bar__menu-group___3hCzS){align-items:flex-start}.CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF:has(.CompositeBar-module__gn-composite-bar__menu-group___3hCzS)>.g-list__item-sort-icon{position:relative;top:12px}.CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF:has(.CompositeBar-module__gn-composite-bar__menu-group___3hCzS):not(.CompositeBar-module__gn-composite-bar__root-menu-item_compact___vvKTD) .g-list__item-content{overflow:visible}.CompositeBar-module__gn-composite-bar__menu-group___3hCzS{height:100%;position:relative;width:100%}.CompositeBar-module__gn-composite-bar__menu-group___3hCzS:before{background-color:var(--gn-aside-main-group-item-background-color,transparent);border-left:2px solid var(--gn-aside-main-group-border-color,var(--g-color-line-generic));border-radius:0;content:"";height:100%;left:0;position:absolute;top:0;transition:border-radius .15s ease-out;width:100%;z-index:-1}.CompositeBar-module__gn-composite-bar__menu-group___3hCzS:hover:before{border-color:var(--gn-aside-main-group-border-color-hover,var(--g-color-line-generic))}.CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21{height:var(--_--item-height)}.CompositeBar-module__gn-composite-bar__menu-group-item___TLcnI{position:relative}.CompositeBar-module__gn-composite-bar__menu-group-item___TLcnI:last-child .CompositeBar-module__gn-composite-bar__group-item___L1pJ8{border-radius:0 0 var(--gn-aside-header-item-expanded-radius) var(--gn-aside-header-item-expanded-radius)}.CompositeBar-module__gn-composite-bar__menu-group-item_edit___Es8er:not(.CompositeBar-module__gn-composite-bar__menu-group-item_compact___-7tZl){left:-16px;width:calc(100% + 16px)}.CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21:not(.CompositeBar-module__gn-composite-bar__menu-group-header_collapsed___bTXn1){border-radius:var(--gn-aside-header-item-expanded-radius) var(--gn-aside-header-item-expanded-radius) 0 0}.CompositeBar-module__gn-composite-bar__menu-group___3hCzS:hover:before, .CompositeBar-module__gn-composite-bar__menu-group_expanded___GY0oS:before, .CompositeBar-module__gn-composite-bar__menu-item_type_regular___8DHUR, .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class]:hover{border-radius:var(--gn-aside-header-item-expanded-radius)}.CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class]{transition:border-radius .15s ease-out}.CompositeBar-module__gn-composite-bar__menu-group-toggle-placeholder___vAqkn, .CompositeBar-module__gn-composite-bar__menu-group-toggle___4--VW{align-items:center;cursor:pointer;display:inline-flex;height:24px;width:24px}.CompositeBar-module__gn-composite-bar__menu-group-toggle___4--VW{margin-left:auto}.CompositeBar-module__gn-composite-bar__menu-group-icon___YVg-C{margin-right:var(--g-spacing-3)}.CompositeBar-module__gn-composite-bar__menu-item___zaw-R[data-type=action]{margin-inline:var(--_--item-margin-inline)}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import React, { FC } from 'react';
|
|
2
|
-
import { AsideHeaderItem, MenuItemsWithGroups } from '../../types';
|
|
2
|
+
import { AsideHeaderItem, MenuItemsWithGroups, SetCollapseBlocker } from '../../types';
|
|
3
3
|
type CompositeBarProps = {
|
|
4
4
|
type: 'menu' | 'subheader';
|
|
5
|
+
setCollapseBlocker?: SetCollapseBlocker;
|
|
5
6
|
items?: MenuItemsWithGroups[];
|
|
6
|
-
onItemClick?: (item: AsideHeaderItem, collapsed: boolean, event: React.MouseEvent<HTMLElement, MouseEvent
|
|
7
|
-
|
|
7
|
+
onItemClick?: (item: AsideHeaderItem, collapsed: boolean, event: React.MouseEvent<HTMLElement, MouseEvent>, options: {
|
|
8
|
+
setCollapseBlocker: SetCollapseBlocker | undefined;
|
|
9
|
+
}) => void;
|
|
8
10
|
menuMoreTitle?: string;
|
|
9
11
|
onMoreClick?: () => void;
|
|
10
|
-
|
|
12
|
+
/** When `true`, the navigation is expanded. When `false`, it is collapsed. */
|
|
13
|
+
isExpanded: boolean;
|
|
11
14
|
compositeId?: string;
|
|
12
15
|
className?: string;
|
|
13
|
-
groupClassName?: string;
|
|
14
16
|
menuItemClassName?: string;
|
|
15
17
|
editMode?: boolean;
|
|
16
18
|
onToggleGroupCollapsed?: (groupId: string) => void;
|
|
19
|
+
/** When `true`, menu items use compact height. */
|
|
20
|
+
isCompactMode?: boolean;
|
|
17
21
|
};
|
|
18
22
|
type CompositeBarViewProps = CompositeBarProps & {
|
|
19
23
|
compositeId?: string;
|
|
@@ -32,6 +36,8 @@ type CompositeBarViewProps = CompositeBarProps & {
|
|
|
32
36
|
oldIndex: number;
|
|
33
37
|
newIndex: number;
|
|
34
38
|
}) => void;
|
|
39
|
+
/** When `true`, menu items use compact height. */
|
|
40
|
+
isCompactMode?: boolean;
|
|
35
41
|
};
|
|
36
42
|
export declare const CompositeBarView: FC<CompositeBarViewProps>;
|
|
37
43
|
export declare const CompositeBar: FC<CompositeBarProps>;
|
|
@@ -1,127 +1,34 @@
|
|
|
1
1
|
import './CompositeBar.css';
|
|
2
|
-
import React__default, { useRef, useState,
|
|
3
|
-
import {
|
|
2
|
+
import React__default, { useRef, useState, useCallback } from 'react';
|
|
3
|
+
import { ChevronRight, ChevronDown } from '@gravity-ui/icons';
|
|
4
4
|
import { List } from '@gravity-ui/uikit';
|
|
5
|
-
import { ASIDE_HEADER_COMPACT_WIDTH } from '../../../constants.js';
|
|
6
5
|
import { createBlock } from '../../../utils/cn.js';
|
|
7
6
|
import { UNGROUPED_ID } from '../AllPagesPanel/constants.js';
|
|
8
7
|
import { Item } from './Item/Item.js';
|
|
9
|
-
import {
|
|
10
|
-
import { MultipleTooltipProvider, MultipleTooltipContext } from './MultipleTooltip/MultipleTooltipContext.js';
|
|
8
|
+
import { ScrollableWithScrollbar } from './ScrollableWithScrollbar/ScrollableWithScrollbar.js';
|
|
11
9
|
import { COLLAPSE_ITEM_ID, ITEM_TYPE_REGULAR } from './constants.js';
|
|
12
10
|
import { getSelectedItemIndex, getItemHeight, getItemsHeight } from './utils.js';
|
|
13
11
|
import styles from './CompositeBar.module.scss.js';
|
|
14
12
|
|
|
15
13
|
const b = createBlock('composite-bar', styles);
|
|
16
|
-
const CompositeBarView = ({ type, items, onItemClick, onMoreClick,
|
|
14
|
+
const CompositeBarView = ({ type, items, onItemClick, onMoreClick, compositeId, className, menuItemClassName, enableSorting = false, editMode = false, isExpanded, onToggleGroupCollapsed, onToggleMenuGroupVisibility, onToggleMenuItemVisibility, onFirstLevelSortEnd, onSecondLevelSortEnd, setCollapseBlocker, isCompactMode, }) => {
|
|
17
15
|
const ref = useRef(null);
|
|
18
|
-
const tooltipRef = useRef(null);
|
|
19
16
|
const [hoveredGroupId, setHoveredGroupId] = useState(null);
|
|
20
|
-
const { setValue: setMultipleTooltipContextValue, active: multipleTooltipActive, activeIndex, lastClickedItemIndex, } = useContext(MultipleTooltipContext);
|
|
21
|
-
React__default.useEffect(() => {
|
|
22
|
-
function handleBlurWindow() {
|
|
23
|
-
if (multipleTooltip && multipleTooltipActive) {
|
|
24
|
-
setMultipleTooltipContextValue({ active: false });
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
window.addEventListener('blur', handleBlurWindow);
|
|
28
|
-
return () => {
|
|
29
|
-
window.removeEventListener('blur', handleBlurWindow);
|
|
30
|
-
};
|
|
31
|
-
}, [multipleTooltip, multipleTooltipActive, setMultipleTooltipContextValue]);
|
|
32
|
-
const onTooltipMouseEnter = useCallback((e) => {
|
|
33
|
-
if (multipleTooltip &&
|
|
34
|
-
compact &&
|
|
35
|
-
!multipleTooltipActive &&
|
|
36
|
-
document.hasFocus() &&
|
|
37
|
-
activeIndex !== lastClickedItemIndex &&
|
|
38
|
-
e.clientX <= ASIDE_HEADER_COMPACT_WIDTH) {
|
|
39
|
-
setMultipleTooltipContextValue === null || setMultipleTooltipContextValue === undefined ? undefined : setMultipleTooltipContextValue({
|
|
40
|
-
active: true,
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}, [
|
|
44
|
-
multipleTooltip,
|
|
45
|
-
compact,
|
|
46
|
-
multipleTooltipActive,
|
|
47
|
-
activeIndex,
|
|
48
|
-
lastClickedItemIndex,
|
|
49
|
-
setMultipleTooltipContextValue,
|
|
50
|
-
]);
|
|
51
|
-
const onTooltipMouseLeave = useCallback(() => {
|
|
52
|
-
if (multipleTooltip && multipleTooltipActive && document.hasFocus()) {
|
|
53
|
-
setMultipleTooltipContextValue === null || setMultipleTooltipContextValue === undefined ? undefined : setMultipleTooltipContextValue({
|
|
54
|
-
active: false,
|
|
55
|
-
lastClickedItemIndex: undefined,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}, [multipleTooltip, multipleTooltipActive, setMultipleTooltipContextValue]);
|
|
59
|
-
const onMouseEnterByIndex = useCallback((itemIndex) => () => {
|
|
60
|
-
if (multipleTooltip && document.hasFocus()) {
|
|
61
|
-
let multipleTooltipActiveValue = multipleTooltipActive;
|
|
62
|
-
if (!multipleTooltipActive && itemIndex !== lastClickedItemIndex) {
|
|
63
|
-
multipleTooltipActiveValue = true;
|
|
64
|
-
}
|
|
65
|
-
if (activeIndex === itemIndex &&
|
|
66
|
-
multipleTooltipActive === multipleTooltipActiveValue) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
setMultipleTooltipContextValue({
|
|
70
|
-
activeIndex: itemIndex,
|
|
71
|
-
active: multipleTooltipActiveValue,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
}, [
|
|
75
|
-
multipleTooltip,
|
|
76
|
-
multipleTooltipActive,
|
|
77
|
-
lastClickedItemIndex,
|
|
78
|
-
activeIndex,
|
|
79
|
-
setMultipleTooltipContextValue,
|
|
80
|
-
]);
|
|
81
17
|
const onMouseLeave = useCallback(() => {
|
|
82
18
|
var _a;
|
|
83
|
-
if (
|
|
19
|
+
if (!isExpanded && document.hasFocus()) {
|
|
84
20
|
(_a = ref.current) === null || _a === undefined ? undefined : _a.activateItem(undefined);
|
|
85
|
-
if (multipleTooltip &&
|
|
86
|
-
(activeIndex !== undefined || lastClickedItemIndex !== undefined)) {
|
|
87
|
-
setMultipleTooltipContextValue({
|
|
88
|
-
activeIndex: undefined,
|
|
89
|
-
lastClickedItemIndex: undefined,
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}, [
|
|
94
|
-
activeIndex,
|
|
95
|
-
compact,
|
|
96
|
-
lastClickedItemIndex,
|
|
97
|
-
multipleTooltip,
|
|
98
|
-
setMultipleTooltipContextValue,
|
|
99
|
-
]);
|
|
100
|
-
const onItemClickByIndex = useCallback((itemIndex, orginalItemClick) => (item, collapsed, event) => {
|
|
101
|
-
if (compact &&
|
|
102
|
-
multipleTooltip &&
|
|
103
|
-
itemIndex !== lastClickedItemIndex &&
|
|
104
|
-
item.id !== COLLAPSE_ITEM_ID) {
|
|
105
|
-
setMultipleTooltipContextValue({
|
|
106
|
-
lastClickedItemIndex: itemIndex,
|
|
107
|
-
active: false,
|
|
108
|
-
});
|
|
109
21
|
}
|
|
22
|
+
}, [isExpanded]);
|
|
23
|
+
const onItemClickByIndex = useCallback((_itemIndex, orginalItemClick) => (item, collapsed, event, options) => {
|
|
110
24
|
// Handle clicks on the "more" button (collapse item)
|
|
111
25
|
if (item.id === COLLAPSE_ITEM_ID && collapsed) {
|
|
112
26
|
onMoreClick === null || onMoreClick === undefined ? undefined : onMoreClick();
|
|
113
27
|
}
|
|
114
28
|
else {
|
|
115
|
-
onItemClick === null || onItemClick === undefined ? undefined : onItemClick(Object.assign(Object.assign({}, item), { onItemClick: orginalItemClick }), collapsed, event);
|
|
29
|
+
onItemClick === null || onItemClick === undefined ? undefined : onItemClick(Object.assign(Object.assign({}, item), { onItemClick: orginalItemClick }), collapsed, event, options);
|
|
116
30
|
}
|
|
117
|
-
}, [
|
|
118
|
-
compact,
|
|
119
|
-
lastClickedItemIndex,
|
|
120
|
-
multipleTooltip,
|
|
121
|
-
onItemClick,
|
|
122
|
-
onMoreClick,
|
|
123
|
-
setMultipleTooltipContextValue,
|
|
124
|
-
]);
|
|
31
|
+
}, [onItemClick, onMoreClick]);
|
|
125
32
|
const handleFirstLevelSortEnd = useCallback(({ oldIndex, newIndex }) => {
|
|
126
33
|
if (onFirstLevelSortEnd) {
|
|
127
34
|
onFirstLevelSortEnd({ oldIndex, newIndex });
|
|
@@ -135,73 +42,64 @@ const CompositeBarView = ({ type, items, onItemClick, onMoreClick, multipleToolt
|
|
|
135
42
|
if (!items || items.length === 0) {
|
|
136
43
|
return null;
|
|
137
44
|
}
|
|
138
|
-
return (React__default.createElement(
|
|
139
|
-
React__default.createElement(
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
45
|
+
return (React__default.createElement("div", { className: className },
|
|
46
|
+
React__default.createElement(List, { id: compositeId, ref: ref, items: items, selectedItemIndex: type === 'menu' ? getSelectedItemIndex(items) : undefined, itemHeight: (item) => getItemHeight(item, isCompactMode), itemsHeight: (items) => getItemsHeight(items, isCompactMode), itemClassName: b('root-menu-item', { collapsed: !isExpanded }, menuItemClassName), virtualized: false, filterable: false, sortable: enableSorting, onSortEnd: enableSorting ? handleFirstLevelSortEnd : undefined, renderItem: (item, _isItemActive, itemIndex) => {
|
|
47
|
+
const groupId = item.groupId;
|
|
48
|
+
const itemType = item.type || ITEM_TYPE_REGULAR;
|
|
49
|
+
if (!groupId) {
|
|
50
|
+
return (React__default.createElement(Item, Object.assign({}, item, { className: b('menu-item', {
|
|
51
|
+
collapsed: !isExpanded,
|
|
52
|
+
type: itemType,
|
|
53
|
+
}), isExpanded: isExpanded, editMode: editMode, onMouseLeave: onMouseLeave, onItemClick: onItemClickByIndex(itemIndex, item.onItemClick), setCollapseBlocker: setCollapseBlocker, onToggleVisibility: onToggleMenuItemVisibility
|
|
54
|
+
? () => onToggleMenuItemVisibility(item)
|
|
55
|
+
: undefined })));
|
|
56
|
+
}
|
|
57
|
+
const isCollapsible = Boolean('collapsible' in item && item.collapsible);
|
|
58
|
+
const isCollapsed = Boolean('isCollapsed' in item && item.isCollapsed);
|
|
59
|
+
const groupListItems = ('items' in item && item.items) || [];
|
|
60
|
+
const hasHeader = item.title || item.icon || isCollapsible;
|
|
61
|
+
const isUngrouped = item.id === UNGROUPED_ID;
|
|
62
|
+
const isGroupHovered = hoveredGroupId === item.id;
|
|
63
|
+
let groupIcon = item.icon;
|
|
64
|
+
if (isGroupHovered) {
|
|
65
|
+
groupIcon = isCollapsed ? ChevronRight : ChevronDown;
|
|
66
|
+
}
|
|
67
|
+
return (React__default.createElement("div", { className: b('menu-group', { expanded: !isCollapsed, wrapper: true }) },
|
|
68
|
+
hasHeader && !isUngrouped && (React__default.createElement(Item, Object.assign({}, item, { className: b('menu-group-header', { collapsed: isCollapsed }), icon: groupIcon, isExpanded: isExpanded, editMode: editMode, setCollapseBlocker: setCollapseBlocker, onMouseEnter: () => {
|
|
69
|
+
setHoveredGroupId(item.id);
|
|
70
|
+
}, onMouseLeave: () => {
|
|
71
|
+
setHoveredGroupId(null);
|
|
72
|
+
}, onItemClick: onItemClickByIndex(itemIndex, onToggleGroupCollapsed
|
|
73
|
+
? () => onToggleGroupCollapsed(groupId)
|
|
74
|
+
: undefined), onToggleVisibility: onToggleMenuGroupVisibility
|
|
75
|
+
? () => onToggleMenuGroupVisibility(groupId)
|
|
76
|
+
: undefined }))),
|
|
77
|
+
!isCollapsed && (React__default.createElement(List, { items: groupListItems, sortable: enableSorting, onSortEnd: handleSecondLevelSortEnd(itemIndex), virtualized: false, filterable: false, itemClassName: b('menu-group-item', {
|
|
78
|
+
edit: enableSorting,
|
|
79
|
+
collapsed: !isExpanded,
|
|
80
|
+
}), itemHeight: (item) => getItemHeight(item, isCompactMode), itemsHeight: (items) => getItemsHeight(items, isCompactMode), renderItem: (nestedItem, _isNestedItemActive, nestedItemIndex) => {
|
|
81
|
+
return (React__default.createElement(Item, Object.assign({}, nestedItem, { isExpanded: isExpanded, className: b('group-item'), editMode: editMode, setCollapseBlocker: setCollapseBlocker, onMouseEnter: () => {
|
|
82
|
+
setHoveredGroupId(nestedItem.id);
|
|
83
|
+
}, onMouseLeave: () => {
|
|
84
|
+
setHoveredGroupId(null);
|
|
85
|
+
}, onItemClick: onItemClickByIndex(
|
|
86
|
+
// +1 because the first item is the group header
|
|
87
|
+
itemIndex + nestedItemIndex + 1, nestedItem.onItemClick), onToggleVisibility: onToggleMenuItemVisibility
|
|
88
|
+
? () => onToggleMenuItemVisibility(nestedItem)
|
|
89
|
+
: undefined })));
|
|
90
|
+
} }))));
|
|
91
|
+
} })));
|
|
185
92
|
};
|
|
186
|
-
const CompositeBar = ({ type, items, onItemClick, onMoreClick, onToggleGroupCollapsed,
|
|
187
|
-
|
|
188
|
-
const visibleItems = (_a = items === null || items === undefined ? undefined : items.filter((item) => !item.hidden)) === null || _a === undefined ? undefined : _a.map((item) => {
|
|
189
|
-
var _a;
|
|
190
|
-
return (Object.assign(Object.assign({}, item), { items: 'items' in item ? (_a = item.items) === null || _a === undefined ? undefined : _a.filter((item) => !item.hidden) : [] }));
|
|
191
|
-
});
|
|
192
|
-
if (!visibleItems || visibleItems.length === 0) {
|
|
93
|
+
const CompositeBar = ({ type, items, onItemClick, onMoreClick, onToggleGroupCollapsed, setCollapseBlocker, isExpanded, compositeId, className, menuItemClassName, editMode = false, isCompactMode, }) => {
|
|
94
|
+
if (!items || items.length === 0) {
|
|
193
95
|
return null;
|
|
194
96
|
}
|
|
195
|
-
let node;
|
|
196
97
|
if (type === 'menu') {
|
|
197
|
-
|
|
198
|
-
React__default.createElement(CompositeBarView, { compositeId: compositeId,
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
node = (React__default.createElement("div", { className: b({ subheader: true }, className) },
|
|
202
|
-
React__default.createElement(CompositeBarView, { groupClassName: groupClassName, menuItemClassName: menuItemClassName, type: "subheader", compact: compact, items: visibleItems, onItemClick: onItemClick, editMode: editMode })));
|
|
98
|
+
return (React__default.createElement(ScrollableWithScrollbar, { className: b(null, className), recalcDeps: [items.length] },
|
|
99
|
+
React__default.createElement(CompositeBarView, { compositeId: compositeId, menuItemClassName: menuItemClassName, type: "menu", isExpanded: isExpanded, items: items, onItemClick: onItemClick, onMoreClick: onMoreClick, onToggleGroupCollapsed: onToggleGroupCollapsed, setCollapseBlocker: setCollapseBlocker, editMode: editMode, isCompactMode: isCompactMode })));
|
|
203
100
|
}
|
|
204
|
-
return React__default.createElement(
|
|
101
|
+
return (React__default.createElement("div", { className: b({ subheader: true }, className) },
|
|
102
|
+
React__default.createElement(CompositeBarView, { menuItemClassName: menuItemClassName, type: "subheader", isExpanded: isExpanded, items: items, onItemClick: onItemClick, setCollapseBlocker: setCollapseBlocker, editMode: editMode, isCompactMode: isCompactMode })));
|
|
205
103
|
};
|
|
206
104
|
|
|
207
105
|
export { CompositeBar, CompositeBarView };
|