@gravity-ui/navigation 0.11.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface AsideHeaderContextType {
3
+ compact: boolean;
4
+ size: number;
5
+ }
6
+ export declare const AsideHeaderContext: React.Context<AsideHeaderContextType>;
7
+ export declare const AsideHeaderContextProvider: React.Provider<AsideHeaderContextType>;
8
+ export declare const useAsideHeaderContext: () => AsideHeaderContextType;
9
+ export {};
@@ -1,10 +1,9 @@
1
- import { FC } from 'react';
1
+ import React, { FC } from 'react';
2
2
  import { AsideHeaderDict, MenuItem } from '../types';
3
3
  import './CompositeBar.scss';
4
4
  interface CompositeBarBaseProps {
5
5
  items: MenuItem[];
6
- compact: boolean;
7
- onItemClick?: (item: MenuItem, collapsed: boolean) => void;
6
+ onItemClick?: (item: MenuItem, collapsed: boolean, event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
8
7
  multipleTooltip?: boolean;
9
8
  }
10
9
  export interface CompositeBarProps extends CompositeBarBaseProps {
@@ -15,9 +15,9 @@ export interface ItemProps extends ItemPopup {
15
15
  item: MenuItem;
16
16
  enableTooltip?: boolean;
17
17
  onItemClick?: (item: MenuItem, collapsed: boolean, event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
18
+ onItemClickCapture?: (event: React.SyntheticEvent) => void;
18
19
  }
19
20
  interface ItemInnerProps extends ItemProps {
20
- compact: boolean;
21
21
  className?: string;
22
22
  collapseItems?: MenuItem[];
23
23
  onMouseEnter?: () => void;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ItemProps } from '../CompositeBar/Item/Item';
3
3
  import './FooterItem.scss';
4
- export interface FooterItemProps extends Omit<ItemProps, 'onItemClick'> {
4
+ export interface FooterItemProps extends Omit<ItemProps, 'onItemClick' | 'onItemClickCapture'> {
5
5
  compact: boolean;
6
6
  }
7
7
  export declare const FooterItem: React.FC<FooterItemProps>;
@@ -1,8 +1,4 @@
1
1
  import React from 'react';
2
2
  import { LogoProps } from '../types';
3
3
  import './Logo.scss';
4
- interface LogoInnerProps extends LogoProps {
5
- compact: boolean;
6
- }
7
- export declare const Logo: React.FC<LogoInnerProps>;
8
- export {};
4
+ export declare const Logo: React.FC<LogoProps>;
@@ -1,4 +1,5 @@
1
1
  export { AsideHeader, AsideHeaderProps } from './AsideHeader/AsideHeader';
2
+ export { AsideHeaderContextProvider, useAsideHeaderContext } from './AsideHeader/AsideHeaderContext';
2
3
  export { Drawer, DrawerProps, DrawerItemProps, DrawerItem } from './Drawer/Drawer';
3
4
  export { FooterItem, FooterItemProps } from './FooterItem/FooterItem';
4
5
  export * from './ActionBar';
@@ -14,11 +14,13 @@ export interface MenuItem {
14
14
  link?: string;
15
15
  current?: boolean;
16
16
  pinned?: boolean;
17
- onItemClick?: (item: MenuItem, collapsed: boolean) => void;
17
+ onItemClick?: (item: MenuItem, collapsed: boolean, event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
18
+ onItemClickCapture?: (event: React.SyntheticEvent) => void;
18
19
  itemWrapper?: (p: MakeItemParams, makeItem: (p: MakeItemParams) => React.ReactNode, opts: {
19
20
  collapsed: boolean;
20
21
  compact: boolean;
21
22
  item: MenuItem;
23
+ ref: React.RefObject<HTMLElement>;
22
24
  }) => React.ReactNode;
23
25
  rightAdornment?: React.ReactNode;
24
26
  type?: MenuItemType;
@@ -3189,11 +3189,19 @@ const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScro
3189
3189
  }));
3190
3190
  };
3191
3191
 
3192
+ const AsideHeaderContext = React__default.createContext({
3193
+ compact: false,
3194
+ size: ASIDE_HEADER_COMPACT_WIDTH,
3195
+ });
3196
+ const AsideHeaderContextProvider = AsideHeaderContext.Provider;
3197
+ const useAsideHeaderContext = () => React__default.useContext(AsideHeaderContext);
3198
+
3192
3199
  var css_248z$l = ".ycn-logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n height: 40px;\n}\n.ycn-logo__logo-btn-place {\n flex-shrink: 0;\n width: var(--aside-header-min-width);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n.ycn-logo__logo-btn-place .yc-button::before {\n background-color: transparent;\n}\n.ycn-logo__btn-logo.yc-button_view_flat.yc-button_size_l {\n --yc-button-height: 38px;\n}\n.ycn-logo__logo {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n font-weight: var(--g-text-body-font-weight);\n vertical-align: middle;\n cursor: pointer;\n}\n.ycn-logo__logo-link, .ycn-logo__logo-link:hover, .ycn-logo__logo-link:active, .ycn-logo__logo-link:visited, .ycn-logo__logo-link:focus {\n text-decoration: none;\n outline: none;\n color: inherit;\n}\n.yc-root .ycn-logo__btn-logo.button2_theme_flat.button2_hovered_yes::before {\n background-color: transparent;\n}";
3193
3200
  styleInject(css_248z$l);
3194
3201
 
3195
3202
  const b$m = block('logo');
3196
- const Logo$1 = ({ text, compact, icon, iconSrc, iconClassName, iconSize = 24, textSize = 15, href = '/', wrapper, onClick, }) => {
3203
+ const Logo$1 = ({ text, icon, iconSrc, iconClassName, iconSize = 24, textSize = 15, href = '/', wrapper, onClick, }) => {
3204
+ const { compact } = useAsideHeaderContext();
3197
3205
  const hasClickHandler = typeof onClick === 'function';
3198
3206
  const hasWrapper = typeof wrapper === 'function';
3199
3207
  const linkProps = hasClickHandler
@@ -3710,7 +3718,8 @@ function renderItemTitle(item) {
3710
3718
  const defaultPopupPlacement = ['right-end'];
3711
3719
  const defaultPopupOffset = [-20, 8];
3712
3720
  const Item$1 = (props) => {
3713
- const { item, compact, className, collapseItems, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupAnchor, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onClosePopup, onItemClick, } = props;
3721
+ const { item, className, collapseItems, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupAnchor, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onClosePopup, onItemClick, onItemClickCapture, } = props;
3722
+ const { compact } = useAsideHeaderContext();
3714
3723
  if (item.type === 'divider') {
3715
3724
  return React__default.createElement("div", { className: b$l('menu-divider') });
3716
3725
  }
@@ -3745,7 +3754,7 @@ const Item$1 = (props) => {
3745
3754
  else {
3746
3755
  onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, false, event);
3747
3756
  }
3748
- }, onMouseEnter: () => {
3757
+ }, onClickCapture: onItemClickCapture, onMouseEnter: () => {
3749
3758
  if (!compact) {
3750
3759
  onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter();
3751
3760
  }
@@ -3764,7 +3773,7 @@ const Item$1 = (props) => {
3764
3773
  const titleNode = renderItemTitle(item);
3765
3774
  const params = { icon: iconNode, title: titleNode };
3766
3775
  let node;
3767
- const opts = { compact, collapsed: false, item };
3776
+ const opts = { compact, collapsed: false, item, ref };
3768
3777
  if (typeof item.itemWrapper === 'function') {
3769
3778
  node = item.itemWrapper(params, makeNode, opts);
3770
3779
  }
@@ -3776,7 +3785,8 @@ const Item$1 = (props) => {
3776
3785
  open && collapsedItem && (collapseItems === null || collapseItems === void 0 ? void 0 : collapseItems.length) && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default.createElement(CollapsedPopup, Object.assign({}, props, { anchorRef: ref, onClose: () => toggleOpen(false) })))));
3777
3786
  };
3778
3787
  Item$1.displayName = 'Item';
3779
- function CollapsedPopup({ compact, onItemClick, collapseItems, anchorRef, onClose, }) {
3788
+ function CollapsedPopup({ onItemClick, collapseItems, anchorRef, onClose, }) {
3789
+ const { compact } = useAsideHeaderContext();
3780
3790
  return (collapseItems === null || collapseItems === void 0 ? void 0 : collapseItems.length) ? (React__default.createElement(Popup, { placement: POPUP_PLACEMENT, open: true, anchorRef: anchorRef, onClose: onClose },
3781
3791
  React__default.createElement("div", { className: b$l('collapse-items-popup-content') },
3782
3792
  React__default.createElement(List, { itemClassName: b$l('root-collapse-item'), items: collapseItems, selectedItemIndex: getSelectedItemIndex$1(collapseItems), itemHeight: POPUP_ITEM_HEIGHT, itemsHeight: collapseItems.length * POPUP_ITEM_HEIGHT, virtualized: false, filterable: false, sortable: false, renderItem: (collapseItem) => {
@@ -3788,7 +3798,7 @@ function CollapsedPopup({ compact, onItemClick, collapseItems, anchorRef, onClos
3788
3798
  };
3789
3799
  const titleNode = renderItemTitle(collapseItem);
3790
3800
  const params = { title: titleNode };
3791
- const opts = { compact, collapsed: true, item: collapseItem };
3801
+ const opts = { compact, collapsed: true, item: collapseItem, ref: anchorRef };
3792
3802
  if (typeof collapseItem.itemWrapper === 'function') {
3793
3803
  return collapseItem.itemWrapper(params, makeCollapseNode, opts);
3794
3804
  }
@@ -3798,9 +3808,6 @@ function CollapsedPopup({ compact, onItemClick, collapseItems, anchorRef, onClos
3798
3808
  } })))) : null;
3799
3809
  }
3800
3810
 
3801
- var css_248z$j = ".ycn-composite-bar {\n flex: 1 0 auto;\n width: 100%;\n min-height: 40px;\n}\n.ycn-composite-bar .ycn-composite-bar__root-menu-item[class] {\n background-color: transparent;\n}";
3802
- styleInject(css_248z$j);
3803
-
3804
3811
  const multipleTooltipContextDefaults = {
3805
3812
  active: false,
3806
3813
  activeIndex: undefined,
@@ -3823,8 +3830,8 @@ class MultipleTooltipProvider extends React__default.PureComponent {
3823
3830
  }
3824
3831
  }
3825
3832
 
3826
- var css_248z$i = ".yc-root_theme_dark .ycn-multiple-tooltip,\n.yc-root_theme_dark-hc .ycn-multiple-tooltip {\n --multiple-tooltip-item-bg-color: #424147;\n --multiple-tooltip-item-active-bg-color: var(--g-color-base-float-heavy);\n --multiple-tooltip-backdrop-background: linear-gradient(\n 90deg,\n #313036 0%,\n rgba(49, 48, 54, 0.3) 100%\n );\n --multiple-tooltip-backdrop-filter: blur(16px);\n}\n\n.yc-root_theme_light .ycn-multiple-tooltip,\n.yc-root_theme_light-hc .ycn-multiple-tooltip {\n --multiple-tooltip-item-bg-color: #7a7a7a;\n --multiple-tooltip-item-active-bg-color: var(--g-color-base-float-heavy);\n --multiple-tooltip-backdrop-background: linear-gradient(\n 90deg,\n #ffffff 0%,\n rgba(255, 255, 255, 0.3) 100%\n );\n --multiple-tooltip-backdrop-filter: blur(12px);\n}\n\n.ycn-multiple-tooltip {\n background-color: transparent;\n box-shadow: none;\n}\n.ycn-multiple-tooltip::before {\n content: \"\";\n box-shadow: none;\n position: absolute;\n width: 100%;\n height: 100%;\n z-index: -1;\n background: var(--multiple-tooltip-backdrop-background);\n filter: var(--multiple-tooltip-backdrop-filter);\n}\n.ycn-multiple-tooltip__items-container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 32px 40px 32px 12px;\n}\n.ycn-multiple-tooltip__item {\n display: flex;\n box-sizing: border-box;\n height: 30px;\n padding: 8px 12px;\n background-color: var(--multiple-tooltip-item-bg-color);\n position: relative;\n border-radius: 5px;\n align-items: center;\n color: var(--g-color-text-light-primary);\n margin-bottom: 5px;\n transition: transform 100ms ease-in-out;\n}\n.ycn-multiple-tooltip__item:not(.ycn-multiple-tooltip__item_divider) + .ycn-multiple-tooltip__item:not(.ycn-multiple-tooltip__item_divider), .ycn-multiple-tooltip__item:first-child {\n margin-top: 5px;\n}\n.ycn-multiple-tooltip__item_divider + .ycn-multiple-tooltip__item:not(.ycn-multiple-tooltip__item_divider) {\n margin-top: 4px;\n}\n.ycn-multiple-tooltip__item_active {\n background-color: var(--multiple-tooltip-item-active-bg-color);\n transform: translateX(-12px);\n}\n.ycn-multiple-tooltip__item_divider {\n height: 15px;\n visibility: hidden;\n margin: 0;\n}";
3827
- styleInject(css_248z$i);
3833
+ var css_248z$j = ".yc-root_theme_dark .ycn-multiple-tooltip,\n.yc-root_theme_dark-hc .ycn-multiple-tooltip {\n --multiple-tooltip-item-bg-color: #424147;\n --multiple-tooltip-item-active-bg-color: var(--g-color-base-float-heavy);\n --multiple-tooltip-backdrop-background: linear-gradient(\n 90deg,\n #313036 0%,\n rgba(49, 48, 54, 0.3) 100%\n );\n --multiple-tooltip-backdrop-filter: blur(16px);\n}\n\n.yc-root_theme_light .ycn-multiple-tooltip,\n.yc-root_theme_light-hc .ycn-multiple-tooltip {\n --multiple-tooltip-item-bg-color: #7a7a7a;\n --multiple-tooltip-item-active-bg-color: var(--g-color-base-float-heavy);\n --multiple-tooltip-backdrop-background: linear-gradient(\n 90deg,\n #ffffff 0%,\n rgba(255, 255, 255, 0.3) 100%\n );\n --multiple-tooltip-backdrop-filter: blur(12px);\n}\n\n.ycn-multiple-tooltip {\n background-color: transparent;\n box-shadow: none;\n}\n.ycn-multiple-tooltip::before {\n content: \"\";\n box-shadow: none;\n position: absolute;\n width: 100%;\n height: 100%;\n z-index: -1;\n background: var(--multiple-tooltip-backdrop-background);\n filter: var(--multiple-tooltip-backdrop-filter);\n}\n.ycn-multiple-tooltip__items-container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 32px 40px 32px 12px;\n}\n.ycn-multiple-tooltip__item {\n display: flex;\n box-sizing: border-box;\n height: 30px;\n padding: 8px 12px;\n background-color: var(--multiple-tooltip-item-bg-color);\n position: relative;\n border-radius: 5px;\n align-items: center;\n color: var(--g-color-text-light-primary);\n margin-bottom: 5px;\n transition: transform 100ms ease-in-out;\n}\n.ycn-multiple-tooltip__item:not(.ycn-multiple-tooltip__item_divider) + .ycn-multiple-tooltip__item:not(.ycn-multiple-tooltip__item_divider), .ycn-multiple-tooltip__item:first-child {\n margin-top: 5px;\n}\n.ycn-multiple-tooltip__item_divider + .ycn-multiple-tooltip__item:not(.ycn-multiple-tooltip__item_divider) {\n margin-top: 4px;\n}\n.ycn-multiple-tooltip__item_active {\n background-color: var(--multiple-tooltip-item-active-bg-color);\n transform: translateX(-12px);\n}\n.ycn-multiple-tooltip__item_divider {\n height: 15px;\n visibility: hidden;\n margin: 0;\n}";
3834
+ styleInject(css_248z$j);
3828
3835
 
3829
3836
  const b$k = block('multiple-tooltip');
3830
3837
  const POPUP_OFFSET = [-32, 4];
@@ -3853,11 +3860,15 @@ const MultipleTooltip = ({ items, open, anchorRef, placement, }) => {
3853
3860
  }))));
3854
3861
  };
3855
3862
 
3863
+ var css_248z$i = ".ycn-composite-bar {\n flex: 1 0 auto;\n width: 100%;\n min-height: 40px;\n}\n.ycn-composite-bar .ycn-composite-bar__root-menu-item[class] {\n background-color: transparent;\n}";
3864
+ styleInject(css_248z$i);
3865
+
3856
3866
  const b$j = block('composite-bar');
3857
- const CompositeBarView = ({ items, compact, onItemClick, collapseItems, multipleTooltip = true, }) => {
3867
+ const CompositeBarView = ({ items, onItemClick, collapseItems, multipleTooltip = true, }) => {
3858
3868
  const ref = useRef(null);
3859
3869
  const tooltipRef = useRef(null);
3860
3870
  const { setValue: setMultipleTooltipContextValue, active: multipleTooltipActive, activeIndex, lastClickedItemIndex, } = useContext(MultipleTooltipContext);
3871
+ const { compact } = useAsideHeaderContext();
3861
3872
  const onTooltipMouseEnter = useCallback((e) => {
3862
3873
  if (!multipleTooltipActive &&
3863
3874
  activeIndex !== lastClickedItemIndex &&
@@ -3904,7 +3915,7 @@ const CompositeBarView = ({ items, compact, onItemClick, collapseItems, multiple
3904
3915
  }
3905
3916
  }
3906
3917
  }, [activeIndex, lastClickedItemIndex, setMultipleTooltipContextValue]);
3907
- const onItemClickByIndex = useCallback((itemIndex) => (item, collapsed) => {
3918
+ const onItemClickByIndex = useCallback((itemIndex) => (item, collapsed, event) => {
3908
3919
  if (compact &&
3909
3920
  multipleTooltip &&
3910
3921
  itemIndex !== lastClickedItemIndex &&
@@ -3914,14 +3925,14 @@ const CompositeBarView = ({ items, compact, onItemClick, collapseItems, multiple
3914
3925
  active: false,
3915
3926
  });
3916
3927
  }
3917
- onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, collapsed);
3928
+ onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, collapsed, event);
3918
3929
  }, [lastClickedItemIndex, setMultipleTooltipContextValue]);
3919
3930
  return (React__default.createElement(React__default.Fragment, null,
3920
3931
  React__default.createElement("div", { ref: tooltipRef, onMouseEnter: onTooltipMouseEnter, onMouseLeave: onTooltipMouseLeave },
3921
- React__default.createElement(List, { ref: ref, items: items, selectedItemIndex: getSelectedItemIndex$1(items), itemHeight: getItemHeight$1, itemClassName: b$j('root-menu-item'), itemsHeight: getItemsHeight, virtualized: false, filterable: false, sortable: false, renderItem: (item, _isItemActive, itemIndex) => (React__default.createElement(Item$1, { item: item, onMouseEnter: onMouseEnterByIndex(itemIndex), onMouseLeave: onMouseLeave, onItemClick: onItemClickByIndex(itemIndex), compact: compact, collapseItems: collapseItems, enableTooltip: !multipleTooltip })) })),
3932
+ React__default.createElement(List, { ref: ref, items: items, selectedItemIndex: getSelectedItemIndex$1(items), itemHeight: getItemHeight$1, itemClassName: b$j('root-menu-item'), itemsHeight: getItemsHeight, virtualized: false, filterable: false, sortable: false, renderItem: (item, _isItemActive, itemIndex) => (React__default.createElement(Item$1, { item: item, onMouseEnter: onMouseEnterByIndex(itemIndex), onMouseLeave: onMouseLeave, onItemClick: onItemClickByIndex(itemIndex), collapseItems: collapseItems, enableTooltip: !multipleTooltip })) })),
3922
3933
  React__default.createElement(MultipleTooltip, { open: compact && multipleTooltip && multipleTooltipActive, anchorRef: tooltipRef, placement: ['right-start'], items: items })));
3923
3934
  };
3924
- const CompositeBar = ({ items, compact, enableCollapsing, dict, onItemClick, multipleTooltip = false, }) => {
3935
+ const CompositeBar = ({ items, enableCollapsing, dict, onItemClick, multipleTooltip = false, }) => {
3925
3936
  if (items.length === 0) {
3926
3937
  return null;
3927
3938
  }
@@ -3932,12 +3943,12 @@ const CompositeBar = ({ items, compact, enableCollapsing, dict, onItemClick, mul
3932
3943
  node = (React__default.createElement("div", { className: b$j({ autosizer: true }), style: { minHeight } }, items.length !== 0 && (React__default.createElement(AutoSizer, null, ({ width, height }) => {
3933
3944
  const { listItems, collapseItems } = getAutosizeListItems(items, height, collapseItem);
3934
3945
  return (React__default.createElement("div", { style: { width, height } },
3935
- React__default.createElement(CompositeBarView, { items: listItems, compact: compact, onItemClick: onItemClick, collapseItems: collapseItems, multipleTooltip: multipleTooltip })));
3946
+ React__default.createElement(CompositeBarView, { items: listItems, onItemClick: onItemClick, collapseItems: collapseItems, multipleTooltip: multipleTooltip })));
3936
3947
  }))));
3937
3948
  }
3938
3949
  else {
3939
3950
  node = (React__default.createElement("div", { className: b$j() },
3940
- React__default.createElement(CompositeBarView, { items: items, compact: compact, onItemClick: onItemClick, multipleTooltip: multipleTooltip })));
3951
+ React__default.createElement(CompositeBarView, { items: items, onItemClick: onItemClick, multipleTooltip: multipleTooltip })));
3941
3952
  }
3942
3953
  return React__default.createElement(MultipleTooltipProvider, null, node);
3943
3954
  };
@@ -3947,7 +3958,8 @@ const RenderContent = React__default.memo(({ renderContent, size }) => {
3947
3958
  return React__default.createElement(React__default.Fragment, null, renderContent({ size }));
3948
3959
  });
3949
3960
  RenderContent.displayName = 'RenderContent';
3950
- const Content = ({ size, className, cssSizeVariableName = '--aside-header-size', renderContent, }) => {
3961
+ const Content = ({ size, // TODO: move to context when MobileHeader will support it
3962
+ className, cssSizeVariableName = '--aside-header-size', renderContent, }) => {
3951
3963
  return (React__default.createElement("div", { className: className, style: Object.assign({}, { [cssSizeVariableName]: `${size}px` }) }, typeof renderContent === 'function' && (React__default.createElement(RenderContent, { size: size, renderContent: renderContent }))));
3952
3964
  };
3953
3965
 
@@ -3998,13 +4010,13 @@ class AsideHeader extends React__default.Component {
3998
4010
  super(...arguments);
3999
4011
  this.asideRef = React__default.createRef();
4000
4012
  this.renderFirstPane = (size) => {
4001
- const { dict, menuItems, panelItems, compact, headerDecoration, multipleTooltip } = this.props;
4013
+ const { dict, menuItems, panelItems, headerDecoration, multipleTooltip } = this.props;
4002
4014
  return (React__default.createElement(React__default.Fragment, null,
4003
4015
  React__default.createElement("div", { className: b$i('aside'), style: { width: size } },
4004
4016
  React__default.createElement("div", { className: b$i('aside-popup-anchor'), ref: this.asideRef }),
4005
4017
  React__default.createElement("div", { className: b$i('aside-content', { ['with-decoration']: headerDecoration }) },
4006
4018
  this.renderHeader(),
4007
- (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) ? (React__default.createElement(CompositeBar, { items: menuItems, compact: compact, enableCollapsing: true, dict: dict, onItemClick: this.onItemClick, multipleTooltip: multipleTooltip })) : (React__default.createElement("div", { className: b$i('menu-items') })),
4019
+ (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) ? (React__default.createElement(CompositeBar, { items: menuItems, enableCollapsing: true, dict: dict, onItemClick: this.onItemClick, multipleTooltip: multipleTooltip })) : (React__default.createElement("div", { className: b$i('menu-items') })),
4008
4020
  this.renderFooter(size),
4009
4021
  this.renderCollapseButton())),
4010
4022
  panelItems && this.renderPanels(size)));
@@ -4012,13 +4024,13 @@ class AsideHeader extends React__default.Component {
4012
4024
  this.renderSecondPane = (size) => {
4013
4025
  return (React__default.createElement(Content, { size: size, renderContent: this.props.renderContent, className: b$i('content') }));
4014
4026
  };
4015
- this.renderLogo = () => (React__default.createElement(Logo$1, Object.assign({}, this.props.logo, { compact: this.props.compact, onClick: this.onLogoClick })));
4027
+ this.renderLogo = () => React__default.createElement(Logo$1, Object.assign({}, this.props.logo, { onClick: this.onLogoClick }));
4016
4028
  this.renderHeader = () => (React__default.createElement("div", { className: b$i('header', { ['with-decoration']: this.props.headerDecoration }) },
4017
4029
  this.renderLogo(),
4018
- React__default.createElement(CompositeBar, { items: this.props.subheaderItems, compact: this.props.compact, enableCollapsing: false, onItemClick: this.onItemClick }),
4030
+ React__default.createElement(CompositeBar, { items: this.props.subheaderItems, enableCollapsing: false, onItemClick: this.onItemClick }),
4019
4031
  React__default.createElement(Icon, { data: headerDividerCollapsedIcon, className: b$i('header-divider'), width: ASIDE_HEADER_COMPACT_WIDTH, height: "29" })));
4020
4032
  this.renderFooter = (size) => {
4021
- const { compact, renderFooter } = this.props;
4033
+ const { renderFooter, compact } = this.props;
4022
4034
  return (React__default.createElement("div", { className: b$i('footer') }, renderFooter === null || renderFooter === void 0 ? void 0 : renderFooter({
4023
4035
  size,
4024
4036
  compact,
@@ -4031,7 +4043,7 @@ class AsideHeader extends React__default.Component {
4031
4043
  };
4032
4044
  this.renderCollapseButton = () => {
4033
4045
  var _a;
4034
- const { compact, dict } = this.props;
4046
+ const { dict, compact } = this.props;
4035
4047
  const typeButton = compact ? Dict.ExpandButton : Dict.CollapseButton;
4036
4048
  return (React__default.createElement(Button, { className: b$i('collapse-button', { compact }), view: "flat", onClick: this.onCollapseButtonClick, title: (_a = dict === null || dict === void 0 ? void 0 : dict[typeButton]) !== null && _a !== void 0 ? _a : defaultDict$2[typeButton] },
4037
4049
  React__default.createElement(NotIcon, { data: controlMenuButtonIcon, className: b$i('collapse-icon'), width: "16", height: "10" })));
@@ -4044,10 +4056,10 @@ class AsideHeader extends React__default.Component {
4044
4056
  var _a, _b;
4045
4057
  (_b = (_a = this.props).onClosePanel) === null || _b === void 0 ? void 0 : _b.call(_a);
4046
4058
  };
4047
- this.onItemClick = (item, collapsed) => {
4059
+ this.onItemClick = (item, collapsed, event) => {
4048
4060
  var _a, _b, _c;
4049
4061
  (_b = (_a = this.props).onClosePanel) === null || _b === void 0 ? void 0 : _b.call(_a);
4050
- (_c = item.onItemClick) === null || _c === void 0 ? void 0 : _c.call(item, item, collapsed);
4062
+ (_c = item.onItemClick) === null || _c === void 0 ? void 0 : _c.call(item, item, collapsed, event);
4051
4063
  };
4052
4064
  this.onLogoClick = (event) => {
4053
4065
  var _a, _b, _c, _d;
@@ -4058,10 +4070,11 @@ class AsideHeader extends React__default.Component {
4058
4070
  render() {
4059
4071
  const { className, compact } = this.props;
4060
4072
  const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;
4061
- return (React__default.createElement("div", { className: b$i({ compact }, className) },
4062
- React__default.createElement("div", { className: b$i('pane-container') },
4063
- this.renderFirstPane(size),
4064
- this.renderSecondPane(size))));
4073
+ return (React__default.createElement(AsideHeaderContextProvider, { value: { compact, size } },
4074
+ React__default.createElement("div", { className: b$i({ compact }, className) },
4075
+ React__default.createElement("div", { className: b$i('pane-container') },
4076
+ this.renderFirstPane(size),
4077
+ this.renderSecondPane(size)))));
4065
4078
  }
4066
4079
  }
4067
4080
  AsideHeader.defaultProps = {
@@ -4109,7 +4122,7 @@ styleInject(css_248z$g);
4109
4122
  const b$h = block('footer-item');
4110
4123
  const FooterItem$1 = (_a) => {
4111
4124
  var { item } = _a, props = __rest(_a, ["item"]);
4112
- return (React__default.createElement(Item$1, Object.assign({}, props, { item: Object.assign({ iconSize: ASIDE_HEADER_FOOTER_ICON_SIZE }, item), className: b$h({ compact: props.compact }), onItemClick: item.onItemClick })));
4125
+ return (React__default.createElement(Item$1, Object.assign({}, props, { item: Object.assign({ iconSize: ASIDE_HEADER_FOOTER_ICON_SIZE }, item), className: b$h({ compact: props.compact }), onItemClick: item.onItemClick, onItemClickCapture: item.onItemClickCapture })));
4113
4126
  };
4114
4127
 
4115
4128
  var css_248z$f = ".ycn-action-bar-group {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n margin: 0;\n padding: 0;\n}\n.ycn-action-bar-group_pull_left {\n margin-left: 0;\n margin-right: auto;\n}\n.ycn-action-bar-group_pull_right {\n margin-left: auto;\n margin-right: 0;\n}\n.ycn-action-bar-group_pull_center {\n margin-left: auto;\n margin-right: auto;\n}";
@@ -5464,5 +5477,5 @@ const configure = (newConfig) => {
5464
5477
  });
5465
5478
  };
5466
5479
 
5467
- export { PublicActionBar as ActionBar, AsideHeader, Dict, Drawer, DrawerItem, FooterItem$1 as FooterItem, HotkeysPanel, Lang, MobileHeader, MobileHeaderDict, FooterItem as MobileHeaderFooterItem, Settings, Title, configure };
5480
+ export { PublicActionBar as ActionBar, AsideHeader, AsideHeaderContextProvider, Dict, Drawer, DrawerItem, FooterItem$1 as FooterItem, HotkeysPanel, Lang, MobileHeader, MobileHeaderDict, FooterItem as MobileHeaderFooterItem, Settings, Title, configure, useAsideHeaderContext };
5468
5481
  //# sourceMappingURL=index.js.map