@cloud-ru/ds-uikit-product-header 1.0.1-preview-7665e9c3.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/CHANGELOG.md +8 -0
- package/LICENSE +201 -0
- package/README.md +717 -0
- package/dist/cjs/components/HeaderButton/HeaderButton.d.ts +14 -0
- package/dist/cjs/components/HeaderButton/HeaderButton.js +33 -0
- package/dist/cjs/components/HeaderButton/index.d.ts +1 -0
- package/dist/cjs/components/HeaderButton/index.js +17 -0
- package/dist/cjs/components/HeaderButton/styles.module.css +3 -0
- package/dist/cjs/components/HeaderLayout/HeaderLayout.d.ts +11 -0
- package/dist/cjs/components/HeaderLayout/HeaderLayout.js +16 -0
- package/dist/cjs/components/HeaderLayout/index.d.ts +1 -0
- package/dist/cjs/components/HeaderLayout/index.js +17 -0
- package/dist/cjs/components/HeaderLayout/styles.module.css +37 -0
- package/dist/cjs/components/Logo/Logo.d.ts +14 -0
- package/dist/cjs/components/Logo/Logo.js +35 -0
- package/dist/cjs/components/Logo/constants.d.ts +10 -0
- package/dist/cjs/components/Logo/constants.js +14 -0
- package/dist/cjs/components/Logo/index.d.ts +1 -0
- package/dist/cjs/components/Logo/index.js +17 -0
- package/dist/cjs/components/Logo/styles.module.css +53 -0
- package/dist/cjs/components/MainMenu/MainMenu.d.ts +2 -0
- package/dist/cjs/components/MainMenu/MainMenu.js +25 -0
- package/dist/cjs/components/MainMenu/constants.d.ts +14 -0
- package/dist/cjs/components/MainMenu/constants.js +24 -0
- package/dist/cjs/components/MainMenu/helperComponents/Banners/MenuBanner.d.ts +16 -0
- package/dist/cjs/components/MainMenu/helperComponents/Banners/MenuBanner.js +27 -0
- package/dist/cjs/components/MainMenu/helperComponents/Banners/constants.d.ts +7 -0
- package/dist/cjs/components/MainMenu/helperComponents/Banners/constants.js +10 -0
- package/dist/cjs/components/MainMenu/helperComponents/Banners/index.d.ts +2 -0
- package/dist/cjs/components/MainMenu/helperComponents/Banners/index.js +18 -0
- package/dist/cjs/components/MainMenu/helperComponents/Banners/styles.module.css +61 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/Content.d.ts +30 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/Content.js +100 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/constants.d.ts +9 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/constants.js +12 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/ContentToolbar.d.ts +18 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/ContentToolbar.js +35 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/index.js +17 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/styles.module.css +27 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.d.ts +11 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.js +35 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.d.ts +8 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.js +23 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupDragHandle.d.ts +6 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupDragHandle.js +15 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.d.ts +9 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.js +15 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupSkeleton.d.ts +5 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupSkeleton.js +12 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.d.ts +6 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.js +28 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.d.ts +5 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.js +58 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/index.d.ts +2 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/index.js +18 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/styles.module.css +66 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/index.d.ts +5 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/index.js +21 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/index.d.ts +3 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/index.js +19 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/styles.module.css +231 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.d.ts +24 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.js +158 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.d.ts +16 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.js +59 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/index.d.ts +2 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/index.js +18 -0
- package/dist/cjs/components/MainMenu/helperComponents/Content/styles.module.css +8 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/Favorites.d.ts +12 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/Favorites.js +79 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyFavoriteSVG.d.ts +3 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyFavoriteSVG.js +7 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyRecentSVG.d.ts +3 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyRecentSVG.js +7 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyState.d.ts +6 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyState.js +17 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/index.js +17 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/styles.module.css +23 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/FavoritesItemsSkeleton.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/FavoritesItemsSkeleton.js +12 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/FavoritesSortable.d.ts +19 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/FavoritesSortable.js +30 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/SortableFavoriteCard.d.ts +8 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/SortableFavoriteCard.js +28 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/index.d.ts +4 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/index.js +20 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/constants.d.ts +15 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/constants.js +16 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesDnd.d.ts +25 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesDnd.js +92 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesInsertIndicator.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesInsertIndicator.js +37 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/index.d.ts +2 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/index.js +18 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/styles.module.css +87 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/utils.d.ts +6 -0
- package/dist/cjs/components/MainMenu/helperComponents/Favorites/utils.js +15 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.d.ts +2 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.js +63 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/constants.d.ts +3 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/constants.js +7 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/index.js +17 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/styles.module.css +98 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/MenuHeaderBrand.d.ts +7 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/MenuHeaderBrand.js +17 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/index.js +17 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/styles.module.css +13 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/MenuMobile.d.ts +2 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/MenuMobile.js +36 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/index.js +17 -0
- package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/styles.module.css +25 -0
- package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/MountAnimation.d.ts +7 -0
- package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/MountAnimation.js +13 -0
- package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/index.js +5 -0
- package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/styles.module.css +60 -0
- package/dist/cjs/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/ScrollWithAnimatedStickyPanel.d.ts +6 -0
- package/dist/cjs/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/ScrollWithAnimatedStickyPanel.js +37 -0
- package/dist/cjs/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/index.js +17 -0
- package/dist/cjs/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/styles.module.css +12 -0
- package/dist/cjs/components/MainMenu/helperComponents/Search/Search.d.ts +7 -0
- package/dist/cjs/components/MainMenu/helperComponents/Search/Search.js +15 -0
- package/dist/cjs/components/MainMenu/helperComponents/Search/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/Search/index.js +17 -0
- package/dist/cjs/components/MainMenu/helperComponents/Search/styles.module.css +8 -0
- package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/ServiceCard.d.ts +19 -0
- package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/ServiceCard.js +53 -0
- package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/index.js +17 -0
- package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/styles.module.css +12 -0
- package/dist/cjs/components/MainMenu/hooks/useMainMenuDnd.d.ts +30 -0
- package/dist/cjs/components/MainMenu/hooks/useMainMenuDnd.js +93 -0
- package/dist/cjs/components/MainMenu/hooks/useMenuItems.d.ts +8 -0
- package/dist/cjs/components/MainMenu/hooks/useMenuItems.js +39 -0
- package/dist/cjs/components/MainMenu/index.d.ts +5 -0
- package/dist/cjs/components/MainMenu/index.js +21 -0
- package/dist/cjs/components/MainMenu/types.d.ts +284 -0
- package/dist/cjs/components/MainMenu/types.js +2 -0
- package/dist/cjs/components/MainMenu/utils/dedupeSearchGroups.d.ts +15 -0
- package/dist/cjs/components/MainMenu/utils/dedupeSearchGroups.js +32 -0
- package/dist/cjs/components/MainMenu/utils/dnd/favoriteListCollisionDetection.d.ts +2 -0
- package/dist/cjs/components/MainMenu/utils/dnd/favoriteListCollisionDetection.js +32 -0
- package/dist/cjs/components/MainMenu/utils/dnd/getDragReferenceY.d.ts +9 -0
- package/dist/cjs/components/MainMenu/utils/dnd/getDragReferenceY.js +17 -0
- package/dist/cjs/components/MainMenu/utils/dnd/getFavoriteInsertIndex.d.ts +12 -0
- package/dist/cjs/components/MainMenu/utils/dnd/getFavoriteInsertIndex.js +36 -0
- package/dist/cjs/components/MainMenu/utils/dnd/ids.d.ts +8 -0
- package/dist/cjs/components/MainMenu/utils/dnd/ids.js +48 -0
- package/dist/cjs/components/MainMenu/utils/dnd/index.d.ts +5 -0
- package/dist/cjs/components/MainMenu/utils/dnd/index.js +21 -0
- package/dist/cjs/components/MainMenu/utils/dnd/resolveFavoriteOrderOnDragEnd.d.ts +10 -0
- package/dist/cjs/components/MainMenu/utils/dnd/resolveFavoriteOrderOnDragEnd.js +45 -0
- package/dist/cjs/components/MainMenu/utils/filterLinksGroupsFuzzy.d.ts +2 -0
- package/dist/cjs/components/MainMenu/utils/filterLinksGroupsFuzzy.js +155 -0
- package/dist/cjs/components/MainMenu/utils/flatLinksGroups.d.ts +2 -0
- package/dist/cjs/components/MainMenu/utils/flatLinksGroups.js +7 -0
- package/dist/cjs/components/MainMenu/utils/getAvatarNameFromLabel.d.ts +14 -0
- package/dist/cjs/components/MainMenu/utils/getAvatarNameFromLabel.js +24 -0
- package/dist/cjs/components/MainMenu/utils/getLinkEmblem.d.ts +3 -0
- package/dist/cjs/components/MainMenu/utils/getLinkEmblem.js +18 -0
- package/dist/cjs/components/MainMenu/utils/index.d.ts +12 -0
- package/dist/cjs/components/MainMenu/utils/index.js +28 -0
- package/dist/cjs/components/MainMenu/utils/innerLink.d.ts +7 -0
- package/dist/cjs/components/MainMenu/utils/innerLink.js +42 -0
- package/dist/cjs/components/MainMenu/utils/mapInnerLinksToListItems.d.ts +3 -0
- package/dist/cjs/components/MainMenu/utils/mapInnerLinksToListItems.js +16 -0
- package/dist/cjs/components/MainMenu/utils/mapOrderedFavoriteIdsToLinks.d.ts +2 -0
- package/dist/cjs/components/MainMenu/utils/mapOrderedFavoriteIdsToLinks.js +9 -0
- package/dist/cjs/components/MainMenu/utils/pinGroupToBottom.d.ts +2 -0
- package/dist/cjs/components/MainMenu/utils/pinGroupToBottom.js +15 -0
- package/dist/cjs/components/MainMenu/utils/resolveGroupBlockColor.d.ts +8 -0
- package/dist/cjs/components/MainMenu/utils/resolveGroupBlockColor.js +12 -0
- package/dist/cjs/components/MainMenu/utils/resolveInnerLinksByIds.d.ts +2 -0
- package/dist/cjs/components/MainMenu/utils/resolveInnerLinksByIds.js +11 -0
- package/dist/cjs/components/MainMenu/utils/search.d.ts +1 -0
- package/dist/cjs/components/MainMenu/utils/search.js +27 -0
- package/dist/cjs/components/PathBreadcrumbs/PathBreadcrumbs.d.ts +7 -0
- package/dist/cjs/components/PathBreadcrumbs/PathBreadcrumbs.js +12 -0
- package/dist/cjs/components/PathBreadcrumbs/index.d.ts +1 -0
- package/dist/cjs/components/PathBreadcrumbs/index.js +17 -0
- package/dist/cjs/components/PathBreadcrumbs/styles.module.css +4 -0
- package/dist/cjs/components/PlatformLogo/Container.d.ts +12 -0
- package/dist/cjs/components/PlatformLogo/Container.js +16 -0
- package/dist/cjs/components/PlatformLogo/index.d.ts +6 -0
- package/dist/cjs/components/PlatformLogo/index.js +11 -0
- package/dist/cjs/components/PlatformLogo/styles.module.css +9 -0
- package/dist/cjs/components/UserMenu/UserMenu.d.ts +14 -0
- package/dist/cjs/components/UserMenu/UserMenu.js +46 -0
- package/dist/cjs/components/UserMenu/hooks/useLogoutItem.d.ts +4 -0
- package/dist/cjs/components/UserMenu/hooks/useLogoutItem.js +20 -0
- package/dist/cjs/components/UserMenu/hooks/useProfileItem.d.ts +3 -0
- package/dist/cjs/components/UserMenu/hooks/useProfileItem.js +24 -0
- package/dist/cjs/components/UserMenu/hooks/useThemeItem.d.ts +6 -0
- package/dist/cjs/components/UserMenu/hooks/useThemeItem.js +54 -0
- package/dist/cjs/components/UserMenu/hooks/useUserMenuItems.d.ts +87 -0
- package/dist/cjs/components/UserMenu/hooks/useUserMenuItems.js +45 -0
- package/dist/cjs/components/UserMenu/index.d.ts +2 -0
- package/dist/cjs/components/UserMenu/index.js +18 -0
- package/dist/cjs/components/UserMenu/styles.module.css +7 -0
- package/dist/cjs/components/UserMenu/types.d.ts +20 -0
- package/dist/cjs/components/UserMenu/types.js +8 -0
- package/dist/cjs/components/index.d.ts +7 -0
- package/dist/cjs/components/index.js +23 -0
- package/dist/cjs/constants.d.ts +20 -0
- package/dist/cjs/constants.js +23 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/locale/index.d.ts +118 -0
- package/dist/cjs/locale/index.js +63 -0
- package/dist/cjs/mobileOverlays.d.ts +21 -0
- package/dist/cjs/mobileOverlays.js +18 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/style.css +844 -0
- package/dist/cjs/utils/shouldBeOpenedInNewTab.d.ts +2 -0
- package/dist/cjs/utils/shouldBeOpenedInNewTab.js +6 -0
- package/dist/esm/components/HeaderButton/HeaderButton.d.ts +14 -0
- package/dist/esm/components/HeaderButton/HeaderButton.js +27 -0
- package/dist/esm/components/HeaderButton/index.d.ts +1 -0
- package/dist/esm/components/HeaderButton/index.js +1 -0
- package/dist/esm/components/HeaderButton/styles.module.css +3 -0
- package/dist/esm/components/HeaderLayout/HeaderLayout.d.ts +11 -0
- package/dist/esm/components/HeaderLayout/HeaderLayout.js +10 -0
- package/dist/esm/components/HeaderLayout/index.d.ts +1 -0
- package/dist/esm/components/HeaderLayout/index.js +1 -0
- package/dist/esm/components/HeaderLayout/styles.module.css +37 -0
- package/dist/esm/components/Logo/Logo.d.ts +14 -0
- package/dist/esm/components/Logo/Logo.js +29 -0
- package/dist/esm/components/Logo/constants.d.ts +10 -0
- package/dist/esm/components/Logo/constants.js +11 -0
- package/dist/esm/components/Logo/index.d.ts +1 -0
- package/dist/esm/components/Logo/index.js +1 -0
- package/dist/esm/components/Logo/styles.module.css +53 -0
- package/dist/esm/components/MainMenu/MainMenu.d.ts +2 -0
- package/dist/esm/components/MainMenu/MainMenu.js +22 -0
- package/dist/esm/components/MainMenu/constants.d.ts +14 -0
- package/dist/esm/components/MainMenu/constants.js +21 -0
- package/dist/esm/components/MainMenu/helperComponents/Banners/MenuBanner.d.ts +16 -0
- package/dist/esm/components/MainMenu/helperComponents/Banners/MenuBanner.js +21 -0
- package/dist/esm/components/MainMenu/helperComponents/Banners/constants.d.ts +7 -0
- package/dist/esm/components/MainMenu/helperComponents/Banners/constants.js +7 -0
- package/dist/esm/components/MainMenu/helperComponents/Banners/index.d.ts +2 -0
- package/dist/esm/components/MainMenu/helperComponents/Banners/index.js +2 -0
- package/dist/esm/components/MainMenu/helperComponents/Banners/styles.module.css +61 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/Content.d.ts +30 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/Content.js +94 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/constants.d.ts +9 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/constants.js +9 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/ContentToolbar.d.ts +18 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/ContentToolbar.js +29 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/index.js +1 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/styles.module.css +27 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.d.ts +11 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.js +28 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.d.ts +8 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.js +17 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupDragHandle.d.ts +6 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupDragHandle.js +9 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.d.ts +9 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.js +9 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupSkeleton.d.ts +5 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupSkeleton.js +6 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.d.ts +6 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.js +22 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.d.ts +5 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.js +52 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/index.d.ts +2 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/index.js +2 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/styles.module.css +66 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/index.d.ts +5 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/index.js +5 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/index.d.ts +3 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/index.js +3 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/styles.module.css +231 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.d.ts +24 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.js +155 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.d.ts +16 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.js +56 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/index.d.ts +2 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/index.js +2 -0
- package/dist/esm/components/MainMenu/helperComponents/Content/styles.module.css +8 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/Favorites.d.ts +12 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/Favorites.js +73 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyFavoriteSVG.d.ts +3 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyFavoriteSVG.js +4 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyRecentSVG.d.ts +3 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyRecentSVG.js +4 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyState.d.ts +6 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyState.js +11 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/index.js +1 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/styles.module.css +23 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/FavoritesItemsSkeleton.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/FavoritesItemsSkeleton.js +6 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/FavoritesSortable.d.ts +19 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/FavoritesSortable.js +24 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/SortableFavoriteCard.d.ts +8 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/SortableFavoriteCard.js +22 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/index.d.ts +4 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/components/index.js +4 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/constants.d.ts +15 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/constants.js +13 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesDnd.d.ts +25 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesDnd.js +89 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesInsertIndicator.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesInsertIndicator.js +34 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/index.d.ts +2 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/index.js +2 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/styles.module.css +87 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/utils.d.ts +6 -0
- package/dist/esm/components/MainMenu/helperComponents/Favorites/utils.js +12 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.d.ts +2 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.js +57 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/constants.d.ts +3 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/constants.js +4 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/index.js +1 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/styles.module.css +98 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/MenuHeaderBrand.d.ts +7 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/MenuHeaderBrand.js +11 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/index.js +1 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/styles.module.css +13 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuMobile/MenuMobile.d.ts +2 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuMobile/MenuMobile.js +30 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuMobile/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuMobile/index.js +1 -0
- package/dist/esm/components/MainMenu/helperComponents/MenuMobile/styles.module.css +25 -0
- package/dist/esm/components/MainMenu/helperComponents/MountAnimation/MountAnimation.d.ts +7 -0
- package/dist/esm/components/MainMenu/helperComponents/MountAnimation/MountAnimation.js +7 -0
- package/dist/esm/components/MainMenu/helperComponents/MountAnimation/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/MountAnimation/index.js +1 -0
- package/dist/esm/components/MainMenu/helperComponents/MountAnimation/styles.module.css +60 -0
- package/dist/esm/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/ScrollWithAnimatedStickyPanel.d.ts +6 -0
- package/dist/esm/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/ScrollWithAnimatedStickyPanel.js +31 -0
- package/dist/esm/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/index.js +1 -0
- package/dist/esm/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/styles.module.css +12 -0
- package/dist/esm/components/MainMenu/helperComponents/Search/Search.d.ts +7 -0
- package/dist/esm/components/MainMenu/helperComponents/Search/Search.js +9 -0
- package/dist/esm/components/MainMenu/helperComponents/Search/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/Search/index.js +1 -0
- package/dist/esm/components/MainMenu/helperComponents/Search/styles.module.css +8 -0
- package/dist/esm/components/MainMenu/helperComponents/ServiceCard/ServiceCard.d.ts +19 -0
- package/dist/esm/components/MainMenu/helperComponents/ServiceCard/ServiceCard.js +46 -0
- package/dist/esm/components/MainMenu/helperComponents/ServiceCard/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/helperComponents/ServiceCard/index.js +1 -0
- package/dist/esm/components/MainMenu/helperComponents/ServiceCard/styles.module.css +12 -0
- package/dist/esm/components/MainMenu/hooks/useMainMenuDnd.d.ts +30 -0
- package/dist/esm/components/MainMenu/hooks/useMainMenuDnd.js +88 -0
- package/dist/esm/components/MainMenu/hooks/useMenuItems.d.ts +8 -0
- package/dist/esm/components/MainMenu/hooks/useMenuItems.js +36 -0
- package/dist/esm/components/MainMenu/index.d.ts +5 -0
- package/dist/esm/components/MainMenu/index.js +5 -0
- package/dist/esm/components/MainMenu/types.d.ts +284 -0
- package/dist/esm/components/MainMenu/types.js +1 -0
- package/dist/esm/components/MainMenu/utils/dedupeSearchGroups.d.ts +15 -0
- package/dist/esm/components/MainMenu/utils/dedupeSearchGroups.js +29 -0
- package/dist/esm/components/MainMenu/utils/dnd/favoriteListCollisionDetection.d.ts +2 -0
- package/dist/esm/components/MainMenu/utils/dnd/favoriteListCollisionDetection.js +28 -0
- package/dist/esm/components/MainMenu/utils/dnd/getDragReferenceY.d.ts +9 -0
- package/dist/esm/components/MainMenu/utils/dnd/getDragReferenceY.js +14 -0
- package/dist/esm/components/MainMenu/utils/dnd/getFavoriteInsertIndex.d.ts +12 -0
- package/dist/esm/components/MainMenu/utils/dnd/getFavoriteInsertIndex.js +32 -0
- package/dist/esm/components/MainMenu/utils/dnd/ids.d.ts +8 -0
- package/dist/esm/components/MainMenu/utils/dnd/ids.js +38 -0
- package/dist/esm/components/MainMenu/utils/dnd/index.d.ts +5 -0
- package/dist/esm/components/MainMenu/utils/dnd/index.js +5 -0
- package/dist/esm/components/MainMenu/utils/dnd/resolveFavoriteOrderOnDragEnd.d.ts +10 -0
- package/dist/esm/components/MainMenu/utils/dnd/resolveFavoriteOrderOnDragEnd.js +42 -0
- package/dist/esm/components/MainMenu/utils/filterLinksGroupsFuzzy.d.ts +2 -0
- package/dist/esm/components/MainMenu/utils/filterLinksGroupsFuzzy.js +149 -0
- package/dist/esm/components/MainMenu/utils/flatLinksGroups.d.ts +2 -0
- package/dist/esm/components/MainMenu/utils/flatLinksGroups.js +4 -0
- package/dist/esm/components/MainMenu/utils/getAvatarNameFromLabel.d.ts +14 -0
- package/dist/esm/components/MainMenu/utils/getAvatarNameFromLabel.js +21 -0
- package/dist/esm/components/MainMenu/utils/getLinkEmblem.d.ts +3 -0
- package/dist/esm/components/MainMenu/utils/getLinkEmblem.js +15 -0
- package/dist/esm/components/MainMenu/utils/index.d.ts +12 -0
- package/dist/esm/components/MainMenu/utils/index.js +12 -0
- package/dist/esm/components/MainMenu/utils/innerLink.d.ts +7 -0
- package/dist/esm/components/MainMenu/utils/innerLink.js +34 -0
- package/dist/esm/components/MainMenu/utils/mapInnerLinksToListItems.d.ts +3 -0
- package/dist/esm/components/MainMenu/utils/mapInnerLinksToListItems.js +13 -0
- package/dist/esm/components/MainMenu/utils/mapOrderedFavoriteIdsToLinks.d.ts +2 -0
- package/dist/esm/components/MainMenu/utils/mapOrderedFavoriteIdsToLinks.js +6 -0
- package/dist/esm/components/MainMenu/utils/pinGroupToBottom.d.ts +2 -0
- package/dist/esm/components/MainMenu/utils/pinGroupToBottom.js +12 -0
- package/dist/esm/components/MainMenu/utils/resolveGroupBlockColor.d.ts +8 -0
- package/dist/esm/components/MainMenu/utils/resolveGroupBlockColor.js +9 -0
- package/dist/esm/components/MainMenu/utils/resolveInnerLinksByIds.d.ts +2 -0
- package/dist/esm/components/MainMenu/utils/resolveInnerLinksByIds.js +8 -0
- package/dist/esm/components/MainMenu/utils/search.d.ts +1 -0
- package/dist/esm/components/MainMenu/utils/search.js +24 -0
- package/dist/esm/components/PathBreadcrumbs/PathBreadcrumbs.d.ts +7 -0
- package/dist/esm/components/PathBreadcrumbs/PathBreadcrumbs.js +6 -0
- package/dist/esm/components/PathBreadcrumbs/index.d.ts +1 -0
- package/dist/esm/components/PathBreadcrumbs/index.js +1 -0
- package/dist/esm/components/PathBreadcrumbs/styles.module.css +4 -0
- package/dist/esm/components/PlatformLogo/Container.d.ts +12 -0
- package/dist/esm/components/PlatformLogo/Container.js +8 -0
- package/dist/esm/components/PlatformLogo/index.d.ts +6 -0
- package/dist/esm/components/PlatformLogo/index.js +8 -0
- package/dist/esm/components/PlatformLogo/styles.module.css +9 -0
- package/dist/esm/components/UserMenu/UserMenu.d.ts +14 -0
- package/dist/esm/components/UserMenu/UserMenu.js +40 -0
- package/dist/esm/components/UserMenu/hooks/useLogoutItem.d.ts +4 -0
- package/dist/esm/components/UserMenu/hooks/useLogoutItem.js +17 -0
- package/dist/esm/components/UserMenu/hooks/useProfileItem.d.ts +3 -0
- package/dist/esm/components/UserMenu/hooks/useProfileItem.js +21 -0
- package/dist/esm/components/UserMenu/hooks/useThemeItem.d.ts +6 -0
- package/dist/esm/components/UserMenu/hooks/useThemeItem.js +51 -0
- package/dist/esm/components/UserMenu/hooks/useUserMenuItems.d.ts +87 -0
- package/dist/esm/components/UserMenu/hooks/useUserMenuItems.js +42 -0
- package/dist/esm/components/UserMenu/index.d.ts +2 -0
- package/dist/esm/components/UserMenu/index.js +2 -0
- package/dist/esm/components/UserMenu/styles.module.css +7 -0
- package/dist/esm/components/UserMenu/types.d.ts +20 -0
- package/dist/esm/components/UserMenu/types.js +5 -0
- package/dist/esm/components/index.d.ts +7 -0
- package/dist/esm/components/index.js +7 -0
- package/dist/esm/constants.d.ts +20 -0
- package/dist/esm/constants.js +20 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/locale/index.d.ts +118 -0
- package/dist/esm/locale/index.js +60 -0
- package/dist/esm/mobileOverlays.d.ts +21 -0
- package/dist/esm/mobileOverlays.js +15 -0
- package/dist/esm/style.css +844 -0
- package/dist/esm/utils/shouldBeOpenedInNewTab.d.ts +2 -0
- package/dist/esm/utils/shouldBeOpenedInNewTab.js +3 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +77 -0
- package/src/components/HeaderButton/HeaderButton.tsx +57 -0
- package/src/components/HeaderButton/index.ts +1 -0
- package/src/components/HeaderButton/styles.module.scss +3 -0
- package/src/components/HeaderLayout/HeaderLayout.tsx +56 -0
- package/src/components/HeaderLayout/index.ts +1 -0
- package/src/components/HeaderLayout/styles.module.scss +42 -0
- package/src/components/Logo/Logo.tsx +76 -0
- package/src/components/Logo/constants.ts +17 -0
- package/src/components/Logo/index.ts +1 -0
- package/src/components/Logo/styles.module.scss +64 -0
- package/src/components/MainMenu/MainMenu.tsx +84 -0
- package/src/components/MainMenu/constants.ts +24 -0
- package/src/components/MainMenu/helperComponents/Banners/MenuBanner.tsx +103 -0
- package/src/components/MainMenu/helperComponents/Banners/constants.ts +7 -0
- package/src/components/MainMenu/helperComponents/Banners/index.ts +2 -0
- package/src/components/MainMenu/helperComponents/Banners/styles.module.scss +75 -0
- package/src/components/MainMenu/helperComponents/Content/Content.tsx +267 -0
- package/src/components/MainMenu/helperComponents/Content/constants.ts +9 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/ContentToolbar.tsx +136 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/index.ts +1 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/styles.module.scss +31 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.tsx +131 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.tsx +64 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupDragHandle.tsx +29 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.tsx +47 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupSkeleton.tsx +35 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.tsx +79 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.tsx +128 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/index.ts +2 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/styles.module.scss +77 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/index.ts +5 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/index.ts +3 -0
- package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/styles.module.scss +270 -0
- package/src/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.ts +250 -0
- package/src/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.tsx +104 -0
- package/src/components/MainMenu/helperComponents/Content/index.ts +2 -0
- package/src/components/MainMenu/helperComponents/Content/styles.module.scss +11 -0
- package/src/components/MainMenu/helperComponents/Favorites/Favorites.tsx +176 -0
- package/src/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyFavoriteSVG.tsx +24 -0
- package/src/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyRecentSVG.tsx +38 -0
- package/src/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyState.tsx +36 -0
- package/src/components/MainMenu/helperComponents/Favorites/components/EmptyState/index.ts +1 -0
- package/src/components/MainMenu/helperComponents/Favorites/components/EmptyState/styles.module.scss +27 -0
- package/src/components/MainMenu/helperComponents/Favorites/components/FavoritesItemsSkeleton.tsx +15 -0
- package/src/components/MainMenu/helperComponents/Favorites/components/FavoritesSortable.tsx +78 -0
- package/src/components/MainMenu/helperComponents/Favorites/components/SortableFavoriteCard.tsx +70 -0
- package/src/components/MainMenu/helperComponents/Favorites/components/index.ts +4 -0
- package/src/components/MainMenu/helperComponents/Favorites/constants.ts +18 -0
- package/src/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesDnd.tsx +123 -0
- package/src/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesInsertIndicator.ts +41 -0
- package/src/components/MainMenu/helperComponents/Favorites/index.ts +2 -0
- package/src/components/MainMenu/helperComponents/Favorites/styles.module.scss +101 -0
- package/src/components/MainMenu/helperComponents/Favorites/utils.ts +22 -0
- package/src/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.tsx +172 -0
- package/src/components/MainMenu/helperComponents/MenuDesktop/constants.ts +6 -0
- package/src/components/MainMenu/helperComponents/MenuDesktop/index.ts +1 -0
- package/src/components/MainMenu/helperComponents/MenuDesktop/styles.module.scss +118 -0
- package/src/components/MainMenu/helperComponents/MenuHeaderBrand/MenuHeaderBrand.tsx +27 -0
- package/src/components/MainMenu/helperComponents/MenuHeaderBrand/index.ts +1 -0
- package/src/components/MainMenu/helperComponents/MenuHeaderBrand/styles.module.scss +17 -0
- package/src/components/MainMenu/helperComponents/MenuMobile/MenuMobile.tsx +101 -0
- package/src/components/MainMenu/helperComponents/MenuMobile/index.ts +1 -0
- package/src/components/MainMenu/helperComponents/MenuMobile/styles.module.scss +32 -0
- package/src/components/MainMenu/helperComponents/MountAnimation/MountAnimation.tsx +20 -0
- package/src/components/MainMenu/helperComponents/MountAnimation/index.ts +1 -0
- package/src/components/MainMenu/helperComponents/MountAnimation/styles.module.scss +77 -0
- package/src/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/ScrollWithAnimatedStickyPanel.tsx +54 -0
- package/src/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/index.ts +1 -0
- package/src/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/styles.module.scss +16 -0
- package/src/components/MainMenu/helperComponents/Search/Search.tsx +34 -0
- package/src/components/MainMenu/helperComponents/Search/index.ts +1 -0
- package/src/components/MainMenu/helperComponents/Search/styles.module.scss +14 -0
- package/src/components/MainMenu/helperComponents/ServiceCard/ServiceCard.tsx +111 -0
- package/src/components/MainMenu/helperComponents/ServiceCard/index.ts +1 -0
- package/src/components/MainMenu/helperComponents/ServiceCard/styles.module.scss +14 -0
- package/src/components/MainMenu/hooks/useMainMenuDnd.tsx +187 -0
- package/src/components/MainMenu/hooks/useMenuItems.tsx +59 -0
- package/src/components/MainMenu/index.ts +5 -0
- package/src/components/MainMenu/types.ts +311 -0
- package/src/components/MainMenu/utils/dedupeSearchGroups.ts +35 -0
- package/src/components/MainMenu/utils/dnd/favoriteListCollisionDetection.ts +35 -0
- package/src/components/MainMenu/utils/dnd/getDragReferenceY.ts +26 -0
- package/src/components/MainMenu/utils/dnd/getFavoriteInsertIndex.ts +63 -0
- package/src/components/MainMenu/utils/dnd/ids.ts +53 -0
- package/src/components/MainMenu/utils/dnd/index.ts +5 -0
- package/src/components/MainMenu/utils/dnd/resolveFavoriteOrderOnDragEnd.ts +74 -0
- package/src/components/MainMenu/utils/filterLinksGroupsFuzzy.ts +205 -0
- package/src/components/MainMenu/utils/flatLinksGroups.ts +6 -0
- package/src/components/MainMenu/utils/getAvatarNameFromLabel.ts +24 -0
- package/src/components/MainMenu/utils/getLinkEmblem.tsx +27 -0
- package/src/components/MainMenu/utils/index.ts +12 -0
- package/src/components/MainMenu/utils/innerLink.ts +45 -0
- package/src/components/MainMenu/utils/mapInnerLinksToListItems.tsx +17 -0
- package/src/components/MainMenu/utils/mapOrderedFavoriteIdsToLinks.ts +13 -0
- package/src/components/MainMenu/utils/pinGroupToBottom.ts +17 -0
- package/src/components/MainMenu/utils/resolveGroupBlockColor.ts +14 -0
- package/src/components/MainMenu/utils/resolveInnerLinksByIds.ts +12 -0
- package/src/components/MainMenu/utils/search.ts +32 -0
- package/src/components/PathBreadcrumbs/PathBreadcrumbs.tsx +21 -0
- package/src/components/PathBreadcrumbs/index.ts +1 -0
- package/src/components/PathBreadcrumbs/styles.module.scss +7 -0
- package/src/components/PlatformLogo/Container.tsx +31 -0
- package/src/components/PlatformLogo/index.ts +17 -0
- package/src/components/PlatformLogo/styles.module.scss +13 -0
- package/src/components/UserMenu/UserMenu.tsx +106 -0
- package/src/components/UserMenu/hooks/useLogoutItem.tsx +23 -0
- package/src/components/UserMenu/hooks/useProfileItem.tsx +33 -0
- package/src/components/UserMenu/hooks/useThemeItem.tsx +70 -0
- package/src/components/UserMenu/hooks/useUserMenuItems.ts +77 -0
- package/src/components/UserMenu/index.ts +2 -0
- package/src/components/UserMenu/styles.module.scss +7 -0
- package/src/components/UserMenu/types.ts +24 -0
- package/src/components/index.ts +7 -0
- package/src/constants.ts +20 -0
- package/src/index.ts +4 -0
- package/src/locale/index.ts +64 -0
- package/src/mobileOverlays.ts +26 -0
- package/src/utils/shouldBeOpenedInNewTab.ts +5 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LinksGroup } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Один и тот же сервис может быть представлен в разных сегментах с разной
|
|
4
|
+
* детализацией — например, простой карточкой в общем каталоге и раскрытой
|
|
5
|
+
* аккордеоном карточкой с вложенными сервисами в «Центре управления». Обе
|
|
6
|
+
* версии используют общий {@link InnerLink.id}.
|
|
7
|
+
*
|
|
8
|
+
* При поиске результаты сегментов объединяются в один список (см.
|
|
9
|
+
* {@link MainMenuProps.segments}), поэтому такой сервис может совпасть сразу в
|
|
10
|
+
* нескольких сегментах. Функция оставляет только первое по порядку `groups`
|
|
11
|
+
* (то есть по приоритету сегментов) вхождение каждого id, а группы, опустевшие
|
|
12
|
+
* после удаления дублей, убирает целиком — иначе группа с тем же заголовком
|
|
13
|
+
* задублируется в выдаче.
|
|
14
|
+
*/
|
|
15
|
+
export declare function dedupeSearchGroups(groups: LinksGroup[]): LinksGroup[];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Один и тот же сервис может быть представлен в разных сегментах с разной
|
|
3
|
+
* детализацией — например, простой карточкой в общем каталоге и раскрытой
|
|
4
|
+
* аккордеоном карточкой с вложенными сервисами в «Центре управления». Обе
|
|
5
|
+
* версии используют общий {@link InnerLink.id}.
|
|
6
|
+
*
|
|
7
|
+
* При поиске результаты сегментов объединяются в один список (см.
|
|
8
|
+
* {@link MainMenuProps.segments}), поэтому такой сервис может совпасть сразу в
|
|
9
|
+
* нескольких сегментах. Функция оставляет только первое по порядку `groups`
|
|
10
|
+
* (то есть по приоритету сегментов) вхождение каждого id, а группы, опустевшие
|
|
11
|
+
* после удаления дублей, убирает целиком — иначе группа с тем же заголовком
|
|
12
|
+
* задублируется в выдаче.
|
|
13
|
+
*/
|
|
14
|
+
export function dedupeSearchGroups(groups) {
|
|
15
|
+
const seenItemIds = new Set();
|
|
16
|
+
return groups.reduce((acc, group) => {
|
|
17
|
+
const items = group.items.filter(item => {
|
|
18
|
+
if (seenItemIds.has(item.id)) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
seenItemIds.add(item.id);
|
|
22
|
+
return true;
|
|
23
|
+
});
|
|
24
|
+
if (items.length > 0) {
|
|
25
|
+
acc.push({ ...group, items });
|
|
26
|
+
}
|
|
27
|
+
return acc;
|
|
28
|
+
}, []);
|
|
29
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { closestCenter, rectIntersection } from '@dnd-kit/core';
|
|
2
|
+
import { FAVORITES_DROP_ID, isFavoritesDroppableId, isServiceDragId, isServiceFavoriteDragId } from './ids.js';
|
|
3
|
+
export const favoriteListCollisionDetection = args => {
|
|
4
|
+
const collisions = closestCenter(args);
|
|
5
|
+
// Group reorder: ignore favorites droppables so they don't steal collisions from groups.
|
|
6
|
+
if (!isServiceDragId(args.active.id)) {
|
|
7
|
+
return collisions.filter(({ id }) => !isFavoritesDroppableId(id));
|
|
8
|
+
}
|
|
9
|
+
// Favorite reorder: stay among favorite cards.
|
|
10
|
+
if (isServiceFavoriteDragId(args.active.id)) {
|
|
11
|
+
return collisions.filter(({ id }) => isServiceFavoriteDragId(id));
|
|
12
|
+
}
|
|
13
|
+
// Source → favorites: only when pointer (or rect) actually hits the favorites panel.
|
|
14
|
+
// closestCenter always returns a nearest favorite even while still over the catalog —
|
|
15
|
+
// that would add the card on a pick-up-and-release without moving into favorites.
|
|
16
|
+
// const hits = args.pointerCoordinates ? pointerWithin(args) : rectIntersection(args);
|
|
17
|
+
const hits = rectIntersection(args);
|
|
18
|
+
const hasFavoriteCards = args.droppableContainers.some(({ id }) => id != null && isServiceFavoriteDragId(id));
|
|
19
|
+
// With cards in the list, ignore FAVORITES_DROP_ID — padding/gaps would otherwise
|
|
20
|
+
// oscillate between "append" and a card-based insert index.
|
|
21
|
+
const favoriteHits = hits.filter(({ id }) => {
|
|
22
|
+
if (isServiceFavoriteDragId(id)) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
return id === FAVORITES_DROP_ID && !hasFavoriteCards;
|
|
26
|
+
});
|
|
27
|
+
return favoriteHits;
|
|
28
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ClientRectLike } from './getFavoriteInsertIndex.js';
|
|
2
|
+
type GetDragReferenceYParams = {
|
|
3
|
+
activatorEvent?: Event | null;
|
|
4
|
+
deltaY?: number;
|
|
5
|
+
activeRect?: ClientRectLike | null;
|
|
6
|
+
};
|
|
7
|
+
/** Pointer Y (activator + delta), or active rect center as fallback (keyboard). */
|
|
8
|
+
export declare function getDragReferenceY({ activatorEvent, deltaY, activeRect }: GetDragReferenceYParams): number | null;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { getEventCoordinates } from '@dnd-kit/utilities';
|
|
2
|
+
/** Pointer Y (activator + delta), or active rect center as fallback (keyboard). */
|
|
3
|
+
export function getDragReferenceY({ activatorEvent, deltaY = 0, activeRect }) {
|
|
4
|
+
if (activatorEvent) {
|
|
5
|
+
const coordinates = getEventCoordinates(activatorEvent);
|
|
6
|
+
if (coordinates) {
|
|
7
|
+
return coordinates.y + deltaY;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
if (!activeRect) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return activeRect.top + activeRect.height / 2;
|
|
14
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type ClientRectLike = Pick<ClientRect, 'top' | 'height'>;
|
|
2
|
+
/** Before `overIndex` if referenceY is above the over item center, otherwise after. */
|
|
3
|
+
export declare function getInsertIndexByRects(overIndex: number, referenceY?: number | null, overRect?: ClientRectLike | null): number;
|
|
4
|
+
export type GetFavoriteInsertIndexParams = {
|
|
5
|
+
activeId: string | number;
|
|
6
|
+
overId?: string | number;
|
|
7
|
+
favoriteIds: string[];
|
|
8
|
+
referenceY?: number | null;
|
|
9
|
+
overRect?: ClientRectLike | null;
|
|
10
|
+
};
|
|
11
|
+
/** Insert index for a new source card; shared by indicator and drag-end. */
|
|
12
|
+
export declare function getFavoriteInsertIndex({ activeId, overId, favoriteIds, referenceY, overRect, }: GetFavoriteInsertIndexParams): number | null;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { FAVORITES_DROP_ID, isServiceFavoriteDragId, isServiceSourceDragId, parseServiceDragId } from './ids.js';
|
|
2
|
+
/** Before `overIndex` if referenceY is above the over item center, otherwise after. */
|
|
3
|
+
export function getInsertIndexByRects(overIndex, referenceY, overRect) {
|
|
4
|
+
if (referenceY == null || !overRect) {
|
|
5
|
+
return overIndex;
|
|
6
|
+
}
|
|
7
|
+
const overCenterY = overRect.top + overRect.height / 2;
|
|
8
|
+
return referenceY > overCenterY ? overIndex + 1 : overIndex;
|
|
9
|
+
}
|
|
10
|
+
/** Insert index for a new source card; shared by indicator and drag-end. */
|
|
11
|
+
export function getFavoriteInsertIndex({ activeId, overId, favoriteIds, referenceY, overRect, }) {
|
|
12
|
+
if (!isServiceSourceDragId(activeId) || overId == null) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const activeServiceId = parseServiceDragId(activeId);
|
|
16
|
+
if (favoriteIds.includes(activeServiceId)) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
// Empty list only: drop zone is the sole target. With cards, ignore it — padding/gaps
|
|
20
|
+
// would make the indicator jump between "append" and card before/after.
|
|
21
|
+
if (String(overId) === FAVORITES_DROP_ID) {
|
|
22
|
+
return favoriteIds.length === 0 ? 0 : null;
|
|
23
|
+
}
|
|
24
|
+
if (!isServiceFavoriteDragId(overId)) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const overIndex = favoriteIds.indexOf(parseServiceDragId(overId));
|
|
28
|
+
if (overIndex === -1) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return getInsertIndexByRects(overIndex, referenceY, overRect);
|
|
32
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const FAVORITES_DROP_ID = "favorites-drop-zone";
|
|
2
|
+
export declare function getServiceSourceDragId(groupId: string, serviceId: string): string;
|
|
3
|
+
export declare function getServiceFavoriteDragId(serviceId: string): string;
|
|
4
|
+
export declare function isServiceSourceDragId(id: string | number | symbol): boolean;
|
|
5
|
+
export declare function isServiceFavoriteDragId(id: string | number | symbol): boolean;
|
|
6
|
+
export declare function isServiceDragId(id: string | number | symbol): boolean;
|
|
7
|
+
export declare function isFavoritesDroppableId(id: string | number | symbol): boolean;
|
|
8
|
+
export declare function parseServiceDragId(id: string | number | symbol): string;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const SERVICE_DRAG_SOURCE_PREFIX = 'service-drag:source:';
|
|
2
|
+
const SERVICE_DRAG_FAVORITE_PREFIX = 'service-drag:favorite:';
|
|
3
|
+
// Символьный сепаратор для исключения пересечения с символами, которые могут быть в groupId или serviceId
|
|
4
|
+
const SERVICE_DRAG_SOURCE_GROUP_SEPARATOR = '\u0000';
|
|
5
|
+
export const FAVORITES_DROP_ID = 'favorites-drop-zone';
|
|
6
|
+
export function getServiceSourceDragId(groupId, serviceId) {
|
|
7
|
+
return `${SERVICE_DRAG_SOURCE_PREFIX}${groupId}${SERVICE_DRAG_SOURCE_GROUP_SEPARATOR}${serviceId}`;
|
|
8
|
+
}
|
|
9
|
+
export function getServiceFavoriteDragId(serviceId) {
|
|
10
|
+
return `${SERVICE_DRAG_FAVORITE_PREFIX}${serviceId}`;
|
|
11
|
+
}
|
|
12
|
+
export function isServiceSourceDragId(id) {
|
|
13
|
+
return String(id).startsWith(SERVICE_DRAG_SOURCE_PREFIX);
|
|
14
|
+
}
|
|
15
|
+
export function isServiceFavoriteDragId(id) {
|
|
16
|
+
return String(id).startsWith(SERVICE_DRAG_FAVORITE_PREFIX);
|
|
17
|
+
}
|
|
18
|
+
export function isServiceDragId(id) {
|
|
19
|
+
return isServiceSourceDragId(id) || isServiceFavoriteDragId(id);
|
|
20
|
+
}
|
|
21
|
+
export function isFavoritesDroppableId(id) {
|
|
22
|
+
return id === FAVORITES_DROP_ID || isServiceFavoriteDragId(id);
|
|
23
|
+
}
|
|
24
|
+
export function parseServiceDragId(id) {
|
|
25
|
+
const value = String(id);
|
|
26
|
+
if (value.startsWith(SERVICE_DRAG_SOURCE_PREFIX)) {
|
|
27
|
+
const rest = value.slice(SERVICE_DRAG_SOURCE_PREFIX.length);
|
|
28
|
+
const separatorIndex = rest.lastIndexOf(SERVICE_DRAG_SOURCE_GROUP_SEPARATOR);
|
|
29
|
+
if (separatorIndex >= 0) {
|
|
30
|
+
return rest.slice(separatorIndex + 1);
|
|
31
|
+
}
|
|
32
|
+
return rest;
|
|
33
|
+
}
|
|
34
|
+
if (value.startsWith(SERVICE_DRAG_FAVORITE_PREFIX)) {
|
|
35
|
+
return value.slice(SERVICE_DRAG_FAVORITE_PREFIX.length);
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ClientRectLike } from './getFavoriteInsertIndex.js';
|
|
2
|
+
type ResolveFavoriteOrderOnDragEndParams = {
|
|
3
|
+
activeId: string | number;
|
|
4
|
+
overId?: string | number;
|
|
5
|
+
favoriteIds: string[];
|
|
6
|
+
referenceY?: number | null;
|
|
7
|
+
overRect?: ClientRectLike | null;
|
|
8
|
+
};
|
|
9
|
+
export declare function resolveFavoriteOrderOnDragEnd({ activeId, overId, favoriteIds, referenceY, overRect, }: ResolveFavoriteOrderOnDragEndParams): string[] | null;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { arrayMove } from '@dnd-kit/sortable';
|
|
2
|
+
import { getFavoriteInsertIndex } from './getFavoriteInsertIndex.js';
|
|
3
|
+
import { FAVORITES_DROP_ID, isServiceDragId, isServiceFavoriteDragId, parseServiceDragId } from './ids.js';
|
|
4
|
+
export function resolveFavoriteOrderOnDragEnd({ activeId, overId, favoriteIds, referenceY, overRect, }) {
|
|
5
|
+
if (!isServiceDragId(activeId) || overId == null) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
const activeServiceId = parseServiceDragId(activeId);
|
|
9
|
+
const activeFavoriteIndex = isServiceFavoriteDragId(activeId) ? favoriteIds.indexOf(activeServiceId) : -1;
|
|
10
|
+
// Reorder an existing favorite.
|
|
11
|
+
if (activeFavoriteIndex !== -1) {
|
|
12
|
+
if (String(overId) === FAVORITES_DROP_ID) {
|
|
13
|
+
const lastIndex = favoriteIds.length - 1;
|
|
14
|
+
if (activeFavoriteIndex === lastIndex) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return arrayMove(favoriteIds, activeFavoriteIndex, lastIndex);
|
|
18
|
+
}
|
|
19
|
+
if (!isServiceFavoriteDragId(overId)) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const overFavoriteIndex = favoriteIds.indexOf(parseServiceDragId(overId));
|
|
23
|
+
if (overFavoriteIndex === -1 || activeFavoriteIndex === overFavoriteIndex) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return arrayMove(favoriteIds, activeFavoriteIndex, overFavoriteIndex);
|
|
27
|
+
}
|
|
28
|
+
// Insert from catalog — same index as the insert indicator.
|
|
29
|
+
const insertIndex = getFavoriteInsertIndex({
|
|
30
|
+
activeId,
|
|
31
|
+
overId,
|
|
32
|
+
favoriteIds,
|
|
33
|
+
referenceY,
|
|
34
|
+
overRect,
|
|
35
|
+
});
|
|
36
|
+
if (insertIndex == null) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const nextOrder = [...favoriteIds];
|
|
40
|
+
nextOrder.splice(insertIndex, 0, activeServiceId);
|
|
41
|
+
return nextOrder;
|
|
42
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import Fuse from 'fuse.js';
|
|
2
|
+
import { FUZZY_SEARCH_THRESHOLD, SearchGroupsAccessor } from '../constants.js';
|
|
3
|
+
import { findNestedInnerLinkParent, flatInnerLinks, hasNestedItems } from './innerLink.js';
|
|
4
|
+
import { toggleLayout } from './search.js';
|
|
5
|
+
const prepareItemAccessorKey = (groupId, alias) => `${groupId}-${alias}`;
|
|
6
|
+
function createItemsMap(links) {
|
|
7
|
+
const itemsMap = {};
|
|
8
|
+
links.forEach(group => {
|
|
9
|
+
flatInnerLinks(group.items).forEach(item => {
|
|
10
|
+
item.aliases.forEach(alias => {
|
|
11
|
+
const key = prepareItemAccessorKey(group.id, alias);
|
|
12
|
+
itemsMap[key] = item;
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
return itemsMap;
|
|
17
|
+
}
|
|
18
|
+
function appendFilteredGroupItem(group, itemsInnerMap, items, item) {
|
|
19
|
+
if (!itemsInnerMap[item.id]) {
|
|
20
|
+
itemsInnerMap[item.id] = item;
|
|
21
|
+
items.push(item);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function appendNestedLeafMatch(group, itemsInnerMap, items, leafItem) {
|
|
25
|
+
const parent = findNestedInnerLinkParent(group, leafItem.id);
|
|
26
|
+
if (!parent) {
|
|
27
|
+
appendFilteredGroupItem(group, itemsInnerMap, items, leafItem);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const existingParent = itemsInnerMap[parent.id];
|
|
31
|
+
if (existingParent) {
|
|
32
|
+
const hasLeaf = existingParent.items?.some(item => item.id === leafItem.id);
|
|
33
|
+
if (!hasLeaf) {
|
|
34
|
+
existingParent.items = [...(existingParent.items ?? []), leafItem];
|
|
35
|
+
}
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
itemsInnerMap[parent.id] = {
|
|
39
|
+
...parent,
|
|
40
|
+
items: [leafItem],
|
|
41
|
+
};
|
|
42
|
+
items.push(itemsInnerMap[parent.id]);
|
|
43
|
+
}
|
|
44
|
+
function isGroupLabelMatch(matchKey) {
|
|
45
|
+
return (matchKey === SearchGroupsAccessor.GroupLabelText ||
|
|
46
|
+
matchKey === SearchGroupsAccessor.GroupId ||
|
|
47
|
+
matchKey === SearchGroupsAccessor.GroupAliases);
|
|
48
|
+
}
|
|
49
|
+
export function filterLinksGroupsFuzzy(searchValue, links) {
|
|
50
|
+
if (!searchValue) {
|
|
51
|
+
return links;
|
|
52
|
+
}
|
|
53
|
+
const itemsMap = createItemsMap(links);
|
|
54
|
+
const linksFuse = new Fuse(links, {
|
|
55
|
+
keys: Object.values(SearchGroupsAccessor),
|
|
56
|
+
includeMatches: true,
|
|
57
|
+
threshold: FUZZY_SEARCH_THRESHOLD,
|
|
58
|
+
});
|
|
59
|
+
let fuseSearchResults = linksFuse.search(searchValue);
|
|
60
|
+
if (fuseSearchResults.length < 1) {
|
|
61
|
+
const fixedLayoutValue = toggleLayout(searchValue);
|
|
62
|
+
fuseSearchResults = linksFuse.search(fixedLayoutValue);
|
|
63
|
+
}
|
|
64
|
+
return fuseSearchResults.reduce((accResult, fuseResult) => {
|
|
65
|
+
if (!fuseResult.matches) {
|
|
66
|
+
return accResult;
|
|
67
|
+
}
|
|
68
|
+
const isMatchByGroup = fuseResult.matches.some(match => isGroupLabelMatch(match.key));
|
|
69
|
+
if (isMatchByGroup) {
|
|
70
|
+
accResult.push(fuseResult.item);
|
|
71
|
+
return accResult;
|
|
72
|
+
}
|
|
73
|
+
const group = fuseResult.item;
|
|
74
|
+
const originalGroupIndex = fuseResult.refIndex;
|
|
75
|
+
const itemsInnerMap = {};
|
|
76
|
+
const items = [];
|
|
77
|
+
fuseResult.matches.forEach(match => {
|
|
78
|
+
if (match.refIndex === undefined) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
switch (match.key) {
|
|
82
|
+
case SearchGroupsAccessor.ItemLabelText:
|
|
83
|
+
case SearchGroupsAccessor.ItemId: {
|
|
84
|
+
const item = links[originalGroupIndex].items[match.refIndex];
|
|
85
|
+
if (item && !item.hidden) {
|
|
86
|
+
if (hasNestedItems(item)) {
|
|
87
|
+
appendFilteredGroupItem(group, itemsInnerMap, items, item);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
appendNestedLeafMatch(group, itemsInnerMap, items, item);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
case SearchGroupsAccessor.ItemNestedLabelText:
|
|
96
|
+
case SearchGroupsAccessor.ItemNestedId: {
|
|
97
|
+
// Fuse `refIndex` для `items.items.*` — индекс во вложенном массиве (или «плоский» по всем
|
|
98
|
+
// nested), а не индекс родителя в `group.items`. Ищем leaf по value среди всех родителей.
|
|
99
|
+
const nestedItem = links[originalGroupIndex].items
|
|
100
|
+
.flatMap(parent => parent.items ?? [])
|
|
101
|
+
.find(child => match.key === SearchGroupsAccessor.ItemNestedLabelText
|
|
102
|
+
? child.label === match.value
|
|
103
|
+
: child.id === match.value);
|
|
104
|
+
if (nestedItem && !nestedItem.hidden) {
|
|
105
|
+
appendNestedLeafMatch(group, itemsInnerMap, items, nestedItem);
|
|
106
|
+
}
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
case SearchGroupsAccessor.ItemNestedAliases: {
|
|
110
|
+
if (!match.value) {
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
const groupId = fuseResult.item.id;
|
|
114
|
+
const alias = match.value;
|
|
115
|
+
const key = prepareItemAccessorKey(groupId, alias);
|
|
116
|
+
const item = itemsMap[key];
|
|
117
|
+
if (item) {
|
|
118
|
+
appendNestedLeafMatch(group, itemsInnerMap, items, item);
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
case SearchGroupsAccessor.ItemAliases: {
|
|
123
|
+
if (!match.value) {
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
const groupId = fuseResult.item.id;
|
|
127
|
+
const alias = match.value;
|
|
128
|
+
const key = prepareItemAccessorKey(groupId, alias);
|
|
129
|
+
const item = itemsMap[key];
|
|
130
|
+
if (item) {
|
|
131
|
+
appendNestedLeafMatch(group, itemsInnerMap, items, item);
|
|
132
|
+
}
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
case SearchGroupsAccessor.GroupLabelText:
|
|
136
|
+
case SearchGroupsAccessor.GroupId:
|
|
137
|
+
default:
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
if (items.length > 0) {
|
|
142
|
+
accResult.push({
|
|
143
|
+
...group,
|
|
144
|
+
items,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
return accResult;
|
|
148
|
+
}, []);
|
|
149
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Формирует двухбуквенный текст для пропа `name` компонента Avatar в MainMenu.
|
|
3
|
+
*
|
|
4
|
+
* - Одно слово — первые две буквы в верхнем регистре (`Маркетплейс` → `МА`).
|
|
5
|
+
* - Два и более слов — первая буква первых двух слов (`Партнерский кабинет` → `ПК`).
|
|
6
|
+
*
|
|
7
|
+
* @param label — подпись карточки (`InnerLink.label`).
|
|
8
|
+
* @returns Строка из двух символов для отображения в аватаре.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* getAvatarNameFromLabel('Маркетплейс'); // 'МА'
|
|
12
|
+
* getAvatarNameFromLabel('Партнерский кабинет'); // 'ПК'
|
|
13
|
+
*/
|
|
14
|
+
export declare function getAvatarNameFromLabel(label: string): string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Формирует двухбуквенный текст для пропа `name` компонента Avatar в MainMenu.
|
|
3
|
+
*
|
|
4
|
+
* - Одно слово — первые две буквы в верхнем регистре (`Маркетплейс` → `МА`).
|
|
5
|
+
* - Два и более слов — первая буква первых двух слов (`Партнерский кабинет` → `ПК`).
|
|
6
|
+
*
|
|
7
|
+
* @param label — подпись карточки (`InnerLink.label`).
|
|
8
|
+
* @returns Строка из двух символов для отображения в аватаре.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* getAvatarNameFromLabel('Маркетплейс'); // 'МА'
|
|
12
|
+
* getAvatarNameFromLabel('Партнерский кабинет'); // 'ПК'
|
|
13
|
+
*/
|
|
14
|
+
export function getAvatarNameFromLabel(label) {
|
|
15
|
+
const words = label.trim().split(/\s+/).filter(Boolean);
|
|
16
|
+
if (words.length >= 2) {
|
|
17
|
+
return `${words[0][0] ?? ''}${words[1][0] ?? ''}`.toUpperCase();
|
|
18
|
+
}
|
|
19
|
+
const word = words[0] ?? '';
|
|
20
|
+
return word.slice(0, 2).toUpperCase();
|
|
21
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Avatar } from '@cloud-ru/ds-avatar';
|
|
3
|
+
import { createElement } from 'react';
|
|
4
|
+
import { getAvatarNameFromLabel } from './getAvatarNameFromLabel.js';
|
|
5
|
+
function createAvatarIcon(displayName) {
|
|
6
|
+
return function LinkAvatarIcon({ className }) {
|
|
7
|
+
return (_jsx(Avatar, { name: displayName, showTwoSymbols: true, shape: 'squared', appearance: 'neutral', size: 's', className: className }));
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export function getLinkEmblem(link) {
|
|
11
|
+
if (!link.icon) {
|
|
12
|
+
return createElement(createAvatarIcon(getAvatarNameFromLabel(link.label)));
|
|
13
|
+
}
|
|
14
|
+
return createElement(link.icon);
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './innerLink.js';
|
|
2
|
+
export * from './getAvatarNameFromLabel.js';
|
|
3
|
+
export * from './flatLinksGroups.js';
|
|
4
|
+
export * from './getLinkEmblem.js';
|
|
5
|
+
export * from './mapInnerLinksToListItems.js';
|
|
6
|
+
export * from './pinGroupToBottom.js';
|
|
7
|
+
export * from './dedupeSearchGroups.js';
|
|
8
|
+
export * from './filterLinksGroupsFuzzy.js';
|
|
9
|
+
export * from './resolveInnerLinksByIds.js';
|
|
10
|
+
export * from './mapOrderedFavoriteIdsToLinks.js';
|
|
11
|
+
export * from './resolveGroupBlockColor.js';
|
|
12
|
+
export * from './dnd/index.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './innerLink.js';
|
|
2
|
+
export * from './getAvatarNameFromLabel.js';
|
|
3
|
+
export * from './flatLinksGroups.js';
|
|
4
|
+
export * from './getLinkEmblem.js';
|
|
5
|
+
export * from './mapInnerLinksToListItems.js';
|
|
6
|
+
export * from './pinGroupToBottom.js';
|
|
7
|
+
export * from './dedupeSearchGroups.js';
|
|
8
|
+
export * from './filterLinksGroupsFuzzy.js';
|
|
9
|
+
export * from './resolveInnerLinksByIds.js';
|
|
10
|
+
export * from './mapOrderedFavoriteIdsToLinks.js';
|
|
11
|
+
export * from './resolveGroupBlockColor.js';
|
|
12
|
+
export * from './dnd/index.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InnerLink, LinksGroup } from '../types.js';
|
|
2
|
+
export declare function hasNestedItems(item: InnerLink): boolean;
|
|
3
|
+
export declare function flatInnerLinks(items?: InnerLink[]): InnerLink[];
|
|
4
|
+
export declare function getLinksGroupVisibleItemsCount(group: LinksGroup): number;
|
|
5
|
+
export declare function getSubCategoryId(groupId: string, serviceId: string): string;
|
|
6
|
+
export declare function getNestedServiceGroupId(groupId: string, serviceId: string): string;
|
|
7
|
+
export declare function findNestedInnerLinkParent(group: LinksGroup, leafId: string): InnerLink | undefined;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export function hasNestedItems(item) {
|
|
2
|
+
return Boolean(item.items?.some(child => !child.hidden));
|
|
3
|
+
}
|
|
4
|
+
export function flatInnerLinks(items = []) {
|
|
5
|
+
return items.flatMap(item => {
|
|
6
|
+
if (item.hidden) {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
if (hasNestedItems(item)) {
|
|
10
|
+
return [item, ...flatInnerLinks(item.items)];
|
|
11
|
+
}
|
|
12
|
+
return [item];
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export function getLinksGroupVisibleItemsCount(group) {
|
|
16
|
+
return group.items.reduce((count, item) => {
|
|
17
|
+
if (item.hidden) {
|
|
18
|
+
return count;
|
|
19
|
+
}
|
|
20
|
+
if (hasNestedItems(item)) {
|
|
21
|
+
return count + flatInnerLinks(item.items).length;
|
|
22
|
+
}
|
|
23
|
+
return count + 1;
|
|
24
|
+
}, 0);
|
|
25
|
+
}
|
|
26
|
+
export function getSubCategoryId(groupId, serviceId) {
|
|
27
|
+
return `${groupId}__${serviceId}`;
|
|
28
|
+
}
|
|
29
|
+
export function getNestedServiceGroupId(groupId, serviceId) {
|
|
30
|
+
return `${groupId}/${serviceId}`;
|
|
31
|
+
}
|
|
32
|
+
export function findNestedInnerLinkParent(group, leafId) {
|
|
33
|
+
return group.items.find(item => hasNestedItems(item) && item.items?.some(child => child.id === leafId));
|
|
34
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getLinkEmblem } from './getLinkEmblem.js';
|
|
2
|
+
export function mapInnerLinksToListItems(items) {
|
|
3
|
+
return items.map(link => ({
|
|
4
|
+
id: link.id,
|
|
5
|
+
content: {
|
|
6
|
+
label: link.label,
|
|
7
|
+
},
|
|
8
|
+
beforeContent: getLinkEmblem(link),
|
|
9
|
+
onClick: link.onClick,
|
|
10
|
+
href: link.href,
|
|
11
|
+
disabled: link.disabled,
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export function mapOrderedFavoriteIdsToLinks(orderedIds, currentFavorites, catalog) {
|
|
2
|
+
const currentById = new Map(currentFavorites.map(service => [service.id, service]));
|
|
3
|
+
return orderedIds
|
|
4
|
+
.map(id => currentById.get(id) ?? catalog.get(id))
|
|
5
|
+
.filter((service) => Boolean(service));
|
|
6
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function pinGroupToBottom(groups, adminGroupIds) {
|
|
2
|
+
const ids = Array.isArray(adminGroupIds) ? adminGroupIds : [adminGroupIds];
|
|
3
|
+
if (ids.length === 0) {
|
|
4
|
+
return groups;
|
|
5
|
+
}
|
|
6
|
+
const adminIdSet = new Set(ids);
|
|
7
|
+
const adminGroups = ids
|
|
8
|
+
.map(id => groups.find(group => group.id === id))
|
|
9
|
+
.filter((group) => Boolean(group));
|
|
10
|
+
const otherGroups = groups.filter(group => !adminIdSet.has(group.id));
|
|
11
|
+
return [...otherGroups, ...adminGroups];
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LinksGroupBlockColor } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Резолвит цвет блока группы с учётом глобального переключателя `showGroupsColors`.
|
|
4
|
+
*
|
|
5
|
+
* `showGroupsColors === false` скрывает цвета всех групп — возвращает `undefined`,
|
|
6
|
+
* что даёт `SortableGroup` дефолт `'neutral'`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveGroupBlockColor(blockColor: LinksGroupBlockColor | undefined, showGroupsColors: boolean | undefined): LinksGroupBlockColor | undefined;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Резолвит цвет блока группы с учётом глобального переключателя `showGroupsColors`.
|
|
3
|
+
*
|
|
4
|
+
* `showGroupsColors === false` скрывает цвета всех групп — возвращает `undefined`,
|
|
5
|
+
* что даёт `SortableGroup` дефолт `'neutral'`.
|
|
6
|
+
*/
|
|
7
|
+
export function resolveGroupBlockColor(blockColor, showGroupsColors) {
|
|
8
|
+
return showGroupsColors === false ? undefined : blockColor;
|
|
9
|
+
}
|