@gravity-ui/navigation 6.0.0-beta.1 → 6.0.0-beta.2
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 +1 -1
- package/build/cjs/components/AsideHeader/AsideHeader.module.scss.js +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +52 -16
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.d.ts +20 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.js +56 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/allPagesSortable.d.ts +7 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/allPagesSortable.js +26 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/allPagesSortable.js.map +1 -0
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.d.ts +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.js +3 -3
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.d.ts +10 -1
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +28 -6
- package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +4 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +89 -30
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +14 -15
- 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 +8 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopupNestContext.d.ts +2 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopupNestContext.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.d.ts +2 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js +2 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/constants.d.ts +2 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/constants.js +3 -0
- package/build/cjs/components/AsideHeader/components/CompositeBar/constants.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/grouping.d.ts +27 -8
- package/build/cjs/components/AsideHeader/components/CompositeBar/grouping.js +53 -24
- package/build/cjs/components/AsideHeader/components/CompositeBar/grouping.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +11 -10
- package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js +114 -48
- package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/FirstPanel.js +4 -3
- package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +1 -1
- package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +1 -1
- package/build/cjs/components/AsideHeader/types.d.ts +26 -0
- package/build/cjs/components/AsideHeader/types.js +4 -0
- package/build/cjs/components/AsideHeader/types.js.map +1 -1
- package/build/esm/components/AsideHeader/AsideHeader.css +1 -1
- package/build/esm/components/AsideHeader/AsideHeader.module.scss.js +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +50 -14
- package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.d.ts +20 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.js +50 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.js.map +1 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/allPagesSortable.d.ts +7 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/allPagesSortable.js +23 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/allPagesSortable.js.map +1 -0
- package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.d.ts +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.js +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.js.map +1 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.d.ts +10 -1
- package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +28 -6
- package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +4 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +92 -33
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +15 -16
- 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 +8 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopupNestContext.d.ts +2 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopupNestContext.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.d.ts +2 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js +2 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/constants.d.ts +2 -0
- package/build/esm/components/AsideHeader/components/CompositeBar/constants.js +3 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/constants.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/grouping.d.ts +27 -8
- package/build/esm/components/AsideHeader/components/CompositeBar/grouping.js +52 -23
- package/build/esm/components/AsideHeader/components/CompositeBar/grouping.js.map +1 -1
- package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +11 -10
- package/build/esm/components/AsideHeader/components/CompositeBar/utils.js +105 -41
- package/build/esm/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
- package/build/esm/components/AsideHeader/components/FirstPanel.js +4 -3
- package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +1 -1
- package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +1 -1
- package/build/esm/components/AsideHeader/types.d.ts +26 -0
- package/build/esm/components/AsideHeader/types.js +3 -1
- package/build/esm/components/AsideHeader/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
.AsideHeader-module__g-root___EuNRw{--gn-aside-top-panel-height:0px}
|
|
2
|
-
.AsideHeader-module__gn-aside-header___Z0Sa7{--gn-aside-header-min-width:56px;--_--item-margin-inline:8px;--gn-aside-header-item-expanded-radius:8px;--_--item-icon-background-size:38px;--_--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);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.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));position:sticky;top:var(--gn-top-alert-height,0);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%;position:absolute;right:0;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;overflow-x:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:inherit;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;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__header___m5aIU{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{bottom:0;color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;z-index:-2}.AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));content:"";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.AsideHeader-module__gn-aside-header__header___m5aIU:after{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_compact___z-nL- .AsideHeader-module__gn-aside-header__header___m5aIU:before, .AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:block}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:after{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__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,8px)}.AsideHeader-module__gn-aside-header__footer___vmoTl{display:flex;flex-direction:column;flex-shrink:0;margin:var(--g-spacing-2) var(--_--item-margin-inline)}.AsideHeader-module__gn-aside-header__panels___-fdu4{z-index:var(--gn-aside-header-panel-z-index,98)}.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);width:calc(100% - var(--gn-aside-header-size));z-index:var(--gn-aside-header-content-z-index,95)}.AsideHeader-module__gn-aside-header__all-pages-panel___O94IU{width:fit-content!important}
|
|
2
|
+
.AsideHeader-module__gn-aside-header___Z0Sa7{--gn-aside-header-min-width:56px;--_--item-margin-inline:8px;--gn-aside-header-item-expanded-radius:8px;--_--item-icon-background-size:38px;--_--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);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.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));position:sticky;top:var(--gn-top-alert-height,0);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%;position:absolute;right:0;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;overflow-x:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:inherit;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_menu-overflow-scroll___l-td6 .AsideHeader-module__gn-aside-header__aside-content___w5GOS{min-height:0;overflow:hidden}.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;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__header___m5aIU{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{bottom:0;color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;z-index:-2}.AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));content:"";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.AsideHeader-module__gn-aside-header__header___m5aIU:after{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_compact___z-nL- .AsideHeader-module__gn-aside-header__header___m5aIU:before, .AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:block}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:after{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__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,8px)}.AsideHeader-module__gn-aside-header__footer___vmoTl{display:flex;flex-direction:column;flex-shrink:0;margin:var(--g-spacing-2) var(--_--item-margin-inline)}.AsideHeader-module__gn-aside-header__panels___-fdu4{z-index:var(--gn-aside-header-panel-z-index,98)}.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);width:calc(100% - var(--gn-aside-header-size));z-index:var(--gn-aside-header-content-z-index,95)}.AsideHeader-module__gn-aside-header__all-pages-panel___O94IU{width:fit-content!important}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
.AsideHeader-module__g-root___EuNRw{--gn-aside-top-panel-height:0px}
|
|
2
|
-
.AsideHeader-module__gn-aside-header___Z0Sa7{--gn-aside-header-min-width:56px;--_--item-margin-inline:8px;--gn-aside-header-item-expanded-radius:8px;--_--item-icon-background-size:38px;--_--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);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.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));position:sticky;top:var(--gn-top-alert-height,0);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%;position:absolute;right:0;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;overflow-x:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:inherit;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;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__header___m5aIU{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{bottom:0;color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;z-index:-2}.AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));content:"";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.AsideHeader-module__gn-aside-header__header___m5aIU:after{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_compact___z-nL- .AsideHeader-module__gn-aside-header__header___m5aIU:before, .AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:block}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:after{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__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,8px)}.AsideHeader-module__gn-aside-header__footer___vmoTl{display:flex;flex-direction:column;flex-shrink:0;margin:var(--g-spacing-2) var(--_--item-margin-inline)}.AsideHeader-module__gn-aside-header__panels___-fdu4{z-index:var(--gn-aside-header-panel-z-index,98)}.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);width:calc(100% - var(--gn-aside-header-size));z-index:var(--gn-aside-header-content-z-index,95)}.AsideHeader-module__gn-aside-header__all-pages-panel___O94IU{width:fit-content!important}
|
|
2
|
+
.AsideHeader-module__gn-aside-header___Z0Sa7{--gn-aside-header-min-width:56px;--_--item-margin-inline:8px;--gn-aside-header-item-expanded-radius:8px;--_--item-icon-background-size:38px;--_--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);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.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));position:sticky;top:var(--gn-top-alert-height,0);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%;position:absolute;right:0;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;overflow-x:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:inherit;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_menu-overflow-scroll___l-td6 .AsideHeader-module__gn-aside-header__aside-content___w5GOS{min-height:0;overflow:hidden}.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;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__header___m5aIU{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{bottom:0;color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;z-index:-2}.AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));content:"";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.AsideHeader-module__gn-aside-header__header___m5aIU:after{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_compact___z-nL- .AsideHeader-module__gn-aside-header__header___m5aIU:before, .AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:block}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:after{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__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,8px)}.AsideHeader-module__gn-aside-header__footer___vmoTl{display:flex;flex-direction:column;flex-shrink:0;margin:var(--g-spacing-2) var(--_--item-margin-inline)}.AsideHeader-module__gn-aside-header__panels___-fdu4{z-index:var(--gn-aside-header-panel-z-index,98)}.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);width:calc(100% - var(--gn-aside-header-size));z-index:var(--gn-aside-header-content-z-index,95)}.AsideHeader-module__gn-aside-header__all-pages-panel___O94IU{width:fit-content!important}
|
|
@@ -17,6 +17,11 @@ interface EditMenuProps {
|
|
|
17
17
|
onResetSettingsToDefault?: () => void;
|
|
18
18
|
enableSorting?: boolean;
|
|
19
19
|
onChangeItemsOrder?: (changedItem: AsideHeaderItem, oldIndex: number, newIndex: number) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Fired when visibility of a menu group is toggled from the All pages panel (pin on group header).
|
|
22
|
+
* Use with `onMenuGroupsChanged` / controlled `menuGroups`.
|
|
23
|
+
*/
|
|
24
|
+
onToggleMenuGroup?: (changedGroup: MenuGroup) => void;
|
|
20
25
|
}
|
|
21
26
|
/**
|
|
22
27
|
* Menu overflow behavior.
|
|
@@ -64,9 +69,28 @@ interface AsideHeaderDefaultProps {
|
|
|
64
69
|
subheaderItems?: AsideHeaderItem[];
|
|
65
70
|
menuItems?: AsideHeaderItem[];
|
|
66
71
|
menuGroups?: MenuGroup[];
|
|
72
|
+
/**
|
|
73
|
+
* Called only from **All pages** edit mode when the user toggles visibility of a **menu group** (group header pin), updating `menuGroup.hidden`.
|
|
74
|
+
* Use with controlled `menuGroups`; not emitted for programmatic `menuGroups` changes outside All pages.
|
|
75
|
+
*/
|
|
76
|
+
onMenuGroupsChanged?: (menuGroups: MenuGroup[]) => void;
|
|
67
77
|
defaultMenuItems?: AsideHeaderItem[];
|
|
68
78
|
onMenuItemsChanged?: (items: AsideHeaderItem[]) => void;
|
|
69
79
|
headerDecoration?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* When provided, the map is the source of truth for which menu groups are collapsed
|
|
82
|
+
* in inline (`menuOverflow: 'scroll'`) layout. Keys are `MenuGroup.id`, values mean collapsed.
|
|
83
|
+
*/
|
|
84
|
+
collapsedMenuGroupIds?: Record<string, boolean>;
|
|
85
|
+
/**
|
|
86
|
+
* Initial collapsed state for groups when `collapsedMenuGroupIds` is not controlled.
|
|
87
|
+
*/
|
|
88
|
+
defaultCollapsedMenuGroupIds?: Record<string, boolean>;
|
|
89
|
+
/**
|
|
90
|
+
* Called when the user toggles a group in inline layout. The parent should update
|
|
91
|
+
* `collapsedMenuGroupIds` when using controlled mode.
|
|
92
|
+
*/
|
|
93
|
+
onToggleMenuGroupCollapsed?: (groupId: string) => void;
|
|
70
94
|
}
|
|
71
95
|
export type AsideHeaderInnerProps = AsideHeaderGeneralProps & AsideHeaderDefaultProps & AsideHeaderContextType;
|
|
72
96
|
export interface AsideHeaderProps extends AsideHeaderGeneralProps, LayoutProps, Partial<AsideHeaderDefaultProps> {
|
|
@@ -74,6 +98,8 @@ export interface AsideHeaderProps extends AsideHeaderGeneralProps, LayoutProps,
|
|
|
74
98
|
export declare enum InnerPanels {
|
|
75
99
|
AllPages = "all-pages"
|
|
76
100
|
}
|
|
101
|
+
/** Menu item id for the All pages row (same value as {@link InnerPanels.AllPages}). */
|
|
102
|
+
export declare const ALL_PAGES_ID = InnerPanels.AllPages;
|
|
77
103
|
export interface AsideHeaderItem extends MenuItem {
|
|
78
104
|
enableTooltip?: boolean;
|
|
79
105
|
onItemClick?: (item: AsideHeaderItem, collapsed: boolean, event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
@@ -4,4 +4,8 @@ exports.InnerPanels = void 0;
|
|
|
4
4
|
(function (InnerPanels) {
|
|
5
5
|
InnerPanels["AllPages"] = "all-pages";
|
|
6
6
|
})(exports.InnerPanels || (exports.InnerPanels = {}));
|
|
7
|
+
/** Menu item id for the All pages row (same value as {@link InnerPanels.AllPages}). */
|
|
8
|
+
const ALL_PAGES_ID = exports.InnerPanels.AllPages;
|
|
9
|
+
|
|
10
|
+
exports.ALL_PAGES_ID = ALL_PAGES_ID;
|
|
7
11
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../src/components/AsideHeader/types.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {DrawerProps, PopupProps, QAProps} from '@gravity-ui/uikit';\n\nimport {RenderContentType} from '../Content';\nimport {LogoProps, MenuGroup, MenuItem, OpenModalSubscriber, TopAlertProps} from '../types';\n\nimport {AsideHeaderContextType} from './AsideHeaderContext';\n\nexport interface PanelItemProps extends DrawerProps {\n id: string;\n}\n\nexport interface LayoutProps {\n compact: boolean;\n className?: string;\n topAlert?: TopAlertProps;\n}\n\ninterface EditMenuProps {\n onOpenEditMode?: () => void;\n onToggleMenuItem?: (changedItem: AsideHeaderItem) => void;\n onResetSettingsToDefault?: () => void;\n enableSorting?: boolean;\n onChangeItemsOrder?: (changedItem: AsideHeaderItem, oldIndex: number, newIndex: number) => void;\n}\n\n/**\n * Menu overflow behavior.\n * - `collapse` — extra items collapse under a \"More\" popup (default).\n * - `scroll` — all items remain visible inside a scrollable container with a native thin scrollbar.\n *\n * In compact mode the menu always falls back to `collapse` regardless of this value\n * because a scrollbar over icon-only items is awkward.\n */\nexport type AsideHeaderMenuOverflow = 'collapse' | 'scroll';\n\ninterface AsideHeaderGeneralProps extends QAProps {\n logo?: LogoProps;\n className?: string;\n collapseTitle?: string;\n expandTitle?: string;\n menuMoreTitle?: string;\n /**\n * @see AsideHeaderMenuOverflow\n * @default 'collapse'\n */\n menuOverflow?: AsideHeaderMenuOverflow;\n topAlert?: TopAlertProps;\n customBackground?: React.ReactNode;\n customBackgroundClassName?: string;\n hideCollapseButton?: boolean;\n renderContent?: RenderContentType;\n renderFooter?: (data: {\n size: number;\n compact: boolean;\n asideRef: React.RefObject<HTMLDivElement>;\n }) => React.ReactNode;\n collapseButtonWrapper?: (\n defaultButton: React.ReactNode,\n data: {\n compact: boolean;\n onChangeCompact?: (compact: boolean) => void;\n },\n ) => React.ReactNode;\n editMenuProps?: EditMenuProps;\n onClosePanel?: () => void;\n onChangeCompact?: (compact: boolean) => void;\n onMenuMoreClick?: () => void;\n onAllPagesClick?: () => void;\n openModalSubscriber?: (subscriber: OpenModalSubscriber) => void;\n}\n\ninterface AsideHeaderDefaultProps {\n panelItems?: PanelItemProps[];\n subheaderItems?: AsideHeaderItem[];\n menuItems?: AsideHeaderItem[];\n menuGroups?: MenuGroup[];\n defaultMenuItems?: AsideHeaderItem[];\n onMenuItemsChanged?: (items: AsideHeaderItem[]) => void;\n headerDecoration?: boolean;\n}\n\nexport type AsideHeaderInnerProps = AsideHeaderGeneralProps &\n AsideHeaderDefaultProps &\n AsideHeaderContextType;\n\nexport interface AsideHeaderProps\n extends AsideHeaderGeneralProps,\n LayoutProps,\n Partial<AsideHeaderDefaultProps> {}\n\nexport enum InnerPanels {\n AllPages = 'all-pages',\n}\n\nexport interface AsideHeaderItem extends MenuItem {\n enableTooltip?: boolean;\n onItemClick?: (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => void;\n bringForward?: boolean;\n compact?: boolean;\n\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupVisible?: PopupProps['open'];\n /**\n * Floating element anchor ref object\n *\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupRef?: React.RefObject<HTMLElement>;\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupPlacement?: PopupProps['placement'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupOffset?: PopupProps['offset'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupKeepMounted?: PopupProps['keepMounted'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n renderPopupContent?: () => React.ReactNode;\n /**\n * This callback will be called when Escape key pressed on keyboard, or click outside was made\n * This behaviour could be disabled with `disableEscapeKeyDown`\n * and `disableOutsideClick` options\n *\n * @deprecated Use itemWrapper instead for popup functionality\n */\n onOpenChangePopup?: PopupProps['onOpenChange'];\n}\n"],"names":["InnerPanels"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../src/components/AsideHeader/types.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {DrawerProps, PopupProps, QAProps} from '@gravity-ui/uikit';\n\nimport {RenderContentType} from '../Content';\nimport {LogoProps, MenuGroup, MenuItem, OpenModalSubscriber, TopAlertProps} from '../types';\n\nimport {AsideHeaderContextType} from './AsideHeaderContext';\n\nexport interface PanelItemProps extends DrawerProps {\n id: string;\n}\n\nexport interface LayoutProps {\n compact: boolean;\n className?: string;\n topAlert?: TopAlertProps;\n}\n\ninterface EditMenuProps {\n onOpenEditMode?: () => void;\n onToggleMenuItem?: (changedItem: AsideHeaderItem) => void;\n onResetSettingsToDefault?: () => void;\n enableSorting?: boolean;\n onChangeItemsOrder?: (changedItem: AsideHeaderItem, oldIndex: number, newIndex: number) => void;\n /**\n * Fired when visibility of a menu group is toggled from the All pages panel (pin on group header).\n * Use with `onMenuGroupsChanged` / controlled `menuGroups`.\n */\n onToggleMenuGroup?: (changedGroup: MenuGroup) => void;\n}\n\n/**\n * Menu overflow behavior.\n * - `collapse` — extra items collapse under a \"More\" popup (default).\n * - `scroll` — all items remain visible inside a scrollable container with a native thin scrollbar.\n *\n * In compact mode the menu always falls back to `collapse` regardless of this value\n * because a scrollbar over icon-only items is awkward.\n */\nexport type AsideHeaderMenuOverflow = 'collapse' | 'scroll';\n\ninterface AsideHeaderGeneralProps extends QAProps {\n logo?: LogoProps;\n className?: string;\n collapseTitle?: string;\n expandTitle?: string;\n menuMoreTitle?: string;\n /**\n * @see AsideHeaderMenuOverflow\n * @default 'collapse'\n */\n menuOverflow?: AsideHeaderMenuOverflow;\n topAlert?: TopAlertProps;\n customBackground?: React.ReactNode;\n customBackgroundClassName?: string;\n hideCollapseButton?: boolean;\n renderContent?: RenderContentType;\n renderFooter?: (data: {\n size: number;\n compact: boolean;\n asideRef: React.RefObject<HTMLDivElement>;\n }) => React.ReactNode;\n collapseButtonWrapper?: (\n defaultButton: React.ReactNode,\n data: {\n compact: boolean;\n onChangeCompact?: (compact: boolean) => void;\n },\n ) => React.ReactNode;\n editMenuProps?: EditMenuProps;\n onClosePanel?: () => void;\n onChangeCompact?: (compact: boolean) => void;\n onMenuMoreClick?: () => void;\n onAllPagesClick?: () => void;\n openModalSubscriber?: (subscriber: OpenModalSubscriber) => void;\n}\n\ninterface AsideHeaderDefaultProps {\n panelItems?: PanelItemProps[];\n subheaderItems?: AsideHeaderItem[];\n menuItems?: AsideHeaderItem[];\n menuGroups?: MenuGroup[];\n /**\n * Called only from **All pages** edit mode when the user toggles visibility of a **menu group** (group header pin), updating `menuGroup.hidden`.\n * Use with controlled `menuGroups`; not emitted for programmatic `menuGroups` changes outside All pages.\n */\n onMenuGroupsChanged?: (menuGroups: MenuGroup[]) => void;\n defaultMenuItems?: AsideHeaderItem[];\n onMenuItemsChanged?: (items: AsideHeaderItem[]) => void;\n headerDecoration?: boolean;\n /**\n * When provided, the map is the source of truth for which menu groups are collapsed\n * in inline (`menuOverflow: 'scroll'`) layout. Keys are `MenuGroup.id`, values mean collapsed.\n */\n collapsedMenuGroupIds?: Record<string, boolean>;\n /**\n * Initial collapsed state for groups when `collapsedMenuGroupIds` is not controlled.\n */\n defaultCollapsedMenuGroupIds?: Record<string, boolean>;\n /**\n * Called when the user toggles a group in inline layout. The parent should update\n * `collapsedMenuGroupIds` when using controlled mode.\n */\n onToggleMenuGroupCollapsed?: (groupId: string) => void;\n}\n\nexport type AsideHeaderInnerProps = AsideHeaderGeneralProps &\n AsideHeaderDefaultProps &\n AsideHeaderContextType;\n\nexport interface AsideHeaderProps\n extends AsideHeaderGeneralProps,\n LayoutProps,\n Partial<AsideHeaderDefaultProps> {}\n\nexport enum InnerPanels {\n AllPages = 'all-pages',\n}\n\n/** Menu item id for the All pages row (same value as {@link InnerPanels.AllPages}). */\nexport const ALL_PAGES_ID = InnerPanels.AllPages;\n\nexport interface AsideHeaderItem extends MenuItem {\n /**\n * @internal CompositeBar: group children rendered from the \"More\" overflow popover.\n */\n compositeBarMenuPopupItems?: AsideHeaderItem[];\n /**\n * @internal CompositeBar: optional heading in the overflow popover for a group row.\n */\n compositeBarMenuPopupTitle?: string;\n enableTooltip?: boolean;\n onItemClick?: (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => void;\n bringForward?: boolean;\n compact?: boolean;\n\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupVisible?: PopupProps['open'];\n /**\n * Floating element anchor ref object\n *\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupRef?: React.RefObject<HTMLElement>;\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupPlacement?: PopupProps['placement'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupOffset?: PopupProps['offset'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupKeepMounted?: PopupProps['keepMounted'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n renderPopupContent?: () => React.ReactNode;\n /**\n * This callback will be called when Escape key pressed on keyboard, or click outside was made\n * This behaviour could be disabled with `disableEscapeKeyDown`\n * and `disableOutsideClick` options\n *\n * @deprecated Use itemWrapper instead for popup functionality\n */\n onOpenChangePopup?: PopupProps['onOpenChange'];\n}\n"],"names":["InnerPanels"],"mappings":";;AAoHYA;AAAZ,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,WAAsB;AAC1B,CAAC,EAFWA,mBAAW,KAAXA,mBAAW,GAEtB,EAAA,CAAA,CAAA;AAED;AACa,MAAA,YAAY,GAAGA,mBAAW,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.AsideHeader-module__gn-aside-header___Z0Sa7{--gn-aside-header-min-width:56px;--_--item-margin-inline:8px;--gn-aside-header-item-expanded-radius:8px;--_--item-icon-background-size:38px;--_--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);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.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));position:sticky;top:var(--gn-top-alert-height,0);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%;position:absolute;right:0;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;overflow-x:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:inherit;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;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__header___m5aIU{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{bottom:0;color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;z-index:-2}.AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));content:"";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.AsideHeader-module__gn-aside-header__header___m5aIU:after{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_compact___z-nL- .AsideHeader-module__gn-aside-header__header___m5aIU:before, .AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:block}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:after{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__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,8px)}.AsideHeader-module__gn-aside-header__footer___vmoTl{display:flex;flex-direction:column;flex-shrink:0;margin:var(--g-spacing-2) var(--_--item-margin-inline)}.AsideHeader-module__gn-aside-header__panels___-fdu4{z-index:var(--gn-aside-header-panel-z-index,98)}.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);width:calc(100% - var(--gn-aside-header-size));z-index:var(--gn-aside-header-content-z-index,95)}.AsideHeader-module__gn-aside-header__all-pages-panel___O94IU{width:fit-content!important}
|
|
1
|
+
.AsideHeader-module__gn-aside-header___Z0Sa7{--gn-aside-header-min-width:56px;--_--item-margin-inline:8px;--gn-aside-header-item-expanded-radius:8px;--_--item-icon-background-size:38px;--_--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);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.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));position:sticky;top:var(--gn-top-alert-height,0);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%;position:absolute;right:0;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;overflow-x:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:inherit;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_menu-overflow-scroll___l-td6 .AsideHeader-module__gn-aside-header__aside-content___w5GOS{min-height:0;overflow:hidden}.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;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__header___m5aIU{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{bottom:0;color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;z-index:-2}.AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));content:"";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.AsideHeader-module__gn-aside-header__header___m5aIU:after{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_compact___z-nL- .AsideHeader-module__gn-aside-header__header___m5aIU:before, .AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:block}.AsideHeader-module__gn-aside-header_compact___z-nL- .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:after{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__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,8px)}.AsideHeader-module__gn-aside-header__footer___vmoTl{display:flex;flex-direction:column;flex-shrink:0;margin:var(--g-spacing-2) var(--_--item-margin-inline)}.AsideHeader-module__gn-aside-header__panels___-fdu4{z-index:var(--gn-aside-header-panel-z-index,98)}.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);width:calc(100% - var(--gn-aside-header-size));z-index:var(--gn-aside-header-content-z-index,95)}.AsideHeader-module__gn-aside-header__all-pages-panel___O94IU{width:fit-content!important}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var styles = {"g-root":"AsideHeader-module__g-root___EuNRw","gRoot":"AsideHeader-module__g-root___EuNRw","gn-aside-header":"AsideHeader-module__gn-aside-header___Z0Sa7","gnAsideHeader":"AsideHeader-module__gn-aside-header___Z0Sa7","gn-aside-header__aside":"AsideHeader-module__gn-aside-header__aside___AyP0y","gnAsideHeaderAside":"AsideHeader-module__gn-aside-header__aside___AyP0y","gn-aside-header__aside-popup-anchor":"AsideHeader-module__gn-aside-header__aside-popup-anchor___N3tgM","gnAsideHeaderAsidePopupAnchor":"AsideHeader-module__gn-aside-header__aside-popup-anchor___N3tgM","gn-aside-header__aside-content":"AsideHeader-module__gn-aside-header__aside-content___w5GOS","gnAsideHeaderAsideContent":"AsideHeader-module__gn-aside-header__aside-content___w5GOS","gn-aside-header-logo":"AsideHeader-module__gn-aside-header-logo___6MdXx","gnAsideHeaderLogo":"AsideHeader-module__gn-aside-header-logo___6MdXx","gn-aside-header__aside-content_with-decoration":"AsideHeader-module__gn-aside-header__aside-content_with-decoration___UsCye","gnAsideHeaderAsideContentWithDecoration":"AsideHeader-module__gn-aside-header__aside-content_with-decoration___UsCye","gn-aside-header__aside-custom-background":"AsideHeader-module__gn-aside-header__aside-custom-background___-bqdE","gnAsideHeaderAsideCustomBackground":"AsideHeader-module__gn-aside-header__aside-custom-background___-bqdE","gn-aside-header_compact":"AsideHeader-module__gn-aside-header_compact___z-nL-","gnAsideHeaderCompact":"AsideHeader-module__gn-aside-header_compact___z-nL-","gn-aside-header__header":"AsideHeader-module__gn-aside-header__header___m5aIU","gnAsideHeaderHeader":"AsideHeader-module__gn-aside-header__header___m5aIU","gn-aside-header__header-divider":"AsideHeader-module__gn-aside-header__header-divider___lIG-e","gnAsideHeaderHeaderDivider":"AsideHeader-module__gn-aside-header__header-divider___lIG-e","gn-aside-header__header_with-decoration":"AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO","gnAsideHeaderHeaderWithDecoration":"AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO","gn-aside-header__logo-button":"AsideHeader-module__gn-aside-header__logo-button___5u2iH","gnAsideHeaderLogoButton":"AsideHeader-module__gn-aside-header__logo-button___5u2iH","gn-aside-header__logo-icon-place":"AsideHeader-module__gn-aside-header__logo-icon-place___3Oo9i","gnAsideHeaderLogoIconPlace":"AsideHeader-module__gn-aside-header__logo-icon-place___3Oo9i","gn-aside-header__menu-items":"AsideHeader-module__gn-aside-header__menu-items___SOI2-","gnAsideHeaderMenuItems":"AsideHeader-module__gn-aside-header__menu-items___SOI2-","gn-aside-header__menu-item":"AsideHeader-module__gn-aside-header__menu-item___q2y31","gnAsideHeaderMenuItem":"AsideHeader-module__gn-aside-header__menu-item___q2y31","gn-aside-header__menu-item_type_regular":"AsideHeader-module__gn-aside-header__menu-item_type_regular___XYYbc","gnAsideHeaderMenuItemTypeRegular":"AsideHeader-module__gn-aside-header__menu-item_type_regular___XYYbc","gn-aside-header__root-menu-item":"AsideHeader-module__gn-aside-header__root-menu-item___eNfkk","gnAsideHeaderRootMenuItem":"AsideHeader-module__gn-aside-header__root-menu-item___eNfkk","gn-aside-header__footer":"AsideHeader-module__gn-aside-header__footer___vmoTl","gnAsideHeaderFooter":"AsideHeader-module__gn-aside-header__footer___vmoTl","gn-aside-header__panels":"AsideHeader-module__gn-aside-header__panels___-fdu4","gnAsideHeaderPanels":"AsideHeader-module__gn-aside-header__panels___-fdu4","gn-aside-header__panel":"AsideHeader-module__gn-aside-header__panel___HywH6","gnAsideHeaderPanel":"AsideHeader-module__gn-aside-header__panel___HywH6","gn-aside-header__pane-container":"AsideHeader-module__gn-aside-header__pane-container___y-v2e","gnAsideHeaderPaneContainer":"AsideHeader-module__gn-aside-header__pane-container___y-v2e","gn-aside-header__top-alert":"AsideHeader-module__gn-aside-header__top-alert___hY12r","gnAsideHeaderTopAlert":"AsideHeader-module__gn-aside-header__top-alert___hY12r","gn-aside-header__content":"AsideHeader-module__gn-aside-header__content___4-mBl","gnAsideHeaderContent":"AsideHeader-module__gn-aside-header__content___4-mBl","gn-aside-header__all-pages-panel":"AsideHeader-module__gn-aside-header__all-pages-panel___O94IU","gnAsideHeaderAllPagesPanel":"AsideHeader-module__gn-aside-header__all-pages-panel___O94IU"};
|
|
1
|
+
var styles = {"g-root":"AsideHeader-module__g-root___EuNRw","gRoot":"AsideHeader-module__g-root___EuNRw","gn-aside-header":"AsideHeader-module__gn-aside-header___Z0Sa7","gnAsideHeader":"AsideHeader-module__gn-aside-header___Z0Sa7","gn-aside-header__aside":"AsideHeader-module__gn-aside-header__aside___AyP0y","gnAsideHeaderAside":"AsideHeader-module__gn-aside-header__aside___AyP0y","gn-aside-header__aside-popup-anchor":"AsideHeader-module__gn-aside-header__aside-popup-anchor___N3tgM","gnAsideHeaderAsidePopupAnchor":"AsideHeader-module__gn-aside-header__aside-popup-anchor___N3tgM","gn-aside-header__aside-content":"AsideHeader-module__gn-aside-header__aside-content___w5GOS","gnAsideHeaderAsideContent":"AsideHeader-module__gn-aside-header__aside-content___w5GOS","gn-aside-header-logo":"AsideHeader-module__gn-aside-header-logo___6MdXx","gnAsideHeaderLogo":"AsideHeader-module__gn-aside-header-logo___6MdXx","gn-aside-header__aside_menu-overflow-scroll":"AsideHeader-module__gn-aside-header__aside_menu-overflow-scroll___l-td6","gnAsideHeaderAsideMenuOverflowScroll":"AsideHeader-module__gn-aside-header__aside_menu-overflow-scroll___l-td6","gn-aside-header__aside-content_with-decoration":"AsideHeader-module__gn-aside-header__aside-content_with-decoration___UsCye","gnAsideHeaderAsideContentWithDecoration":"AsideHeader-module__gn-aside-header__aside-content_with-decoration___UsCye","gn-aside-header__aside-custom-background":"AsideHeader-module__gn-aside-header__aside-custom-background___-bqdE","gnAsideHeaderAsideCustomBackground":"AsideHeader-module__gn-aside-header__aside-custom-background___-bqdE","gn-aside-header_compact":"AsideHeader-module__gn-aside-header_compact___z-nL-","gnAsideHeaderCompact":"AsideHeader-module__gn-aside-header_compact___z-nL-","gn-aside-header__header":"AsideHeader-module__gn-aside-header__header___m5aIU","gnAsideHeaderHeader":"AsideHeader-module__gn-aside-header__header___m5aIU","gn-aside-header__header-divider":"AsideHeader-module__gn-aside-header__header-divider___lIG-e","gnAsideHeaderHeaderDivider":"AsideHeader-module__gn-aside-header__header-divider___lIG-e","gn-aside-header__header_with-decoration":"AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO","gnAsideHeaderHeaderWithDecoration":"AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO","gn-aside-header__logo-button":"AsideHeader-module__gn-aside-header__logo-button___5u2iH","gnAsideHeaderLogoButton":"AsideHeader-module__gn-aside-header__logo-button___5u2iH","gn-aside-header__logo-icon-place":"AsideHeader-module__gn-aside-header__logo-icon-place___3Oo9i","gnAsideHeaderLogoIconPlace":"AsideHeader-module__gn-aside-header__logo-icon-place___3Oo9i","gn-aside-header__menu-items":"AsideHeader-module__gn-aside-header__menu-items___SOI2-","gnAsideHeaderMenuItems":"AsideHeader-module__gn-aside-header__menu-items___SOI2-","gn-aside-header__menu-item":"AsideHeader-module__gn-aside-header__menu-item___q2y31","gnAsideHeaderMenuItem":"AsideHeader-module__gn-aside-header__menu-item___q2y31","gn-aside-header__menu-item_type_regular":"AsideHeader-module__gn-aside-header__menu-item_type_regular___XYYbc","gnAsideHeaderMenuItemTypeRegular":"AsideHeader-module__gn-aside-header__menu-item_type_regular___XYYbc","gn-aside-header__root-menu-item":"AsideHeader-module__gn-aside-header__root-menu-item___eNfkk","gnAsideHeaderRootMenuItem":"AsideHeader-module__gn-aside-header__root-menu-item___eNfkk","gn-aside-header__footer":"AsideHeader-module__gn-aside-header__footer___vmoTl","gnAsideHeaderFooter":"AsideHeader-module__gn-aside-header__footer___vmoTl","gn-aside-header__panels":"AsideHeader-module__gn-aside-header__panels___-fdu4","gnAsideHeaderPanels":"AsideHeader-module__gn-aside-header__panels___-fdu4","gn-aside-header__panel":"AsideHeader-module__gn-aside-header__panel___HywH6","gnAsideHeaderPanel":"AsideHeader-module__gn-aside-header__panel___HywH6","gn-aside-header__pane-container":"AsideHeader-module__gn-aside-header__pane-container___y-v2e","gnAsideHeaderPaneContainer":"AsideHeader-module__gn-aside-header__pane-container___y-v2e","gn-aside-header__top-alert":"AsideHeader-module__gn-aside-header__top-alert___hY12r","gnAsideHeaderTopAlert":"AsideHeader-module__gn-aside-header__top-alert___hY12r","gn-aside-header__content":"AsideHeader-module__gn-aside-header__content___4-mBl","gnAsideHeaderContent":"AsideHeader-module__gn-aside-header__content___4-mBl","gn-aside-header__all-pages-panel":"AsideHeader-module__gn-aside-header__all-pages-panel___O94IU","gnAsideHeaderAllPagesPanel":"AsideHeader-module__gn-aside-header__all-pages-panel___O94IU"};
|
|
2
2
|
|
|
3
3
|
export { styles as default };
|
|
4
4
|
//# sourceMappingURL=AsideHeader.module.scss.js.map
|
|
@@ -4,8 +4,11 @@ import { Gear } from '@gravity-ui/icons';
|
|
|
4
4
|
import { Flex, Text, Tooltip, Button, Icon, List } from '@gravity-ui/uikit';
|
|
5
5
|
import { createBlock } from '../../../utils/cn.js';
|
|
6
6
|
import { useAsideHeaderInnerContext } from '../../AsideHeaderContext.js';
|
|
7
|
+
import { buildCompositeBarRows } from '../CompositeBar/grouping.js';
|
|
7
8
|
import { AllPagesListItem } from './AllPagesListItem/AllPagesListItem.js';
|
|
8
|
-
import {
|
|
9
|
+
import { getCompositeBarHeaderGroupId, rowsToAllPagesDisplayItems, reorderMenuItemsByCompositeBarRows, getAllPagesEditModeFlatItems, ALL_PAGES_PANEL_ROW_BUILD_OPTIONS } from './allPagesEditDisplay.js';
|
|
10
|
+
import { isAllPagesSortableItem, reorderAllPagesSortableItems } from './allPagesSortable.js';
|
|
11
|
+
import { ALL_PAGES_ID } from '../../types.js';
|
|
9
12
|
import i18n from './i18n/index.js';
|
|
10
13
|
import { useGroupedMenuItems } from './useGroupedMenuItems.js';
|
|
11
14
|
import styles from './AllPagesPanel.module.scss.js';
|
|
@@ -13,7 +16,7 @@ import styles from './AllPagesPanel.module.scss.js';
|
|
|
13
16
|
const b = createBlock('all-pages-panel', styles);
|
|
14
17
|
const AllPagesPanel = (props) => {
|
|
15
18
|
const { startEditIcon, onEditModeChanged, className } = props;
|
|
16
|
-
const { menuItems, defaultMenuItems, onMenuItemsChanged, editMenuProps } = useAsideHeaderInnerContext();
|
|
19
|
+
const { menuItems, defaultMenuItems, onMenuItemsChanged, editMenuProps, menuGroups, onMenuGroupsChanged, } = useAsideHeaderInnerContext();
|
|
17
20
|
const menuItemsRef = useRef(menuItems);
|
|
18
21
|
menuItemsRef.current = menuItems;
|
|
19
22
|
const [isEditMode, setIsEditMode] = useState(false);
|
|
@@ -21,7 +24,7 @@ const AllPagesPanel = (props) => {
|
|
|
21
24
|
const toggleEditMode = useCallback(() => {
|
|
22
25
|
setIsEditMode((prev) => !prev);
|
|
23
26
|
}, []);
|
|
24
|
-
const groupedItems = useGroupedMenuItems(menuItems);
|
|
27
|
+
const groupedItems = useGroupedMenuItems(menuItems, isEditMode, menuGroups, onMenuGroupsChanged);
|
|
25
28
|
useEffect(() => {
|
|
26
29
|
var _a;
|
|
27
30
|
onEditModeChanged === null || onEditModeChanged === undefined ? undefined : onEditModeChanged(isEditMode);
|
|
@@ -35,20 +38,31 @@ const AllPagesPanel = (props) => {
|
|
|
35
38
|
(_a = item.onItemClick) === null || _a === undefined ? undefined : _a.call(item, item, false, event);
|
|
36
39
|
}, []);
|
|
37
40
|
const togglePageVisibility = useCallback((item) => {
|
|
38
|
-
var _a;
|
|
41
|
+
var _a, _b;
|
|
42
|
+
const groupIdFromHeader = getCompositeBarHeaderGroupId(item.id);
|
|
43
|
+
if (groupIdFromHeader && menuGroups && onMenuGroupsChanged) {
|
|
44
|
+
const previousGroup = menuGroups.find((g) => g.id === groupIdFromHeader);
|
|
45
|
+
if (!previousGroup) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const changedGroup = Object.assign(Object.assign({}, previousGroup), { hidden: !previousGroup.hidden });
|
|
49
|
+
(_a = editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.onToggleMenuGroup) === null || _a === undefined ? undefined : _a.call(editMenuProps, changedGroup);
|
|
50
|
+
onMenuGroupsChanged(menuGroups.map((g) => (g.id === groupIdFromHeader ? changedGroup : g)));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
39
53
|
if (!onMenuItemsChanged) {
|
|
40
54
|
return;
|
|
41
55
|
}
|
|
42
56
|
const changedItem = Object.assign(Object.assign({}, item), { hidden: !item.hidden });
|
|
43
57
|
const originItems = menuItemsRef.current.filter((menuItem) => menuItem.id !== ALL_PAGES_ID);
|
|
44
|
-
(
|
|
58
|
+
(_b = editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.onToggleMenuItem) === null || _b === undefined ? undefined : _b.call(editMenuProps, changedItem);
|
|
45
59
|
onMenuItemsChanged(originItems.map((menuItem) => {
|
|
46
60
|
if (menuItem.id !== changedItem.id) {
|
|
47
61
|
return menuItem;
|
|
48
62
|
}
|
|
49
63
|
return changedItem;
|
|
50
64
|
}));
|
|
51
|
-
}, [onMenuItemsChanged, editMenuProps]);
|
|
65
|
+
}, [onMenuItemsChanged, editMenuProps, menuGroups, onMenuGroupsChanged]);
|
|
52
66
|
const onDragEnd = useCallback(() => {
|
|
53
67
|
setDraggingItemTitle(null);
|
|
54
68
|
}, [setDraggingItemTitle]);
|
|
@@ -71,16 +85,38 @@ const AllPagesPanel = (props) => {
|
|
|
71
85
|
}, [onMenuItemsChanged, editMenuProps, defaultMenuItems]);
|
|
72
86
|
const changeItemsOrder = useCallback(({ oldIndex, newIndex }) => {
|
|
73
87
|
var _a;
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
88
|
+
const withoutAllPages = menuItemsRef.current.filter(({ id, type }) => id !== ALL_PAGES_ID && type !== 'divider');
|
|
89
|
+
let element;
|
|
90
|
+
let reordered;
|
|
91
|
+
if (menuGroups === null || menuGroups === undefined ? undefined : menuGroups.length) {
|
|
92
|
+
const rows = buildCompositeBarRows(withoutAllPages, menuGroups, ALL_PAGES_PANEL_ROW_BUILD_OPTIONS);
|
|
93
|
+
const display = rowsToAllPagesDisplayItems(rows, {
|
|
94
|
+
enableGroupHeaderPins: Boolean(onMenuGroupsChanged),
|
|
95
|
+
});
|
|
96
|
+
element = display[oldIndex];
|
|
97
|
+
reordered = reorderMenuItemsByCompositeBarRows(withoutAllPages, menuGroups, oldIndex, newIndex);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const sortableBefore = withoutAllPages.filter(isAllPagesSortableItem);
|
|
101
|
+
element = sortableBefore[oldIndex];
|
|
102
|
+
reordered = reorderAllPagesSortableItems(withoutAllPages, oldIndex, newIndex);
|
|
103
|
+
}
|
|
104
|
+
onMenuItemsChanged === null || onMenuItemsChanged === undefined ? undefined : onMenuItemsChanged(reordered);
|
|
78
105
|
setDraggingItemTitle(null);
|
|
79
|
-
|
|
80
|
-
|
|
106
|
+
if (element) {
|
|
107
|
+
(_a = editMenuProps === null || editMenuProps === undefined ? undefined : editMenuProps.onChangeItemsOrder) === null || _a === undefined ? undefined : _a.call(editMenuProps, element, oldIndex, newIndex);
|
|
108
|
+
}
|
|
109
|
+
}, [onMenuItemsChanged, editMenuProps, menuGroups, onMenuGroupsChanged]);
|
|
81
110
|
const sortableItems = useMemo(() => {
|
|
82
|
-
|
|
83
|
-
|
|
111
|
+
const without = menuItems.filter(({ id, type }) => id !== ALL_PAGES_ID && type !== 'divider');
|
|
112
|
+
const pinHeaders = Boolean(onMenuGroupsChanged);
|
|
113
|
+
if (menuGroups === null || menuGroups === undefined ? undefined : menuGroups.length) {
|
|
114
|
+
return getAllPagesEditModeFlatItems(without, menuGroups, {
|
|
115
|
+
enableGroupHeaderPins: pinHeaders,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
return without.filter(isAllPagesSortableItem);
|
|
119
|
+
}, [menuItems, menuGroups, onMenuGroupsChanged]);
|
|
84
120
|
return (React__default.createElement(Flex, { className: b(null, className), gap: "5", direction: "column" },
|
|
85
121
|
React__default.createElement(Flex, { gap: "4", alignItems: "center", justifyContent: "space-between" },
|
|
86
122
|
React__default.createElement(Text, { variant: "subheader-2" }, isEditMode ? i18n('all-panel.title.editing') : i18n('all-panel.title.main')),
|
|
@@ -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 {createBlock} from '../../../utils/cn';\nimport {useAsideHeaderInnerContext} from '../../AsideHeaderContext';\nimport {AsideHeaderItem} from '../../types';\n\nimport {AllPagesListItem} from './AllPagesListItem';\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 {menuItems, defaultMenuItems, onMenuItemsChanged, editMenuProps} =\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(menuItems);\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 if (!onMenuItemsChanged) {\n return;\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],\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 newItems = menuItemsRef.current.filter(({id}) => id !== ALL_PAGES_ID);\n\n const element = newItems.splice(oldIndex, 1)[0];\n newItems.splice(newIndex, 0, element);\n\n onMenuItemsChanged?.(newItems.filter(({type}) => type !== 'divider'));\n\n setDraggingItemTitle(null);\n editMenuProps?.onChangeItemsOrder?.(element, oldIndex, newIndex);\n },\n [onMenuItemsChanged, editMenuProps],\n );\n\n const sortableItems = useMemo(() => {\n return menuItems.filter(\n ({id, afterMoreButton, type}) =>\n id !== ALL_PAGES_ID && !afterMoreButton && type !== 'divider',\n );\n }, [menuItems]);\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":["React"],"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 } = 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":["React"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { MenuGroup } from '../../../types';
|
|
2
|
+
import { AsideHeaderItem } from '../../types';
|
|
3
|
+
import { type CompositeBarRow } from '../CompositeBar/grouping';
|
|
4
|
+
/** Options passed to {@link buildCompositeBarRows} for All pages panel (edit-mode rows). */
|
|
5
|
+
export declare const ALL_PAGES_PANEL_ROW_BUILD_OPTIONS: {
|
|
6
|
+
readonly includeHidden: true;
|
|
7
|
+
readonly includeHiddenGroups: true;
|
|
8
|
+
};
|
|
9
|
+
export declare function isCompositeBarGroupHeaderItem(item: AsideHeaderItem): boolean;
|
|
10
|
+
export declare function getCompositeBarHeaderGroupId(itemId: string): string | undefined;
|
|
11
|
+
export declare function rowsToAllPagesDisplayItems(rows: CompositeBarRow[], options?: {
|
|
12
|
+
enableGroupHeaderPins?: boolean;
|
|
13
|
+
}): AsideHeaderItem[];
|
|
14
|
+
/**
|
|
15
|
+
* Edit-mode list: top-level items + one row per menu group (header only), same order as CompositeBar.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getAllPagesEditModeFlatItems(asideHeaderItems: AsideHeaderItem[], menuGroups: MenuGroup[] | undefined, options?: {
|
|
18
|
+
enableGroupHeaderPins?: boolean;
|
|
19
|
+
}): AsideHeaderItem[];
|
|
20
|
+
export declare function reorderMenuItemsByCompositeBarRows(withoutAllPagesNoDividers: AsideHeaderItem[], menuGroups: MenuGroup[], oldIndex: number, newIndex: number): AsideHeaderItem[];
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { COMPOSITE_BAR_GROUP_HEADER_ID_PREFIX } from '../CompositeBar/constants.js';
|
|
2
|
+
import { buildCompositeBarRows, flattenCompositeBarRows } from '../CompositeBar/grouping.js';
|
|
3
|
+
import { makeGroupHeaderAsideItem } from '../CompositeBar/utils.js';
|
|
4
|
+
|
|
5
|
+
/** Options passed to {@link buildCompositeBarRows} for All pages panel (edit-mode rows). */
|
|
6
|
+
const ALL_PAGES_PANEL_ROW_BUILD_OPTIONS = {
|
|
7
|
+
includeHidden: true,
|
|
8
|
+
includeHiddenGroups: true,
|
|
9
|
+
};
|
|
10
|
+
function getCompositeBarHeaderGroupId(itemId) {
|
|
11
|
+
if (!itemId.startsWith(COMPOSITE_BAR_GROUP_HEADER_ID_PREFIX)) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
return itemId.slice(COMPOSITE_BAR_GROUP_HEADER_ID_PREFIX.length);
|
|
15
|
+
}
|
|
16
|
+
function rowsToAllPagesDisplayItems(rows, options) {
|
|
17
|
+
const showPins = Boolean(options === null || options === undefined ? undefined : options.enableGroupHeaderPins);
|
|
18
|
+
return rows.map((row) => {
|
|
19
|
+
var _a;
|
|
20
|
+
if (row.kind === 'item') {
|
|
21
|
+
return row.item;
|
|
22
|
+
}
|
|
23
|
+
const header = makeGroupHeaderAsideItem(row.group);
|
|
24
|
+
const firstCategory = (_a = row.items[0]) === null || _a === undefined ? undefined : _a.category;
|
|
25
|
+
return Object.assign(Object.assign({}, header), { category: firstCategory !== null && firstCategory !== undefined ? firstCategory : row.group.title, hidden: Boolean(row.group.hidden), preventUserRemoving: !showPins });
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Edit-mode list: top-level items + one row per menu group (header only), same order as CompositeBar.
|
|
30
|
+
*/
|
|
31
|
+
function getAllPagesEditModeFlatItems(asideHeaderItems, menuGroups, options) {
|
|
32
|
+
if (!(menuGroups === null || menuGroups === undefined ? undefined : menuGroups.length)) {
|
|
33
|
+
return asideHeaderItems.filter((item) => !item.groupId);
|
|
34
|
+
}
|
|
35
|
+
const rows = buildCompositeBarRows(asideHeaderItems, menuGroups, ALL_PAGES_PANEL_ROW_BUILD_OPTIONS);
|
|
36
|
+
return rowsToAllPagesDisplayItems(rows, options);
|
|
37
|
+
}
|
|
38
|
+
function reorderMenuItemsByCompositeBarRows(withoutAllPagesNoDividers, menuGroups, oldIndex, newIndex) {
|
|
39
|
+
const rows = buildCompositeBarRows(withoutAllPagesNoDividers, menuGroups, ALL_PAGES_PANEL_ROW_BUILD_OPTIONS);
|
|
40
|
+
const reordered = [...rows];
|
|
41
|
+
const [moved] = reordered.splice(oldIndex, 1);
|
|
42
|
+
if (moved === undefined) {
|
|
43
|
+
return flattenCompositeBarRows(rows);
|
|
44
|
+
}
|
|
45
|
+
reordered.splice(newIndex, 0, moved);
|
|
46
|
+
return flattenCompositeBarRows(reordered);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { ALL_PAGES_PANEL_ROW_BUILD_OPTIONS, getAllPagesEditModeFlatItems, getCompositeBarHeaderGroupId, reorderMenuItemsByCompositeBarRows, rowsToAllPagesDisplayItems };
|
|
50
|
+
//# sourceMappingURL=allPagesEditDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allPagesEditDisplay.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.ts"],"sourcesContent":["import type {MenuGroup} from '../../../types';\nimport {AsideHeaderItem} from '../../types';\nimport {COMPOSITE_BAR_GROUP_HEADER_ID_PREFIX} from '../CompositeBar/constants';\nimport {\n type CompositeBarRow,\n buildCompositeBarRows,\n flattenCompositeBarRows,\n} from '../CompositeBar/grouping';\nimport {makeGroupHeaderAsideItem} from '../CompositeBar/utils';\n\n/** Options passed to {@link buildCompositeBarRows} for All pages panel (edit-mode rows). */\nexport const ALL_PAGES_PANEL_ROW_BUILD_OPTIONS = {\n includeHidden: true,\n includeHiddenGroups: true,\n} as const;\n\nexport function isCompositeBarGroupHeaderItem(item: AsideHeaderItem): boolean {\n return item.id.startsWith(COMPOSITE_BAR_GROUP_HEADER_ID_PREFIX);\n}\n\nexport function getCompositeBarHeaderGroupId(itemId: string): string | undefined {\n if (!itemId.startsWith(COMPOSITE_BAR_GROUP_HEADER_ID_PREFIX)) {\n return undefined;\n }\n return itemId.slice(COMPOSITE_BAR_GROUP_HEADER_ID_PREFIX.length);\n}\n\nexport function rowsToAllPagesDisplayItems(\n rows: CompositeBarRow[],\n options?: {enableGroupHeaderPins?: boolean},\n): AsideHeaderItem[] {\n const showPins = Boolean(options?.enableGroupHeaderPins);\n return rows.map((row) => {\n if (row.kind === 'item') {\n return row.item;\n }\n const header = makeGroupHeaderAsideItem(row.group);\n const firstCategory = row.items[0]?.category;\n return {\n ...header,\n category: firstCategory ?? row.group.title,\n hidden: Boolean(row.group.hidden),\n preventUserRemoving: !showPins,\n };\n });\n}\n\n/**\n * Edit-mode list: top-level items + one row per menu group (header only), same order as CompositeBar.\n */\nexport function getAllPagesEditModeFlatItems(\n asideHeaderItems: AsideHeaderItem[],\n menuGroups: MenuGroup[] | undefined,\n options?: {enableGroupHeaderPins?: boolean},\n): AsideHeaderItem[] {\n if (!menuGroups?.length) {\n return asideHeaderItems.filter((item) => !item.groupId);\n }\n const rows = buildCompositeBarRows(\n asideHeaderItems,\n menuGroups,\n ALL_PAGES_PANEL_ROW_BUILD_OPTIONS,\n );\n return rowsToAllPagesDisplayItems(rows, options);\n}\n\nexport function reorderMenuItemsByCompositeBarRows(\n withoutAllPagesNoDividers: AsideHeaderItem[],\n menuGroups: MenuGroup[],\n oldIndex: number,\n newIndex: number,\n): AsideHeaderItem[] {\n const rows = buildCompositeBarRows(\n withoutAllPagesNoDividers,\n menuGroups,\n ALL_PAGES_PANEL_ROW_BUILD_OPTIONS,\n );\n const reordered = [...rows];\n const [moved] = reordered.splice(oldIndex, 1);\n\n if (moved === undefined) {\n return flattenCompositeBarRows(rows);\n }\n\n reordered.splice(newIndex, 0, moved);\n\n return flattenCompositeBarRows(reordered);\n}\n"],"names":[],"mappings":";;;;AAUA;AACa,MAAA,iCAAiC,GAAG;AAC7C,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,mBAAmB,EAAE,IAAI;;AAOvB,SAAU,4BAA4B,CAAC,MAAc,EAAA;IACvD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,oCAAoC,CAAC,EAAE;AAC1D,QAAA,OAAO,SAAS;;IAEpB,OAAO,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,MAAM,CAAC;AACpE;AAEgB,SAAA,0BAA0B,CACtC,IAAuB,EACvB,OAA2C,EAAA;AAE3C,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,SAAA,GAAA,SAAA,GAAP,OAAO,CAAE,qBAAqB,CAAC;AACxD,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;;AACpB,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YACrB,OAAO,GAAG,CAAC,IAAI;;QAEnB,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC;QAClD,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,SAAA,GAAA,EAAA,CAAA,QAAQ;AAC5C,QAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACO,MAAM,CAAA,EAAA,EACT,QAAQ,EAAE,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,SAAA,GAAb,aAAa,GAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAC1C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EACjC,mBAAmB,EAAE,CAAC,QAAQ,EAChC,CAAA;AACN,KAAC,CAAC;AACN;AAEA;;AAEG;SACa,4BAA4B,CACxC,gBAAmC,EACnC,UAAmC,EACnC,OAA2C,EAAA;IAE3C,IAAI,EAAC,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,SAAA,GAAA,SAAA,GAAA,UAAU,CAAE,MAAM,CAAA,EAAE;AACrB,QAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;IAE3D,MAAM,IAAI,GAAG,qBAAqB,CAC9B,gBAAgB,EAChB,UAAU,EACV,iCAAiC,CACpC;AACD,IAAA,OAAO,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC;AACpD;AAEM,SAAU,kCAAkC,CAC9C,yBAA4C,EAC5C,UAAuB,EACvB,QAAgB,EAChB,QAAgB,EAAA;IAEhB,MAAM,IAAI,GAAG,qBAAqB,CAC9B,yBAAyB,EACzB,UAAU,EACV,iCAAiC,CACpC;AACD,IAAA,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC;AAC3B,IAAA,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAE7C,IAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,QAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC;;IAGxC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC;AAEpC,IAAA,OAAO,uBAAuB,CAAC,SAAS,CAAC;AAC7C;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AsideHeaderItem } from '../../types';
|
|
2
|
+
export declare function isAllPagesSortableItem(item: AsideHeaderItem): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Reorders only {@link isAllPagesSortableItem} entries; every other row stays in place.
|
|
5
|
+
* Indices refer to the contiguous sortable subset (same order as in the drag-and-drop list).
|
|
6
|
+
*/
|
|
7
|
+
export declare function reorderAllPagesSortableItems(withoutAllPagesItem: AsideHeaderItem[], oldIndex: number, newIndex: number): AsideHeaderItem[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ALL_PAGES_ID } from '../../types.js';
|
|
2
|
+
|
|
3
|
+
function isAllPagesSortableItem(item) {
|
|
4
|
+
return (item.id !== ALL_PAGES_ID &&
|
|
5
|
+
!item.afterMoreButton &&
|
|
6
|
+
item.type !== 'divider' &&
|
|
7
|
+
!item.groupId);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Reorders only {@link isAllPagesSortableItem} entries; every other row stays in place.
|
|
11
|
+
* Indices refer to the contiguous sortable subset (same order as in the drag-and-drop list).
|
|
12
|
+
*/
|
|
13
|
+
function reorderAllPagesSortableItems(withoutAllPagesItem, oldIndex, newIndex) {
|
|
14
|
+
const sortable = withoutAllPagesItem.filter(isAllPagesSortableItem);
|
|
15
|
+
const reordered = [...sortable];
|
|
16
|
+
const [moved] = reordered.splice(oldIndex, 1);
|
|
17
|
+
reordered.splice(newIndex, 0, moved);
|
|
18
|
+
let i = 0;
|
|
19
|
+
return withoutAllPagesItem.map((item) => isAllPagesSortableItem(item) ? reordered[i++] : item);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { isAllPagesSortableItem, reorderAllPagesSortableItems };
|
|
23
|
+
//# sourceMappingURL=allPagesSortable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allPagesSortable.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/allPagesSortable.ts"],"sourcesContent":["import {ALL_PAGES_ID, AsideHeaderItem} from '../../types';\n\nexport function isAllPagesSortableItem(item: AsideHeaderItem): boolean {\n return (\n item.id !== ALL_PAGES_ID &&\n !item.afterMoreButton &&\n item.type !== 'divider' &&\n !item.groupId\n );\n}\n\n/**\n * Reorders only {@link isAllPagesSortableItem} entries; every other row stays in place.\n * Indices refer to the contiguous sortable subset (same order as in the drag-and-drop list).\n */\nexport function reorderAllPagesSortableItems(\n withoutAllPagesItem: AsideHeaderItem[],\n oldIndex: number,\n newIndex: number,\n): AsideHeaderItem[] {\n const sortable = withoutAllPagesItem.filter(isAllPagesSortableItem);\n const reordered = [...sortable];\n const [moved] = reordered.splice(oldIndex, 1);\n reordered.splice(newIndex, 0, moved);\n\n let i = 0;\n return withoutAllPagesItem.map((item) =>\n isAllPagesSortableItem(item) ? reordered[i++]! : item,\n );\n}\n"],"names":[],"mappings":";;AAEM,SAAU,sBAAsB,CAAC,IAAqB,EAAA;AACxD,IAAA,QACI,IAAI,CAAC,EAAE,KAAK,YAAY;QACxB,CAAC,IAAI,CAAC,eAAe;QACrB,IAAI,CAAC,IAAI,KAAK,SAAS;AACvB,QAAA,CAAC,IAAI,CAAC,OAAO;AAErB;AAEA;;;AAGG;SACa,4BAA4B,CACxC,mBAAsC,EACtC,QAAgB,EAChB,QAAgB,EAAA;IAEhB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,sBAAsB,CAAC;AACnE,IAAA,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC/B,IAAA,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC;IAEpC,IAAI,CAAC,GAAG,CAAC;IACT,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,KAChC,sBAAsB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAE,GAAG,IAAI,CACxD;AACL;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/constants.ts"],"sourcesContent":["import {Ellipsis} from '@gravity-ui/icons';\n\nimport {AsideHeaderItem} from '../../types';\n\nimport i18n from './i18n';\n\nexport
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../../../../src/components/AsideHeader/components/AllPagesPanel/constants.ts"],"sourcesContent":["import {Ellipsis} from '@gravity-ui/icons';\n\nimport {ALL_PAGES_ID, AsideHeaderItem} from '../../types';\n\nimport i18n from './i18n';\n\nexport {ALL_PAGES_ID} from '../../types';\n\nexport function getAllPagesMenuItem(): AsideHeaderItem {\n return {\n id: ALL_PAGES_ID,\n title: i18n('menu-item.all-pages.title'),\n tooltipText: i18n('menu-item.all-pages.title'),\n icon: Ellipsis,\n };\n}\n"],"names":[],"mappings":";;;;SAQgB,mBAAmB,GAAA;IAC/B,OAAO;AACH,QAAA,EAAE,EAAE,YAAY;AAChB,QAAA,KAAK,EAAE,IAAI,CAAC,2BAA2B,CAAC;AACxC,QAAA,WAAW,EAAE,IAAI,CAAC,2BAA2B,CAAC;AAC9C,QAAA,IAAI,EAAE,QAAQ;KACjB;AACL;;;;"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
+
import type { MenuGroup } from '../../../types';
|
|
1
2
|
import { AsideHeaderItem } from '../../types';
|
|
2
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Group menu items by category for the All pages panel.
|
|
5
|
+
*
|
|
6
|
+
* @param asideHeaderItems — items from context (includes synthetic All pages row).
|
|
7
|
+
* @param editMode — when true, applies edit-mode row selection (headers when `menuGroups` is set).
|
|
8
|
+
* @param menuGroups — when provided with edit mode, inserts one CompositeBar-style header per group.
|
|
9
|
+
* @returns Items grouped by `category` key for rendering sections.
|
|
10
|
+
*/
|
|
11
|
+
export declare const useGroupedMenuItems: (asideHeaderItems: AsideHeaderItem[], editMode?: boolean, menuGroups?: MenuGroup[], onMenuGroupsChanged?: (menuGroups: MenuGroup[]) => void) => {
|
|
3
12
|
[key: string]: AsideHeaderItem[];
|
|
4
13
|
};
|