@gravity-ui/navigation 0.11.1 → 0.12.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 {
@@ -17,7 +17,6 @@ export interface ItemProps extends ItemPopup {
17
17
  onItemClick?: (item: MenuItem, collapsed: boolean, event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
18
18
  }
19
19
  interface ItemInnerProps extends ItemProps {
20
- compact: boolean;
21
20
  className?: string;
22
21
  collapseItems?: MenuItem[];
23
22
  onMouseEnter?: () => void;
@@ -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,7 +14,7 @@ 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
18
  itemWrapper?: (p: MakeItemParams, makeItem: (p: MakeItemParams) => React.ReactNode, opts: {
19
19
  collapsed: boolean;
20
20
  compact: boolean;
@@ -3216,11 +3216,19 @@ const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScro
3216
3216
  }));
3217
3217
  };
3218
3218
 
3219
+ const AsideHeaderContext = React__default["default"].createContext({
3220
+ compact: false,
3221
+ size: ASIDE_HEADER_COMPACT_WIDTH,
3222
+ });
3223
+ const AsideHeaderContextProvider = AsideHeaderContext.Provider;
3224
+ const useAsideHeaderContext = () => React__default["default"].useContext(AsideHeaderContext);
3225
+
3219
3226
  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}";
3220
3227
  styleInject(css_248z$l);
3221
3228
 
3222
3229
  const b$m = block('logo');
3223
- const Logo$1 = ({ text, compact, icon, iconSrc, iconClassName, iconSize = 24, textSize = 15, href = '/', wrapper, onClick, }) => {
3230
+ const Logo$1 = ({ text, icon, iconSrc, iconClassName, iconSize = 24, textSize = 15, href = '/', wrapper, onClick, }) => {
3231
+ const { compact } = useAsideHeaderContext();
3224
3232
  const hasClickHandler = typeof onClick === 'function';
3225
3233
  const hasWrapper = typeof wrapper === 'function';
3226
3234
  const linkProps = hasClickHandler
@@ -3737,7 +3745,8 @@ function renderItemTitle(item) {
3737
3745
  const defaultPopupPlacement = ['right-end'];
3738
3746
  const defaultPopupOffset = [-20, 8];
3739
3747
  const Item$1 = (props) => {
3740
- const { item, compact, className, collapseItems, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupAnchor, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onClosePopup, onItemClick, } = props;
3748
+ const { item, className, collapseItems, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupAnchor, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onClosePopup, onItemClick, } = props;
3749
+ const { compact } = useAsideHeaderContext();
3741
3750
  if (item.type === 'divider') {
3742
3751
  return React__default["default"].createElement("div", { className: b$l('menu-divider') });
3743
3752
  }
@@ -3803,7 +3812,8 @@ const Item$1 = (props) => {
3803
3812
  open && collapsedItem && (collapseItems === null || collapseItems === void 0 ? void 0 : collapseItems.length) && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default["default"].createElement(CollapsedPopup, Object.assign({}, props, { anchorRef: ref, onClose: () => toggleOpen(false) })))));
3804
3813
  };
3805
3814
  Item$1.displayName = 'Item';
3806
- function CollapsedPopup({ compact, onItemClick, collapseItems, anchorRef, onClose, }) {
3815
+ function CollapsedPopup({ onItemClick, collapseItems, anchorRef, onClose, }) {
3816
+ const { compact } = useAsideHeaderContext();
3807
3817
  return (collapseItems === null || collapseItems === void 0 ? void 0 : collapseItems.length) ? (React__default["default"].createElement(uikit.Popup, { placement: POPUP_PLACEMENT, open: true, anchorRef: anchorRef, onClose: onClose },
3808
3818
  React__default["default"].createElement("div", { className: b$l('collapse-items-popup-content') },
3809
3819
  React__default["default"].createElement(uikit.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) => {
@@ -3825,9 +3835,6 @@ function CollapsedPopup({ compact, onItemClick, collapseItems, anchorRef, onClos
3825
3835
  } })))) : null;
3826
3836
  }
3827
3837
 
3828
- 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}";
3829
- styleInject(css_248z$j);
3830
-
3831
3838
  const multipleTooltipContextDefaults = {
3832
3839
  active: false,
3833
3840
  activeIndex: undefined,
@@ -3850,8 +3857,8 @@ class MultipleTooltipProvider extends React__default["default"].PureComponent {
3850
3857
  }
3851
3858
  }
3852
3859
 
3853
- 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}";
3854
- styleInject(css_248z$i);
3860
+ 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}";
3861
+ styleInject(css_248z$j);
3855
3862
 
3856
3863
  const b$k = block('multiple-tooltip');
3857
3864
  const POPUP_OFFSET = [-32, 4];
@@ -3880,11 +3887,15 @@ const MultipleTooltip = ({ items, open, anchorRef, placement, }) => {
3880
3887
  }))));
3881
3888
  };
3882
3889
 
3890
+ 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}";
3891
+ styleInject(css_248z$i);
3892
+
3883
3893
  const b$j = block('composite-bar');
3884
- const CompositeBarView = ({ items, compact, onItemClick, collapseItems, multipleTooltip = true, }) => {
3894
+ const CompositeBarView = ({ items, onItemClick, collapseItems, multipleTooltip = true, }) => {
3885
3895
  const ref = React.useRef(null);
3886
3896
  const tooltipRef = React.useRef(null);
3887
3897
  const { setValue: setMultipleTooltipContextValue, active: multipleTooltipActive, activeIndex, lastClickedItemIndex, } = React.useContext(MultipleTooltipContext);
3898
+ const { compact } = useAsideHeaderContext();
3888
3899
  const onTooltipMouseEnter = React.useCallback((e) => {
3889
3900
  if (!multipleTooltipActive &&
3890
3901
  activeIndex !== lastClickedItemIndex &&
@@ -3931,7 +3942,7 @@ const CompositeBarView = ({ items, compact, onItemClick, collapseItems, multiple
3931
3942
  }
3932
3943
  }
3933
3944
  }, [activeIndex, lastClickedItemIndex, setMultipleTooltipContextValue]);
3934
- const onItemClickByIndex = React.useCallback((itemIndex) => (item, collapsed) => {
3945
+ const onItemClickByIndex = React.useCallback((itemIndex) => (item, collapsed, event) => {
3935
3946
  if (compact &&
3936
3947
  multipleTooltip &&
3937
3948
  itemIndex !== lastClickedItemIndex &&
@@ -3941,14 +3952,14 @@ const CompositeBarView = ({ items, compact, onItemClick, collapseItems, multiple
3941
3952
  active: false,
3942
3953
  });
3943
3954
  }
3944
- onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, collapsed);
3955
+ onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, collapsed, event);
3945
3956
  }, [lastClickedItemIndex, setMultipleTooltipContextValue]);
3946
3957
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
3947
3958
  React__default["default"].createElement("div", { ref: tooltipRef, onMouseEnter: onTooltipMouseEnter, onMouseLeave: onTooltipMouseLeave },
3948
- React__default["default"].createElement(uikit.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["default"].createElement(Item$1, { item: item, onMouseEnter: onMouseEnterByIndex(itemIndex), onMouseLeave: onMouseLeave, onItemClick: onItemClickByIndex(itemIndex), compact: compact, collapseItems: collapseItems, enableTooltip: !multipleTooltip })) })),
3959
+ React__default["default"].createElement(uikit.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["default"].createElement(Item$1, { item: item, onMouseEnter: onMouseEnterByIndex(itemIndex), onMouseLeave: onMouseLeave, onItemClick: onItemClickByIndex(itemIndex), collapseItems: collapseItems, enableTooltip: !multipleTooltip })) })),
3949
3960
  React__default["default"].createElement(MultipleTooltip, { open: compact && multipleTooltip && multipleTooltipActive, anchorRef: tooltipRef, placement: ['right-start'], items: items })));
3950
3961
  };
3951
- const CompositeBar = ({ items, compact, enableCollapsing, dict, onItemClick, multipleTooltip = false, }) => {
3962
+ const CompositeBar = ({ items, enableCollapsing, dict, onItemClick, multipleTooltip = false, }) => {
3952
3963
  if (items.length === 0) {
3953
3964
  return null;
3954
3965
  }
@@ -3959,12 +3970,12 @@ const CompositeBar = ({ items, compact, enableCollapsing, dict, onItemClick, mul
3959
3970
  node = (React__default["default"].createElement("div", { className: b$j({ autosizer: true }), style: { minHeight } }, items.length !== 0 && (React__default["default"].createElement(AutoSizer, null, ({ width, height }) => {
3960
3971
  const { listItems, collapseItems } = getAutosizeListItems(items, height, collapseItem);
3961
3972
  return (React__default["default"].createElement("div", { style: { width, height } },
3962
- React__default["default"].createElement(CompositeBarView, { items: listItems, compact: compact, onItemClick: onItemClick, collapseItems: collapseItems, multipleTooltip: multipleTooltip })));
3973
+ React__default["default"].createElement(CompositeBarView, { items: listItems, onItemClick: onItemClick, collapseItems: collapseItems, multipleTooltip: multipleTooltip })));
3963
3974
  }))));
3964
3975
  }
3965
3976
  else {
3966
3977
  node = (React__default["default"].createElement("div", { className: b$j() },
3967
- React__default["default"].createElement(CompositeBarView, { items: items, compact: compact, onItemClick: onItemClick, multipleTooltip: multipleTooltip })));
3978
+ React__default["default"].createElement(CompositeBarView, { items: items, onItemClick: onItemClick, multipleTooltip: multipleTooltip })));
3968
3979
  }
3969
3980
  return React__default["default"].createElement(MultipleTooltipProvider, null, node);
3970
3981
  };
@@ -3974,7 +3985,8 @@ const RenderContent = React__default["default"].memo(({ renderContent, size }) =
3974
3985
  return React__default["default"].createElement(React__default["default"].Fragment, null, renderContent({ size }));
3975
3986
  });
3976
3987
  RenderContent.displayName = 'RenderContent';
3977
- const Content = ({ size, className, cssSizeVariableName = '--aside-header-size', renderContent, }) => {
3988
+ const Content = ({ size, // TODO: move to context when MobileHeader will support it
3989
+ className, cssSizeVariableName = '--aside-header-size', renderContent, }) => {
3978
3990
  return (React__default["default"].createElement("div", { className: className, style: Object.assign({}, { [cssSizeVariableName]: `${size}px` }) }, typeof renderContent === 'function' && (React__default["default"].createElement(RenderContent, { size: size, renderContent: renderContent }))));
3979
3991
  };
3980
3992
 
@@ -4025,13 +4037,13 @@ class AsideHeader extends React__default["default"].Component {
4025
4037
  super(...arguments);
4026
4038
  this.asideRef = React__default["default"].createRef();
4027
4039
  this.renderFirstPane = (size) => {
4028
- const { dict, menuItems, panelItems, compact, headerDecoration, multipleTooltip } = this.props;
4040
+ const { dict, menuItems, panelItems, headerDecoration, multipleTooltip } = this.props;
4029
4041
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
4030
4042
  React__default["default"].createElement("div", { className: b$i('aside'), style: { width: size } },
4031
4043
  React__default["default"].createElement("div", { className: b$i('aside-popup-anchor'), ref: this.asideRef }),
4032
4044
  React__default["default"].createElement("div", { className: b$i('aside-content', { ['with-decoration']: headerDecoration }) },
4033
4045
  this.renderHeader(),
4034
- (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) ? (React__default["default"].createElement(CompositeBar, { items: menuItems, compact: compact, enableCollapsing: true, dict: dict, onItemClick: this.onItemClick, multipleTooltip: multipleTooltip })) : (React__default["default"].createElement("div", { className: b$i('menu-items') })),
4046
+ (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) ? (React__default["default"].createElement(CompositeBar, { items: menuItems, enableCollapsing: true, dict: dict, onItemClick: this.onItemClick, multipleTooltip: multipleTooltip })) : (React__default["default"].createElement("div", { className: b$i('menu-items') })),
4035
4047
  this.renderFooter(size),
4036
4048
  this.renderCollapseButton())),
4037
4049
  panelItems && this.renderPanels(size)));
@@ -4039,13 +4051,13 @@ class AsideHeader extends React__default["default"].Component {
4039
4051
  this.renderSecondPane = (size) => {
4040
4052
  return (React__default["default"].createElement(Content, { size: size, renderContent: this.props.renderContent, className: b$i('content') }));
4041
4053
  };
4042
- this.renderLogo = () => (React__default["default"].createElement(Logo$1, Object.assign({}, this.props.logo, { compact: this.props.compact, onClick: this.onLogoClick })));
4054
+ this.renderLogo = () => React__default["default"].createElement(Logo$1, Object.assign({}, this.props.logo, { onClick: this.onLogoClick }));
4043
4055
  this.renderHeader = () => (React__default["default"].createElement("div", { className: b$i('header', { ['with-decoration']: this.props.headerDecoration }) },
4044
4056
  this.renderLogo(),
4045
- React__default["default"].createElement(CompositeBar, { items: this.props.subheaderItems, compact: this.props.compact, enableCollapsing: false, onItemClick: this.onItemClick }),
4057
+ React__default["default"].createElement(CompositeBar, { items: this.props.subheaderItems, enableCollapsing: false, onItemClick: this.onItemClick }),
4046
4058
  React__default["default"].createElement(uikit.Icon, { data: headerDividerCollapsedIcon, className: b$i('header-divider'), width: ASIDE_HEADER_COMPACT_WIDTH, height: "29" })));
4047
4059
  this.renderFooter = (size) => {
4048
- const { compact, renderFooter } = this.props;
4060
+ const { renderFooter, compact } = this.props;
4049
4061
  return (React__default["default"].createElement("div", { className: b$i('footer') }, renderFooter === null || renderFooter === void 0 ? void 0 : renderFooter({
4050
4062
  size,
4051
4063
  compact,
@@ -4058,7 +4070,7 @@ class AsideHeader extends React__default["default"].Component {
4058
4070
  };
4059
4071
  this.renderCollapseButton = () => {
4060
4072
  var _a;
4061
- const { compact, dict } = this.props;
4073
+ const { dict, compact } = this.props;
4062
4074
  const typeButton = compact ? exports.Dict.ExpandButton : exports.Dict.CollapseButton;
4063
4075
  return (React__default["default"].createElement(uikit.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] },
4064
4076
  React__default["default"].createElement(NotIcon, { data: controlMenuButtonIcon, className: b$i('collapse-icon'), width: "16", height: "10" })));
@@ -4071,10 +4083,10 @@ class AsideHeader extends React__default["default"].Component {
4071
4083
  var _a, _b;
4072
4084
  (_b = (_a = this.props).onClosePanel) === null || _b === void 0 ? void 0 : _b.call(_a);
4073
4085
  };
4074
- this.onItemClick = (item, collapsed) => {
4086
+ this.onItemClick = (item, collapsed, event) => {
4075
4087
  var _a, _b, _c;
4076
4088
  (_b = (_a = this.props).onClosePanel) === null || _b === void 0 ? void 0 : _b.call(_a);
4077
- (_c = item.onItemClick) === null || _c === void 0 ? void 0 : _c.call(item, item, collapsed);
4089
+ (_c = item.onItemClick) === null || _c === void 0 ? void 0 : _c.call(item, item, collapsed, event);
4078
4090
  };
4079
4091
  this.onLogoClick = (event) => {
4080
4092
  var _a, _b, _c, _d;
@@ -4085,10 +4097,11 @@ class AsideHeader extends React__default["default"].Component {
4085
4097
  render() {
4086
4098
  const { className, compact } = this.props;
4087
4099
  const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;
4088
- return (React__default["default"].createElement("div", { className: b$i({ compact }, className) },
4089
- React__default["default"].createElement("div", { className: b$i('pane-container') },
4090
- this.renderFirstPane(size),
4091
- this.renderSecondPane(size))));
4100
+ return (React__default["default"].createElement(AsideHeaderContextProvider, { value: { compact, size } },
4101
+ React__default["default"].createElement("div", { className: b$i({ compact }, className) },
4102
+ React__default["default"].createElement("div", { className: b$i('pane-container') },
4103
+ this.renderFirstPane(size),
4104
+ this.renderSecondPane(size)))));
4092
4105
  }
4093
4106
  }
4094
4107
  AsideHeader.defaultProps = {
@@ -5493,6 +5506,7 @@ const configure = (newConfig) => {
5493
5506
 
5494
5507
  exports.ActionBar = PublicActionBar;
5495
5508
  exports.AsideHeader = AsideHeader;
5509
+ exports.AsideHeaderContextProvider = AsideHeaderContextProvider;
5496
5510
  exports.Drawer = Drawer;
5497
5511
  exports.DrawerItem = DrawerItem;
5498
5512
  exports.FooterItem = FooterItem$1;
@@ -5502,4 +5516,5 @@ exports.MobileHeaderFooterItem = FooterItem;
5502
5516
  exports.Settings = Settings;
5503
5517
  exports.Title = Title;
5504
5518
  exports.configure = configure;
5519
+ exports.useAsideHeaderContext = useAsideHeaderContext;
5505
5520
  //# sourceMappingURL=index.js.map