@gravity-ui/navigation 0.12.0 → 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.
@@ -15,6 +15,7 @@ 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
21
  className?: string;
@@ -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>;
@@ -15,10 +15,12 @@ export interface MenuItem {
15
15
  current?: boolean;
16
16
  pinned?: boolean;
17
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;
@@ -3718,7 +3718,7 @@ function renderItemTitle(item) {
3718
3718
  const defaultPopupPlacement = ['right-end'];
3719
3719
  const defaultPopupOffset = [-20, 8];
3720
3720
  const Item$1 = (props) => {
3721
- const { item, 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
3722
  const { compact } = useAsideHeaderContext();
3723
3723
  if (item.type === 'divider') {
3724
3724
  return React__default.createElement("div", { className: b$l('menu-divider') });
@@ -3754,7 +3754,7 @@ const Item$1 = (props) => {
3754
3754
  else {
3755
3755
  onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, false, event);
3756
3756
  }
3757
- }, onMouseEnter: () => {
3757
+ }, onClickCapture: onItemClickCapture, onMouseEnter: () => {
3758
3758
  if (!compact) {
3759
3759
  onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter();
3760
3760
  }
@@ -3773,7 +3773,7 @@ const Item$1 = (props) => {
3773
3773
  const titleNode = renderItemTitle(item);
3774
3774
  const params = { icon: iconNode, title: titleNode };
3775
3775
  let node;
3776
- const opts = { compact, collapsed: false, item };
3776
+ const opts = { compact, collapsed: false, item, ref };
3777
3777
  if (typeof item.itemWrapper === 'function') {
3778
3778
  node = item.itemWrapper(params, makeNode, opts);
3779
3779
  }
@@ -3798,7 +3798,7 @@ function CollapsedPopup({ onItemClick, collapseItems, anchorRef, onClose, }) {
3798
3798
  };
3799
3799
  const titleNode = renderItemTitle(collapseItem);
3800
3800
  const params = { title: titleNode };
3801
- const opts = { compact, collapsed: true, item: collapseItem };
3801
+ const opts = { compact, collapsed: true, item: collapseItem, ref: anchorRef };
3802
3802
  if (typeof collapseItem.itemWrapper === 'function') {
3803
3803
  return collapseItem.itemWrapper(params, makeCollapseNode, opts);
3804
3804
  }
@@ -4122,7 +4122,7 @@ styleInject(css_248z$g);
4122
4122
  const b$h = block('footer-item');
4123
4123
  const FooterItem$1 = (_a) => {
4124
4124
  var { item } = _a, props = __rest(_a, ["item"]);
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 })));
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 })));
4126
4126
  };
4127
4127
 
4128
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}";