@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
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface FooterLayoutContextValue {
|
|
3
|
+
layout: 'horizontal' | 'vertical';
|
|
4
|
+
isExpanded: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const FooterLayoutContext: React.Context<FooterLayoutContextValue | undefined>;
|
|
7
|
+
export declare const useFooterLayout: () => FooterLayoutContextValue | undefined;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
|
|
3
|
+
const FooterLayoutContext = React__default.createContext(undefined);
|
|
4
|
+
const useFooterLayout = () => React__default.useContext(FooterLayoutContext);
|
|
5
|
+
|
|
6
|
+
export { FooterLayoutContext, useFooterLayout };
|
|
7
|
+
//# sourceMappingURL=FooterLayoutContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FooterLayoutContext.js","sources":["../../../../../src/components/AsideHeader/FooterLayoutContext.ts"],"sourcesContent":["import React from 'react';\n\nexport interface FooterLayoutContextValue {\n layout: 'horizontal' | 'vertical';\n isExpanded: boolean;\n}\n\nexport const FooterLayoutContext = React.createContext<FooterLayoutContextValue | undefined>(\n undefined,\n);\n\nexport const useFooterLayout = (): FooterLayoutContextValue | undefined =>\n React.useContext(FooterLayoutContext);\n"],"names":["React"],"mappings":";;AAOa,MAAA,mBAAmB,GAAGA,cAAK,CAAC,aAAa,CAClD,SAAS;AAGN,MAAM,eAAe,GAAG,MAC3BA,cAAK,CAAC,UAAU,CAAC,mBAAmB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.AllPagesPanel-module__gn-all-pages-panel___RN6Kk{--gn-aside-header-item-expanded-radius:6px;box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.AllPagesPanel-module__gn-all-pages-panel__content___XgBXG{flex:1;overflow:auto}
|
|
1
|
+
.AllPagesPanel-module__gn-all-pages-panel___RN6Kk{--gn-aside-header-item-expanded-radius:6px;--_--item-height:36px;box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.AllPagesPanel-module__gn-all-pages-panel__content___XgBXG{flex:1;overflow:auto}
|
|
@@ -9,9 +9,9 @@ import { ALL_PAGES_ID } from './constants.js';
|
|
|
9
9
|
import i18n from './i18n/index.js';
|
|
10
10
|
import { useGroupedMenuItems } from './useGroupedMenuItems.js';
|
|
11
11
|
import { buildExpandedFromFlatList } from './utils/buildExpandedFromFlatList.js';
|
|
12
|
+
import { getExpandedIndexForSortableIndex } from './utils/getExpandedIndexForSortableIndex.js';
|
|
12
13
|
import { getIsMenuItem } from './utils/getIsMenuItem.js';
|
|
13
|
-
import {
|
|
14
|
-
import { sortMenuItems } from './utils/sortMenuItems.js';
|
|
14
|
+
import { applySecondLevelSort } from './utils/getRealIndexInGroup.js';
|
|
15
15
|
import { sortMenuItemsWithDividers } from './utils/sortMenuItemsWithDividers.js';
|
|
16
16
|
import styles from './AllPagesPanel.module.scss.js';
|
|
17
17
|
|
|
@@ -47,10 +47,10 @@ const AllPagesPanel = (props) => {
|
|
|
47
47
|
(_a = editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.onOpenEditMode) === null || _a === undefined ? undefined : _a.call(editMenuProps);
|
|
48
48
|
}
|
|
49
49
|
}, [isEditMode, onEditModeChanged, editMenuProps]);
|
|
50
|
-
const onItemClick = useCallback((item, collapsed, event) => {
|
|
50
|
+
const onItemClick = useCallback((item, collapsed, event, options) => {
|
|
51
51
|
var _a;
|
|
52
52
|
// TODO: make event an optional argument
|
|
53
|
-
(_a = item.onItemClick) === null || _a === undefined ? undefined : _a.call(item, item, collapsed, event);
|
|
53
|
+
(_a = item.onItemClick) === null || _a === undefined ? undefined : _a.call(item, item, collapsed, event, options);
|
|
54
54
|
}, []);
|
|
55
55
|
const onResetToDefaultClick = useCallback(() => {
|
|
56
56
|
var _a;
|
|
@@ -102,30 +102,38 @@ const AllPagesPanel = (props) => {
|
|
|
102
102
|
}));
|
|
103
103
|
}, [onMenuItemsChanged, editMenuProps]);
|
|
104
104
|
const onFirstLevelSortEnd = useCallback(({ oldIndex, newIndex }) => {
|
|
105
|
+
var _a;
|
|
105
106
|
if (!onMenuItemsChanged) {
|
|
106
107
|
return;
|
|
107
108
|
}
|
|
108
109
|
const currentFlatList = menuItemsRef.current || [];
|
|
109
110
|
const sortedResult = sortMenuItemsWithDividers(oldIndex, newIndex, currentFlatList);
|
|
110
|
-
|
|
111
|
+
const expandedItems = buildExpandedFromFlatList(currentFlatList);
|
|
111
112
|
const updatedItems = buildExpandedFromFlatList(sortedResult);
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
const realOldIndex = getExpandedIndexForSortableIndex(oldIndex, currentFlatList);
|
|
114
|
+
const realNewIndex = getExpandedIndexForSortableIndex(newIndex, sortedResult);
|
|
115
|
+
const changedItem = expandedItems[realOldIndex];
|
|
116
|
+
onMenuItemsChanged === null || onMenuItemsChanged === undefined ? undefined : onMenuItemsChanged(updatedItems);
|
|
117
|
+
if (changedItem && getIsMenuItem(changedItem)) {
|
|
118
|
+
(_a = editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.onChangeItemsOrder) === null || _a === undefined ? undefined : _a.call(editMenuProps, changedItem, realOldIndex, realNewIndex);
|
|
114
119
|
}
|
|
115
|
-
}, [onMenuItemsChanged]);
|
|
120
|
+
}, [onMenuItemsChanged, editMenuProps]);
|
|
116
121
|
const onSecondLevelSortEnd = useCallback((groupIndex) => ({ oldIndex, newIndex }) => {
|
|
122
|
+
var _a;
|
|
117
123
|
if (!onMenuItemsChanged) {
|
|
118
124
|
return;
|
|
119
125
|
}
|
|
120
126
|
const currentFlatList = menuItemsRef.current || [];
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const updatedItems = sortMenuItems(realOldIndex, realNewIndex, expandedItems);
|
|
125
|
-
if (updatedItems) {
|
|
126
|
-
onMenuItemsChanged === null || onMenuItemsChanged === undefined ? undefined : onMenuItemsChanged(updatedItems);
|
|
127
|
+
const result = applySecondLevelSort(groupIndex, oldIndex, newIndex, currentFlatList);
|
|
128
|
+
if (!result) {
|
|
129
|
+
return;
|
|
127
130
|
}
|
|
128
|
-
|
|
131
|
+
const { expandedItems, realOldIndex, realNewIndex, changedItem } = result;
|
|
132
|
+
onMenuItemsChanged(expandedItems);
|
|
133
|
+
if (changedItem && getIsMenuItem(changedItem)) {
|
|
134
|
+
(_a = editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.onChangeItemsOrder) === null || _a === undefined ? undefined : _a.call(editMenuProps, changedItem, realOldIndex, realNewIndex);
|
|
135
|
+
}
|
|
136
|
+
}, [onMenuItemsChanged, editMenuProps]);
|
|
129
137
|
const itemsWithLocalCollapsed = useMemo(() => {
|
|
130
138
|
if (Object.keys(collapsedGroups).length === 0)
|
|
131
139
|
return items;
|
|
@@ -142,7 +150,7 @@ const AllPagesPanel = (props) => {
|
|
|
142
150
|
React__default.createElement(Text, { variant: "subheader-2" }, isEditMode ? i18n('all-panel.title.editing') : i18n('all-panel.title.main')),
|
|
143
151
|
React__default.createElement(Tooltip, { content: i18n('all-panel.title.editing') },
|
|
144
152
|
React__default.createElement(Button, { selected: isEditMode, view: "flat-secondary", onClick: toggleEditMode }, startEditIcon ? startEditIcon : React__default.createElement(Icon, { data: Gear })))),
|
|
145
|
-
React__default.createElement(CompositeBarView, { type: "menu",
|
|
153
|
+
React__default.createElement(CompositeBarView, { type: "menu", isExpanded: true, className: b('content'), enableSorting: isEditMode && (editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.enableSorting), items: data, onFirstLevelSortEnd: isEditMode && (editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.enableSorting) ? onFirstLevelSortEnd : undefined, onSecondLevelSortEnd: isEditMode && (editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.enableSorting) ? onSecondLevelSortEnd : undefined, editMode: isEditMode, onItemClick: onItemClick, onToggleGroupCollapsed: handleToggleGroupCollapsed, onToggleMenuGroupVisibility: handleToggleGroupVisibility, onToggleMenuItemVisibility: toggleMenuItemsVisibility }),
|
|
146
154
|
isEditMode && (React__default.createElement(Button, { onClick: onResetToDefaultClick }, i18n('all-panel.resetToDefault')))));
|
|
147
155
|
};
|
|
148
156
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllPagesPanel.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport {Gear} from '@gravity-ui/icons';\nimport {Button, Flex, Icon, ListSortParams, Text, Tooltip} from '@gravity-ui/uikit';\n\nimport {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderInnerContext} from '../../AsideHeaderContext';\nimport {AsideHeaderItem, MenuItemsWithGroups} from '../../types';\nimport {CompositeBarView} from '../CompositeBar/CompositeBar';\n\nimport {ALL_PAGES_ID} from './constants';\nimport i18n from './i18n';\nimport {useGroupedMenuItems} from './useGroupedMenuItems';\nimport {buildExpandedFromFlatList} from './utils/buildExpandedFromFlatList';\nimport {getIsMenuItem} from './utils/getIsMenuItem';\nimport {getRealIndexInGroup} from './utils/getRealIndexInGroup';\nimport {sortMenuItems} from './utils/sortMenuItems';\nimport {sortMenuItemsWithDividers} from './utils/sortMenuItemsWithDividers';\n\nimport styles from './AllPagesPanel.module.scss';\n\nconst b = createBlock('all-pages-panel', styles);\n\ninterface AllPagesPanelProps {\n className?: string;\n startEditIcon?: React.ReactNode;\n onEditModeChanged?: (isEditMode: boolean) => void;\n}\n\nexport const AllPagesPanel: React.FC<AllPagesPanelProps> = (props) => {\n const {startEditIcon, onEditModeChanged, className} = props;\n const {\n defaultMenuItems,\n editMenuProps,\n menuItems,\n menuGroups,\n defaultMenuGroups,\n onMenuItemsChanged,\n onMenuGroupsChanged,\n } = useAsideHeaderInnerContext();\n const items = useGroupedMenuItems(menuItems, menuGroups, true);\n\n const menuItemsRef = useRef(items);\n menuItemsRef.current = items;\n\n const menuGroupsRef = useRef(menuGroups);\n menuGroupsRef.current = menuGroups;\n\n const [isEditMode, setIsEditMode] = useState(false);\n\n const [collapsedGroups, setCollapsedGroups] = useState<Record<string, boolean>>(() => {\n const initial: Record<string, boolean> = {};\n\n items.forEach((item) => {\n if ('groupId' in item && item.groupId && 'isCollapsed' in item) {\n initial[item.groupId] = false;\n }\n });\n return initial;\n });\n\n const handleToggleGroupCollapsed = useCallback((groupId: string) => {\n setCollapsedGroups((prev) => ({...prev, [groupId]: !prev[groupId]}));\n }, []);\n\n const toggleEditMode = useCallback(() => {\n setIsEditMode((prev) => !prev);\n }, []);\n\n useEffect(() => {\n onEditModeChanged?.(isEditMode);\n\n if (isEditMode) {\n editMenuProps?.onOpenEditMode?.();\n }\n }, [isEditMode, onEditModeChanged, editMenuProps]);\n\n const onItemClick = useCallback(\n (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => {\n // TODO: make event an optional argument\n item.onItemClick?.(item, collapsed, event as React.MouseEvent<HTMLElement, MouseEvent>);\n },\n [],\n );\n\n const onResetToDefaultClick = useCallback(() => {\n if (!onMenuItemsChanged) {\n return;\n }\n editMenuProps?.onResetSettingsToDefault?.();\n const originItems = defaultMenuItems?.filter(({id}) => id !== ALL_PAGES_ID);\n\n if (originItems) {\n onMenuItemsChanged(originItems);\n }\n\n if (onMenuGroupsChanged && defaultMenuGroups) {\n onMenuGroupsChanged(defaultMenuGroups);\n }\n }, [\n onMenuItemsChanged,\n editMenuProps,\n defaultMenuItems,\n onMenuGroupsChanged,\n defaultMenuGroups,\n ]);\n\n const handleToggleGroupVisibility = useCallback(\n (groupId: string) => {\n if (!onMenuGroupsChanged) {\n return;\n }\n\n const currentGroups = menuGroupsRef.current || [];\n const updatedGroups = currentGroups.map((group) => {\n if (group.id === groupId) {\n return {\n ...group,\n hidden: !group.hidden,\n };\n }\n\n return group;\n });\n\n onMenuGroupsChanged(updatedGroups);\n },\n [onMenuGroupsChanged],\n );\n\n const toggleMenuItemsVisibility = useCallback(\n (item: MenuItemsWithGroups) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const changedItem: MenuItemsWithGroups = {\n ...item,\n hidden: !item.hidden,\n };\n\n const originItems = menuItemsRef.current;\n const expandedItems = buildExpandedFromFlatList(originItems);\n\n editMenuProps?.onToggleMenuItem?.(changedItem);\n\n onMenuItemsChanged(\n expandedItems.map((menuItem) => {\n if (menuItem.id !== changedItem.id) {\n return menuItem;\n }\n return changedItem;\n }),\n );\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const onFirstLevelSortEnd = useCallback(\n ({oldIndex, newIndex}: ListSortParams) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const currentFlatList = menuItemsRef.current || [];\n const sortedResult = sortMenuItemsWithDividers(oldIndex, newIndex, currentFlatList);\n\n // convert to expanded list and pass to onMenuItemsChanged\n const updatedItems = buildExpandedFromFlatList(sortedResult);\n\n if (updatedItems) {\n onMenuItemsChanged?.(updatedItems);\n }\n },\n [onMenuItemsChanged],\n );\n\n const onSecondLevelSortEnd = useCallback(\n (groupIndex: number) =>\n ({oldIndex, newIndex}: ListSortParams) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const currentFlatList = menuItemsRef.current || [];\n const realOldIndex = getRealIndexInGroup(groupIndex, oldIndex, currentFlatList);\n const realNewIndex = getRealIndexInGroup(groupIndex, newIndex, currentFlatList);\n const expandedItems = buildExpandedFromFlatList(currentFlatList);\n\n const updatedItems = sortMenuItems(realOldIndex, realNewIndex, expandedItems);\n\n if (updatedItems) {\n onMenuItemsChanged?.(updatedItems);\n }\n },\n [onMenuItemsChanged],\n );\n\n const itemsWithLocalCollapsed = useMemo(() => {\n if (Object.keys(collapsedGroups).length === 0) return items;\n\n return items.map((item) => {\n if ('groupId' in item && item.groupId && item.groupId in collapsedGroups) {\n return {\n ...item,\n isCollapsed: collapsedGroups[item.groupId],\n };\n }\n return item;\n });\n }, [items, collapsedGroups]);\n\n const data = itemsWithLocalCollapsed.filter((item) => getIsMenuItem(item));\n\n return (\n <Flex className={b(null, className)} gap=\"1\" direction=\"column\">\n <Flex gap=\"4\" alignItems=\"center\" justifyContent=\"space-between\">\n <Text variant=\"subheader-2\">\n {isEditMode ? i18n('all-panel.title.editing') : i18n('all-panel.title.main')}\n </Text>\n <Tooltip content={i18n('all-panel.title.editing')}>\n <Button selected={isEditMode} view=\"flat-secondary\" onClick={toggleEditMode}>\n {startEditIcon ? startEditIcon : <Icon data={Gear} />}\n </Button>\n </Tooltip>\n </Flex>\n\n <CompositeBarView\n type=\"menu\"\n compact={false}\n className={b('content')}\n enableSorting={isEditMode && editMenuProps?.enableSorting}\n items={data}\n onFirstLevelSortEnd={\n isEditMode && editMenuProps?.enableSorting ? onFirstLevelSortEnd : undefined\n }\n onSecondLevelSortEnd={\n isEditMode && editMenuProps?.enableSorting ? onSecondLevelSortEnd : undefined\n }\n editMode={isEditMode}\n onItemClick={onItemClick}\n onToggleGroupCollapsed={handleToggleGroupCollapsed}\n onToggleMenuGroupVisibility={handleToggleGroupVisibility}\n onToggleMenuItemVisibility={toggleMenuItemsVisibility}\n />\n {isEditMode && (\n <Button onClick={onResetToDefaultClick}>{i18n('all-panel.resetToDefault')}</Button>\n )}\n </Flex>\n );\n};\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AllPagesPanel.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport {Gear} from '@gravity-ui/icons';\nimport {Button, Flex, Icon, ListSortParams, Text, Tooltip} from '@gravity-ui/uikit';\n\nimport {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderInnerContext} from '../../AsideHeaderContext';\nimport {AsideHeaderItem, MenuItemsWithGroups, SetCollapseBlocker} from '../../types';\nimport {CompositeBarView} from '../CompositeBar/CompositeBar';\n\nimport {ALL_PAGES_ID} from './constants';\nimport i18n from './i18n';\nimport {useGroupedMenuItems} from './useGroupedMenuItems';\nimport {buildExpandedFromFlatList} from './utils/buildExpandedFromFlatList';\nimport {getExpandedIndexForSortableIndex} from './utils/getExpandedIndexForSortableIndex';\nimport {getIsMenuItem} from './utils/getIsMenuItem';\nimport {applySecondLevelSort} from './utils/getRealIndexInGroup';\nimport {sortMenuItemsWithDividers} from './utils/sortMenuItemsWithDividers';\n\nimport styles from './AllPagesPanel.module.scss';\n\nconst b = createBlock('all-pages-panel', styles);\n\ninterface AllPagesPanelProps {\n className?: string;\n startEditIcon?: React.ReactNode;\n onEditModeChanged?: (isEditMode: boolean) => void;\n}\n\nexport const AllPagesPanel: React.FC<AllPagesPanelProps> = (props) => {\n const {startEditIcon, onEditModeChanged, className} = props;\n const {\n defaultMenuItems,\n editMenuProps,\n menuItems,\n menuGroups,\n defaultMenuGroups,\n onMenuItemsChanged,\n onMenuGroupsChanged,\n } = useAsideHeaderInnerContext();\n const items = useGroupedMenuItems(menuItems, menuGroups, true);\n\n const menuItemsRef = useRef(items);\n menuItemsRef.current = items;\n\n const menuGroupsRef = useRef(menuGroups);\n menuGroupsRef.current = menuGroups;\n\n const [isEditMode, setIsEditMode] = useState(false);\n\n const [collapsedGroups, setCollapsedGroups] = useState<Record<string, boolean>>(() => {\n const initial: Record<string, boolean> = {};\n\n items.forEach((item) => {\n if ('groupId' in item && item.groupId && 'isCollapsed' in item) {\n initial[item.groupId] = false;\n }\n });\n return initial;\n });\n\n const handleToggleGroupCollapsed = useCallback((groupId: string) => {\n setCollapsedGroups((prev) => ({...prev, [groupId]: !prev[groupId]}));\n }, []);\n\n const toggleEditMode = useCallback(() => {\n setIsEditMode((prev) => !prev);\n }, []);\n\n useEffect(() => {\n onEditModeChanged?.(isEditMode);\n\n if (isEditMode) {\n editMenuProps?.onOpenEditMode?.();\n }\n }, [isEditMode, onEditModeChanged, editMenuProps]);\n\n const onItemClick = useCallback(\n (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n options: {setCollapseBlocker: SetCollapseBlocker | undefined},\n ) => {\n // TODO: make event an optional argument\n item.onItemClick?.(\n item,\n collapsed,\n event as React.MouseEvent<HTMLElement, MouseEvent>,\n options,\n );\n },\n [],\n );\n\n const onResetToDefaultClick = useCallback(() => {\n if (!onMenuItemsChanged) {\n return;\n }\n editMenuProps?.onResetSettingsToDefault?.();\n const originItems = defaultMenuItems?.filter(({id}) => id !== ALL_PAGES_ID);\n\n if (originItems) {\n onMenuItemsChanged(originItems);\n }\n\n if (onMenuGroupsChanged && defaultMenuGroups) {\n onMenuGroupsChanged(defaultMenuGroups);\n }\n }, [\n onMenuItemsChanged,\n editMenuProps,\n defaultMenuItems,\n onMenuGroupsChanged,\n defaultMenuGroups,\n ]);\n\n const handleToggleGroupVisibility = useCallback(\n (groupId: string) => {\n if (!onMenuGroupsChanged) {\n return;\n }\n\n const currentGroups = menuGroupsRef.current || [];\n const updatedGroups = currentGroups.map((group) => {\n if (group.id === groupId) {\n return {\n ...group,\n hidden: !group.hidden,\n };\n }\n\n return group;\n });\n\n onMenuGroupsChanged(updatedGroups);\n },\n [onMenuGroupsChanged],\n );\n\n const toggleMenuItemsVisibility = useCallback(\n (item: MenuItemsWithGroups) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const changedItem: MenuItemsWithGroups = {\n ...item,\n hidden: !item.hidden,\n };\n\n const originItems = menuItemsRef.current;\n const expandedItems = buildExpandedFromFlatList(originItems);\n\n editMenuProps?.onToggleMenuItem?.(changedItem);\n\n onMenuItemsChanged(\n expandedItems.map((menuItem) => {\n if (menuItem.id !== changedItem.id) {\n return menuItem;\n }\n return changedItem;\n }),\n );\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const onFirstLevelSortEnd = useCallback(\n ({oldIndex, newIndex}: ListSortParams) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const currentFlatList = menuItemsRef.current || [];\n const sortedResult = sortMenuItemsWithDividers(oldIndex, newIndex, currentFlatList);\n const expandedItems = buildExpandedFromFlatList(currentFlatList);\n const updatedItems = buildExpandedFromFlatList(sortedResult);\n\n const realOldIndex = getExpandedIndexForSortableIndex(oldIndex, currentFlatList);\n const realNewIndex = getExpandedIndexForSortableIndex(newIndex, sortedResult);\n const changedItem = expandedItems[realOldIndex];\n\n onMenuItemsChanged?.(updatedItems);\n\n if (changedItem && getIsMenuItem(changedItem)) {\n editMenuProps?.onChangeItemsOrder?.(changedItem, realOldIndex, realNewIndex);\n }\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const onSecondLevelSortEnd = useCallback(\n (groupIndex: number) =>\n ({oldIndex, newIndex}: ListSortParams) => {\n if (!onMenuItemsChanged) {\n return;\n }\n\n const currentFlatList = menuItemsRef.current || [];\n const result = applySecondLevelSort(\n groupIndex,\n oldIndex,\n newIndex,\n currentFlatList,\n );\n\n if (!result) {\n return;\n }\n\n const {expandedItems, realOldIndex, realNewIndex, changedItem} = result;\n\n onMenuItemsChanged(expandedItems);\n\n if (changedItem && getIsMenuItem(changedItem)) {\n editMenuProps?.onChangeItemsOrder?.(changedItem, realOldIndex, realNewIndex);\n }\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const itemsWithLocalCollapsed = useMemo(() => {\n if (Object.keys(collapsedGroups).length === 0) return items;\n\n return items.map((item) => {\n if ('groupId' in item && item.groupId && item.groupId in collapsedGroups) {\n return {\n ...item,\n isCollapsed: collapsedGroups[item.groupId],\n };\n }\n return item;\n });\n }, [items, collapsedGroups]);\n\n const data = itemsWithLocalCollapsed.filter((item) => getIsMenuItem(item));\n\n return (\n <Flex className={b(null, className)} gap=\"1\" direction=\"column\">\n <Flex gap=\"4\" alignItems=\"center\" justifyContent=\"space-between\">\n <Text variant=\"subheader-2\">\n {isEditMode ? i18n('all-panel.title.editing') : i18n('all-panel.title.main')}\n </Text>\n <Tooltip content={i18n('all-panel.title.editing')}>\n <Button selected={isEditMode} view=\"flat-secondary\" onClick={toggleEditMode}>\n {startEditIcon ? startEditIcon : <Icon data={Gear} />}\n </Button>\n </Tooltip>\n </Flex>\n\n <CompositeBarView\n type=\"menu\"\n isExpanded={true}\n className={b('content')}\n enableSorting={isEditMode && editMenuProps?.enableSorting}\n items={data}\n onFirstLevelSortEnd={\n isEditMode && editMenuProps?.enableSorting ? onFirstLevelSortEnd : undefined\n }\n onSecondLevelSortEnd={\n isEditMode && editMenuProps?.enableSorting ? onSecondLevelSortEnd : undefined\n }\n editMode={isEditMode}\n onItemClick={onItemClick}\n onToggleGroupCollapsed={handleToggleGroupCollapsed}\n onToggleMenuGroupVisibility={handleToggleGroupVisibility}\n onToggleMenuItemVisibility={toggleMenuItemsVisibility}\n />\n {isEditMode && (\n <Button onClick={onResetToDefaultClick}>{i18n('all-panel.resetToDefault')}</Button>\n )}\n </Flex>\n );\n};\n"],"names":["React"],"mappings":"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"}
|
package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var styles = {"gn-all-pages-panel":"AllPagesPanel-module__gn-all-pages-panel___RN6Kk","gnAllPagesPanel":"AllPagesPanel-module__gn-all-pages-panel___RN6Kk","gn-all-pages-panel__content":"AllPagesPanel-module__gn-all-pages-panel__content___XgBXG","gnAllPagesPanelContent":"AllPagesPanel-module__gn-all-pages-panel__content___XgBXG"
|
|
1
|
+
var styles = {"gn-all-pages-panel":"AllPagesPanel-module__gn-all-pages-panel___RN6Kk","gnAllPagesPanel":"AllPagesPanel-module__gn-all-pages-panel___RN6Kk","gn-all-pages-panel__content":"AllPagesPanel-module__gn-all-pages-panel__content___XgBXG","gnAllPagesPanelContent":"AllPagesPanel-module__gn-all-pages-panel__content___XgBXG"};
|
|
2
2
|
|
|
3
3
|
export { styles as default };
|
|
4
4
|
//# sourceMappingURL=AllPagesPanel.module.scss.js.map
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
+
import { getVisibleItemsWithFilteredDividers } from '../CompositeBar/utils.js';
|
|
2
3
|
import { ALL_PAGES_ID } from './constants.js';
|
|
3
4
|
|
|
4
5
|
const useGroupedMenuItems = (menuItems, menuGroups, isEditMode = false) => {
|
|
5
6
|
return useMemo(() => {
|
|
7
|
+
var _a;
|
|
6
8
|
const visibleItems = menuItems.filter((item) => {
|
|
7
9
|
if (isEditMode && item.id === ALL_PAGES_ID) {
|
|
8
10
|
return false;
|
|
@@ -38,7 +40,7 @@ const useGroupedMenuItems = (menuItems, menuGroups, isEditMode = false) => {
|
|
|
38
40
|
});
|
|
39
41
|
const flatListItems = [];
|
|
40
42
|
visibleItems.forEach((item) => {
|
|
41
|
-
var _a, _b;
|
|
43
|
+
var _a, _b, _c, _d;
|
|
42
44
|
const groupId = item.groupId;
|
|
43
45
|
if (groupId) {
|
|
44
46
|
if (!processedGroups.has(groupId)) {
|
|
@@ -51,15 +53,15 @@ const useGroupedMenuItems = (menuItems, menuGroups, isEditMode = false) => {
|
|
|
51
53
|
const isGroupHidden = isAllGroupItemsHidden
|
|
52
54
|
? true
|
|
53
55
|
: ((_a = group === null || group === undefined ? undefined : group.hidden) !== null && _a !== undefined ? _a : false);
|
|
56
|
+
const effectiveCollapsed = (_c = (_b = group === null || group === undefined ? undefined : group.collapsed) !== null && _b !== undefined ? _b : group === null || group === undefined ? undefined : group.collapsedByDefault) !== null && _c !== undefined ? _c : false;
|
|
54
57
|
flatListItems.push({
|
|
55
58
|
id: groupId,
|
|
56
|
-
title: (
|
|
59
|
+
title: (_d = group === null || group === undefined ? undefined : group.title) !== null && _d !== undefined ? _d : groupId,
|
|
57
60
|
icon: group === null || group === undefined ? undefined : group.icon,
|
|
58
61
|
hidden: isGroupHidden,
|
|
59
|
-
isDisabled: isAllGroupItemsHidden,
|
|
60
62
|
collapsible: group === null || group === undefined ? undefined : group.collapsible,
|
|
61
63
|
collapsedByDefault: group === null || group === undefined ? undefined : group.collapsedByDefault,
|
|
62
|
-
isCollapsed:
|
|
64
|
+
isCollapsed: effectiveCollapsed,
|
|
63
65
|
groupId: groupId,
|
|
64
66
|
items,
|
|
65
67
|
});
|
|
@@ -70,7 +72,10 @@ const useGroupedMenuItems = (menuItems, menuGroups, isEditMode = false) => {
|
|
|
70
72
|
flatListItems.push(item);
|
|
71
73
|
}
|
|
72
74
|
});
|
|
73
|
-
|
|
75
|
+
if (isEditMode) {
|
|
76
|
+
return flatListItems;
|
|
77
|
+
}
|
|
78
|
+
return (_a = getVisibleItemsWithFilteredDividers(flatListItems, ALL_PAGES_ID)) !== null && _a !== undefined ? _a : [];
|
|
74
79
|
}, [menuItems, menuGroups, isEditMode]);
|
|
75
80
|
};
|
|
76
81
|
|
package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGroupedMenuItems.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {MenuGroup, MenuItem} from '../../../types';\nimport {MenuItemsWithGroups} from '../../types';\n\nimport {ALL_PAGES_ID} from './constants';\n\nexport const useGroupedMenuItems = (\n menuItems: MenuItem[],\n menuGroups?: MenuGroup[],\n isEditMode = false,\n): MenuItemsWithGroups[] => {\n return useMemo(() => {\n const visibleItems = menuItems.filter((item: MenuItem): boolean => {\n if (isEditMode && item.id === ALL_PAGES_ID) {\n return false;\n }\n\n return true;\n });\n\n visibleItems.sort(({type: typeA}, {type: typeB}) => {\n if (typeA === 'action') {\n return 1;\n }\n if (typeB === 'action') {\n return -1;\n }\n return 0;\n });\n\n const groupsMap = new Map<string, MenuGroup>();\n\n menuGroups?.forEach((group) => {\n groupsMap.set(group.id, group);\n });\n\n const groupedItems = new Map<string, MenuItemsWithGroups[]>();\n const ungroupedItems: MenuItemsWithGroups[] = [];\n const processedGroups = new Set<string>();\n\n visibleItems.forEach((item) => {\n const groupId = item.groupId;\n\n if (groupId) {\n if (!groupedItems.has(groupId)) {\n groupedItems.set(groupId, []);\n }\n\n const group = groupedItems.get(groupId);\n\n if (group) {\n group.push(item);\n }\n } else {\n ungroupedItems.push(item);\n }\n });\n\n const flatListItems: MenuItemsWithGroups[] = [];\n\n visibleItems.forEach((item) => {\n const groupId = item.groupId;\n\n if (groupId) {\n if (!processedGroups.has(groupId)) {\n processedGroups.add(groupId);\n\n const items = groupedItems.get(groupId) || [];\n\n if (items.length > 0) {\n const itemsWithVisible = items.filter((sortedItem) => !sortedItem.hidden);\n\n const group = groupsMap.get(groupId);\n const isAllGroupItemsHidden = itemsWithVisible.length === 0;\n const isGroupHidden = isAllGroupItemsHidden\n ? true\n : (group?.hidden ?? false);\n\n flatListItems.push({\n id: groupId,\n title: group?.title ?? groupId,\n icon: group?.icon,\n hidden: isGroupHidden,\n
|
|
1
|
+
{"version":3,"file":"useGroupedMenuItems.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.ts"],"sourcesContent":["import {useMemo} from 'react';\n\nimport {MenuGroup, MenuItem} from '../../../types';\nimport {MenuItemsWithGroups} from '../../types';\nimport {getVisibleItemsWithFilteredDividers} from '../CompositeBar/utils';\n\nimport {ALL_PAGES_ID} from './constants';\n\nexport const useGroupedMenuItems = (\n menuItems: MenuItem[],\n menuGroups?: MenuGroup[],\n isEditMode = false,\n): MenuItemsWithGroups[] => {\n return useMemo(() => {\n const visibleItems = menuItems.filter((item: MenuItem): boolean => {\n if (isEditMode && item.id === ALL_PAGES_ID) {\n return false;\n }\n\n return true;\n });\n\n visibleItems.sort(({type: typeA}, {type: typeB}) => {\n if (typeA === 'action') {\n return 1;\n }\n if (typeB === 'action') {\n return -1;\n }\n return 0;\n });\n\n const groupsMap = new Map<string, MenuGroup>();\n\n menuGroups?.forEach((group) => {\n groupsMap.set(group.id, group);\n });\n\n const groupedItems = new Map<string, MenuItemsWithGroups[]>();\n const ungroupedItems: MenuItemsWithGroups[] = [];\n const processedGroups = new Set<string>();\n\n visibleItems.forEach((item) => {\n const groupId = item.groupId;\n\n if (groupId) {\n if (!groupedItems.has(groupId)) {\n groupedItems.set(groupId, []);\n }\n\n const group = groupedItems.get(groupId);\n\n if (group) {\n group.push(item);\n }\n } else {\n ungroupedItems.push(item);\n }\n });\n\n const flatListItems: MenuItemsWithGroups[] = [];\n\n visibleItems.forEach((item) => {\n const groupId = item.groupId;\n\n if (groupId) {\n if (!processedGroups.has(groupId)) {\n processedGroups.add(groupId);\n\n const items = groupedItems.get(groupId) || [];\n\n if (items.length > 0) {\n const itemsWithVisible = items.filter((sortedItem) => !sortedItem.hidden);\n\n const group = groupsMap.get(groupId);\n const isAllGroupItemsHidden = itemsWithVisible.length === 0;\n const isGroupHidden = isAllGroupItemsHidden\n ? true\n : (group?.hidden ?? false);\n\n const effectiveCollapsed =\n group?.collapsed ?? group?.collapsedByDefault ?? false;\n\n flatListItems.push({\n id: groupId,\n title: group?.title ?? groupId,\n icon: group?.icon,\n hidden: isGroupHidden,\n collapsible: group?.collapsible,\n collapsedByDefault: group?.collapsedByDefault,\n isCollapsed: effectiveCollapsed,\n groupId: groupId,\n items,\n });\n }\n }\n }\n\n if (!groupId) {\n flatListItems.push(item);\n }\n });\n\n if (isEditMode) {\n return flatListItems;\n }\n\n return getVisibleItemsWithFilteredDividers(flatListItems, ALL_PAGES_ID) ?? [];\n }, [menuItems, menuGroups, isEditMode]);\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MenuItemsWithGroups } from '../../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Returns index in expanded list for the sortableIndex-th sortable item in flatList.
|
|
4
|
+
*
|
|
5
|
+
* @param sortableIndex - Index in the list of sortable (non-divider) items.
|
|
6
|
+
* @param flatList - Flat list with groups and dividers.
|
|
7
|
+
* @returns Index in the expanded (flattened) menu list.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getExpandedIndexForSortableIndex(sortableIndex: number, flatList: MenuItemsWithGroups[]): number;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getIsMenuItem } from './getIsMenuItem.js';
|
|
2
|
+
import { getRealIndexInExpandedMenu } from './getRealIndexInGroup.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Returns index in expanded list for the sortableIndex-th sortable item in flatList.
|
|
6
|
+
*
|
|
7
|
+
* @param sortableIndex - Index in the list of sortable (non-divider) items.
|
|
8
|
+
* @param flatList - Flat list with groups and dividers.
|
|
9
|
+
* @returns Index in the expanded (flattened) menu list.
|
|
10
|
+
*/
|
|
11
|
+
function getExpandedIndexForSortableIndex(sortableIndex, flatList) {
|
|
12
|
+
let sortableCount = 0;
|
|
13
|
+
for (let i = 0; i < flatList.length; i++) {
|
|
14
|
+
if (getIsMenuItem(flatList[i])) {
|
|
15
|
+
if (sortableCount === sortableIndex) {
|
|
16
|
+
return getRealIndexInExpandedMenu(i, flatList);
|
|
17
|
+
}
|
|
18
|
+
sortableCount++;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { getExpandedIndexForSortableIndex };
|
|
25
|
+
//# sourceMappingURL=getExpandedIndexForSortableIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getExpandedIndexForSortableIndex.js","sources":["../../../../../../../../src/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.ts"],"sourcesContent":["import {MenuItemsWithGroups} from '../../../types';\n\nimport {getIsMenuItem} from './getIsMenuItem';\nimport {getRealIndexInExpandedMenu} from './getRealIndexInGroup';\n\n/**\n * Returns index in expanded list for the sortableIndex-th sortable item in flatList.\n *\n * @param sortableIndex - Index in the list of sortable (non-divider) items.\n * @param flatList - Flat list with groups and dividers.\n * @returns Index in the expanded (flattened) menu list.\n */\nexport function getExpandedIndexForSortableIndex(\n sortableIndex: number,\n flatList: MenuItemsWithGroups[],\n): number {\n let sortableCount = 0;\n for (let i = 0; i < flatList.length; i++) {\n if (getIsMenuItem(flatList[i])) {\n if (sortableCount === sortableIndex) {\n return getRealIndexInExpandedMenu(i, flatList);\n }\n sortableCount++;\n }\n }\n return 0;\n}\n"],"names":[],"mappings":";;;AAKA;;;;;;AAMG;AACa,SAAA,gCAAgC,CAC5C,aAAqB,EACrB,QAA+B,EAAA;IAE/B,IAAI,aAAa,GAAG,CAAC;AACrB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5B,YAAA,IAAI,aAAa,KAAK,aAAa,EAAE;AACjC,gBAAA,OAAO,0BAA0B,CAAC,CAAC,EAAE,QAAQ,CAAC;;AAElD,YAAA,aAAa,EAAE;;;AAGvB,IAAA,OAAO,CAAC;AACZ;;;;"}
|
package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts
CHANGED
|
@@ -1,2 +1,73 @@
|
|
|
1
1
|
import { MenuItemsWithGroups } from '../../../types';
|
|
2
|
+
import { buildExpandedFromFlatList } from './buildExpandedFromFlatList';
|
|
3
|
+
/**
|
|
4
|
+
* Returns index in flatList of the sortableIndex-th sortable item (getIsMenuItem).
|
|
5
|
+
* Used when groupIndex from the List is the index in the filtered list without dividers.
|
|
6
|
+
*
|
|
7
|
+
* @param sortableIndex - Index in the list of sortable (non-divider) items.
|
|
8
|
+
* @param flatList - Flat list with groups and dividers.
|
|
9
|
+
* @returns Index in flatList of the sortableIndex-th sortable item.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getFlatListIndexForSortableIndex(sortableIndex: number, flatList: MenuItemsWithGroups[]): number;
|
|
12
|
+
/**
|
|
13
|
+
* Returns index in groupItems array for the sortableIndex-th sortable (non-divider) item.
|
|
14
|
+
* Used when oldIndex/newIndex from sort are indices in the sortable-only list.
|
|
15
|
+
*
|
|
16
|
+
* @param sortableIndex - Index in the list of sortable (non-divider) items.
|
|
17
|
+
* @param groupItems - Items of the group (may contain dividers).
|
|
18
|
+
* @returns Index in groupItems of the sortableIndex-th sortable item.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getIndexInGroupItemsForSortableIndex(sortableIndex: number, groupItems: MenuItemsWithGroups[]): number;
|
|
21
|
+
export declare function getRealIndexInExpandedMenu(flatListIndex: number, flatList: MenuItemsWithGroups[]): number;
|
|
22
|
+
/**
|
|
23
|
+
* Returns index in the expanded menu for an item in a group.
|
|
24
|
+
* itemIndexInGroup is the index in the sortable-only list (dividers are not counted).
|
|
25
|
+
*
|
|
26
|
+
* @param groupIndex - Index of the group in the flat list.
|
|
27
|
+
* @param itemIndexInGroup - Index in the sortable-only list within the group.
|
|
28
|
+
* @param flatList - Flat list with groups and dividers.
|
|
29
|
+
* @returns Index in the expanded (flattened) menu list.
|
|
30
|
+
*/
|
|
2
31
|
export declare function getRealIndexInGroup(groupIndex: number, itemIndexInGroup: number, flatList: MenuItemsWithGroups[]): number;
|
|
32
|
+
type GroupWithItems = MenuItemsWithGroups & {
|
|
33
|
+
items: MenuItemsWithGroups[];
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Returns group item and its index in flat list by sortable index (index in list without dividers).
|
|
37
|
+
*
|
|
38
|
+
* @param sortableIndex - Index in the filtered list (getIsMenuItem).
|
|
39
|
+
* @param flatList - Flat list with groups and dividers.
|
|
40
|
+
* @returns Object with flatListGroupIndex and groupItem, or null if not a group with items.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getGroupAtSortableIndex(sortableIndex: number, flatList: MenuItemsWithGroups[]): {
|
|
43
|
+
flatListGroupIndex: number;
|
|
44
|
+
groupItem: GroupWithItems;
|
|
45
|
+
} | null;
|
|
46
|
+
/**
|
|
47
|
+
* Returns new flat list with group items replaced at the given index.
|
|
48
|
+
*
|
|
49
|
+
* @param flatList - Current flat list.
|
|
50
|
+
* @param flatListGroupIndex - Index of the group in flat list.
|
|
51
|
+
* @param newGroupItems - New items array for the group.
|
|
52
|
+
* @returns New flat list with updated group.
|
|
53
|
+
*/
|
|
54
|
+
export declare function updateGroupItemsInFlatList(flatList: MenuItemsWithGroups[], flatListGroupIndex: number, newGroupItems: MenuItemsWithGroups[]): MenuItemsWithGroups[];
|
|
55
|
+
interface SecondLevelSortResult {
|
|
56
|
+
newFlatList: MenuItemsWithGroups[];
|
|
57
|
+
expandedItems: ReturnType<typeof buildExpandedFromFlatList>;
|
|
58
|
+
realOldIndex: number;
|
|
59
|
+
realNewIndex: number;
|
|
60
|
+
changedItem: ReturnType<typeof buildExpandedFromFlatList>[number] | undefined;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Applies second-level sort (within a group) and returns new flat list, expanded items and indices.
|
|
64
|
+
* Keeps dividers in place inside the group.
|
|
65
|
+
*
|
|
66
|
+
* @param groupIndex - Sortable index of the group (from List, without dividers).
|
|
67
|
+
* @param oldIndex - Sortable index of dragged item in the group.
|
|
68
|
+
* @param newIndex - Sortable index of drop position in the group.
|
|
69
|
+
* @param currentFlatList - Current flat list.
|
|
70
|
+
* @returns Result with newFlatList, expandedItems, indices and changedItem, or null if invalid.
|
|
71
|
+
*/
|
|
72
|
+
export declare function applySecondLevelSort(groupIndex: number, oldIndex: number, newIndex: number, currentFlatList: MenuItemsWithGroups[]): SecondLevelSortResult | null;
|
|
73
|
+
export {};
|
package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js
CHANGED
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
import { buildExpandedFromFlatList } from './buildExpandedFromFlatList.js';
|
|
2
|
+
import { getIsMenuItem } from './getIsMenuItem.js';
|
|
3
|
+
import { sortMenuItemsWithDividers } from './sortMenuItemsWithDividers.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns index in flatList of the sortableIndex-th sortable item (getIsMenuItem).
|
|
7
|
+
* Used when groupIndex from the List is the index in the filtered list without dividers.
|
|
8
|
+
*
|
|
9
|
+
* @param sortableIndex - Index in the list of sortable (non-divider) items.
|
|
10
|
+
* @param flatList - Flat list with groups and dividers.
|
|
11
|
+
* @returns Index in flatList of the sortableIndex-th sortable item.
|
|
12
|
+
*/
|
|
13
|
+
function getFlatListIndexForSortableIndex(sortableIndex, flatList) {
|
|
14
|
+
let sortableCount = 0;
|
|
15
|
+
for (let i = 0; i < flatList.length; i++) {
|
|
16
|
+
if (getIsMenuItem(flatList[i])) {
|
|
17
|
+
if (sortableCount === sortableIndex) {
|
|
18
|
+
return i;
|
|
19
|
+
}
|
|
20
|
+
sortableCount++;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns index in groupItems array for the sortableIndex-th sortable (non-divider) item.
|
|
27
|
+
* Used when oldIndex/newIndex from sort are indices in the sortable-only list.
|
|
28
|
+
*
|
|
29
|
+
* @param sortableIndex - Index in the list of sortable (non-divider) items.
|
|
30
|
+
* @param groupItems - Items of the group (may contain dividers).
|
|
31
|
+
* @returns Index in groupItems of the sortableIndex-th sortable item.
|
|
32
|
+
*/
|
|
33
|
+
function getIndexInGroupItemsForSortableIndex(sortableIndex, groupItems) {
|
|
34
|
+
let sortableCount = 0;
|
|
35
|
+
for (let i = 0; i < groupItems.length; i++) {
|
|
36
|
+
if (getIsMenuItem(groupItems[i])) {
|
|
37
|
+
if (sortableCount === sortableIndex) {
|
|
38
|
+
return i;
|
|
39
|
+
}
|
|
40
|
+
sortableCount++;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return 0;
|
|
44
|
+
}
|
|
1
45
|
function getRealIndexInExpandedMenu(flatListIndex, flatList) {
|
|
2
46
|
let realIndex = 0;
|
|
3
47
|
for (let i = 0; i < flatListIndex; i++) {
|
|
@@ -11,10 +55,82 @@ function getRealIndexInExpandedMenu(flatListIndex, flatList) {
|
|
|
11
55
|
}
|
|
12
56
|
return realIndex;
|
|
13
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Returns index in the expanded menu for an item in a group.
|
|
60
|
+
* itemIndexInGroup is the index in the sortable-only list (dividers are not counted).
|
|
61
|
+
*
|
|
62
|
+
* @param groupIndex - Index of the group in the flat list.
|
|
63
|
+
* @param itemIndexInGroup - Index in the sortable-only list within the group.
|
|
64
|
+
* @param flatList - Flat list with groups and dividers.
|
|
65
|
+
* @returns Index in the expanded (flattened) menu list.
|
|
66
|
+
*/
|
|
14
67
|
function getRealIndexInGroup(groupIndex, itemIndexInGroup, flatList) {
|
|
15
68
|
const groupStartIndex = getRealIndexInExpandedMenu(groupIndex, flatList);
|
|
69
|
+
const groupItem = flatList[groupIndex];
|
|
70
|
+
if ('items' in groupItem && groupItem.items && groupItem.items.length > 0) {
|
|
71
|
+
const positionInGroup = getIndexInGroupItemsForSortableIndex(itemIndexInGroup, groupItem.items);
|
|
72
|
+
return groupStartIndex + positionInGroup;
|
|
73
|
+
}
|
|
16
74
|
return groupStartIndex + itemIndexInGroup;
|
|
17
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Returns group item and its index in flat list by sortable index (index in list without dividers).
|
|
78
|
+
*
|
|
79
|
+
* @param sortableIndex - Index in the filtered list (getIsMenuItem).
|
|
80
|
+
* @param flatList - Flat list with groups and dividers.
|
|
81
|
+
* @returns Object with flatListGroupIndex and groupItem, or null if not a group with items.
|
|
82
|
+
*/
|
|
83
|
+
function getGroupAtSortableIndex(sortableIndex, flatList) {
|
|
84
|
+
var _a;
|
|
85
|
+
const flatListGroupIndex = getFlatListIndexForSortableIndex(sortableIndex, flatList);
|
|
86
|
+
const groupItem = flatList[flatListGroupIndex];
|
|
87
|
+
if (!groupItem || !('items' in groupItem) || !((_a = groupItem.items) === null || _a === undefined ? undefined : _a.length)) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
return { flatListGroupIndex, groupItem: groupItem };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Returns new flat list with group items replaced at the given index.
|
|
94
|
+
*
|
|
95
|
+
* @param flatList - Current flat list.
|
|
96
|
+
* @param flatListGroupIndex - Index of the group in flat list.
|
|
97
|
+
* @param newGroupItems - New items array for the group.
|
|
98
|
+
* @returns New flat list with updated group.
|
|
99
|
+
*/
|
|
100
|
+
function updateGroupItemsInFlatList(flatList, flatListGroupIndex, newGroupItems) {
|
|
101
|
+
return flatList.map((item, i) => i === flatListGroupIndex && 'items' in item ? Object.assign(Object.assign({}, item), { items: newGroupItems }) : item);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Applies second-level sort (within a group) and returns new flat list, expanded items and indices.
|
|
105
|
+
* Keeps dividers in place inside the group.
|
|
106
|
+
*
|
|
107
|
+
* @param groupIndex - Sortable index of the group (from List, without dividers).
|
|
108
|
+
* @param oldIndex - Sortable index of dragged item in the group.
|
|
109
|
+
* @param newIndex - Sortable index of drop position in the group.
|
|
110
|
+
* @param currentFlatList - Current flat list.
|
|
111
|
+
* @returns Result with newFlatList, expandedItems, indices and changedItem, or null if invalid.
|
|
112
|
+
*/
|
|
113
|
+
function applySecondLevelSort(groupIndex, oldIndex, newIndex, currentFlatList) {
|
|
114
|
+
const groupData = getGroupAtSortableIndex(groupIndex, currentFlatList);
|
|
115
|
+
if (!groupData) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const { flatListGroupIndex, groupItem } = groupData;
|
|
119
|
+
const sortedGroupItems = sortMenuItemsWithDividers(oldIndex, newIndex, groupItem.items);
|
|
120
|
+
const newFlatList = updateGroupItemsInFlatList(currentFlatList, flatListGroupIndex, sortedGroupItems);
|
|
121
|
+
const expandedItems = buildExpandedFromFlatList(newFlatList);
|
|
122
|
+
const expandedItemsOld = buildExpandedFromFlatList(currentFlatList);
|
|
123
|
+
const realOldIndex = getRealIndexInGroup(flatListGroupIndex, oldIndex, currentFlatList);
|
|
124
|
+
const realNewIndex = getRealIndexInGroup(flatListGroupIndex, newIndex, newFlatList);
|
|
125
|
+
const changedItem = expandedItemsOld[realOldIndex];
|
|
126
|
+
return {
|
|
127
|
+
newFlatList,
|
|
128
|
+
expandedItems,
|
|
129
|
+
realOldIndex,
|
|
130
|
+
realNewIndex,
|
|
131
|
+
changedItem,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
18
134
|
|
|
19
|
-
export { getRealIndexInGroup };
|
|
135
|
+
export { applySecondLevelSort, getFlatListIndexForSortableIndex, getGroupAtSortableIndex, getIndexInGroupItemsForSortableIndex, getRealIndexInExpandedMenu, getRealIndexInGroup, updateGroupItemsInFlatList };
|
|
20
136
|
//# sourceMappingURL=getRealIndexInGroup.js.map
|
package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRealIndexInGroup.js","sources":["../../../../../../../../src/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.ts"],"sourcesContent":["import {MenuItemsWithGroups} from '../../../types';\n\
|
|
1
|
+
{"version":3,"file":"getRealIndexInGroup.js","sources":["../../../../../../../../src/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.ts"],"sourcesContent":["import {MenuItemsWithGroups} from '../../../types';\n\nimport {buildExpandedFromFlatList} from './buildExpandedFromFlatList';\nimport {getIsMenuItem} from './getIsMenuItem';\nimport {sortMenuItemsWithDividers} from './sortMenuItemsWithDividers';\n\n/**\n * Returns index in flatList of the sortableIndex-th sortable item (getIsMenuItem).\n * Used when groupIndex from the List is the index in the filtered list without dividers.\n *\n * @param sortableIndex - Index in the list of sortable (non-divider) items.\n * @param flatList - Flat list with groups and dividers.\n * @returns Index in flatList of the sortableIndex-th sortable item.\n */\nexport function getFlatListIndexForSortableIndex(\n sortableIndex: number,\n flatList: MenuItemsWithGroups[],\n): number {\n let sortableCount = 0;\n for (let i = 0; i < flatList.length; i++) {\n if (getIsMenuItem(flatList[i])) {\n if (sortableCount === sortableIndex) {\n return i;\n }\n sortableCount++;\n }\n }\n return 0;\n}\n\n/**\n * Returns index in groupItems array for the sortableIndex-th sortable (non-divider) item.\n * Used when oldIndex/newIndex from sort are indices in the sortable-only list.\n *\n * @param sortableIndex - Index in the list of sortable (non-divider) items.\n * @param groupItems - Items of the group (may contain dividers).\n * @returns Index in groupItems of the sortableIndex-th sortable item.\n */\nexport function getIndexInGroupItemsForSortableIndex(\n sortableIndex: number,\n groupItems: MenuItemsWithGroups[],\n): number {\n let sortableCount = 0;\n for (let i = 0; i < groupItems.length; i++) {\n if (getIsMenuItem(groupItems[i])) {\n if (sortableCount === sortableIndex) {\n return i;\n }\n sortableCount++;\n }\n }\n return 0;\n}\n\nexport function getRealIndexInExpandedMenu(\n flatListIndex: number,\n flatList: MenuItemsWithGroups[],\n): number {\n let realIndex = 0;\n\n for (let i = 0; i < flatListIndex; i++) {\n const item = flatList[i];\n\n if ('items' in item && item.items && item.items.length > 0) {\n realIndex += item.items.length;\n } else {\n realIndex += 1;\n }\n }\n\n return realIndex;\n}\n\n/**\n * Returns index in the expanded menu for an item in a group.\n * itemIndexInGroup is the index in the sortable-only list (dividers are not counted).\n *\n * @param groupIndex - Index of the group in the flat list.\n * @param itemIndexInGroup - Index in the sortable-only list within the group.\n * @param flatList - Flat list with groups and dividers.\n * @returns Index in the expanded (flattened) menu list.\n */\nexport function getRealIndexInGroup(\n groupIndex: number,\n itemIndexInGroup: number,\n flatList: MenuItemsWithGroups[],\n): number {\n const groupStartIndex = getRealIndexInExpandedMenu(groupIndex, flatList);\n const groupItem = flatList[groupIndex];\n\n if ('items' in groupItem && groupItem.items && groupItem.items.length > 0) {\n const positionInGroup = getIndexInGroupItemsForSortableIndex(\n itemIndexInGroup,\n groupItem.items,\n );\n return groupStartIndex + positionInGroup;\n }\n\n return groupStartIndex + itemIndexInGroup;\n}\n\ntype GroupWithItems = MenuItemsWithGroups & {items: MenuItemsWithGroups[]};\n\n/**\n * Returns group item and its index in flat list by sortable index (index in list without dividers).\n *\n * @param sortableIndex - Index in the filtered list (getIsMenuItem).\n * @param flatList - Flat list with groups and dividers.\n * @returns Object with flatListGroupIndex and groupItem, or null if not a group with items.\n */\nexport function getGroupAtSortableIndex(\n sortableIndex: number,\n flatList: MenuItemsWithGroups[],\n): {flatListGroupIndex: number; groupItem: GroupWithItems} | null {\n const flatListGroupIndex = getFlatListIndexForSortableIndex(sortableIndex, flatList);\n const groupItem = flatList[flatListGroupIndex];\n\n if (!groupItem || !('items' in groupItem) || !(groupItem as GroupWithItems).items?.length) {\n return null;\n }\n\n return {flatListGroupIndex, groupItem: groupItem as GroupWithItems};\n}\n\n/**\n * Returns new flat list with group items replaced at the given index.\n *\n * @param flatList - Current flat list.\n * @param flatListGroupIndex - Index of the group in flat list.\n * @param newGroupItems - New items array for the group.\n * @returns New flat list with updated group.\n */\nexport function updateGroupItemsInFlatList(\n flatList: MenuItemsWithGroups[],\n flatListGroupIndex: number,\n newGroupItems: MenuItemsWithGroups[],\n): MenuItemsWithGroups[] {\n return flatList.map((item, i) =>\n i === flatListGroupIndex && 'items' in item ? {...item, items: newGroupItems} : item,\n );\n}\n\ninterface SecondLevelSortResult {\n newFlatList: MenuItemsWithGroups[];\n expandedItems: ReturnType<typeof buildExpandedFromFlatList>;\n realOldIndex: number;\n realNewIndex: number;\n changedItem: ReturnType<typeof buildExpandedFromFlatList>[number] | undefined;\n}\n\n/**\n * Applies second-level sort (within a group) and returns new flat list, expanded items and indices.\n * Keeps dividers in place inside the group.\n *\n * @param groupIndex - Sortable index of the group (from List, without dividers).\n * @param oldIndex - Sortable index of dragged item in the group.\n * @param newIndex - Sortable index of drop position in the group.\n * @param currentFlatList - Current flat list.\n * @returns Result with newFlatList, expandedItems, indices and changedItem, or null if invalid.\n */\nexport function applySecondLevelSort(\n groupIndex: number,\n oldIndex: number,\n newIndex: number,\n currentFlatList: MenuItemsWithGroups[],\n): SecondLevelSortResult | null {\n const groupData = getGroupAtSortableIndex(groupIndex, currentFlatList);\n\n if (!groupData) {\n return null;\n }\n\n const {flatListGroupIndex, groupItem} = groupData;\n const sortedGroupItems = sortMenuItemsWithDividers(oldIndex, newIndex, groupItem.items);\n const newFlatList = updateGroupItemsInFlatList(\n currentFlatList,\n flatListGroupIndex,\n sortedGroupItems,\n );\n const expandedItems = buildExpandedFromFlatList(newFlatList);\n const expandedItemsOld = buildExpandedFromFlatList(currentFlatList);\n const realOldIndex = getRealIndexInGroup(flatListGroupIndex, oldIndex, currentFlatList);\n const realNewIndex = getRealIndexInGroup(flatListGroupIndex, newIndex, newFlatList);\n const changedItem = expandedItemsOld[realOldIndex];\n\n return {\n newFlatList,\n expandedItems,\n realOldIndex,\n realNewIndex,\n changedItem,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { MenuItemsWithGroups } from '../../../types';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Sorts menu items while preserving divider and action positions at their original locations.
|
|
4
|
+
*/
|
|
3
5
|
export declare function sortMenuItemsWithDividers(oldIndex: number, newIndex: number, currentFlatList: MenuItemsWithGroups[]): MenuItemsWithGroups[];
|