@gravity-ui/navigation 7.0.0-beta.0 → 7.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/components/AsideHeader/AsideHeader.css +3 -1
- package/build/cjs/components/AsideHeader/__playwright__/DecorationExample.d.ts +7 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +7 -2
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.css +2 -2
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +3 -3
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.css +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +4 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +5 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/Header.js +1 -2
- package/build/cjs/components/AsideHeader/components/Header.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +3 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js +1 -2
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +3 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +3 -1
- package/build/cjs/components/AsideHeader/density.d.ts +1 -0
- package/build/cjs/components/AsideHeader/density.js +6 -0
- package/build/cjs/components/AsideHeader/density.js.map +1 -1
- package/build/docs/components/AsideHeader.md +10 -1
- package/build/esm/components/AsideHeader/AsideHeader.css +3 -1
- package/build/esm/components/AsideHeader/__playwright__/DecorationExample.d.ts +7 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +7 -2
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.css +2 -2
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +3 -3
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.css +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +4 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +5 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -1
- package/build/esm/components/AsideHeader/components/Header.js +2 -3
- package/build/esm/components/AsideHeader/components/Header.js.map +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +3 -1
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js +2 -3
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +3 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +3 -1
- package/build/esm/components/AsideHeader/density.d.ts +1 -0
- package/build/esm/components/AsideHeader/density.js +7 -2
- package/build/esm/components/AsideHeader/density.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
--_--gn-aside-header-density-item-expanded-radius,8px
|
|
5
5
|
);--_--item-icon-background-size:var(
|
|
6
6
|
--gn-aside-header-item-icon-background-size,var(--_--gn-aside-header-density-icon-background-size,38px)
|
|
7
|
-
);--_--background-color:var(--g-color-base-background);--_--decoration-collapsed-background-color:var(--g-color-base-warning-light);--_--decoration-expanded-background-color:var(--g-color-base-warning-light);--_--vertical-divider-line-color:var(--g-color-line-generic);--_--horizontal-divider-line-color:var(--g-color-line-generic);--_--section-divider-gap:var(--g-spacing-1);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.AsideHeader-module__gn-aside-header__compact-transition___bBGfN{--_--gn-aside-width-transition:width 0.2s ease-in-out;--_--gn-aside-collapse-geometry-transition:inset-inline-end 0.2s ease-in-out,width 0.2s ease-in-out,border-radius 0.2s ease-in-out;--_--gn-aside-drawer-transition:left 0.2s ease-in-out,background-color var(--_--animation-duration,300ms)}.AsideHeader-module__gn-aside-header__compact-transition_disabled___ztpdX{--_--gn-aside-width-transition:none;--_--gn-aside-collapse-geometry-transition:none;--_--gn-aside-drawer-transition:background-color var(--_--animation-duration,300ms)}.AsideHeader-module__gn-aside-header__aside___AyP0y{background-color:var(--gn-aside-header-expanded-background-color,var(--gn-aside-header-background-color,var(--_--background-color)));box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;margin-top:var(--gn-top-alert-height,0);max-height:calc(100vh - var(--gn-top-alert-height, 0));overflow:hidden;position:sticky;top:var(--gn-top-alert-height,0);transition:var(--_--gn-aside-width-transition);width:inherit;z-index:var(--gn-aside-header-z-index,100)}.AsideHeader-module__gn-aside-header__aside___AyP0y:after{background-color:var(--gn-aside-header-divider-vertical-color,var(--_--vertical-divider-line-color));content:"";height:100%;inset-inline-end:0;position:absolute;top:0;width:1px;z-index:2}.AsideHeader-module__gn-aside-header__aside-popup-anchor___N3tgM{inset:0;position:absolute;z-index:1}.AsideHeader-module__gn-aside-header__aside-content___w5GOS{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;min-height:0;overflow:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:var(--gn-aside-header-size);z-index:2}.AsideHeader-module__gn-aside-header__aside-content___w5GOS>.AsideHeader-module__gn-aside-header-logo___6MdXx{margin:8px 0}.AsideHeader-module__gn-aside-header__aside-content_with-decoration___UsCye{background:linear-gradient(180deg,var(--gn-aside-header-decoration-expanded-background-color,var(--_--decoration-expanded-background-color)) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.AsideHeader-module__gn-aside-header__aside-custom-background___-bqdE{bottom:0;display:flex;position:absolute;top:0;transition:var(--_--gn-aside-width-transition);width:var(--gn-aside-header-size);z-index:-1}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__aside___AyP0y{background-color:var(--gn-aside-header-collapsed-background-color,var(--gn-aside-header-background-color,var(--_--background-color)))}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__aside-content___w5GOS{background:transparent}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] [data-gn-aside-divider]{flex-shrink:0}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .AsideHeader-module__gn-aside-header__aside-content___w5GOS{overflow:visible}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .g-list__item, .AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .g-list__item-content{min-width:0;overflow:visible}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] [data-gn-aside-scrollport]{width:var(--_--gn-aside-header-expanded-width)}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .AsideHeader-module__gn-aside-header__unified-menu-content___cpugB{width:var(--gn-aside-header-size)}.AsideHeader-module__gn-aside-header__header___m5aIU{--gn-aside-header-header-divider-height:
|
|
7
|
+
);--_--background-color:var(--g-color-base-background);--_--decoration-collapsed-background-color:var(--g-color-base-warning-light);--_--decoration-expanded-background-color:var(--g-color-base-warning-light);--_--vertical-divider-line-color:var(--g-color-line-generic);--_--horizontal-divider-line-color:var(--g-color-line-generic);--_--section-divider-gap:var(--g-spacing-1);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.AsideHeader-module__gn-aside-header__compact-transition___bBGfN{--_--gn-aside-width-transition:width 0.2s ease-in-out;--_--gn-aside-collapse-geometry-transition:inset-inline-end 0.2s ease-in-out,width 0.2s ease-in-out,border-radius 0.2s ease-in-out;--_--gn-aside-drawer-transition:left 0.2s ease-in-out,background-color var(--_--animation-duration,300ms)}.AsideHeader-module__gn-aside-header__compact-transition_disabled___ztpdX{--_--gn-aside-width-transition:none;--_--gn-aside-collapse-geometry-transition:none;--_--gn-aside-drawer-transition:background-color var(--_--animation-duration,300ms)}.AsideHeader-module__gn-aside-header__aside___AyP0y{background-color:var(--gn-aside-header-expanded-background-color,var(--gn-aside-header-background-color,var(--_--background-color)));box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;margin-top:var(--gn-top-alert-height,0);max-height:calc(100vh - var(--gn-top-alert-height, 0));overflow:hidden;position:sticky;top:var(--gn-top-alert-height,0);transition:var(--_--gn-aside-width-transition);width:inherit;z-index:var(--gn-aside-header-z-index,100)}.AsideHeader-module__gn-aside-header__aside___AyP0y:after{background-color:var(--gn-aside-header-divider-vertical-color,var(--_--vertical-divider-line-color));content:"";height:100%;inset-inline-end:0;position:absolute;top:0;width:1px;z-index:2}.AsideHeader-module__gn-aside-header__aside-popup-anchor___N3tgM{inset:0;position:absolute;z-index:1}.AsideHeader-module__gn-aside-header__aside-content___w5GOS{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;min-height:0;overflow:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:var(--gn-aside-header-size);z-index:2}.AsideHeader-module__gn-aside-header__aside-content___w5GOS>.AsideHeader-module__gn-aside-header-logo___6MdXx{margin:8px 0}.AsideHeader-module__gn-aside-header__aside-content_with-decoration___UsCye{background:linear-gradient(180deg,var(--gn-aside-header-decoration-expanded-background-color,var(--_--decoration-expanded-background-color)) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.AsideHeader-module__gn-aside-header__aside-custom-background___-bqdE{bottom:0;display:flex;position:absolute;top:0;transition:var(--_--gn-aside-width-transition);width:var(--gn-aside-header-size);z-index:-1}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__aside___AyP0y{background-color:var(--gn-aside-header-collapsed-background-color,var(--gn-aside-header-background-color,var(--_--background-color)))}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__aside-content___w5GOS{background:transparent}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] [data-gn-aside-divider]{flex-shrink:0}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .AsideHeader-module__gn-aside-header__aside-content___w5GOS{overflow:visible}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .g-list__item, .AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .g-list__item-content{min-width:0;overflow:visible}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] [data-gn-aside-scrollport]{width:var(--_--gn-aside-header-expanded-width)}.AsideHeader-module__gn-aside-header__aside___AyP0y[data-gn-aside-animating] .AsideHeader-module__gn-aside-header__unified-menu-content___cpugB{width:var(--gn-aside-header-size)}.AsideHeader-module__gn-aside-header__header___m5aIU{--gn-aside-header-header-divider-height:var(
|
|
8
|
+
--_--gn-aside-header-density-header-divider-height,29px
|
|
9
|
+
);box-sizing:border-box;flex:none;padding-bottom:var(--_--header-padding-bottom,22px);padding-top:8px;position:relative;width:100%;z-index:1}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;top:calc(100% - var(--gn-aside-header-header-divider-height));z-index:-2}.AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));content:"";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-bottom-divider___x9Bzo{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));bottom:12px;content:"";height:1px;left:0;position:absolute;width:100%;z-index:-2}.AsideHeader-module__gn-aside-header__aside-content_with-quick-access___Yucty:not(.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB) .AsideHeader-module__gn-aside-header__header___m5aIU{padding-bottom:var(--_--header-padding-bottom,var(--_--section-divider-gap))}.AsideHeader-module__gn-aside-header__aside-content_with-quick-access___Yucty:not(.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB) .AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-bottom-divider___x9Bzo{bottom:0}.AsideHeader-module__gn-aside-header__aside-content_with-quick-access___Yucty:not(.AsideHeader-module__gn-aside-header__aside-content_with-quick-access-items___oU0Yz):not(.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB) .AsideHeader-module__gn-aside-header__header___m5aIU{margin-bottom:var(--_--section-divider-gap)}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header___m5aIU:before{display:block}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO{--_--header-padding-bottom:calc(var(--gn-aside-header-header-divider-height)*22/29)}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:block}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-bottom-divider___x9Bzo{display:none}.AsideHeader-module__gn-aside-header__logo-button___5u2iH .AsideHeader-module__gn-aside-header__logo-icon-place___3Oo9i{height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));width:var(--gn-aside-header-min-width)}.AsideHeader-module__gn-aside-header__logo___QvKKT{--_--gn-logo-height:var(
|
|
8
10
|
--_--gn-aside-header-density-item-height,40px
|
|
9
11
|
)}.AsideHeader-module__gn-aside-header__quick-access___ykXmy{box-sizing:border-box;flex:none;margin-bottom:var(--_--section-divider-gap);padding-block:var(--_--section-divider-gap);position:relative;width:100%}.AsideHeader-module__gn-aside-header__quick-access-divider___AzkVl{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));bottom:0;content:"";height:1px;left:var(--_--item-margin-inline);position:absolute;right:var(--_--item-margin-inline);width:auto;z-index:1}.AsideHeader-module__gn-aside-header__quick-access-title___im4TL{color:var(--g-color-text-secondary);font-family:var(--g-text-caption-font-family);font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height);margin-inline:var(--_--item-margin-inline);padding-inline:calc(var(--_--gn-aside-header-density-item-height, 40px) + var(--_--gn-aside-header-density-item-title-gap, var(--g-spacing-2))) var(--_--gn-aside-header-density-item-title-gap-end,var(--g-spacing-4));padding-bottom:var(--g-spacing-1);user-select:none}.AsideHeader-module__gn-aside-header__unified-menu-scroll___EHnK-{flex:1 1 auto;min-height:0}.AsideHeader-module__gn-aside-header__unified-menu-content___cpugB{display:flex;flex-direction:column;min-height:100%;position:relative;z-index:0}.AsideHeader-module__gn-aside-header___Z0Sa7 [data-gn-aside-current-container]>:not([data-gn-aside-current-indicator-layer]):not([data-gn-aside-divider]){position:relative;z-index:1}.AsideHeader-module__gn-aside-header__menu-items___SOI2-{flex-grow:1}.AsideHeader-module__gn-aside-header__menu-item___q2y31:not(:has([data-type=action])){margin-inline:var(--_--item-margin-inline)}.AsideHeader-module__gn-aside-header__menu-item___q2y31:has([data-type=regular]), .AsideHeader-module__gn-aside-header__menu-item_type_regular___XYYbc, .AsideHeader-module__gn-aside-header__root-menu-item___eNfkk[class]:hover{border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.AsideHeader-module__gn-aside-header__collapse-fallback___R6O7X{flex-shrink:0;height:var(--_--gn-aside-header-density-footer-item-height,32px)}.AsideHeader-module__gn-aside-header__footer___vmoTl{display:flex;flex-direction:column;flex-shrink:0;margin:var(--g-spacing-2) var(--_--item-margin-inline);position:relative}.AsideHeader-module__gn-aside-header__footer___vmoTl .AsideHeader-module__gn-aside-header__footer-divider___9Jewp{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));content:"";height:1px;left:calc(var(--_--item-margin-inline)*-1);opacity:0;pointer-events:none;position:absolute;right:calc(var(--_--item-margin-inline)*-1);top:calc(var(--g-spacing-2)*-1);transition:opacity .3s ease-in-out}.AsideHeader-module__gn-aside-header__footer_with-divider___66E1w .AsideHeader-module__gn-aside-header__footer-divider___9Jewp{opacity:1}.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__header___m5aIU{margin-bottom:0;padding-bottom:0}.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__header___m5aIU:before{height:100%}.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__footer-divider___9Jewp, .AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-bottom-divider___x9Bzo, .AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:none}.AsideHeader-module__gn-aside-header__aside-content_hide-section-dividers___9BZdB .AsideHeader-module__gn-aside-header__footer___vmoTl{margin-top:0}.AsideHeader-module__gn-aside-header__panels___-fdu4{z-index:var(--gn-aside-header-panel-z-index,98)}.AsideHeader-module__gn-aside-header__panels___-fdu4.g-drawer[data-floating-ui-status]{transition:var(--_--gn-aside-drawer-transition)}.AsideHeader-module__gn-aside-header__panel___HywH6, .AsideHeader-module__gn-aside-header__panel___HywH6.g-drawer__item{bottom:0;height:auto;top:0}.AsideHeader-module__gn-aside-header__pane-container___y-v2e{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.AsideHeader-module__gn-aside-header__top-alert___hY12r{background:var(--g-color-base-background);position:fixed;top:0;width:100%;z-index:var(--gn-aside-header-pane-top-z-index,98)}.AsideHeader-module__gn-aside-header__content___4-mBl{margin-top:var(--gn-top-alert-height,0);transition:var(--_--gn-aside-width-transition);width:calc(100% - var(--gn-aside-header-size));z-index:var(--gn-aside-header-content-z-index,95)}@media (prefers-reduced-motion:reduce){.AsideHeader-module__gn-aside-header__aside-custom-background___-bqdE, .AsideHeader-module__gn-aside-header__aside___AyP0y, .AsideHeader-module__gn-aside-header__content___4-mBl, .AsideHeader-module__gn-aside-header__panels___-fdu4.g-drawer[data-floating-ui-status]{transition:none}}.AsideHeader-module__gn-aside-header__all-pages-panel___O94IU{width:fit-content!important}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AsideHeaderProps } from '../types';
|
|
3
|
+
type Props = Pick<AsideHeaderProps, 'compact' | 'menuDensity' | 'enableQuickAccess' | 'hideSectionDividers'> & {
|
|
4
|
+
quickAccess?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function DecorationExample({ quickAccess, ...props }: Props): React.JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -18,7 +18,7 @@ var AllPagesPanel_module = require('./AllPagesPanel.module.scss.js');
|
|
|
18
18
|
const b = cn.createBlock('all-pages-panel', AllPagesPanel_module.default);
|
|
19
19
|
const AllPagesPanel = (props) => {
|
|
20
20
|
const { startEditIcon, onEditModeChanged, className } = props;
|
|
21
|
-
const { menuItems, defaultMenuItems, onMenuItemsChanged, editMenuProps, menuGroups, onMenuGroupsChanged, } = AsideHeaderContext.useAsideHeaderInnerContext();
|
|
21
|
+
const { menuItems, defaultMenuItems, onMenuItemsChanged, editMenuProps, menuGroups, onMenuGroupsChanged, onClosePanel, } = AsideHeaderContext.useAsideHeaderInnerContext();
|
|
22
22
|
const menuItemsRef = React.useRef(menuItems);
|
|
23
23
|
menuItemsRef.current = menuItems;
|
|
24
24
|
const [isEditMode, setIsEditMode] = React.useState(false);
|
|
@@ -36,9 +36,14 @@ const AllPagesPanel = (props) => {
|
|
|
36
36
|
}, [isEditMode, onEditModeChanged, editMenuProps]);
|
|
37
37
|
const onItemClick = React.useCallback((item, _index, _forwardKey, event) => {
|
|
38
38
|
var _a;
|
|
39
|
+
// Close before the item action, like the sidebar handler does:
|
|
40
|
+
// the action may open another panel, which must survive this click.
|
|
41
|
+
if (!item.current) {
|
|
42
|
+
onClosePanel === null || onClosePanel === undefined ? undefined : onClosePanel();
|
|
43
|
+
}
|
|
39
44
|
// TODO: make event an optional argument
|
|
40
45
|
(_a = item.onItemClick) === null || _a === undefined ? undefined : _a.call(item, item, false, event);
|
|
41
|
-
}, []);
|
|
46
|
+
}, [onClosePanel]);
|
|
42
47
|
const togglePageVisibility = React.useCallback((item) => {
|
|
43
48
|
var _a, _b;
|
|
44
49
|
const groupIdFromHeader = allPagesEditDisplay.getCompositeBarHeaderGroupId(item.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllPagesPanel.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.tsx"],"sourcesContent":["import React, {ReactNode, useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport {Gear} from '@gravity-ui/icons';\nimport {Button, Flex, Icon, List, ListItemData, ListProps, Text, Tooltip} from '@gravity-ui/uikit';\n\nimport type {MenuGroup} from '../../../types';\nimport {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderInnerContext} from '../../AsideHeaderContext';\nimport {AsideHeaderItem} from '../../types';\nimport {buildCompositeBarRows} from '../CompositeBar/grouping';\n\nimport {AllPagesListItem} from './AllPagesListItem';\nimport {\n ALL_PAGES_PANEL_ROW_BUILD_OPTIONS,\n getAllPagesEditModeFlatItems,\n getCompositeBarHeaderGroupId,\n reorderMenuItemsByCompositeBarRows,\n rowsToAllPagesDisplayItems,\n} from './allPagesEditDisplay';\nimport {isAllPagesSortableItem, reorderAllPagesSortableItems} from './allPagesSortable';\nimport {ALL_PAGES_ID} from './constants';\nimport i18n from './i18n';\nimport {useGroupedMenuItems} from './useGroupedMenuItems';\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 menuItems,\n defaultMenuItems,\n onMenuItemsChanged,\n editMenuProps,\n menuGroups,\n onMenuGroupsChanged,\n } = useAsideHeaderInnerContext();\n\n const menuItemsRef = useRef(menuItems);\n menuItemsRef.current = menuItems;\n\n const [isEditMode, setIsEditMode] = useState(false);\n\n const [draggingItemTitle, setDraggingItemTitle] = useState<ReactNode | null>(null);\n\n const toggleEditMode = useCallback(() => {\n setIsEditMode((prev) => !prev);\n }, []);\n\n const groupedItems = useGroupedMenuItems(\n menuItems,\n isEditMode,\n menuGroups,\n onMenuGroupsChanged,\n );\n\n useEffect(() => {\n onEditModeChanged?.(isEditMode);\n\n if (isEditMode) {\n editMenuProps?.onOpenEditMode?.();\n }\n }, [isEditMode, onEditModeChanged, editMenuProps]);\n\n const onItemClick = useCallback<NonNullable<ListProps<AsideHeaderItem>['onItemClick']>>(\n (item, _index, _forwardKey, event) => {\n // TODO: make event an optional argument\n item.onItemClick?.(item, false, event as React.MouseEvent<HTMLElement, MouseEvent>);\n },\n [],\n );\n\n const togglePageVisibility = useCallback(\n (item: AsideHeaderItem) => {\n const groupIdFromHeader = getCompositeBarHeaderGroupId(item.id);\n if (groupIdFromHeader && menuGroups && onMenuGroupsChanged) {\n const previousGroup = menuGroups.find((g) => g.id === groupIdFromHeader);\n if (!previousGroup) {\n return;\n }\n const changedGroup: MenuGroup = {\n ...previousGroup,\n hidden: !previousGroup.hidden,\n };\n editMenuProps?.onToggleMenuGroup?.(changedGroup);\n onMenuGroupsChanged(\n menuGroups.map((g) => (g.id === groupIdFromHeader ? changedGroup : g)),\n );\n return;\n }\n\n if (!onMenuItemsChanged) {\n return;\n }\n\n const changedItem: AsideHeaderItem = {\n ...item,\n hidden: !item.hidden,\n };\n\n const originItems = menuItemsRef.current.filter(\n (menuItem) => menuItem.id !== ALL_PAGES_ID,\n );\n editMenuProps?.onToggleMenuItem?.(changedItem);\n onMenuItemsChanged(\n originItems.map((menuItem) => {\n if (menuItem.id !== changedItem.id) {\n return menuItem;\n }\n return changedItem;\n }),\n );\n },\n [onMenuItemsChanged, editMenuProps, menuGroups, onMenuGroupsChanged],\n );\n\n const onDragEnd = useCallback(() => {\n setDraggingItemTitle(null);\n }, [setDraggingItemTitle]);\n\n const itemRender = useCallback(\n (\n asideHeaderItem: ListItemData<AsideHeaderItem>,\n _isActive: boolean,\n _itemIndex: number,\n ) => {\n const onDragStart = () => {\n setDraggingItemTitle(asideHeaderItem.title);\n };\n\n return (\n <AllPagesListItem\n item={asideHeaderItem}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n editMode={isEditMode}\n onToggle={() => togglePageVisibility(asideHeaderItem)}\n enableSorting={editMenuProps?.enableSorting}\n />\n );\n },\n [isEditMode, togglePageVisibility, onDragEnd, setDraggingItemTitle, editMenuProps],\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 }, [onMenuItemsChanged, editMenuProps, defaultMenuItems]);\n\n const changeItemsOrder = useCallback(\n ({oldIndex, newIndex}: {oldIndex: number; newIndex: number}) => {\n const withoutAllPages = menuItemsRef.current.filter(\n ({id, type}) => id !== ALL_PAGES_ID && type !== 'divider',\n );\n\n let element: AsideHeaderItem | undefined;\n let reordered: AsideHeaderItem[];\n\n if (menuGroups?.length) {\n const rows = buildCompositeBarRows(\n withoutAllPages,\n menuGroups,\n ALL_PAGES_PANEL_ROW_BUILD_OPTIONS,\n );\n const display = rowsToAllPagesDisplayItems(rows, {\n enableGroupHeaderPins: Boolean(onMenuGroupsChanged),\n });\n element = display[oldIndex];\n reordered = reorderMenuItemsByCompositeBarRows(\n withoutAllPages,\n menuGroups,\n oldIndex,\n newIndex,\n );\n } else {\n const sortableBefore = withoutAllPages.filter(isAllPagesSortableItem);\n element = sortableBefore[oldIndex];\n reordered = reorderAllPagesSortableItems(withoutAllPages, oldIndex, newIndex);\n }\n\n onMenuItemsChanged?.(reordered);\n\n setDraggingItemTitle(null);\n if (element) {\n editMenuProps?.onChangeItemsOrder?.(element, oldIndex, newIndex);\n }\n },\n [onMenuItemsChanged, editMenuProps, menuGroups, onMenuGroupsChanged],\n );\n\n const sortableItems = useMemo(() => {\n const without = menuItems.filter(({id, type}) => id !== ALL_PAGES_ID && type !== 'divider');\n const pinHeaders = Boolean(onMenuGroupsChanged);\n if (menuGroups?.length) {\n return getAllPagesEditModeFlatItems(without, menuGroups, {\n enableGroupHeaderPins: pinHeaders,\n });\n }\n return without.filter(isAllPagesSortableItem);\n }, [menuItems, menuGroups, onMenuGroupsChanged]);\n\n return (\n <Flex className={b(null, className)} gap=\"5\" 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=\"normal\" onClick={toggleEditMode}>\n {startEditIcon ? startEditIcon : <Icon data={Gear} />}\n </Button>\n </Tooltip>\n </Flex>\n <Flex className={b('content', {editMode: isEditMode})} gap=\"5\" direction=\"column\">\n {isEditMode && editMenuProps?.enableSorting ? (\n <div>\n <List\n itemClassName={b('item', {editMode: true})}\n itemHeight={40}\n onSortEnd={changeItemsOrder}\n sortable\n virtualized={false}\n filterable={false}\n items={sortableItems}\n onItemClick={onItemClick}\n renderItem={itemRender}\n />\n\n {draggingItemTitle && (\n <div className={b('drag-placeholder')}>{draggingItemTitle}</div>\n )}\n </div>\n ) : (\n Object.keys(groupedItems).map((category) => {\n return (\n <Flex key={category} direction=\"column\" gap=\"3\">\n <Text className={b('category')} variant=\"body-1\" color=\"secondary\">\n {category}\n </Text>\n <List\n virtualized={false}\n filterable={false}\n items={groupedItems[category]}\n onItemClick={onItemClick}\n renderItem={itemRender}\n />\n </Flex>\n );\n })\n )}\n </Flex>\n {isEditMode && (\n <Button onClick={onResetToDefaultClick}>{i18n('all-panel.resetToDefault')}</Button>\n )}\n </Flex>\n );\n};\n"],"names":["createBlock","styles","useAsideHeaderInnerContext","useRef","useState","useCallback","useGroupedMenuItems","useEffect","getCompositeBarHeaderGroupId","ALL_PAGES_ID","AllPagesListItem","buildCompositeBarRows","ALL_PAGES_PANEL_ROW_BUILD_OPTIONS","rowsToAllPagesDisplayItems","reorderMenuItemsByCompositeBarRows","isAllPagesSortableItem","reorderAllPagesSortableItems","useMemo","getAllPagesEditModeFlatItems","Flex","Text","i18n","Tooltip","Button","Icon","Gear","List"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AllPagesPanel.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.tsx"],"sourcesContent":["import React, {ReactNode, useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport {Gear} from '@gravity-ui/icons';\nimport {Button, Flex, Icon, List, ListItemData, ListProps, Text, Tooltip} from '@gravity-ui/uikit';\n\nimport type {MenuGroup} from '../../../types';\nimport {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderInnerContext} from '../../AsideHeaderContext';\nimport {AsideHeaderItem} from '../../types';\nimport {buildCompositeBarRows} from '../CompositeBar/grouping';\n\nimport {AllPagesListItem} from './AllPagesListItem';\nimport {\n ALL_PAGES_PANEL_ROW_BUILD_OPTIONS,\n getAllPagesEditModeFlatItems,\n getCompositeBarHeaderGroupId,\n reorderMenuItemsByCompositeBarRows,\n rowsToAllPagesDisplayItems,\n} from './allPagesEditDisplay';\nimport {isAllPagesSortableItem, reorderAllPagesSortableItems} from './allPagesSortable';\nimport {ALL_PAGES_ID} from './constants';\nimport i18n from './i18n';\nimport {useGroupedMenuItems} from './useGroupedMenuItems';\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 menuItems,\n defaultMenuItems,\n onMenuItemsChanged,\n editMenuProps,\n menuGroups,\n onMenuGroupsChanged,\n onClosePanel,\n } = useAsideHeaderInnerContext();\n\n const menuItemsRef = useRef(menuItems);\n menuItemsRef.current = menuItems;\n\n const [isEditMode, setIsEditMode] = useState(false);\n\n const [draggingItemTitle, setDraggingItemTitle] = useState<ReactNode | null>(null);\n\n const toggleEditMode = useCallback(() => {\n setIsEditMode((prev) => !prev);\n }, []);\n\n const groupedItems = useGroupedMenuItems(\n menuItems,\n isEditMode,\n menuGroups,\n onMenuGroupsChanged,\n );\n\n useEffect(() => {\n onEditModeChanged?.(isEditMode);\n\n if (isEditMode) {\n editMenuProps?.onOpenEditMode?.();\n }\n }, [isEditMode, onEditModeChanged, editMenuProps]);\n\n const onItemClick = useCallback<NonNullable<ListProps<AsideHeaderItem>['onItemClick']>>(\n (item, _index, _forwardKey, event) => {\n // Close before the item action, like the sidebar handler does:\n // the action may open another panel, which must survive this click.\n if (!item.current) {\n onClosePanel?.();\n }\n\n // TODO: make event an optional argument\n item.onItemClick?.(item, false, event as React.MouseEvent<HTMLElement, MouseEvent>);\n },\n [onClosePanel],\n );\n\n const togglePageVisibility = useCallback(\n (item: AsideHeaderItem) => {\n const groupIdFromHeader = getCompositeBarHeaderGroupId(item.id);\n if (groupIdFromHeader && menuGroups && onMenuGroupsChanged) {\n const previousGroup = menuGroups.find((g) => g.id === groupIdFromHeader);\n if (!previousGroup) {\n return;\n }\n const changedGroup: MenuGroup = {\n ...previousGroup,\n hidden: !previousGroup.hidden,\n };\n editMenuProps?.onToggleMenuGroup?.(changedGroup);\n onMenuGroupsChanged(\n menuGroups.map((g) => (g.id === groupIdFromHeader ? changedGroup : g)),\n );\n return;\n }\n\n if (!onMenuItemsChanged) {\n return;\n }\n\n const changedItem: AsideHeaderItem = {\n ...item,\n hidden: !item.hidden,\n };\n\n const originItems = menuItemsRef.current.filter(\n (menuItem) => menuItem.id !== ALL_PAGES_ID,\n );\n editMenuProps?.onToggleMenuItem?.(changedItem);\n onMenuItemsChanged(\n originItems.map((menuItem) => {\n if (menuItem.id !== changedItem.id) {\n return menuItem;\n }\n return changedItem;\n }),\n );\n },\n [onMenuItemsChanged, editMenuProps, menuGroups, onMenuGroupsChanged],\n );\n\n const onDragEnd = useCallback(() => {\n setDraggingItemTitle(null);\n }, [setDraggingItemTitle]);\n\n const itemRender = useCallback(\n (\n asideHeaderItem: ListItemData<AsideHeaderItem>,\n _isActive: boolean,\n _itemIndex: number,\n ) => {\n const onDragStart = () => {\n setDraggingItemTitle(asideHeaderItem.title);\n };\n\n return (\n <AllPagesListItem\n item={asideHeaderItem}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n editMode={isEditMode}\n onToggle={() => togglePageVisibility(asideHeaderItem)}\n enableSorting={editMenuProps?.enableSorting}\n />\n );\n },\n [isEditMode, togglePageVisibility, onDragEnd, setDraggingItemTitle, editMenuProps],\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 }, [onMenuItemsChanged, editMenuProps, defaultMenuItems]);\n\n const changeItemsOrder = useCallback(\n ({oldIndex, newIndex}: {oldIndex: number; newIndex: number}) => {\n const withoutAllPages = menuItemsRef.current.filter(\n ({id, type}) => id !== ALL_PAGES_ID && type !== 'divider',\n );\n\n let element: AsideHeaderItem | undefined;\n let reordered: AsideHeaderItem[];\n\n if (menuGroups?.length) {\n const rows = buildCompositeBarRows(\n withoutAllPages,\n menuGroups,\n ALL_PAGES_PANEL_ROW_BUILD_OPTIONS,\n );\n const display = rowsToAllPagesDisplayItems(rows, {\n enableGroupHeaderPins: Boolean(onMenuGroupsChanged),\n });\n element = display[oldIndex];\n reordered = reorderMenuItemsByCompositeBarRows(\n withoutAllPages,\n menuGroups,\n oldIndex,\n newIndex,\n );\n } else {\n const sortableBefore = withoutAllPages.filter(isAllPagesSortableItem);\n element = sortableBefore[oldIndex];\n reordered = reorderAllPagesSortableItems(withoutAllPages, oldIndex, newIndex);\n }\n\n onMenuItemsChanged?.(reordered);\n\n setDraggingItemTitle(null);\n if (element) {\n editMenuProps?.onChangeItemsOrder?.(element, oldIndex, newIndex);\n }\n },\n [onMenuItemsChanged, editMenuProps, menuGroups, onMenuGroupsChanged],\n );\n\n const sortableItems = useMemo(() => {\n const without = menuItems.filter(({id, type}) => id !== ALL_PAGES_ID && type !== 'divider');\n const pinHeaders = Boolean(onMenuGroupsChanged);\n if (menuGroups?.length) {\n return getAllPagesEditModeFlatItems(without, menuGroups, {\n enableGroupHeaderPins: pinHeaders,\n });\n }\n return without.filter(isAllPagesSortableItem);\n }, [menuItems, menuGroups, onMenuGroupsChanged]);\n\n return (\n <Flex className={b(null, className)} gap=\"5\" 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=\"normal\" onClick={toggleEditMode}>\n {startEditIcon ? startEditIcon : <Icon data={Gear} />}\n </Button>\n </Tooltip>\n </Flex>\n <Flex className={b('content', {editMode: isEditMode})} gap=\"5\" direction=\"column\">\n {isEditMode && editMenuProps?.enableSorting ? (\n <div>\n <List\n itemClassName={b('item', {editMode: true})}\n itemHeight={40}\n onSortEnd={changeItemsOrder}\n sortable\n virtualized={false}\n filterable={false}\n items={sortableItems}\n onItemClick={onItemClick}\n renderItem={itemRender}\n />\n\n {draggingItemTitle && (\n <div className={b('drag-placeholder')}>{draggingItemTitle}</div>\n )}\n </div>\n ) : (\n Object.keys(groupedItems).map((category) => {\n return (\n <Flex key={category} direction=\"column\" gap=\"3\">\n <Text className={b('category')} variant=\"body-1\" color=\"secondary\">\n {category}\n </Text>\n <List\n virtualized={false}\n filterable={false}\n items={groupedItems[category]}\n onItemClick={onItemClick}\n renderItem={itemRender}\n />\n </Flex>\n );\n })\n )}\n </Flex>\n {isEditMode && (\n <Button onClick={onResetToDefaultClick}>{i18n('all-panel.resetToDefault')}</Button>\n )}\n </Flex>\n );\n};\n"],"names":["createBlock","styles","useAsideHeaderInnerContext","useRef","useState","useCallback","useGroupedMenuItems","useEffect","getCompositeBarHeaderGroupId","ALL_PAGES_ID","AllPagesListItem","buildCompositeBarRows","ALL_PAGES_PANEL_ROW_BUILD_OPTIONS","rowsToAllPagesDisplayItems","reorderMenuItemsByCompositeBarRows","isAllPagesSortableItem","reorderAllPagesSortableItems","useMemo","getAllPagesEditModeFlatItems","Flex","Text","i18n","Tooltip","Button","Icon","Gear","List"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.CollapseButton-module__gn-collapse-button___93DwB{align-items:center;background:none;border:none;border-radius:inherit;color:inherit;color:var(--g-color-text-secondary);cursor:pointer;display:flex;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);height:100%;justify-content:center;opacity:1;outline:none;padding:0;pointer-events:auto;transform:translateX(0);transition:opacity .15s ease-in-out,transform .15s ease-in-out;width:100%}[dir=rtl] .CollapseButton-module__gn-collapse-button___93DwB{--_--collapse-appearance-shift:2px;--_--collapse-icon-direction:-1}.CollapseButton-module__gn-collapse-button_compact___IaLr3{background:var(--gn-aside-header-collapsed-background-color,var(--gn-aside-header-background-color,var(--g-color-base-background)));opacity:0;transform:translateX(var(--_--collapse-appearance-shift,-2px))}.CollapseButton-module__gn-collapse-button__icon___iMooT{transform:scaleX(var(--_--collapse-icon-direction,1))}.CollapseButton-module__gn-collapse-button___93DwB:not(.CollapseButton-module__gn-collapse-button_compact___IaLr3) .CollapseButton-module__gn-collapse-button__icon___iMooT{transform:rotate(180deg) scaleX(var(--_--collapse-icon-direction,1))}.CollapseButton-module__gn-collapse-button___93DwB:hover{background-image:linear-gradient(var(--g-color-base-simple-hover),var(--g-color-base-simple-hover));color:var(--g-color-text-primary)}.CollapseButton-module__gn-collapse-button___93DwB:focus-visible{outline:2px solid var(--g-color-line-focus);outline-offset:-2px}.CollapseButton-module__gn-collapse-button__layer___LGd74{flex:0 0 0;height:100vh;margin-top:var(--gn-top-alert-height,0);max-height:calc(100vh - var(--gn-top-alert-height, 0));min-width:0;overflow:visible;pointer-events:none;position:sticky;top:var(--gn-top-alert-height,0);width:0;z-index:calc(var(--gn-aside-header-z-index, 100) + 1)}.CollapseButton-module__gn-collapse-button__slot___3aLNr{border-radius:8px;bottom:var(--g-spacing-2);height:var(--_--gn-aside-header-density-footer-item-height,32px);inset-inline-end:var(--_--item-margin-inline);position:absolute;transition:var(--_--gn-aside-collapse-geometry-transition);width:24px}.CollapseButton-module__gn-collapse-button__slot_compact___RFdrh{border-radius:12px;inset-inline-end:-10px;width:20px}[data-gn-aside-panel]:hover+[data-gn-aside-collapse-layer] .CollapseButton-module__gn-collapse-button___93DwB, [data-gn-aside-panel][data-gn-aside-animating]+[data-gn-aside-collapse-layer] .CollapseButton-module__gn-collapse-
|
|
1
|
+
.CollapseButton-module__gn-collapse-button___93DwB{align-items:center;background:none;border:none;border-radius:inherit;color:inherit;color:var(--g-color-text-secondary);cursor:pointer;display:flex;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);height:100%;justify-content:center;opacity:1;outline:none;padding:0;pointer-events:auto;transform:translateX(0);transition:opacity .15s ease-in-out,transform .15s ease-in-out;width:100%}[dir=rtl] .CollapseButton-module__gn-collapse-button___93DwB{--_--collapse-appearance-shift:2px;--_--collapse-icon-direction:-1}.CollapseButton-module__gn-collapse-button_compact___IaLr3{background:var(--gn-aside-header-collapsed-background-color,var(--gn-aside-header-background-color,var(--g-color-base-background)));box-shadow:0 0 0 1px var(--gn-aside-header-collapse-button-border-color,var(--g-color-line-generic-accent));color:var(--g-color-text-primary);opacity:0;transform:translateX(var(--_--collapse-appearance-shift,-2px))}.CollapseButton-module__gn-collapse-button__icon___iMooT{transform:scaleX(var(--_--collapse-icon-direction,1))}.CollapseButton-module__gn-collapse-button___93DwB:not(.CollapseButton-module__gn-collapse-button_compact___IaLr3) .CollapseButton-module__gn-collapse-button__icon___iMooT{transform:rotate(180deg) scaleX(var(--_--collapse-icon-direction,1))}.CollapseButton-module__gn-collapse-button___93DwB:hover{background-image:linear-gradient(var(--g-color-base-simple-hover),var(--g-color-base-simple-hover));color:var(--g-color-text-primary)}.CollapseButton-module__gn-collapse-button___93DwB:focus-visible{outline:2px solid var(--g-color-line-focus);outline-offset:-2px}.CollapseButton-module__gn-collapse-button__layer___LGd74{flex:0 0 0;height:100vh;margin-top:var(--gn-top-alert-height,0);max-height:calc(100vh - var(--gn-top-alert-height, 0));min-width:0;overflow:visible;pointer-events:none;position:sticky;top:var(--gn-top-alert-height,0);width:0;z-index:calc(var(--gn-aside-header-z-index, 100) + 1)}.CollapseButton-module__gn-collapse-button__slot___3aLNr{border-radius:8px;bottom:var(--g-spacing-2);height:var(--_--gn-aside-header-density-footer-item-height,32px);inset-inline-end:var(--_--item-margin-inline);position:absolute;transition:var(--_--gn-aside-collapse-geometry-transition);width:24px}.CollapseButton-module__gn-collapse-button__slot_compact___RFdrh{border-radius:12px;inset-inline-end:-10px;width:20px}[data-gn-aside-panel]:hover+[data-gn-aside-collapse-layer] .CollapseButton-module__gn-collapse-button___93DwB{opacity:1;transform:none}.CollapseButton-module__gn-collapse-button___93DwB:focus-visible, .CollapseButton-module__gn-collapse-button___93DwB:hover{opacity:1;transform:none}[data-gn-aside-panel][data-gn-aside-animating]+[data-gn-aside-collapse-layer] .CollapseButton-module__gn-collapse-button_compact___IaLr3:not(:focus-visible){opacity:0;transition:none}@media (hover:none){.CollapseButton-module__gn-collapse-button___93DwB{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.CollapseButton-module__gn-collapse-button___93DwB, .CollapseButton-module__gn-collapse-button__slot___3aLNr{transition:none}}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
.CompositeBar-module__gn-composite-bar___WoCDY{--_--menu-group-tree-connector-width:16px;--_--menu-item-gap:0px;flex:1 0 auto;min-height:var(--_--gn-aside-header-density-item-height,40px);width:100%}.CompositeBar-module__gn-composite-bar___WoCDY .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class]{background-color:transparent}.CompositeBar-module__gn-composite-bar_inline-groups___BsraQ .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class], .CompositeBar-module__gn-composite-bar_quick-access___zNlSe .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class]{background:none;box-sizing:border-box;overflow:visible;padding-block-end:var(--_--menu-item-gap);position:relative}.CompositeBar-module__gn-composite-bar_inline-groups___BsraQ .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_active, .CompositeBar-module__gn-composite-bar_inline-groups___BsraQ .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_active.g-list__item_selected, .CompositeBar-module__gn-composite-bar_inline-groups___BsraQ .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_selected, .CompositeBar-module__gn-composite-bar_quick-access___zNlSe .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_active, .CompositeBar-module__gn-composite-bar_quick-access___zNlSe .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_active.g-list__item_selected, .CompositeBar-module__gn-composite-bar_quick-access___zNlSe .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_selected{background:none}.CompositeBar-module__gn-composite-bar_inline-groups___BsraQ{--_--menu-item-gap:1px}.CompositeBar-module__gn-composite-bar_quick-access___zNlSe{--_--menu-item-gap:1px;--gn-aside-header-item-icon-color:var(
|
|
1
|
+
.CompositeBar-module__gn-composite-bar___WoCDY{--_--menu-group-tree-connector-width:16px;--_--menu-group-tree-line-width:var(--gn-aside-header-menu-group-tree-line-width,1px);--_--menu-item-gap:0px;flex:1 0 auto;min-height:var(--_--gn-aside-header-density-item-height,40px);width:100%}.CompositeBar-module__gn-composite-bar___WoCDY .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class]{background-color:transparent}.CompositeBar-module__gn-composite-bar_inline-groups___BsraQ .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class], .CompositeBar-module__gn-composite-bar_quick-access___zNlSe .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class]{background:none;box-sizing:border-box;overflow:visible;padding-block-end:var(--_--menu-item-gap);position:relative}.CompositeBar-module__gn-composite-bar_inline-groups___BsraQ .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_active, .CompositeBar-module__gn-composite-bar_inline-groups___BsraQ .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_active.g-list__item_selected, .CompositeBar-module__gn-composite-bar_inline-groups___BsraQ .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_selected, .CompositeBar-module__gn-composite-bar_quick-access___zNlSe .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_active, .CompositeBar-module__gn-composite-bar_quick-access___zNlSe .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_active.g-list__item_selected, .CompositeBar-module__gn-composite-bar_quick-access___zNlSe .CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF[class].g-list__item_selected{background:none}.CompositeBar-module__gn-composite-bar_inline-groups___BsraQ{--_--menu-item-gap:1px}.CompositeBar-module__gn-composite-bar_quick-access___zNlSe{--_--menu-item-gap:1px;--gn-aside-header-item-icon-color:var(
|
|
2
2
|
--gn-aside-header-general-item-icon-color,var(--g-color-text-primary)
|
|
3
|
-
);flex:none}.CompositeBar-module__gn-composite-bar__menu-group___3hCzS{display:flex;flex-direction:column;width:100%}.CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21[class]{box-sizing:border-box;flex:0 0 auto;min-height:var(--_--gn-aside-header-density-item-height,40px);width:100%}.CompositeBar-module__gn-composite-bar__menu-group-nested-item___9gea-[class]{position:relative}.CompositeBar-module__gn-composite-bar__menu-group-nested-item___9gea-[class] .CompositeBar-module__gn-composite-bar__menu-group-nested-connector___uiegb{inset-block:0;inset-inline-start:calc(var(--_--gn-aside-header-density-item-height, 40px)/2 - 8px);position:absolute}.CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH[class]>.g-list__item-content{overflow:visible}.CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH[class]{background-color:transparent;box-sizing:border-box;overflow:visible;padding-block-end:var(--_--menu-item-gap);position:relative}.CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH[class].g-list__item_active, .CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH[class].g-list__item_active.g-list__item_selected, .CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH[class].g-list__item_selected{background-color:transparent}.CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH:not(:last-child) .CompositeBar-module__gn-composite-bar__menu-group-nested-connector___uiegb:after{background:var(--gn-aside-header-menu-group-tree-line-color,#c1c3c7);bottom:calc(var(--_--menu-item-gap)*-1);content:"";inset-inline-start:calc(50% -
|
|
3
|
+
);flex:none}.CompositeBar-module__gn-composite-bar__menu-group___3hCzS{display:flex;flex-direction:column;width:100%}.CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21[class]{box-sizing:border-box;flex:0 0 auto;min-height:var(--_--gn-aside-header-density-item-height,40px);width:100%}.CompositeBar-module__gn-composite-bar__menu-group-nested-item___9gea-[class]{position:relative}.CompositeBar-module__gn-composite-bar__menu-group-nested-item___9gea-[class] .CompositeBar-module__gn-composite-bar__menu-group-nested-connector___uiegb{inset-block:0;inset-inline-start:calc(var(--_--gn-aside-header-density-item-height, 40px)/2 - 8px);position:absolute}.CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH[class]>.g-list__item-content{overflow:visible}.CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH[class]{background-color:transparent;box-sizing:border-box;overflow:visible;padding-block-end:var(--_--menu-item-gap);position:relative}.CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH[class].g-list__item_active, .CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH[class].g-list__item_active.g-list__item_selected, .CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH[class].g-list__item_selected{background-color:transparent}.CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH:not(:last-child) .CompositeBar-module__gn-composite-bar__menu-group-nested-connector___uiegb:after{background:var(--gn-aside-header-menu-group-tree-line-color,#c1c3c7);bottom:calc(var(--_--menu-item-gap)*-1);content:"";inset-inline-start:calc(50% - var(--_--menu-group-tree-line-width)/2);pointer-events:none;position:absolute;top:0;width:var(--_--menu-group-tree-line-width);z-index:-1}.CompositeBar-module__gn-composite-bar__menu-group-nested-connector___uiegb{box-sizing:content-box;display:flex;isolation:isolate;overflow:visible;pointer-events:none;position:relative;width:16px}.CompositeBar-module__gn-composite-bar__menu-group-nested-connector_spine-active___qVoAX:before{background:var(--gn-aside-header-menu-group-tree-line-active-color,var(--g-color-base-brand));bottom:calc(var(--_--menu-item-gap)*-1);content:"";inset-inline-start:calc(50% - var(--_--menu-group-tree-line-width)/2);pointer-events:none;position:absolute;top:0;width:var(--_--menu-group-tree-line-width);z-index:1}.CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg___FJny7{fill:none;stroke:var(--gn-aside-header-menu-group-tree-line-color,#c1c3c7);stroke-width:var(--_--menu-group-tree-line-width);display:block;flex-shrink:0;height:var(--_--gn-aside-header-density-item-height,40px);inset-block-start:calc(var(--_--menu-group-tree-connector-hook-inset-block, 50%) - var(--_--gn-aside-header-density-item-height, 40px)/2);inset-inline-start:0;max-width:16px;min-width:16px;position:absolute}.CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg_active___Gmthf{stroke:var(--gn-aside-header-menu-group-tree-line-active-color,var(--g-color-base-brand))}[dir=rtl] .CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg___FJny7{transform:scaleX(-1)}.CompositeBar-module__gn-composite-bar__menu-group-nested-row-inner___jJLTe{height:100%;min-width:0;width:100%}
|
|
@@ -80,7 +80,7 @@ const CompositeBarView = ({ type, rows, onItemClick, onMoreClick, collapseItems,
|
|
|
80
80
|
const groupHasOwnAction = Boolean(row.group.onItemClick || row.group.href);
|
|
81
81
|
const onHeaderItemClick = onItemClickByIndex(row.group.onItemClick);
|
|
82
82
|
if (!inlineGroupChildren) {
|
|
83
|
-
return (React.createElement(Item.Item, Object.assign({}, headerItem, { href: row.group.href, compact: compact, popupItemClassName: menuItemClassName, menuPopupItems: row.items, menuPopupTitle: row.group.popupTitle, menuPopupHideIcon: hideNestedIcons, className: b('menu-group-header'), onMouseLeave: onMouseLeave, onPopupItemClick: onPopupItemClick, onItemClick: onHeaderItemClick, suppressCurrentItemIds: suppressCurrentItemIds, enableQuickAccessPin: enableQuickAccessPin, onToggleQuickAccess: onToggleQuickAccess })));
|
|
83
|
+
return (React.createElement(Item.Item, Object.assign({}, headerItem, { href: row.group.href, compact: compact, popupItemClassName: menuItemClassName, menuPopupItems: row.items, menuPopupTitle: row.group.popupTitle, menuPopupHideIcon: hideNestedIcons, className: b('menu-group-header'), closeMenuPopupOnItemClick: groupHasOwnAction, onMouseLeave: onMouseLeave, onPopupItemClick: onPopupItemClick, onItemClick: onHeaderItemClick, suppressCurrentItemIds: suppressCurrentItemIds, enableQuickAccessPin: enableQuickAccessPin, onToggleQuickAccess: onToggleQuickAccess })));
|
|
84
84
|
}
|
|
85
85
|
const selectedItemIndex = row.items.findIndex((item) => presentationCurrent.isItemPresentationCurrent(item, { suppressCurrentItemIds }));
|
|
86
86
|
const normalizedSelectedItemIndex = selectedItemIndex === -1 ? undefined : selectedItemIndex;
|
|
@@ -88,7 +88,7 @@ const CompositeBarView = ({ type, rows, onItemClick, onMoreClick, collapseItems,
|
|
|
88
88
|
expanded: !groupIsCollapsed,
|
|
89
89
|
collapsed: groupIsCollapsed,
|
|
90
90
|
}), onMouseEnter: deactivateParentListItem },
|
|
91
|
-
React.createElement(Item.Item, Object.assign({}, headerItem, { href: row.group.href, compact: compact, popupItemClassName: menuItemClassName, className: b('menu-group-header'), groupHeaderExpanded: !groupIsCollapsed, menuPopupItems: groupIsCollapsed ? row.items : undefined, menuPopupTitle: groupIsCollapsed ? row.group.popupTitle : undefined, menuPopupHideIcon: hideNestedIcons, onMouseLeave: onMouseLeave, onPopupItemClick: onPopupItemClick, onGroupHeaderChevronClick: groupHasOwnAction
|
|
91
|
+
React.createElement(Item.Item, Object.assign({}, headerItem, { href: row.group.href, compact: compact, popupItemClassName: menuItemClassName, className: b('menu-group-header'), groupHeaderExpanded: !groupIsCollapsed, menuPopupItems: groupIsCollapsed ? row.items : undefined, menuPopupTitle: groupIsCollapsed ? row.group.popupTitle : undefined, menuPopupHideIcon: hideNestedIcons, closeMenuPopupOnItemClick: groupHasOwnAction, onMouseLeave: onMouseLeave, onPopupItemClick: onPopupItemClick, onGroupHeaderChevronClick: groupHasOwnAction
|
|
92
92
|
? () => onToggleGroupCollapsed(row.group.id)
|
|
93
93
|
: undefined, onItemClick: (item, isItemCollapsed, event) => {
|
|
94
94
|
if (!groupHasOwnAction) {
|
|
@@ -110,7 +110,7 @@ const CompositeBarView = ({ type, rows, onItemClick, onMoreClick, collapseItems,
|
|
|
110
110
|
active: normalizedSelectedItemIndex ===
|
|
111
111
|
groupItemIndex,
|
|
112
112
|
}), viewBox: "0 0 16 40", xmlns: "http://www.w3.org/2000/svg" },
|
|
113
|
-
React.createElement("path", { d: MENU_GROUP_NESTED_TREE_CONNECTOR_PATH, fill: "none", strokeLinecap: "butt",
|
|
113
|
+
React.createElement("path", { d: MENU_GROUP_NESTED_TREE_CONNECTOR_PATH, fill: "none", strokeLinecap: "butt", vectorEffect: "non-scaling-stroke" }))), onMouseLeave: onMouseLeave, onItemClick: onItemClickByIndex(nestedItem.onItemClick), suppressCurrentItemIds: suppressCurrentItemIds, enableQuickAccessPin: enableQuickAccessPin, quickAccessPinItem: nestedItem, onToggleQuickAccess: onToggleQuickAccess }))));
|
|
114
114
|
} }))));
|
|
115
115
|
} }));
|
|
116
116
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompositeBar.js","sources":["../../../../../../../src/components/AsideHeader/components/CompositeBar/CompositeBar.tsx"],"sourcesContent":["import React, {FC, ReactNode, useCallback, useMemo, useRef, useState} from 'react';\n\nimport {List} from '@gravity-ui/uikit';\nimport AutoSizer, {Size} from 'react-virtualized-auto-sizer';\n\nimport {MenuGroup} from '../../../types';\nimport {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {AsideHeaderItem, AsideHeaderMenuOverflow} from '../../types';\n\nimport {Item} from './Item/Item';\nimport {ItemProps, QuickAccessToggleHandler} from './Item/Item.types';\nimport {COLLAPSE_ITEM_ID} from './constants';\nimport {buildCompositeBarRows} from './grouping';\nimport type {CompositeBarRow} from './grouping';\nimport {isItemPresentationCurrent} from './presentationCurrent';\nimport {\n getAutosizeCompositeBarRows,\n getCompositeBarRowsMinHeight,\n getItemHeight,\n getItemsHeight,\n getMoreButtonItem,\n getReorderedCompositeBarRows,\n getSelectedCompositeBarRowIndex,\n makeGroupHeaderAsideItem,\n} from './utils';\n\nimport styles from './CompositeBar.module.scss';\n\nconst b = createBlock('composite-bar', styles);\n\n/** Row L-connector: vertical segment + rounded hook. viewBox matches `variables.$item-height`. */\nconst MENU_GROUP_NESTED_TREE_CONNECTOR_PATH =\n 'M8.03125 0V10.07935C8.03125 15.558375 11.5846 20 15.9678 20';\n\ntype CompositeBarProps = {\n type: 'menu' | 'subheader' | 'quick-access';\n items: AsideHeaderItem[];\n menuGroups?: MenuGroup[];\n onItemClick?: (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => void;\n menuMoreTitle?: string;\n onMoreClick?: () => void;\n compact: boolean;\n compositeId?: string;\n menuItemClassName?: string;\n /**\n * Target width of the autosized menu content, used before AutoSizer catches\n * up with a layout transition. FirstPanel passes the aside width because\n * the menu container spans it fully and horizontal spacing belongs to rows.\n * If the container gains horizontal insets, pass its available content width.\n */\n layoutWidth?: number;\n /**\n * @see AsideHeaderMenuOverflow\n */\n menuOverflow?: AsideHeaderMenuOverflow;\n collapsedMenuGroupIds?: Record<string, boolean>;\n defaultCollapsedMenuGroupIds?: Record<string, boolean>;\n onToggleMenuGroupCollapsed?: (groupId: string) => void;\n enableQuickAccessPin?: boolean;\n onToggleQuickAccess?: QuickAccessToggleHandler;\n suppressCurrentItemIds?: ReadonlySet<string>;\n menuGroupNestedIcons?: boolean;\n};\n\ntype CompositeBarViewProps = {\n type: 'menu' | 'subheader' | 'quick-access';\n compositeId?: string;\n compact: boolean;\n menuItemClassName?: string;\n rows: CompositeBarRow[];\n onItemClick?: CompositeBarProps['onItemClick'];\n onMoreClick?: () => void;\n collapseItems?: AsideHeaderItem[];\n /** Nested group list + tree connectors (expanded menu + scroll overflow only). */\n inlineGroupChildren: boolean;\n isGroupCollapsed: (groupId: string) => boolean;\n onToggleGroupCollapsed: (groupId: string) => void;\n enableQuickAccessPin?: boolean;\n onToggleQuickAccess?: QuickAccessToggleHandler;\n suppressCurrentItemIds?: ReadonlySet<string>;\n menuGroupNestedIcons?: boolean;\n};\n\nconst CompositeBarView: FC<CompositeBarViewProps> = ({\n type,\n rows,\n onItemClick,\n onMoreClick,\n collapseItems,\n compact,\n compositeId,\n menuItemClassName,\n inlineGroupChildren,\n isGroupCollapsed,\n onToggleGroupCollapsed,\n enableQuickAccessPin,\n onToggleQuickAccess,\n suppressCurrentItemIds,\n menuGroupNestedIcons = true,\n}) => {\n const ref = useRef<List<CompositeBarRow>>(null);\n const {menuDensity} = useAsideHeaderContext();\n const hideNestedIcons = !menuGroupNestedIcons;\n const itemLayout = useMemo(\n () => (compact ? {sidebarCompact: true as const} : undefined),\n [compact],\n );\n\n const onMouseLeave = useCallback(() => {\n if (compact && document.hasFocus()) {\n ref.current?.activateItem();\n }\n }, [compact]);\n\n const deactivateParentListItem = useCallback(() => {\n ref.current?.activateItem();\n }, []);\n\n const onPopupItemClick = useCallback(\n (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => {\n onItemClick?.(item, collapsed, event);\n },\n [onItemClick],\n );\n\n const onItemClickByIndex = useCallback(\n (orginalItemClick: AsideHeaderItem['onItemClick']): ItemProps['onItemClick'] =>\n (item, collapsed, event) => {\n if (item.id === COLLAPSE_ITEM_ID && collapsed) {\n onMoreClick?.();\n } else {\n onItemClick?.(\n {\n ...item,\n onItemClick: orginalItemClick,\n },\n collapsed,\n event,\n );\n }\n },\n [onItemClick, onMoreClick],\n );\n\n const itemHeight = useCallback(\n (row: CompositeBarRow) => {\n if (row.kind === 'item') {\n return getItemHeight(row.item, menuDensity, itemLayout);\n }\n const headerH = getItemHeight(\n makeGroupHeaderAsideItem(row.group),\n menuDensity,\n itemLayout,\n );\n if (!inlineGroupChildren || isGroupCollapsed(row.group.id)) {\n return headerH;\n }\n return headerH + getItemsHeight(row.items, menuDensity, itemLayout);\n },\n [inlineGroupChildren, isGroupCollapsed, itemLayout, menuDensity],\n );\n\n const nestedItemHeight = useCallback(\n (item: AsideHeaderItem) => getItemHeight(item, menuDensity, itemLayout),\n [itemLayout, menuDensity],\n );\n\n const nestedItemsHeight = useCallback(\n (listItems: AsideHeaderItem[]) => getItemsHeight(listItems, menuDensity, itemLayout),\n [itemLayout, menuDensity],\n );\n\n const itemsHeight = useCallback(\n (listRows: CompositeBarRow[]) => listRows.reduce((sum, row) => sum + itemHeight(row), 0),\n [itemHeight],\n );\n\n const selectedRootItemIndex = useMemo(() => {\n if (type !== 'menu') {\n return undefined;\n }\n\n return getSelectedCompositeBarRowIndex(rows, suppressCurrentItemIds);\n }, [rows, suppressCurrentItemIds, type]);\n\n return (\n <List<CompositeBarRow>\n id={compositeId}\n ref={ref}\n className={inlineGroupChildren ? b({'inline-groups': true}) : undefined}\n items={rows}\n selectedItemIndex={selectedRootItemIndex}\n itemHeight={itemHeight}\n itemsHeight={itemsHeight}\n itemClassName={b('root-menu-item', menuItemClassName)}\n virtualized={false}\n filterable={false}\n sortable={false}\n renderItem={(row) => {\n if (row.kind === 'item') {\n const item = row.item;\n let menuPopupItems: AsideHeaderItem[] | undefined;\n let menuPopupTitle: string | undefined;\n\n if (item.id === COLLAPSE_ITEM_ID) {\n menuPopupItems = collapseItems;\n } else {\n menuPopupItems = item.compositeBarMenuPopupItems;\n menuPopupTitle = item.compositeBarMenuPopupTitle;\n }\n\n return (\n <Item\n {...item}\n compact={compact}\n popupItemClassName={menuItemClassName}\n menuPopupItems={menuPopupItems}\n menuPopupTitle={menuPopupTitle}\n menuPopupNestedHideIcon={hideNestedIcons}\n onMouseLeave={onMouseLeave}\n onPopupItemClick={onPopupItemClick}\n onItemClick={onItemClickByIndex(item.onItemClick)}\n suppressCurrentItemIds={suppressCurrentItemIds}\n enableQuickAccessPin={enableQuickAccessPin}\n quickAccessPinItem={item}\n onToggleQuickAccess={onToggleQuickAccess}\n />\n );\n }\n\n const headerItem = makeGroupHeaderAsideItem(row.group);\n const groupIsCollapsed = isGroupCollapsed(row.group.id);\n const groupHasOwnAction = Boolean(row.group.onItemClick || row.group.href);\n const onHeaderItemClick = onItemClickByIndex(row.group.onItemClick) as NonNullable<\n ItemProps['onItemClick']\n >;\n\n if (!inlineGroupChildren) {\n return (\n <Item\n {...headerItem}\n href={row.group.href}\n compact={compact}\n popupItemClassName={menuItemClassName}\n menuPopupItems={row.items}\n menuPopupTitle={row.group.popupTitle}\n menuPopupHideIcon={hideNestedIcons}\n className={b('menu-group-header')}\n onMouseLeave={onMouseLeave}\n onPopupItemClick={onPopupItemClick}\n onItemClick={onHeaderItemClick}\n suppressCurrentItemIds={suppressCurrentItemIds}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n />\n );\n }\n\n const selectedItemIndex = row.items.findIndex((item) =>\n isItemPresentationCurrent(item, {suppressCurrentItemIds}),\n );\n const normalizedSelectedItemIndex =\n selectedItemIndex === -1 ? undefined : selectedItemIndex;\n\n return (\n <div\n data-gn-aside-group={row.group.id}\n className={b('menu-group', {\n expanded: !groupIsCollapsed,\n collapsed: groupIsCollapsed,\n })}\n onMouseEnter={deactivateParentListItem}\n >\n <Item\n {...headerItem}\n href={row.group.href}\n compact={compact}\n popupItemClassName={menuItemClassName}\n className={b('menu-group-header')}\n groupHeaderExpanded={!groupIsCollapsed}\n menuPopupItems={groupIsCollapsed ? row.items : undefined}\n menuPopupTitle={groupIsCollapsed ? row.group.popupTitle : undefined}\n menuPopupHideIcon={hideNestedIcons}\n onMouseLeave={onMouseLeave}\n onPopupItemClick={onPopupItemClick}\n onGroupHeaderChevronClick={\n groupHasOwnAction\n ? () => onToggleGroupCollapsed(row.group.id)\n : undefined\n }\n onItemClick={(item, isItemCollapsed, event) => {\n if (!groupHasOwnAction) {\n onToggleGroupCollapsed(row.group.id);\n }\n onHeaderItemClick(item, isItemCollapsed, event);\n }}\n suppressCurrentItemIds={suppressCurrentItemIds}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n />\n {!groupIsCollapsed && (\n <List<AsideHeaderItem>\n items={row.items}\n selectedItemIndex={normalizedSelectedItemIndex}\n itemHeight={nestedItemHeight}\n itemsHeight={nestedItemsHeight}\n itemClassName={b('menu-group-nested-list-item')}\n virtualized={false}\n filterable={false}\n sortable={false}\n renderItem={(nestedItem, _isActive, groupItemIndex) => {\n const spineActive =\n normalizedSelectedItemIndex !== undefined &&\n groupItemIndex < normalizedSelectedItemIndex;\n\n return (\n <div className={b('menu-group-nested-row-inner')}>\n <Item\n {...nestedItem}\n className={[\n nestedItem.className,\n b('menu-group-nested-item'),\n ]\n .filter(Boolean)\n .join(' ')}\n compact={compact}\n hideIcon={hideNestedIcons}\n menuGroupNested\n menuGroupNestedTreeConnector={\n <span\n className={b(\n 'menu-group-nested-connector',\n {'spine-active': spineActive},\n )}\n aria-hidden\n >\n <svg\n className={b(\n 'menu-group-nested-tree-svg',\n {\n active:\n normalizedSelectedItemIndex ===\n groupItemIndex,\n },\n )}\n viewBox=\"0 0 16 40\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d={\n MENU_GROUP_NESTED_TREE_CONNECTOR_PATH\n }\n fill=\"none\"\n strokeLinecap=\"butt\"\n strokeWidth=\"1.3\"\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n </span>\n }\n onMouseLeave={onMouseLeave}\n onItemClick={onItemClickByIndex(\n nestedItem.onItemClick,\n )}\n suppressCurrentItemIds={suppressCurrentItemIds}\n enableQuickAccessPin={enableQuickAccessPin}\n quickAccessPinItem={nestedItem}\n onToggleQuickAccess={onToggleQuickAccess}\n />\n </div>\n );\n }}\n />\n )}\n </div>\n );\n }}\n />\n );\n};\n\nexport const CompositeBar: FC<CompositeBarProps> = ({\n type,\n items,\n menuGroups,\n menuMoreTitle,\n onItemClick,\n onMoreClick,\n compact,\n compositeId,\n menuItemClassName,\n layoutWidth,\n menuOverflow = 'collapse',\n collapsedMenuGroupIds: collapsedMenuGroupIdsProp,\n defaultCollapsedMenuGroupIds,\n onToggleMenuGroupCollapsed,\n enableQuickAccessPin,\n onToggleQuickAccess,\n suppressCurrentItemIds,\n menuGroupNestedIcons = true,\n}) => {\n const rows = useMemo(() => buildCompositeBarRows(items, menuGroups), [items, menuGroups]);\n const {menuDensity} = useAsideHeaderContext();\n\n const isCollapsedControlled = collapsedMenuGroupIdsProp !== undefined;\n const [uncontrolledCollapsed, setUncontrolledCollapsed] = useState<Record<string, boolean>>(\n () => defaultCollapsedMenuGroupIds ?? {},\n );\n\n const collapsedMap = isCollapsedControlled ? collapsedMenuGroupIdsProp : uncontrolledCollapsed;\n\n const onToggleGroupCollapsed = useCallback(\n (groupId: string) => {\n onToggleMenuGroupCollapsed?.(groupId);\n if (!isCollapsedControlled) {\n setUncontrolledCollapsed((prev) => ({...prev, [groupId]: !prev[groupId]}));\n }\n },\n [isCollapsedControlled, onToggleMenuGroupCollapsed],\n );\n\n const isGroupCollapsed = useCallback(\n (groupId: string) => Boolean(collapsedMap[groupId]),\n [collapsedMap],\n );\n\n const inlineGroupChildren =\n !compact && menuOverflow === 'scroll' && type === 'menu' && Boolean(menuGroups?.length);\n\n const scrollableRows = useMemo(() => getReorderedCompositeBarRows(rows), [rows]);\n\n if (rows.length === 0) {\n return null;\n }\n\n let node: ReactNode;\n\n if (type === 'menu') {\n if (menuOverflow === 'scroll' && !compact) {\n const menuView = (\n <CompositeBarView\n compositeId={compositeId}\n type=\"menu\"\n compact={compact}\n rows={scrollableRows}\n onItemClick={onItemClick}\n onMoreClick={onMoreClick}\n menuItemClassName={menuItemClassName}\n inlineGroupChildren={inlineGroupChildren}\n isGroupCollapsed={isGroupCollapsed}\n onToggleGroupCollapsed={onToggleGroupCollapsed}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n suppressCurrentItemIds={suppressCurrentItemIds}\n menuGroupNestedIcons={menuGroupNestedIcons}\n />\n );\n\n node = menuView;\n } else {\n const itemLayout = compact ? {sidebarCompact: true as const} : undefined;\n const minHeight = getCompositeBarRowsMinHeight(rows, menuDensity, itemLayout);\n const collapseItem = getMoreButtonItem(menuMoreTitle, menuDensity);\n node = (\n <div className={b({autosizer: true})} style={{minHeight}}>\n {rows.length !== 0 && (\n <AutoSizer>\n {(size: Size) => {\n const width =\n layoutWidth ?? (Number.isNaN(size.width) ? 0 : size.width);\n const height = Number.isNaN(size.height) ? 0 : size.height;\n\n const {listRows, collapseItems} = getAutosizeCompositeBarRows(\n rows,\n height,\n collapseItem,\n menuDensity,\n itemLayout,\n );\n return (\n <div style={{width, height}}>\n <CompositeBarView\n compositeId={compositeId}\n type=\"menu\"\n compact={compact}\n rows={listRows}\n onItemClick={onItemClick}\n onMoreClick={onMoreClick}\n menuItemClassName={menuItemClassName}\n collapseItems={collapseItems}\n inlineGroupChildren={false}\n isGroupCollapsed={isGroupCollapsed}\n onToggleGroupCollapsed={onToggleGroupCollapsed}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n suppressCurrentItemIds={suppressCurrentItemIds}\n menuGroupNestedIcons={menuGroupNestedIcons}\n />\n </div>\n );\n }}\n </AutoSizer>\n )}\n </div>\n );\n }\n } else if (type === 'quick-access') {\n node = (\n <div className={b({'quick-access': true})}>\n <CompositeBarView\n compositeId={compositeId}\n type=\"quick-access\"\n menuItemClassName={menuItemClassName}\n compact={compact}\n rows={rows}\n onItemClick={onItemClick}\n inlineGroupChildren={false}\n isGroupCollapsed={isGroupCollapsed}\n onToggleGroupCollapsed={onToggleGroupCollapsed}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n />\n </div>\n );\n } else {\n node = (\n <div className={b({subheader: true})}>\n <CompositeBarView\n compositeId={compositeId}\n type=\"subheader\"\n menuItemClassName={menuItemClassName}\n compact={compact}\n rows={rows}\n onItemClick={onItemClick}\n inlineGroupChildren={false}\n isGroupCollapsed={isGroupCollapsed}\n onToggleGroupCollapsed={onToggleGroupCollapsed}\n menuGroupNestedIcons={menuGroupNestedIcons}\n />\n </div>\n );\n }\n return node;\n};\n"],"names":["createBlock","styles","useRef","useAsideHeaderContext","useMemo","useCallback","COLLAPSE_ITEM_ID","getItemHeight","makeGroupHeaderAsideItem","getItemsHeight","getSelectedCompositeBarRowIndex","List","Item","isItemPresentationCurrent","buildCompositeBarRows","useState","getReorderedCompositeBarRows","getCompositeBarRowsMinHeight","getMoreButtonItem","getAutosizeCompositeBarRows"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CompositeBar.js","sources":["../../../../../../../src/components/AsideHeader/components/CompositeBar/CompositeBar.tsx"],"sourcesContent":["import React, {FC, ReactNode, useCallback, useMemo, useRef, useState} from 'react';\n\nimport {List} from '@gravity-ui/uikit';\nimport AutoSizer, {Size} from 'react-virtualized-auto-sizer';\n\nimport {MenuGroup} from '../../../types';\nimport {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {AsideHeaderItem, AsideHeaderMenuOverflow} from '../../types';\n\nimport {Item} from './Item/Item';\nimport {ItemProps, QuickAccessToggleHandler} from './Item/Item.types';\nimport {COLLAPSE_ITEM_ID} from './constants';\nimport {buildCompositeBarRows} from './grouping';\nimport type {CompositeBarRow} from './grouping';\nimport {isItemPresentationCurrent} from './presentationCurrent';\nimport {\n getAutosizeCompositeBarRows,\n getCompositeBarRowsMinHeight,\n getItemHeight,\n getItemsHeight,\n getMoreButtonItem,\n getReorderedCompositeBarRows,\n getSelectedCompositeBarRowIndex,\n makeGroupHeaderAsideItem,\n} from './utils';\n\nimport styles from './CompositeBar.module.scss';\n\nconst b = createBlock('composite-bar', styles);\n\n/** Row L-connector: vertical segment + rounded hook. viewBox matches `variables.$item-height`. */\nconst MENU_GROUP_NESTED_TREE_CONNECTOR_PATH =\n 'M8.03125 0V10.07935C8.03125 15.558375 11.5846 20 15.9678 20';\n\ntype CompositeBarProps = {\n type: 'menu' | 'subheader' | 'quick-access';\n items: AsideHeaderItem[];\n menuGroups?: MenuGroup[];\n onItemClick?: (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => void;\n menuMoreTitle?: string;\n onMoreClick?: () => void;\n compact: boolean;\n compositeId?: string;\n menuItemClassName?: string;\n /**\n * Target width of the autosized menu content, used before AutoSizer catches\n * up with a layout transition. FirstPanel passes the aside width because\n * the menu container spans it fully and horizontal spacing belongs to rows.\n * If the container gains horizontal insets, pass its available content width.\n */\n layoutWidth?: number;\n /**\n * @see AsideHeaderMenuOverflow\n */\n menuOverflow?: AsideHeaderMenuOverflow;\n collapsedMenuGroupIds?: Record<string, boolean>;\n defaultCollapsedMenuGroupIds?: Record<string, boolean>;\n onToggleMenuGroupCollapsed?: (groupId: string) => void;\n enableQuickAccessPin?: boolean;\n onToggleQuickAccess?: QuickAccessToggleHandler;\n suppressCurrentItemIds?: ReadonlySet<string>;\n menuGroupNestedIcons?: boolean;\n};\n\ntype CompositeBarViewProps = {\n type: 'menu' | 'subheader' | 'quick-access';\n compositeId?: string;\n compact: boolean;\n menuItemClassName?: string;\n rows: CompositeBarRow[];\n onItemClick?: CompositeBarProps['onItemClick'];\n onMoreClick?: () => void;\n collapseItems?: AsideHeaderItem[];\n /** Nested group list + tree connectors (expanded menu + scroll overflow only). */\n inlineGroupChildren: boolean;\n isGroupCollapsed: (groupId: string) => boolean;\n onToggleGroupCollapsed: (groupId: string) => void;\n enableQuickAccessPin?: boolean;\n onToggleQuickAccess?: QuickAccessToggleHandler;\n suppressCurrentItemIds?: ReadonlySet<string>;\n menuGroupNestedIcons?: boolean;\n};\n\nconst CompositeBarView: FC<CompositeBarViewProps> = ({\n type,\n rows,\n onItemClick,\n onMoreClick,\n collapseItems,\n compact,\n compositeId,\n menuItemClassName,\n inlineGroupChildren,\n isGroupCollapsed,\n onToggleGroupCollapsed,\n enableQuickAccessPin,\n onToggleQuickAccess,\n suppressCurrentItemIds,\n menuGroupNestedIcons = true,\n}) => {\n const ref = useRef<List<CompositeBarRow>>(null);\n const {menuDensity} = useAsideHeaderContext();\n const hideNestedIcons = !menuGroupNestedIcons;\n const itemLayout = useMemo(\n () => (compact ? {sidebarCompact: true as const} : undefined),\n [compact],\n );\n\n const onMouseLeave = useCallback(() => {\n if (compact && document.hasFocus()) {\n ref.current?.activateItem();\n }\n }, [compact]);\n\n const deactivateParentListItem = useCallback(() => {\n ref.current?.activateItem();\n }, []);\n\n const onPopupItemClick = useCallback(\n (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => {\n onItemClick?.(item, collapsed, event);\n },\n [onItemClick],\n );\n\n const onItemClickByIndex = useCallback(\n (orginalItemClick: AsideHeaderItem['onItemClick']): ItemProps['onItemClick'] =>\n (item, collapsed, event) => {\n if (item.id === COLLAPSE_ITEM_ID && collapsed) {\n onMoreClick?.();\n } else {\n onItemClick?.(\n {\n ...item,\n onItemClick: orginalItemClick,\n },\n collapsed,\n event,\n );\n }\n },\n [onItemClick, onMoreClick],\n );\n\n const itemHeight = useCallback(\n (row: CompositeBarRow) => {\n if (row.kind === 'item') {\n return getItemHeight(row.item, menuDensity, itemLayout);\n }\n const headerH = getItemHeight(\n makeGroupHeaderAsideItem(row.group),\n menuDensity,\n itemLayout,\n );\n if (!inlineGroupChildren || isGroupCollapsed(row.group.id)) {\n return headerH;\n }\n return headerH + getItemsHeight(row.items, menuDensity, itemLayout);\n },\n [inlineGroupChildren, isGroupCollapsed, itemLayout, menuDensity],\n );\n\n const nestedItemHeight = useCallback(\n (item: AsideHeaderItem) => getItemHeight(item, menuDensity, itemLayout),\n [itemLayout, menuDensity],\n );\n\n const nestedItemsHeight = useCallback(\n (listItems: AsideHeaderItem[]) => getItemsHeight(listItems, menuDensity, itemLayout),\n [itemLayout, menuDensity],\n );\n\n const itemsHeight = useCallback(\n (listRows: CompositeBarRow[]) => listRows.reduce((sum, row) => sum + itemHeight(row), 0),\n [itemHeight],\n );\n\n const selectedRootItemIndex = useMemo(() => {\n if (type !== 'menu') {\n return undefined;\n }\n\n return getSelectedCompositeBarRowIndex(rows, suppressCurrentItemIds);\n }, [rows, suppressCurrentItemIds, type]);\n\n return (\n <List<CompositeBarRow>\n id={compositeId}\n ref={ref}\n className={inlineGroupChildren ? b({'inline-groups': true}) : undefined}\n items={rows}\n selectedItemIndex={selectedRootItemIndex}\n itemHeight={itemHeight}\n itemsHeight={itemsHeight}\n itemClassName={b('root-menu-item', menuItemClassName)}\n virtualized={false}\n filterable={false}\n sortable={false}\n renderItem={(row) => {\n if (row.kind === 'item') {\n const item = row.item;\n let menuPopupItems: AsideHeaderItem[] | undefined;\n let menuPopupTitle: string | undefined;\n\n if (item.id === COLLAPSE_ITEM_ID) {\n menuPopupItems = collapseItems;\n } else {\n menuPopupItems = item.compositeBarMenuPopupItems;\n menuPopupTitle = item.compositeBarMenuPopupTitle;\n }\n\n return (\n <Item\n {...item}\n compact={compact}\n popupItemClassName={menuItemClassName}\n menuPopupItems={menuPopupItems}\n menuPopupTitle={menuPopupTitle}\n menuPopupNestedHideIcon={hideNestedIcons}\n onMouseLeave={onMouseLeave}\n onPopupItemClick={onPopupItemClick}\n onItemClick={onItemClickByIndex(item.onItemClick)}\n suppressCurrentItemIds={suppressCurrentItemIds}\n enableQuickAccessPin={enableQuickAccessPin}\n quickAccessPinItem={item}\n onToggleQuickAccess={onToggleQuickAccess}\n />\n );\n }\n\n const headerItem = makeGroupHeaderAsideItem(row.group);\n const groupIsCollapsed = isGroupCollapsed(row.group.id);\n const groupHasOwnAction = Boolean(row.group.onItemClick || row.group.href);\n const onHeaderItemClick = onItemClickByIndex(row.group.onItemClick) as NonNullable<\n ItemProps['onItemClick']\n >;\n\n if (!inlineGroupChildren) {\n return (\n <Item\n {...headerItem}\n href={row.group.href}\n compact={compact}\n popupItemClassName={menuItemClassName}\n menuPopupItems={row.items}\n menuPopupTitle={row.group.popupTitle}\n menuPopupHideIcon={hideNestedIcons}\n className={b('menu-group-header')}\n closeMenuPopupOnItemClick={groupHasOwnAction}\n onMouseLeave={onMouseLeave}\n onPopupItemClick={onPopupItemClick}\n onItemClick={onHeaderItemClick}\n suppressCurrentItemIds={suppressCurrentItemIds}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n />\n );\n }\n\n const selectedItemIndex = row.items.findIndex((item) =>\n isItemPresentationCurrent(item, {suppressCurrentItemIds}),\n );\n const normalizedSelectedItemIndex =\n selectedItemIndex === -1 ? undefined : selectedItemIndex;\n\n return (\n <div\n data-gn-aside-group={row.group.id}\n className={b('menu-group', {\n expanded: !groupIsCollapsed,\n collapsed: groupIsCollapsed,\n })}\n onMouseEnter={deactivateParentListItem}\n >\n <Item\n {...headerItem}\n href={row.group.href}\n compact={compact}\n popupItemClassName={menuItemClassName}\n className={b('menu-group-header')}\n groupHeaderExpanded={!groupIsCollapsed}\n menuPopupItems={groupIsCollapsed ? row.items : undefined}\n menuPopupTitle={groupIsCollapsed ? row.group.popupTitle : undefined}\n menuPopupHideIcon={hideNestedIcons}\n closeMenuPopupOnItemClick={groupHasOwnAction}\n onMouseLeave={onMouseLeave}\n onPopupItemClick={onPopupItemClick}\n onGroupHeaderChevronClick={\n groupHasOwnAction\n ? () => onToggleGroupCollapsed(row.group.id)\n : undefined\n }\n onItemClick={(item, isItemCollapsed, event) => {\n if (!groupHasOwnAction) {\n onToggleGroupCollapsed(row.group.id);\n }\n onHeaderItemClick(item, isItemCollapsed, event);\n }}\n suppressCurrentItemIds={suppressCurrentItemIds}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n />\n {!groupIsCollapsed && (\n <List<AsideHeaderItem>\n items={row.items}\n selectedItemIndex={normalizedSelectedItemIndex}\n itemHeight={nestedItemHeight}\n itemsHeight={nestedItemsHeight}\n itemClassName={b('menu-group-nested-list-item')}\n virtualized={false}\n filterable={false}\n sortable={false}\n renderItem={(nestedItem, _isActive, groupItemIndex) => {\n const spineActive =\n normalizedSelectedItemIndex !== undefined &&\n groupItemIndex < normalizedSelectedItemIndex;\n\n return (\n <div className={b('menu-group-nested-row-inner')}>\n <Item\n {...nestedItem}\n className={[\n nestedItem.className,\n b('menu-group-nested-item'),\n ]\n .filter(Boolean)\n .join(' ')}\n compact={compact}\n hideIcon={hideNestedIcons}\n menuGroupNested\n menuGroupNestedTreeConnector={\n <span\n className={b(\n 'menu-group-nested-connector',\n {'spine-active': spineActive},\n )}\n aria-hidden\n >\n <svg\n className={b(\n 'menu-group-nested-tree-svg',\n {\n active:\n normalizedSelectedItemIndex ===\n groupItemIndex,\n },\n )}\n viewBox=\"0 0 16 40\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d={\n MENU_GROUP_NESTED_TREE_CONNECTOR_PATH\n }\n fill=\"none\"\n strokeLinecap=\"butt\"\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n </span>\n }\n onMouseLeave={onMouseLeave}\n onItemClick={onItemClickByIndex(\n nestedItem.onItemClick,\n )}\n suppressCurrentItemIds={suppressCurrentItemIds}\n enableQuickAccessPin={enableQuickAccessPin}\n quickAccessPinItem={nestedItem}\n onToggleQuickAccess={onToggleQuickAccess}\n />\n </div>\n );\n }}\n />\n )}\n </div>\n );\n }}\n />\n );\n};\n\nexport const CompositeBar: FC<CompositeBarProps> = ({\n type,\n items,\n menuGroups,\n menuMoreTitle,\n onItemClick,\n onMoreClick,\n compact,\n compositeId,\n menuItemClassName,\n layoutWidth,\n menuOverflow = 'collapse',\n collapsedMenuGroupIds: collapsedMenuGroupIdsProp,\n defaultCollapsedMenuGroupIds,\n onToggleMenuGroupCollapsed,\n enableQuickAccessPin,\n onToggleQuickAccess,\n suppressCurrentItemIds,\n menuGroupNestedIcons = true,\n}) => {\n const rows = useMemo(() => buildCompositeBarRows(items, menuGroups), [items, menuGroups]);\n const {menuDensity} = useAsideHeaderContext();\n\n const isCollapsedControlled = collapsedMenuGroupIdsProp !== undefined;\n const [uncontrolledCollapsed, setUncontrolledCollapsed] = useState<Record<string, boolean>>(\n () => defaultCollapsedMenuGroupIds ?? {},\n );\n\n const collapsedMap = isCollapsedControlled ? collapsedMenuGroupIdsProp : uncontrolledCollapsed;\n\n const onToggleGroupCollapsed = useCallback(\n (groupId: string) => {\n onToggleMenuGroupCollapsed?.(groupId);\n if (!isCollapsedControlled) {\n setUncontrolledCollapsed((prev) => ({...prev, [groupId]: !prev[groupId]}));\n }\n },\n [isCollapsedControlled, onToggleMenuGroupCollapsed],\n );\n\n const isGroupCollapsed = useCallback(\n (groupId: string) => Boolean(collapsedMap[groupId]),\n [collapsedMap],\n );\n\n const inlineGroupChildren =\n !compact && menuOverflow === 'scroll' && type === 'menu' && Boolean(menuGroups?.length);\n\n const scrollableRows = useMemo(() => getReorderedCompositeBarRows(rows), [rows]);\n\n if (rows.length === 0) {\n return null;\n }\n\n let node: ReactNode;\n\n if (type === 'menu') {\n if (menuOverflow === 'scroll' && !compact) {\n const menuView = (\n <CompositeBarView\n compositeId={compositeId}\n type=\"menu\"\n compact={compact}\n rows={scrollableRows}\n onItemClick={onItemClick}\n onMoreClick={onMoreClick}\n menuItemClassName={menuItemClassName}\n inlineGroupChildren={inlineGroupChildren}\n isGroupCollapsed={isGroupCollapsed}\n onToggleGroupCollapsed={onToggleGroupCollapsed}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n suppressCurrentItemIds={suppressCurrentItemIds}\n menuGroupNestedIcons={menuGroupNestedIcons}\n />\n );\n\n node = menuView;\n } else {\n const itemLayout = compact ? {sidebarCompact: true as const} : undefined;\n const minHeight = getCompositeBarRowsMinHeight(rows, menuDensity, itemLayout);\n const collapseItem = getMoreButtonItem(menuMoreTitle, menuDensity);\n node = (\n <div className={b({autosizer: true})} style={{minHeight}}>\n {rows.length !== 0 && (\n <AutoSizer>\n {(size: Size) => {\n const width =\n layoutWidth ?? (Number.isNaN(size.width) ? 0 : size.width);\n const height = Number.isNaN(size.height) ? 0 : size.height;\n\n const {listRows, collapseItems} = getAutosizeCompositeBarRows(\n rows,\n height,\n collapseItem,\n menuDensity,\n itemLayout,\n );\n return (\n <div style={{width, height}}>\n <CompositeBarView\n compositeId={compositeId}\n type=\"menu\"\n compact={compact}\n rows={listRows}\n onItemClick={onItemClick}\n onMoreClick={onMoreClick}\n menuItemClassName={menuItemClassName}\n collapseItems={collapseItems}\n inlineGroupChildren={false}\n isGroupCollapsed={isGroupCollapsed}\n onToggleGroupCollapsed={onToggleGroupCollapsed}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n suppressCurrentItemIds={suppressCurrentItemIds}\n menuGroupNestedIcons={menuGroupNestedIcons}\n />\n </div>\n );\n }}\n </AutoSizer>\n )}\n </div>\n );\n }\n } else if (type === 'quick-access') {\n node = (\n <div className={b({'quick-access': true})}>\n <CompositeBarView\n compositeId={compositeId}\n type=\"quick-access\"\n menuItemClassName={menuItemClassName}\n compact={compact}\n rows={rows}\n onItemClick={onItemClick}\n inlineGroupChildren={false}\n isGroupCollapsed={isGroupCollapsed}\n onToggleGroupCollapsed={onToggleGroupCollapsed}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n />\n </div>\n );\n } else {\n node = (\n <div className={b({subheader: true})}>\n <CompositeBarView\n compositeId={compositeId}\n type=\"subheader\"\n menuItemClassName={menuItemClassName}\n compact={compact}\n rows={rows}\n onItemClick={onItemClick}\n inlineGroupChildren={false}\n isGroupCollapsed={isGroupCollapsed}\n onToggleGroupCollapsed={onToggleGroupCollapsed}\n menuGroupNestedIcons={menuGroupNestedIcons}\n />\n </div>\n );\n }\n return node;\n};\n"],"names":["createBlock","styles","useRef","useAsideHeaderContext","useMemo","useCallback","COLLAPSE_ITEM_ID","getItemHeight","makeGroupHeaderAsideItem","getItemsHeight","getSelectedCompositeBarRowIndex","List","Item","isItemPresentationCurrent","buildCompositeBarRows","useState","getReorderedCompositeBarRows","getCompositeBarRowsMinHeight","getMoreButtonItem","getAutosizeCompositeBarRows"],"mappings":";;;;;;;;;;;;;;AA6BA,MAAM,CAAC,GAAGA,cAAW,CAAC,eAAe,EAAEC,2BAAM,CAAC;AAE9C;AACA,MAAM,qCAAqC,GACvC,6DAA6D;AAuDjE,MAAM,gBAAgB,GAA8B,CAAC,EACjD,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,GAAG,IAAI,GAC9B,KAAI;AACD,IAAA,MAAM,GAAG,GAAGC,YAAM,CAAwB,IAAI,CAAC;AAC/C,IAAA,MAAM,EAAC,WAAW,EAAC,GAAGC,wCAAqB,EAAE;AAC7C,IAAA,MAAM,eAAe,GAAG,CAAC,oBAAoB;IAC7C,MAAM,UAAU,GAAGC,aAAO,CACtB,OAAO,OAAO,GAAG,EAAC,cAAc,EAAE,IAAa,EAAC,GAAG,SAAS,CAAC,EAC7D,CAAC,OAAO,CAAC,CACZ;AAED,IAAA,MAAM,YAAY,GAAGC,iBAAW,CAAC,MAAK;;AAClC,QAAA,IAAI,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;AAChC,YAAA,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,SAAA,GAAA,EAAA,CAAA,YAAY,EAAE;;AAEnC,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,MAAM,wBAAwB,GAAGA,iBAAW,CAAC,MAAK;;AAC9C,QAAA,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,SAAA,GAAA,EAAA,CAAA,YAAY,EAAE;KAC9B,EAAE,EAAE,CAAC;IAEN,MAAM,gBAAgB,GAAGA,iBAAW,CAChC,CACI,IAAqB,EACrB,SAAkB,EAClB,KAAgD,KAChD;QACA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,SAAA,GAAA,SAAA,GAAX,WAAW,CAAG,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;AACzC,KAAC,EACD,CAAC,WAAW,CAAC,CAChB;AAED,IAAA,MAAM,kBAAkB,GAAGA,iBAAW,CAClC,CAAC,gBAAgD,KAC7C,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,KAAI;QACvB,IAAI,IAAI,CAAC,EAAE,KAAKC,0BAAgB,IAAI,SAAS,EAAE;AAC3C,YAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,SAAA,GAAA,SAAA,GAAA,WAAW,EAAI;;aACZ;AACH,YAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,SAAA,GAAA,SAAA,GAAA,WAAW,iCAEA,IAAI,CAAA,EAAA,EACP,WAAW,EAAE,gBAAgB,EAEjC,CAAA,EAAA,SAAS,EACT,KAAK,CACR;;AAET,KAAC,EACL,CAAC,WAAW,EAAE,WAAW,CAAC,CAC7B;AAED,IAAA,MAAM,UAAU,GAAGD,iBAAW,CAC1B,CAAC,GAAoB,KAAI;AACrB,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YACrB,OAAOE,mBAAa,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC;;AAE3D,QAAA,MAAM,OAAO,GAAGA,mBAAa,CACzBC,8BAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,EACnC,WAAW,EACX,UAAU,CACb;AACD,QAAA,IAAI,CAAC,mBAAmB,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACxD,YAAA,OAAO,OAAO;;AAElB,QAAA,OAAO,OAAO,GAAGC,oBAAc,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC;KACtE,EACD,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,CAAC,CACnE;IAED,MAAM,gBAAgB,GAAGJ,iBAAW,CAChC,CAAC,IAAqB,KAAKE,mBAAa,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,EACvE,CAAC,UAAU,EAAE,WAAW,CAAC,CAC5B;IAED,MAAM,iBAAiB,GAAGF,iBAAW,CACjC,CAAC,SAA4B,KAAKI,oBAAc,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,EACpF,CAAC,UAAU,EAAE,WAAW,CAAC,CAC5B;AAED,IAAA,MAAM,WAAW,GAAGJ,iBAAW,CAC3B,CAAC,QAA2B,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EACxF,CAAC,UAAU,CAAC,CACf;AAED,IAAA,MAAM,qBAAqB,GAAGD,aAAO,CAAC,MAAK;AACvC,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACjB,YAAA,OAAO,SAAS;;AAGpB,QAAA,OAAOM,qCAA+B,CAAC,IAAI,EAAE,sBAAsB,CAAC;KACvE,EAAE,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAExC,IAAA,QACI,KAAA,CAAA,aAAA,CAACC,UAAI,EAAA,EACD,EAAE,EAAE,WAAW,EACf,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,mBAAmB,GAAG,CAAC,CAAC,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC,GAAG,SAAS,EACvE,KAAK,EAAE,IAAI,EACX,iBAAiB,EAAE,qBAAqB,EACxC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,CAAC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EACrD,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,KAAK,EACf,UAAU,EAAE,CAAC,GAAG,KAAI;AAChB,YAAA,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;AACrB,gBAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI;AACrB,gBAAA,IAAI,cAA6C;AACjD,gBAAA,IAAI,cAAkC;AAEtC,gBAAA,IAAI,IAAI,CAAC,EAAE,KAAKL,0BAAgB,EAAE;oBAC9B,cAAc,GAAG,aAAa;;qBAC3B;AACH,oBAAA,cAAc,GAAG,IAAI,CAAC,0BAA0B;AAChD,oBAAA,cAAc,GAAG,IAAI,CAAC,0BAA0B;;AAGpD,gBAAA,QACI,KAAA,CAAA,aAAA,CAACM,SAAI,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACG,IAAI,EAAA,EACR,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,iBAAiB,EACrC,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,uBAAuB,EAAE,eAAe,EACxC,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EACjD,sBAAsB,EAAE,sBAAsB,EAC9C,oBAAoB,EAAE,oBAAoB,EAC1C,kBAAkB,EAAE,IAAI,EACxB,mBAAmB,EAAE,mBAAmB,EAC1C,CAAA,CAAA;;YAIV,MAAM,UAAU,GAAGJ,8BAAwB,CAAC,GAAG,CAAC,KAAK,CAAC;YACtD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AACvD,YAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1E,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAEjE;YAED,IAAI,CAAC,mBAAmB,EAAE;AACtB,gBAAA,QACI,KAAC,CAAA,aAAA,CAAAI,SAAI,EACG,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,UAAU,IACd,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EACpB,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,iBAAiB,EACrC,cAAc,EAAE,GAAG,CAAC,KAAK,EACzB,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,EACpC,iBAAiB,EAAE,eAAe,EAClC,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC,EACjC,yBAAyB,EAAE,iBAAiB,EAC5C,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,iBAAiB,EAC9B,sBAAsB,EAAE,sBAAsB,EAC9C,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,mBAAmB,EAAA,CAAA,CAC1C;;YAIV,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAC/CC,6CAAyB,CAAC,IAAI,EAAE,EAAC,sBAAsB,EAAC,CAAC,CAC5D;AACD,YAAA,MAAM,2BAA2B,GAC7B,iBAAiB,KAAK,EAAE,GAAG,SAAS,GAAG,iBAAiB;AAE5D,YAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,qBAAA,EACyB,GAAG,CAAC,KAAK,CAAC,EAAE,EACjC,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE;oBACvB,QAAQ,EAAE,CAAC,gBAAgB;AAC3B,oBAAA,SAAS,EAAE,gBAAgB;iBAC9B,CAAC,EACF,YAAY,EAAE,wBAAwB,EAAA;AAEtC,gBAAA,KAAA,CAAA,aAAA,CAACD,SAAI,EACG,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,UAAU,EACd,EAAA,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EACpB,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,iBAAiB,EACrC,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC,EACjC,mBAAmB,EAAE,CAAC,gBAAgB,EACtC,cAAc,EAAE,gBAAgB,GAAG,GAAG,CAAC,KAAK,GAAG,SAAS,EACxD,cAAc,EAAE,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,EACnE,iBAAiB,EAAE,eAAe,EAClC,yBAAyB,EAAE,iBAAiB,EAC5C,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,yBAAyB,EACrB;0BACM,MAAM,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC3C,0BAAE,SAAS,EAEnB,WAAW,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,KAAI;wBAC1C,IAAI,CAAC,iBAAiB,EAAE;AACpB,4BAAA,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;;AAExC,wBAAA,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC;AACnD,qBAAC,EACD,sBAAsB,EAAE,sBAAsB,EAC9C,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,mBAAmB,EAC1C,CAAA,CAAA;gBACD,CAAC,gBAAgB,KACd,KAAC,CAAA,aAAA,CAAAD,UAAI,IACD,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,iBAAiB,EAAE,2BAA2B,EAC9C,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAC/C,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,KAAK,EACf,UAAU,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,KAAI;AAClD,wBAAA,MAAM,WAAW,GACb,2BAA2B,KAAK,SAAS;4BACzC,cAAc,GAAG,2BAA2B;AAEhD,wBAAA,QACI,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAAA;AAC5C,4BAAA,KAAA,CAAA,aAAA,CAACC,SAAI,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACG,UAAU,EAAA,EACd,SAAS,EAAE;AACP,oCAAA,UAAU,CAAC,SAAS;oCACpB,CAAC,CAAC,wBAAwB,CAAC;AAC9B;qCACI,MAAM,CAAC,OAAO;AACd,qCAAA,IAAI,CAAC,GAAG,CAAC,EACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAA,IAAA,EACf,4BAA4B,EACxB,KACI,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CACR,6BAA6B,EAC7B,EAAC,cAAc,EAAE,WAAW,EAAC,CAChC,EAAA,aAAA,EAAA,IAAA,EAAA;AAGD,oCAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,CAAC,CACR,4BAA4B,EAC5B;AACI,4CAAA,MAAM,EACF,2BAA2B;gDAC3B,cAAc;AACrB,yCAAA,CACJ,EACD,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,EAAA;wCAElC,KACI,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,CAAC,EACG,qCAAqC,EAEzC,IAAI,EAAC,MAAM,EACX,aAAa,EAAC,MAAM,EACpB,YAAY,EAAC,oBAAoB,EAAA,CACnC,CACA,CACH,EAEX,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,kBAAkB,CAC3B,UAAU,CAAC,WAAW,CACzB,EACD,sBAAsB,EAAE,sBAAsB,EAC9C,oBAAoB,EAAE,oBAAoB,EAC1C,kBAAkB,EAAE,UAAU,EAC9B,mBAAmB,EAAE,mBAAmB,EAAA,CAAA,CAC1C,CACA;AAEd,qBAAC,EACH,CAAA,CACL,CACC;SAEb,EAAA,CACH;AAEV,CAAC;MAEY,YAAY,GAA0B,CAAC,EAChD,IAAI,EACJ,KAAK,EACL,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,YAAY,GAAG,UAAU,EACzB,qBAAqB,EAAE,yBAAyB,EAChD,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,GAAG,IAAI,GAC9B,KAAI;IACD,MAAM,IAAI,GAAGR,aAAO,CAAC,MAAMU,8BAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACzF,IAAA,MAAM,EAAC,WAAW,EAAC,GAAGX,wCAAqB,EAAE;AAE7C,IAAA,MAAM,qBAAqB,GAAG,yBAAyB,KAAK,SAAS;AACrE,IAAA,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAGY,cAAQ,CAC9D,MAAM,4BAA4B,aAA5B,4BAA4B,KAAA,SAAA,GAA5B,4BAA4B,GAAI,EAAE,CAC3C;IAED,MAAM,YAAY,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,qBAAqB;AAE9F,IAAA,MAAM,sBAAsB,GAAGV,iBAAW,CACtC,CAAC,OAAe,KAAI;AAChB,QAAA,0BAA0B,aAA1B,0BAA0B,KAAA,SAAA,GAAA,SAAA,GAA1B,0BAA0B,CAAG,OAAO,CAAC;QACrC,IAAI,CAAC,qBAAqB,EAAE;YACxB,wBAAwB,CAAC,CAAC,IAAI,MAAK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,IAAI,CAAE,EAAA,EAAA,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAA,CAAA,CAAE,CAAC;;AAElF,KAAC,EACD,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,CACtD;IAED,MAAM,gBAAgB,GAAGA,iBAAW,CAChC,CAAC,OAAe,KAAK,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EACnD,CAAC,YAAY,CAAC,CACjB;IAED,MAAM,mBAAmB,GACrB,CAAC,OAAO,IAAI,YAAY,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,UAAU,KAAV,IAAA,IAAA,UAAU,6BAAV,UAAU,CAAE,MAAM,CAAC;AAE3F,IAAA,MAAM,cAAc,GAAGD,aAAO,CAAC,MAAMY,kCAA4B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEhF,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnB,QAAA,OAAO,IAAI;;AAGf,IAAA,IAAI,IAAe;AAEnB,IAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACjB,QAAA,IAAI,YAAY,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE;AACvC,YAAA,MAAM,QAAQ,IACV,KAAA,CAAA,aAAA,CAAC,gBAAgB,EAAA,EACb,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,EAAE,sBAAsB,EAC9C,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,oBAAoB,EAAE,oBAAoB,EAAA,CAC5C,CACL;YAED,IAAI,GAAG,QAAQ;;aACZ;AACH,YAAA,MAAM,UAAU,GAAG,OAAO,GAAG,EAAC,cAAc,EAAE,IAAa,EAAC,GAAG,SAAS;YACxE,MAAM,SAAS,GAAGC,kCAA4B,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC;YAC7E,MAAM,YAAY,GAAGC,uBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC;AAClE,YAAA,IAAI,IACA,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,EAAE,KAAK,EAAE,EAAC,SAAS,EAAC,EAAA,EACnD,IAAI,CAAC,MAAM,KAAK,CAAC,KACd,oBAAC,SAAS,EAAA,IAAA,EACL,CAAC,IAAU,KAAI;AACZ,gBAAA,MAAM,KAAK,GACP,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,SAAA,GAAX,WAAW,IAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;AAE1D,gBAAA,MAAM,EAAC,QAAQ,EAAE,aAAa,EAAC,GAAGC,iCAA2B,CACzD,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,WAAW,EACX,UAAU,CACb;gBACD,QACI,6BAAK,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,EAAA;AACvB,oBAAA,KAAA,CAAA,aAAA,CAAC,gBAAgB,EAAA,EACb,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,KAAK,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,EAAE,sBAAsB,EAC9C,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,oBAAoB,EAAE,oBAAoB,EAC5C,CAAA,CACA;AAEd,aAAC,CACO,CACf,CACC,CACT;;;AAEF,SAAA,IAAI,IAAI,KAAK,cAAc,EAAE;AAChC,QAAA,IAAI,IACA,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,EAAC,cAAc,EAAE,IAAI,EAAC,CAAC,EAAA;YACrC,KAAC,CAAA,aAAA,CAAA,gBAAgB,IACb,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,cAAc,EACnB,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,KAAK,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,EAAE,sBAAsB,EAC9C,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,mBAAmB,EAAA,CAC1C,CACA,CACT;;SACE;AACH,QAAA,IAAI,IACA,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,EAAA;YAChC,KAAC,CAAA,aAAA,CAAA,gBAAgB,IACb,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,KAAK,EAC1B,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,EAAE,sBAAsB,EAC9C,oBAAoB,EAAE,oBAAoB,EAC5C,CAAA,CACA,CACT;;AAEL,IAAA,OAAO,IAAI;AACf;;;;"}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover)
|
|
23
23
|
);border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item__group-header-row___m-4WB{--_--item-expanded-radius:var(
|
|
24
24
|
--_--gn-aside-header-density-item-expanded-radius,8px
|
|
25
|
-
);--_--item-background-color-hover:var(--g-color-base-simple-hover);--_--item-selected-background-color:var(--g-color-base-selection);--_--item-chevron-padding-right:var(--g-spacing-1);display:flex;height:100%;width:100%}.Item-module__gn-composite-bar-item__group-header-row___m-4WB:hover{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item__group-header-row_current___YYm8y{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color));border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item__group-header-row_current___YYm8y:hover{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)))}.Item-module__gn-composite-bar-
|
|
25
|
+
);--_--item-background-color-hover:var(--g-color-base-simple-hover);--_--item-selected-background-color:var(--g-color-base-selection);--_--item-chevron-padding-right:var(--g-spacing-1);display:flex;height:100%;width:100%}.Item-module__gn-composite-bar-item__group-header-row___m-4WB:hover{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item__group-header-row_current___YYm8y{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color));border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item__group-header-row_current___YYm8y:hover{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)))}.Item-module__gn-composite-bar-item_with-chevron-control___5F9O3{align-self:stretch;flex:1 1 auto;height:auto;min-width:0;width:auto}.Item-module__gn-composite-bar-item__group-header-row___m-4WB>.Item-module__gn-composite-bar-item___-pkx5.Item-module__gn-composite-bar-item_with-chevron-control___5F9O3:not(.Item-module__gn-composite-bar-item_compact___PVTeM).Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:transparent}.Item-module__gn-composite-bar-item__chevron___ZZ-vf{align-items:center;align-self:stretch;display:flex;flex-shrink:0;margin-left:auto;padding-left:var(--g-spacing-2);padding-right:var(--gn-aside-header-item-chevron-padding-right,var(--_--item-chevron-padding-right))}.Item-module__gn-composite-bar-item__chevron_interactive___jmUhC{background:transparent;border:none;color:var(--g-color-text-secondary);cursor:pointer;padding-bottom:0;padding-top:0}.Item-module__gn-composite-bar-item__chevron_interactive___jmUhC:hover{color:var(--g-color-text-primary)}.Item-module__gn-composite-bar-item__chevron_interactive___jmUhC:focus-visible{box-shadow:inset 0 0 0 2px var(--g-color-line-misc);outline:none}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8{margin-inline:auto;width:var(--gn-composite-bar-item-action-size)}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__surface___iqsAp{border-radius:inherit;height:auto;inset:0;width:auto}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__title___wj5L5{margin:0}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:var(
|
|
26
26
|
--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)
|
|
27
27
|
)}.Item-module__gn-composite-bar-item_compact___PVTeM:hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:var(
|
|
28
28
|
--gn-aside-header-item-current-background-color-hover,var(
|
|
@@ -62,7 +62,7 @@ function resolveAnchorRef(anchorRef, fallback) {
|
|
|
62
62
|
return (anchorRef === null || anchorRef === undefined ? undefined : anchorRef.current) ? anchorRef : fallback;
|
|
63
63
|
}
|
|
64
64
|
const Item = (props) => {
|
|
65
|
-
const { className, popupItemClassName, menuPopupItems, menuPopupTitle, groupHeaderExpanded, compact, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupRef: anchoreRefProp, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onOpenChangePopup, onItemClick, onPopupItemClick, onItemClickCapture, itemWrapper, bringForward, rightAdornment, title, href, qa, hideIcon = false, menuPopupHideIcon, menuPopupNestedHideIcon, stopClickPropagation = false, menuGroupNestedTreeConnector, menuGroupNested, menuItemAriaProps, menuPopupRow, suppressCurrentHighlight = false, suppressCurrentItemIds, enableQuickAccessPin, quickAccessPinItem: quickAccessPinItemProp, onToggleQuickAccess, onGroupHeaderChevronClick, } = props;
|
|
65
|
+
const { className, popupItemClassName, menuPopupItems, menuPopupTitle, groupHeaderExpanded, compact, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupRef: anchoreRefProp, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onOpenChangePopup, onItemClick, onPopupItemClick, onItemClickCapture, itemWrapper, bringForward, rightAdornment, title, href, qa, hideIcon = false, menuPopupHideIcon, menuPopupNestedHideIcon, stopClickPropagation = false, menuGroupNestedTreeConnector, menuGroupNested, menuItemAriaProps, menuPopupRow, suppressCurrentHighlight = false, suppressCurrentItemIds, enableQuickAccessPin, quickAccessPinItem: quickAccessPinItemProp, onToggleQuickAccess, onGroupHeaderChevronClick, closeMenuPopupOnItemClick = false, } = props;
|
|
66
66
|
const [labelPopupOpen, setLabelPopupOpen] = React.useState(false);
|
|
67
67
|
const [menuPopupOpen, setMenuPopupOpen] = React.useState(false);
|
|
68
68
|
const ref = React.useRef(null);
|
|
@@ -214,6 +214,9 @@ const Item = (props) => {
|
|
|
214
214
|
if (compact && !collapsedItem && !showMenuPopup && !current) {
|
|
215
215
|
setLabelPopupOpen(false);
|
|
216
216
|
}
|
|
217
|
+
if (closeMenuPopupOnItemClick) {
|
|
218
|
+
setMenuPopupOpen(false);
|
|
219
|
+
}
|
|
217
220
|
if (event.detail > 0) {
|
|
218
221
|
const activeElement = event.currentTarget.ownerDocument.activeElement;
|
|
219
222
|
if (activeElement instanceof HTMLElement &&
|