@gravity-ui/navigation 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,10 @@
1
1
  import React from 'react';
2
2
  import { IconProps } from '@gravity-ui/uikit';
3
3
  export declare type MenuItemType = 'regular' | 'action' | 'divider';
4
+ export interface MakeItemParams {
5
+ icon?: React.ReactNode;
6
+ title: React.ReactNode;
7
+ }
4
8
  export interface MenuItem {
5
9
  id: string;
6
10
  title: React.ReactNode;
@@ -11,7 +15,11 @@ export interface MenuItem {
11
15
  current?: boolean;
12
16
  pinned?: boolean;
13
17
  onItemClick?: (item: MenuItem, collapsed: boolean) => void;
14
- itemWrapper?: (node: React.ReactNode, item: MenuItem, collapsed: boolean, compact: boolean) => React.ReactNode;
18
+ itemWrapper?: (p: MakeItemParams, makeItem: (p: MakeItemParams) => React.ReactNode, opts: {
19
+ collapsed: boolean;
20
+ compact: boolean;
21
+ item: MenuItem;
22
+ }) => React.ReactNode;
15
23
  rightAdornment?: React.ReactNode;
16
24
  type?: MenuItemType;
17
25
  afterMoreButton?: boolean;
@@ -3849,7 +3849,8 @@ function renderItemTitle(item) {
3849
3849
  }
3850
3850
  const defaultPopupPlacement = ['right-end'];
3851
3851
  const defaultPopupOffset = [-20, 8];
3852
- const Item = ({ item, compact, className, collapseItems, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupAnchor, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, renderPopupContent, onClosePopup, onItemClick, }) => {
3852
+ const Item = (props) => {
3853
+ const { item, compact, className, collapseItems, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupAnchor, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, renderPopupContent, onClosePopup, onItemClick, } = props;
3853
3854
  if (item.type === 'divider') {
3854
3855
  return React__default.createElement("div", { className: b$6('menu-divider') });
3855
3856
  }
@@ -3872,64 +3873,88 @@ const Item = ({ item, compact, className, collapseItems, onMouseLeave, onMouseEn
3872
3873
  }
3873
3874
  onClosePopup === null || onClosePopup === void 0 ? void 0 : onClosePopup();
3874
3875
  }, [onClosePopup]);
3875
- const node = (React__default.createElement("div", { className: b$6({ type, current, compact }, className), ref: ref, onClick: () => {
3876
- if (collapsedItem) {
3877
- /**
3878
- * If we call onItemClick for collapsedItem then:
3879
- * - User get unexpected item in onItemClick callback
3880
- * - onClosePanel calls twice for each popuped item, as result it will prevent opening of panelItems
3881
- */
3882
- toggleOpen(!open);
3883
- setTooltipAnchor(null);
3884
- }
3885
- else {
3886
- onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, false);
3887
- }
3888
- }, onMouseEnter: () => {
3889
- if (!compact) {
3890
- onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter();
3891
- }
3892
- }, onMouseLeave: () => {
3893
- if (!compact) {
3894
- onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave();
3895
- }
3896
- } },
3897
- React__default.createElement("div", { className: b$6('icon-place') }, compact ? (React__default.createElement(React__default.Fragment, null,
3898
- React__default.createElement("div", { onMouseEnter: (event) => {
3899
- if (!open) {
3900
- setTooltipAnchor(event.currentTarget);
3901
- }
3902
- onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter();
3903
- }, onMouseLeave: () => {
3876
+ const makeNode = ({ icon: iconEl, title: titleEl }) => {
3877
+ const createdNode = (React__default.createElement("div", { className: b$6({ type, current, compact }, className), ref: ref, onClick: () => {
3878
+ if (collapsedItem) {
3879
+ /**
3880
+ * If we call onItemClick for collapsedItem then:
3881
+ * - User get unexpected item in onItemClick callback
3882
+ * - onClosePanel calls twice for each popuped item, as result it will prevent opening of panelItems
3883
+ */
3884
+ toggleOpen(!open);
3904
3885
  setTooltipAnchor(null);
3886
+ }
3887
+ else {
3888
+ onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, false);
3889
+ }
3890
+ }, onMouseEnter: () => {
3891
+ if (!compact) {
3892
+ onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter();
3893
+ }
3894
+ }, onMouseLeave: () => {
3895
+ if (!compact) {
3905
3896
  onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave();
3906
- }, className: b$6('btn-icon') }, icon && React__default.createElement(Icon, { data: icon, size: iconSize, className: b$6('icon') })),
3907
- enableTooltip && React__default.createElement(ItemTooltip, { anchor: tooltipAnchor, text: tooltipText }))) : (icon && React__default.createElement(Icon, { data: icon, size: iconSize, className: b$6('icon') }))),
3908
- React__default.createElement("div", { className: b$6('title'), title: typeof item.title === 'string' ? item.title : undefined }, renderItemTitle(item)),
3909
- collapsedItem && (collapseItems === null || collapseItems === void 0 ? void 0 : collapseItems.length) && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default.createElement(Popup, { placement: POPUP_PLACEMENT, open: open, anchorRef: ref, onClose: () => toggleOpen(false) },
3910
- React__default.createElement("div", { className: b$6('collapse-items-popup-content') },
3911
- React__default.createElement(List, { itemClassName: b$6('root-collapse-item'), items: collapseItems, selectedItemIndex: getSelectedItemIndex(collapseItems), itemHeight: POPUP_ITEM_HEIGHT, itemsHeight: collapseItems.length * POPUP_ITEM_HEIGHT, virtualized: false, filterable: false, sortable: false, renderItem: (collapseItem) => {
3912
- const collapseNode = (React__default.createElement("div", { className: b$6('collapse-item'), onClick: () => {
3913
- onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(collapseItem, true);
3914
- } }, renderItemTitle(collapseItem)));
3915
- if (typeof collapseItem.itemWrapper === 'function') {
3916
- return collapseItem.itemWrapper(collapseNode, collapseItem, true, compact);
3897
+ }
3898
+ } },
3899
+ React__default.createElement("div", { className: b$6('icon-place') }, compact ? (React__default.createElement(React__default.Fragment, null,
3900
+ React__default.createElement("div", { onMouseEnter: (event) => {
3901
+ if (!open) {
3902
+ setTooltipAnchor(event.currentTarget);
3917
3903
  }
3918
- return collapseItem.link ? (React__default.createElement("a", { href: collapseItem.link, className: b$6('link') }, collapseNode)) : (collapseNode);
3919
- } })))),
3920
- renderPopupContent && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default.createElement(Popup, { className: b$6('popup'), open: popupVisible, placement: popupPlacement, offset: popupOffset, anchorRef: anchorRef, onClose: onClose }, renderPopupContent()))));
3904
+ onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter();
3905
+ }, onMouseLeave: () => {
3906
+ setTooltipAnchor(null);
3907
+ onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave();
3908
+ }, className: b$6('btn-icon') }, iconEl),
3909
+ enableTooltip && (React__default.createElement(ItemTooltip, { anchor: tooltipAnchor, text: tooltipText })))) : (iconEl)),
3910
+ React__default.createElement("div", { className: b$6('title'), title: typeof item.title === 'string' ? item.title : undefined }, titleEl),
3911
+ renderPopupContent && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default.createElement(Popup, { className: b$6('popup'), open: popupVisible, placement: popupPlacement, offset: popupOffset, anchorRef: anchorRef, onClose: onClose }, renderPopupContent()))));
3912
+ return item.link ? (React__default.createElement("a", { href: item.link, className: b$6('link') }, createdNode)) : (createdNode);
3913
+ };
3914
+ const iconNode = icon ? React__default.createElement(Icon, { data: icon, size: iconSize, className: b$6('icon') }) : null;
3915
+ const titleNode = renderItemTitle(item);
3916
+ const params = { icon: iconNode, title: titleNode };
3917
+ let node;
3918
+ const opts = { compact, collapsed: false, item };
3921
3919
  if (typeof item.itemWrapper === 'function') {
3922
- return item.itemWrapper(node, item, false, compact);
3920
+ node = item.itemWrapper(params, makeNode, opts);
3921
+ }
3922
+ else {
3923
+ node = makeNode(params);
3923
3924
  }
3924
- return item.link ? (React__default.createElement("a", { href: item.link, className: b$6('link') }, node)) : (node);
3925
+ return (React__default.createElement(React__default.Fragment, null,
3926
+ node,
3927
+ 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) })))));
3925
3928
  };
3926
3929
  Item.displayName = 'Item';
3930
+ function CollapsedPopup({ compact, onItemClick, collapseItems, anchorRef, onClose, }) {
3931
+ return (collapseItems === null || collapseItems === void 0 ? void 0 : collapseItems.length) ? (React__default.createElement(Popup, { placement: POPUP_PLACEMENT, open: true, anchorRef: anchorRef, onClose: onClose },
3932
+ React__default.createElement("div", { className: b$6('collapse-items-popup-content') },
3933
+ React__default.createElement(List, { itemClassName: b$6('root-collapse-item'), items: collapseItems, selectedItemIndex: getSelectedItemIndex(collapseItems), itemHeight: POPUP_ITEM_HEIGHT, itemsHeight: collapseItems.length * POPUP_ITEM_HEIGHT, virtualized: false, filterable: false, sortable: false, renderItem: (collapseItem) => {
3934
+ const makeCollapseNode = ({ title: titleEl }) => {
3935
+ const res = (React__default.createElement("div", { className: b$6('collapse-item'), onClick: () => {
3936
+ onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(collapseItem, true);
3937
+ } }, titleEl));
3938
+ return collapseItem.link ? (React__default.createElement("a", { href: collapseItem.link, className: b$6('link') }, res)) : (res);
3939
+ };
3940
+ const titleNode = renderItemTitle(collapseItem);
3941
+ const params = { title: titleNode };
3942
+ const opts = { compact, collapsed: true, item: collapseItem };
3943
+ if (typeof collapseItem.itemWrapper === 'function') {
3944
+ return collapseItem.itemWrapper(params, makeCollapseNode, opts);
3945
+ }
3946
+ else {
3947
+ return makeCollapseNode(params);
3948
+ }
3949
+ } })))) : null;
3950
+ }
3927
3951
 
3928
3952
  var _path$2;
3929
3953
  function _extends$2() { _extends$2 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
3930
3954
  var SvgDots = function SvgDots(props) {
3931
3955
  return /*#__PURE__*/React.createElement("svg", _extends$2({
3932
3956
  xmlns: "http://www.w3.org/2000/svg",
3957
+ viewBox: "0 0 16 16",
3933
3958
  width: 16,
3934
3959
  height: 16
3935
3960
  }, props), _path$2 || (_path$2 = /*#__PURE__*/React.createElement("path", {
@@ -4056,6 +4081,7 @@ var SvgControlMenuButton = function SvgControlMenuButton(props) {
4056
4081
  return /*#__PURE__*/React.createElement("svg", _extends$1({
4057
4082
  width: 8,
4058
4083
  height: 8,
4084
+ viewBox: "0 0 8 8",
4059
4085
  fill: "currentColor",
4060
4086
  xmlns: "http://www.w3.org/2000/svg"
4061
4087
  }, props), _path$1 || (_path$1 = /*#__PURE__*/React.createElement("path", {
@@ -4070,6 +4096,7 @@ var SvgDividerCollapsed = function SvgDividerCollapsed(props) {
4070
4096
  return /*#__PURE__*/React.createElement("svg", _extends({
4071
4097
  width: 56,
4072
4098
  height: 29,
4099
+ viewBox: "0 0 56 29",
4073
4100
  fill: "currentColor",
4074
4101
  xmlns: "http://www.w3.org/2000/svg"
4075
4102
  }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
@@ -4078,7 +4105,7 @@ var SvgDividerCollapsed = function SvgDividerCollapsed(props) {
4078
4105
  };
4079
4106
  var headerDividerCollapsedIcon = SvgDividerCollapsed;
4080
4107
 
4081
- var css_248z$3 = ".yc-root {\n --aside-header-background-color: var(--yc-color-base-info);\n --aside-header-collapse-button-divider-line-color: var(\n --aside-header-header-divider-line-color\n );\n}\n\n.yc-root_theme_light {\n --aside-header-divider-line-color: transparent;\n --aside-header-header-divider-line-color: var(--yc-color-line-generic);\n}\n\n.yc-root_theme_dark {\n --aside-header-divider-line-color: var(--yc-color-base-light-simple-hover);\n --aside-header-header-divider-line-color: var(--yc-color-base-light-simple-hover);\n}\n\n.ycn-aside-header {\n --aside-header-min-width: 56px;\n height: 100%;\n width: 100%;\n position: relative;\n background-color: var(--yc-color-base-background);\n}\n.ycn-aside-header__aside {\n position: sticky;\n top: 0;\n left: 0;\n height: 100vh;\n width: inherit;\n display: flex;\n flex-direction: column;\n background-color: var(--yc-color-base-background);\n z-index: 100;\n box-sizing: border-box;\n}\n.ycn-aside-header__aside::after {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n width: 1px;\n height: 100%;\n content: \"\";\n background-color: var(--aside-header-divider-line-color);\n}\n.ycn-aside-header__aside-popup-anchor {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n}\n.ycn-aside-header__aside-content {\n --gradient-height: 334px;\n display: flex;\n flex-direction: column;\n overflow-x: hidden;\n width: inherit;\n height: inherit;\n position: relative;\n z-index: 2;\n user-select: none;\n background: linear-gradient(180deg, var(--aside-header-background-color) calc(var(--gradient-height) * 0.33), transparent calc(var(--gradient-height) * 0.88));\n}\n.ycn-aside-header__aside-content::after {\n position: absolute;\n top: 0;\n right: -100px;\n bottom: 0;\n width: 100px;\n content: \"\";\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.1), 0px 0px 24px rgba(0, 0, 0, 0.08);\n}\n.ycn-aside-header__aside-content > .ycn-aside-header-logo {\n margin: 8px 0;\n}\n.ycn-aside-header_compact .ycn-aside-header__aside-content {\n background: transparent;\n}\n.ycn-aside-header__header {\n --aside-header-header-divider-height: 29px;\n position: relative;\n z-index: 1;\n flex: none;\n box-sizing: border-box;\n width: 100%;\n padding-top: 8px;\n padding-bottom: 22px;\n}\n.ycn-aside-header__header .ycn-aside-header__header-divider {\n position: absolute;\n bottom: 0;\n left: 0;\n z-index: -2;\n display: none;\n color: var(--aside-header-background-color);\n}\n.ycn-aside-header__header::before {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -2;\n display: none;\n width: 100%;\n height: calc(100% - var(--aside-header-header-divider-height));\n content: \"\";\n background-color: var(--aside-header-background-color);\n}\n.ycn-aside-header__header::after {\n position: absolute;\n bottom: 12px;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 1px;\n content: \"\";\n background-color: var(--aside-header-header-divider-line-color);\n}\n.ycn-aside-header_compact .ycn-aside-header__header::before {\n display: block;\n}\n.ycn-aside-header_compact .ycn-aside-header__header::after {\n display: none;\n}\n.ycn-aside-header_compact .ycn-aside-header__header .ycn-aside-header__header-divider {\n display: block;\n}\n.ycn-aside-header__footer {\n flex-shrink: 0;\n width: 100%;\n margin: 8px 0;\n display: flex;\n flex-direction: column;\n}\n.ycn-aside-header__panels {\n z-index: 98;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n overflow: auto;\n}\n.ycn-aside-header__panel {\n height: 100%;\n}\n.ycn-aside-header__pane-container {\n display: flex;\n outline: none;\n overflow: visible;\n user-select: text;\n flex-direction: row;\n}\n.ycn-aside-header__content {\n width: calc(100% - var(--aside-header-size));\n z-index: 95;\n}\n.ycn-aside-header__collapse-button {\n --yc-button-background-color-hover: transparent;\n overflow: hidden;\n box-sizing: border-box;\n flex: none;\n width: 100%;\n height: 20px;\n border-top: 1px solid var(--aside-header-collapse-button-divider-line-color);\n margin-top: auto;\n}\n.ycn-aside-header__collapse-button:not(.ycn-aside-header__collapse-button_compact) .ycn-aside-header__collapse-icon {\n transform: rotate(180deg);\n}\n.ycn-aside-header__collapse-button .ycn-aside-header__collapse-icon {\n color: var(--yc-color-text-secondary);\n}\n.ycn-aside-header__collapse-button:hover .ycn-aside-header__collapse-icon {\n color: var(--yc-color-text-primary);\n}";
4108
+ var css_248z$3 = ".yc-root {\n --aside-header-background-color: var(--yc-color-base-info);\n --aside-header-collapse-button-divider-line-color: var(\n --aside-header-header-divider-line-color\n );\n}\n\n.yc-root_theme_light {\n --aside-header-divider-line-color: transparent;\n --aside-header-header-divider-line-color: var(--yc-color-line-generic);\n}\n\n.yc-root_theme_dark {\n --aside-header-divider-line-color: var(--yc-color-base-light-simple-hover);\n --aside-header-header-divider-line-color: var(--yc-color-base-light-simple-hover);\n}\n\n.ycn-aside-header {\n --aside-header-min-width: 56px;\n height: 100%;\n width: 100%;\n position: relative;\n background-color: var(--yc-color-base-background);\n}\n.ycn-aside-header__aside {\n position: sticky;\n top: 0;\n left: 0;\n height: 100vh;\n width: inherit;\n display: flex;\n flex-direction: column;\n background-color: var(--yc-color-base-background);\n z-index: 100;\n box-sizing: border-box;\n}\n.ycn-aside-header__aside::after {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n width: 1px;\n height: 100%;\n content: \"\";\n background-color: var(--aside-header-divider-line-color);\n}\n.ycn-aside-header__aside-popup-anchor {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n}\n.ycn-aside-header__aside-content {\n --gradient-height: 334px;\n display: flex;\n flex-direction: column;\n overflow-x: hidden;\n width: inherit;\n height: inherit;\n position: relative;\n z-index: 2;\n user-select: none;\n background: linear-gradient(180deg, var(--aside-header-background-color) calc(var(--gradient-height) * 0.33), transparent calc(var(--gradient-height) * 0.88));\n}\n.ycn-aside-header__aside-content::after {\n position: absolute;\n top: 0;\n right: -100px;\n bottom: 0;\n width: 100px;\n content: \"\";\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.1), 0px 0px 24px rgba(0, 0, 0, 0.08);\n}\n.ycn-aside-header__aside-content > .ycn-aside-header-logo {\n margin: 8px 0;\n}\n.ycn-aside-header_compact .ycn-aside-header__aside-content {\n background: transparent;\n}\n.ycn-aside-header__header {\n --aside-header-header-divider-height: 29px;\n position: relative;\n z-index: 1;\n flex: none;\n box-sizing: border-box;\n width: 100%;\n padding-top: 8px;\n padding-bottom: 22px;\n}\n.ycn-aside-header__header .ycn-aside-header__header-divider {\n position: absolute;\n bottom: 0;\n left: 0;\n z-index: -2;\n display: none;\n color: var(--aside-header-background-color);\n}\n.ycn-aside-header__header::before {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -2;\n display: none;\n width: 100%;\n height: calc(100% - var(--aside-header-header-divider-height));\n content: \"\";\n background-color: var(--aside-header-background-color);\n}\n.ycn-aside-header__header::after {\n position: absolute;\n bottom: 12px;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 1px;\n content: \"\";\n background-color: var(--aside-header-header-divider-line-color);\n}\n.ycn-aside-header_compact .ycn-aside-header__header::before {\n display: block;\n}\n.ycn-aside-header_compact .ycn-aside-header__header::after {\n display: none;\n}\n.ycn-aside-header_compact .ycn-aside-header__header .ycn-aside-header__header-divider {\n display: block;\n}\n.ycn-aside-header__menu-items {\n flex-grow: 1;\n}\n.ycn-aside-header__footer {\n flex-shrink: 0;\n width: 100%;\n margin: 8px 0;\n display: flex;\n flex-direction: column;\n}\n.ycn-aside-header__panels {\n z-index: 98;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n overflow: auto;\n}\n.ycn-aside-header__panel {\n height: 100%;\n}\n.ycn-aside-header__pane-container {\n display: flex;\n outline: none;\n overflow: visible;\n user-select: text;\n flex-direction: row;\n}\n.ycn-aside-header__content {\n width: calc(100% - var(--aside-header-size));\n z-index: 95;\n}\n.ycn-aside-header__collapse-button {\n --yc-button-background-color-hover: transparent;\n overflow: hidden;\n box-sizing: border-box;\n flex: none;\n width: 100%;\n height: 20px;\n border-top: 1px solid var(--aside-header-collapse-button-divider-line-color);\n margin-top: auto;\n}\n.ycn-aside-header__collapse-button:not(.ycn-aside-header__collapse-button_compact) .ycn-aside-header__collapse-icon {\n transform: rotate(180deg);\n}\n.ycn-aside-header__collapse-button .ycn-aside-header__collapse-icon {\n color: var(--yc-color-text-secondary);\n}\n.ycn-aside-header__collapse-button:hover .ycn-aside-header__collapse-icon {\n color: var(--yc-color-text-primary);\n}";
4082
4109
  styleInject(css_248z$3);
4083
4110
 
4084
4111
  const b$4 = block('aside-header');
@@ -4093,7 +4120,7 @@ class AsideHeader extends React__default.Component {
4093
4120
  React__default.createElement("div", { className: b$4('aside-popup-anchor'), ref: this.asideRef }),
4094
4121
  React__default.createElement("div", { className: b$4('aside-content') },
4095
4122
  this.renderHeader(),
4096
- React__default.createElement(CompositeBar, { items: menuItems, compact: compact, enableCollapsing: true, dict: dict, onItemClick: this.onItemClick }),
4123
+ (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) ? (React__default.createElement(CompositeBar, { items: menuItems, compact: compact, enableCollapsing: true, dict: dict, onItemClick: this.onItemClick })) : (React__default.createElement("div", { className: b$4('menu-items') })),
4097
4124
  this.renderFooter(size),
4098
4125
  this.renderCollapseButton())),
4099
4126
  panelItems && this.renderPanels(size)));