@gravity-ui/navigation 0.9.0 → 0.10.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.
- package/CHANGELOG.md +9 -0
- package/build/cjs/components/AsideHeader/AsideHeader.d.ts +1 -0
- package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +2 -0
- package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +7 -2
- package/build/cjs/components/CompositeBar/CompositeBar.d.ts +7 -15
- package/build/cjs/components/CompositeBar/Item/Item.d.ts +1 -1
- package/build/cjs/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +8 -0
- package/build/cjs/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +24 -0
- package/build/cjs/components/CompositeBar/MultipleTooltip/index.d.ts +3 -0
- package/build/cjs/components/CompositeBar/utils.d.ts +6 -1
- package/build/cjs/index.js +223 -148
- package/build/cjs/index.js.map +1 -1
- package/build/esm/components/AsideHeader/AsideHeader.d.ts +1 -0
- package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +2 -0
- package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +7 -2
- package/build/esm/components/CompositeBar/CompositeBar.d.ts +7 -15
- package/build/esm/components/CompositeBar/Item/Item.d.ts +1 -1
- package/build/esm/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +8 -0
- package/build/esm/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +24 -0
- package/build/esm/components/CompositeBar/MultipleTooltip/index.d.ts +3 -0
- package/build/esm/components/CompositeBar/utils.d.ts +6 -1
- package/build/esm/index.js +225 -150
- package/build/esm/index.js.map +1 -1
- package/package.json +1 -1
package/build/cjs/index.js
CHANGED
|
@@ -111,8 +111,8 @@ const defaultDict$2 = {
|
|
|
111
111
|
[exports.MobileHeaderDict.OpenBurger]: 'Open menu',
|
|
112
112
|
};
|
|
113
113
|
|
|
114
|
-
function _extends$
|
|
115
|
-
_extends$
|
|
114
|
+
function _extends$3() {
|
|
115
|
+
_extends$3 = Object.assign ? Object.assign.bind() : function (target) {
|
|
116
116
|
for (var i = 1; i < arguments.length; i++) {
|
|
117
117
|
var source = arguments[i];
|
|
118
118
|
for (var key in source) {
|
|
@@ -123,7 +123,7 @@ function _extends$4() {
|
|
|
123
123
|
}
|
|
124
124
|
return target;
|
|
125
125
|
};
|
|
126
|
-
return _extends$
|
|
126
|
+
return _extends$3.apply(this, arguments);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
@@ -2276,7 +2276,7 @@ var CSSTransition = /*#__PURE__*/function (_React$Component) {
|
|
|
2276
2276
|
_this$props.classNames;
|
|
2277
2277
|
var props = _objectWithoutPropertiesLoose(_this$props, ["classNames"]);
|
|
2278
2278
|
|
|
2279
|
-
return /*#__PURE__*/React__default["default"].createElement(Transition, _extends$
|
|
2279
|
+
return /*#__PURE__*/React__default["default"].createElement(Transition, _extends$3({}, props, {
|
|
2280
2280
|
onEnter: this.onEnter,
|
|
2281
2281
|
onEntered: this.onEntered,
|
|
2282
2282
|
onEntering: this.onEntering,
|
|
@@ -2292,7 +2292,7 @@ var CSSTransition = /*#__PURE__*/function (_React$Component) {
|
|
|
2292
2292
|
CSSTransition.defaultProps = {
|
|
2293
2293
|
classNames: ''
|
|
2294
2294
|
};
|
|
2295
|
-
CSSTransition.propTypes = process.env.NODE_ENV !== "production" ? _extends$
|
|
2295
|
+
CSSTransition.propTypes = process.env.NODE_ENV !== "production" ? _extends$3({}, Transition.propTypes, {
|
|
2296
2296
|
/**
|
|
2297
2297
|
* The animation classNames applied to the component as it appears, enters,
|
|
2298
2298
|
* exits or has finished the transition. A single name can be provided, which
|
|
@@ -2654,7 +2654,7 @@ var TransitionGroup = /*#__PURE__*/function (_React$Component) {
|
|
|
2654
2654
|
|
|
2655
2655
|
if (this.mounted) {
|
|
2656
2656
|
this.setState(function (state) {
|
|
2657
|
-
var children = _extends$
|
|
2657
|
+
var children = _extends$3({}, state.children);
|
|
2658
2658
|
|
|
2659
2659
|
delete children[child.key];
|
|
2660
2660
|
return {
|
|
@@ -3157,15 +3157,15 @@ function styleInject(css, ref) {
|
|
|
3157
3157
|
}
|
|
3158
3158
|
}
|
|
3159
3159
|
|
|
3160
|
-
var css_248z$
|
|
3161
|
-
styleInject(css_248z$
|
|
3160
|
+
var css_248z$m = ".ycn-drawer__item {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n height: 100%;\n will-change: transform;\n background-color: var(--yc-color-base-background);\n}\n.ycn-drawer__item_direction_right {\n left: auto;\n right: 0;\n}\n.ycn-drawer__item-transition-enter {\n transform: translate(-100%, 0);\n}\n.ycn-drawer__item-transition_direction_right-enter {\n transform: translate(100%, 0);\n}\n.ycn-drawer__item-transition-enter-active, .ycn-drawer__item-transition_direction_right-enter-active {\n transform: translate(0, 0);\n transition: transform 300ms;\n}\n.ycn-drawer__item-transition-enter-done, .ycn-drawer__item-transition_direction_right-enter-done {\n filter: blur(0px);\n transform: translateZ(0);\n}\n.ycn-drawer__item-transition-exit, .ycn-drawer__item-transition_direction_right-exit {\n transform: translate(0, 0);\n}\n.ycn-drawer__item-transition-exit-active, .ycn-drawer__item-transition_direction_right-exit-active {\n transition: transform 300ms;\n}\n.ycn-drawer__item-transition-exit-active {\n transform: translate(-100%, 0);\n}\n.ycn-drawer__item-transition_direction_right-exit-active {\n transform: translate(100%, 0);\n}\n.ycn-drawer__item-transition-exit-done, .ycn-drawer__item-transition_direction_right-exit-done {\n visibility: hidden;\n}\n.ycn-drawer__veil {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n background-color: var(--yc-color-sfx-veil);\n}\n.ycn-drawer__veil-transition-enter {\n opacity: 0;\n}\n.ycn-drawer__veil-transition-enter-active {\n opacity: 1;\n transition: opacity 300ms;\n}\n.ycn-drawer__veil-transition-exit {\n opacity: 1;\n}\n.ycn-drawer__veil-transition-exit-active {\n opacity: 0;\n transition: opacity 300ms;\n}\n.ycn-drawer__veil-transition-exit-done {\n visibility: hidden;\n}";
|
|
3161
|
+
styleInject(css_248z$m);
|
|
3162
3162
|
|
|
3163
|
-
const b$
|
|
3163
|
+
const b$n = block('drawer');
|
|
3164
3164
|
const TIMEOUT = 300;
|
|
3165
3165
|
const DrawerItem = ({ visible, content, direction, className }) => {
|
|
3166
3166
|
const itemRef = React__default["default"].useRef(null);
|
|
3167
|
-
return (React__default["default"].createElement(CSSTransition, { in: visible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$
|
|
3168
|
-
React__default["default"].createElement("div", { ref: itemRef, className: b$
|
|
3167
|
+
return (React__default["default"].createElement(CSSTransition, { in: visible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$n('item-transition', { direction }), nodeRef: itemRef },
|
|
3168
|
+
React__default["default"].createElement("div", { ref: itemRef, className: b$n('item', { direction }, className) }, content)));
|
|
3169
3169
|
};
|
|
3170
3170
|
const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScrollBody = true, }) => {
|
|
3171
3171
|
let someItemVisible = false;
|
|
@@ -3196,9 +3196,9 @@ const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScro
|
|
|
3196
3196
|
const veilRef = React__default["default"].useRef(null);
|
|
3197
3197
|
return (React__default["default"].createElement(Transition, { in: someItemVisible, timeout: { enter: 0, exit: TIMEOUT }, mountOnEnter: true, unmountOnExit: true, nodeRef: containerRef }, (state) => {
|
|
3198
3198
|
const childrenVisible = someItemVisible && state === 'entered';
|
|
3199
|
-
return (React__default["default"].createElement("div", { ref: containerRef, className: b$
|
|
3200
|
-
React__default["default"].createElement(CSSTransition, { in: childrenVisible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$
|
|
3201
|
-
React__default["default"].createElement("div", { ref: veilRef, className: b$
|
|
3199
|
+
return (React__default["default"].createElement("div", { ref: containerRef, className: b$n(null, className), style: style },
|
|
3200
|
+
React__default["default"].createElement(CSSTransition, { in: childrenVisible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$n('veil-transition'), nodeRef: veilRef },
|
|
3201
|
+
React__default["default"].createElement("div", { ref: veilRef, className: b$n('veil'), onClick: onVeilClick })),
|
|
3202
3202
|
React__default["default"].Children.map(children, (child) => {
|
|
3203
3203
|
const childElem = child;
|
|
3204
3204
|
if (childElem.type === DrawerItem) {
|
|
@@ -3210,10 +3210,10 @@ const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScro
|
|
|
3210
3210
|
}));
|
|
3211
3211
|
};
|
|
3212
3212
|
|
|
3213
|
-
var css_248z$
|
|
3214
|
-
styleInject(css_248z$
|
|
3213
|
+
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(--yc-text-body-2-font-size);\n line-height: var(--yc-text-body-2-line-height);\n font-weight: var(--yc-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}";
|
|
3214
|
+
styleInject(css_248z$l);
|
|
3215
3215
|
|
|
3216
|
-
const b$
|
|
3216
|
+
const b$m = block('logo');
|
|
3217
3217
|
const Logo$1 = ({ text, compact, icon, iconSrc, iconClassName, iconSize = 24, textSize = 15, href = '/', wrapper, onClick, }) => {
|
|
3218
3218
|
const hasClickHandler = typeof onClick === 'function';
|
|
3219
3219
|
const hasWrapper = typeof wrapper === 'function';
|
|
@@ -3231,18 +3231,18 @@ const Logo$1 = ({ text, compact, icon, iconSrc, iconClassName, iconSize = 24, te
|
|
|
3231
3231
|
else if (icon) {
|
|
3232
3232
|
buttonIcon = React__default["default"].createElement(uikit.Icon, { data: icon, size: iconSize, className: iconClassName });
|
|
3233
3233
|
}
|
|
3234
|
-
const button = (React__default["default"].createElement(uikit.Button, Object.assign({ view: "flat", size: "l", className: b$
|
|
3234
|
+
const button = (React__default["default"].createElement(uikit.Button, Object.assign({ view: "flat", size: "l", className: b$m('btn-logo'), component: hasWrapper ? 'span' : undefined, onClick: onClick }, linkProps), buttonIcon));
|
|
3235
3235
|
let logo;
|
|
3236
3236
|
if (typeof text === 'function') {
|
|
3237
3237
|
logo = text();
|
|
3238
3238
|
}
|
|
3239
3239
|
else {
|
|
3240
|
-
logo = (React__default["default"].createElement("div", { className: b$
|
|
3240
|
+
logo = (React__default["default"].createElement("div", { className: b$m('logo'), style: { fontSize: textSize } }, text));
|
|
3241
3241
|
}
|
|
3242
|
-
return (React__default["default"].createElement("div", { className: b$
|
|
3243
|
-
React__default["default"].createElement("div", { className: b$
|
|
3242
|
+
return (React__default["default"].createElement("div", { className: b$m() },
|
|
3243
|
+
React__default["default"].createElement("div", { className: b$m('logo-btn-place') }, hasWrapper ? wrapper(button, compact) : button),
|
|
3244
3244
|
!compact &&
|
|
3245
|
-
(hasWrapper ? (React__default["default"].createElement("div", { onClick: onClick }, wrapper(logo, compact))) : (React__default["default"].createElement("a", Object.assign({}, linkProps, { className: b$
|
|
3245
|
+
(hasWrapper ? (React__default["default"].createElement("div", { onClick: onClick }, wrapper(logo, compact))) : (React__default["default"].createElement("a", Object.assign({}, linkProps, { className: b$m('logo-link'), onClick: onClick }), logo)))));
|
|
3246
3246
|
};
|
|
3247
3247
|
|
|
3248
3248
|
var classCallCheck = function (instance, Constructor) {
|
|
@@ -3269,7 +3269,7 @@ var createClass = function () {
|
|
|
3269
3269
|
};
|
|
3270
3270
|
}();
|
|
3271
3271
|
|
|
3272
|
-
var _extends$
|
|
3272
|
+
var _extends$2 = Object.assign || function (target) {
|
|
3273
3273
|
for (var i = 1; i < arguments.length; i++) {
|
|
3274
3274
|
var source = arguments[i];
|
|
3275
3275
|
|
|
@@ -3712,7 +3712,7 @@ var AutoSizer = function (_React$PureComponent) {
|
|
|
3712
3712
|
{
|
|
3713
3713
|
className: className,
|
|
3714
3714
|
ref: this._setRef,
|
|
3715
|
-
style: _extends$
|
|
3715
|
+
style: _extends$2({}, outerStyle, style)
|
|
3716
3716
|
},
|
|
3717
3717
|
!bailoutOnChildren && children(childParams)
|
|
3718
3718
|
);
|
|
@@ -3773,17 +3773,66 @@ function getItemsMinHeight(items) {
|
|
|
3773
3773
|
getItemsHeight(afterMoreButtonItems) +
|
|
3774
3774
|
(pinnedItems.length === items.length ? 0 : ITEM_HEIGHT));
|
|
3775
3775
|
}
|
|
3776
|
+
function getMoreButtonItem(dict) {
|
|
3777
|
+
var _a;
|
|
3778
|
+
const title = (_a = dict === null || dict === void 0 ? void 0 : dict[exports.Dict.MoreButton]) !== null && _a !== void 0 ? _a : defaultDict$2[exports.Dict.MoreButton];
|
|
3779
|
+
return {
|
|
3780
|
+
id: COLLAPSE_ITEM_ID,
|
|
3781
|
+
title,
|
|
3782
|
+
icon: icons.Ellipsis,
|
|
3783
|
+
iconSize: 18,
|
|
3784
|
+
};
|
|
3785
|
+
}
|
|
3786
|
+
function getAutosizeListItems(items, height, collapseItem) {
|
|
3787
|
+
var _a, _b, _c;
|
|
3788
|
+
const afterMoreButtonItems = items.filter((item) => item.afterMoreButton);
|
|
3789
|
+
const regularItems = items.filter((item) => !item.afterMoreButton);
|
|
3790
|
+
const listItems = [...regularItems, ...afterMoreButtonItems];
|
|
3791
|
+
const allItemsHeight = getItemsHeight(listItems);
|
|
3792
|
+
if (allItemsHeight <= height) {
|
|
3793
|
+
return { listItems, collapseItems: [] };
|
|
3794
|
+
}
|
|
3795
|
+
const collapseItemHeight = getItemHeight$1(collapseItem);
|
|
3796
|
+
listItems.splice(regularItems.length, 0, collapseItem);
|
|
3797
|
+
const collapseItems = [];
|
|
3798
|
+
let listHeight = allItemsHeight + collapseItemHeight;
|
|
3799
|
+
let index = listItems.length;
|
|
3800
|
+
while (listHeight > height) {
|
|
3801
|
+
if (index === 0) {
|
|
3802
|
+
break;
|
|
3803
|
+
}
|
|
3804
|
+
index--;
|
|
3805
|
+
const item = listItems[index];
|
|
3806
|
+
if (item.pinned || item.id === COLLAPSE_ITEM_ID || item.afterMoreButton) {
|
|
3807
|
+
continue;
|
|
3808
|
+
}
|
|
3809
|
+
if (item.type === 'divider') {
|
|
3810
|
+
if (index + 1 < listItems.length && ((_a = listItems[index + 1]) === null || _a === void 0 ? void 0 : _a.type) === 'divider') {
|
|
3811
|
+
listHeight -= getItemHeight$1(item);
|
|
3812
|
+
listItems.splice(index, 1);
|
|
3813
|
+
}
|
|
3814
|
+
continue;
|
|
3815
|
+
}
|
|
3816
|
+
listHeight -= getItemHeight$1(item);
|
|
3817
|
+
collapseItems.unshift(...listItems.splice(index, 1));
|
|
3818
|
+
}
|
|
3819
|
+
if (((_b = listItems[index]) === null || _b === void 0 ? void 0 : _b.type) === 'divider' &&
|
|
3820
|
+
(index === 0 || ((_c = listItems[index - 1]) === null || _c === void 0 ? void 0 : _c.type) === 'divider')) {
|
|
3821
|
+
listItems.splice(index, 1);
|
|
3822
|
+
}
|
|
3823
|
+
return { listItems, collapseItems };
|
|
3824
|
+
}
|
|
3776
3825
|
|
|
3777
|
-
var css_248z$
|
|
3778
|
-
styleInject(css_248z$
|
|
3826
|
+
var css_248z$k = ".ycn-composite-bar-item {\n --composite-bar-item-action-size: 36px;\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n cursor: pointer;\n}\n.ycn-composite-bar-item__icon {\n color: var(--yc-color-text-misc);\n}\n.ycn-composite-bar-item__icon-place {\n flex-shrink: 0;\n width: var(--aside-header-min-width);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n.ycn-composite-bar-item__title {\n display: flex;\n overflow: hidden;\n}\n.ycn-composite-bar-item__title-text {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.ycn-composite-bar-item__title-adornment {\n margin: 0 10px;\n}\n.ycn-composite-bar-item__collapse-item {\n display: flex;\n padding: 0 16px;\n align-items: center;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.ycn-composite-bar-item__collapse-item .ycn-composite-bar-item__title-adornment {\n margin-right: 0;\n}\n.ycn-composite-bar-item__menu-divider {\n margin: 0 8px;\n width: 100%;\n border-top: 1px solid var(--yc-color-line-generic);\n cursor: default;\n}\n.ycn-composite-bar-item__collapse-items-popup-content {\n padding: 4px 0;\n}\n.ycn-composite-bar-item__link {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n}\n.ycn-composite-bar-item__link, .ycn-composite-bar-item__link:hover, .ycn-composite-bar-item__link:active, .ycn-composite-bar-item__link:visited, .ycn-composite-bar-item__link:focus {\n text-decoration: none;\n outline: none;\n color: inherit;\n}\n.ycn-composite-bar-item__btn-icon {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ycn-composite-bar-item_type_action {\n justify-content: center;\n height: var(--composite-bar-item-action-size);\n margin: 0 10px 8px;\n background: var(--yc-color-base-float);\n box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.03), 0px 5px 6px rgba(0, 0, 0, 0.12);\n border-radius: var(--composite-bar-item-action-size);\n transition: transform 0.1s ease-out, background-color 0.15s linear;\n}\n.ycn-composite-bar-item_type_action:focus {\n box-shadow: 0 0 0 2px var(--yc-color-line-misc);\n}\n.ycn-composite-bar-item_type_action:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.ycn-composite-bar-item_type_action:hover {\n background-color: var(--yc-color-base-float-hover);\n}\n.ycn-composite-bar-item_type_action:active {\n box-shadow: 0 1px 2px var(--yc-color-sfx-shadow);\n transition: none;\n transform: scale(0.96);\n}\n.ycn-composite-bar-item_type_action .ycn-composite-bar-item__icon-place {\n width: var(--composite-bar-item-action-size);\n}\n.ycn-composite-bar-item_type_action .ycn-composite-bar-item__title {\n margin-right: 16px;\n}\n.ycn-composite-bar-item__icon-tooltip_item-type_action {\n margin-left: 10px;\n}\n.ycn-composite-bar-item:not(.ycn-composite-bar-item_compact).ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular {\n background-color: var(--yc-color-base-selection);\n}\n.ycn-composite-bar-item:not(.ycn-composite-bar-item_compact):not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular {\n background-color: var(--yc-color-base-simple-hover);\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_type_action {\n width: var(--composite-bar-item-action-size);\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_type_action .ycn-composite-bar-item__title {\n margin: 0;\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon {\n position: relative;\n background-color: transparent;\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: -1;\n width: 38px;\n height: 38px;\n margin-top: -19px;\n margin-left: -19px;\n border-radius: 7px;\n}\n.ycn-composite-bar-item_compact.ycn-composite-bar-item_current.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n background-color: var(--yc-color-base-selection);\n}\n.ycn-composite-bar-item_compact:not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon {\n position: relative;\n background-color: transparent;\n}\n.ycn-composite-bar-item_compact:not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: -1;\n width: 38px;\n height: 38px;\n margin-top: -19px;\n margin-left: -19px;\n border-radius: 7px;\n}\n.ycn-composite-bar-item_compact:not(.ycn-composite-bar-item_current):hover.ycn-composite-bar-item_type_regular .ycn-composite-bar-item__btn-icon::before {\n background-color: var(--yc-color-base-simple-hover);\n}";
|
|
3827
|
+
styleInject(css_248z$k);
|
|
3779
3828
|
|
|
3780
|
-
const b$
|
|
3829
|
+
const b$l = block('composite-bar-item');
|
|
3781
3830
|
function renderItemTitle(item) {
|
|
3782
|
-
let titleNode = React__default["default"].createElement("div", { className: b$
|
|
3831
|
+
let titleNode = React__default["default"].createElement("div", { className: b$l('title-text') }, item.title);
|
|
3783
3832
|
if (item.rightAdornment) {
|
|
3784
3833
|
titleNode = (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
3785
3834
|
titleNode,
|
|
3786
|
-
React__default["default"].createElement("div", { className: b$
|
|
3835
|
+
React__default["default"].createElement("div", { className: b$l('title-adornment') }, item.rightAdornment)));
|
|
3787
3836
|
}
|
|
3788
3837
|
return titleNode;
|
|
3789
3838
|
}
|
|
@@ -3792,7 +3841,7 @@ const defaultPopupOffset = [-20, 8];
|
|
|
3792
3841
|
const Item$1 = (props) => {
|
|
3793
3842
|
const { item, compact, className, collapseItems, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupAnchor, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onClosePopup, onItemClick, } = props;
|
|
3794
3843
|
if (item.type === 'divider') {
|
|
3795
|
-
return React__default["default"].createElement("div", { className: b$
|
|
3844
|
+
return React__default["default"].createElement("div", { className: b$l('menu-divider') });
|
|
3796
3845
|
}
|
|
3797
3846
|
const [open, toggleOpen] = React__default["default"].useState(false);
|
|
3798
3847
|
const ref = React__default["default"].useRef(null);
|
|
@@ -3813,7 +3862,7 @@ const Item$1 = (props) => {
|
|
|
3813
3862
|
onClosePopup === null || onClosePopup === void 0 ? void 0 : onClosePopup();
|
|
3814
3863
|
}, [onClosePopup]);
|
|
3815
3864
|
const makeNode = ({ icon: iconEl, title: titleEl }) => {
|
|
3816
|
-
const createdNode = (React__default["default"].createElement("div", { className: b$
|
|
3865
|
+
const createdNode = (React__default["default"].createElement("div", { className: b$l({ type, current, compact }, className), ref: ref, onClick: (event) => {
|
|
3817
3866
|
if (collapsedItem) {
|
|
3818
3867
|
/**
|
|
3819
3868
|
* If we call onItemClick for collapsedItem then:
|
|
@@ -3823,7 +3872,7 @@ const Item$1 = (props) => {
|
|
|
3823
3872
|
toggleOpen(!open);
|
|
3824
3873
|
}
|
|
3825
3874
|
else {
|
|
3826
|
-
onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, false);
|
|
3875
|
+
onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, false, event);
|
|
3827
3876
|
}
|
|
3828
3877
|
}, onMouseEnter: () => {
|
|
3829
3878
|
if (!compact) {
|
|
@@ -3834,13 +3883,13 @@ const Item$1 = (props) => {
|
|
|
3834
3883
|
onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave();
|
|
3835
3884
|
}
|
|
3836
3885
|
} },
|
|
3837
|
-
React__default["default"].createElement("div", { className: b$
|
|
3838
|
-
React__default["default"].createElement("div", { onMouseEnter: () => onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(), onMouseLeave: () => onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(), className: b$
|
|
3839
|
-
React__default["default"].createElement("div", { className: b$
|
|
3840
|
-
renderPopupContent && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default["default"].createElement(uikit.Popup, { className: b$
|
|
3841
|
-
return item.link ? (React__default["default"].createElement("a", { href: item.link, className: b$
|
|
3886
|
+
React__default["default"].createElement("div", { className: b$l('icon-place') }, compact ? (React__default["default"].createElement(uikit.Tooltip, { content: tooltipText, disabled: !enableTooltip || (collapsedItem && open), placement: "right", className: b$l('icon-tooltip', { 'item-type': type }) },
|
|
3887
|
+
React__default["default"].createElement("div", { onMouseEnter: () => onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(), onMouseLeave: () => onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(), className: b$l('btn-icon') }, iconEl))) : (iconEl)),
|
|
3888
|
+
React__default["default"].createElement("div", { className: b$l('title'), title: typeof item.title === 'string' ? item.title : undefined }, titleEl),
|
|
3889
|
+
renderPopupContent && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default["default"].createElement(uikit.Popup, { className: b$l('popup'), open: popupVisible, keepMounted: popupKeepMounted, placement: popupPlacement, offset: popupOffset, anchorRef: anchorRef, onClose: onClose }, renderPopupContent()))));
|
|
3890
|
+
return item.link ? (React__default["default"].createElement("a", { href: item.link, className: b$l('link') }, createdNode)) : (createdNode);
|
|
3842
3891
|
};
|
|
3843
|
-
const iconNode = icon ? React__default["default"].createElement(uikit.Icon, { data: icon, size: iconSize, className: b$
|
|
3892
|
+
const iconNode = icon ? React__default["default"].createElement(uikit.Icon, { data: icon, size: iconSize, className: b$l('icon') }) : null;
|
|
3844
3893
|
const titleNode = renderItemTitle(item);
|
|
3845
3894
|
const params = { icon: iconNode, title: titleNode };
|
|
3846
3895
|
let node;
|
|
@@ -3858,13 +3907,13 @@ const Item$1 = (props) => {
|
|
|
3858
3907
|
Item$1.displayName = 'Item';
|
|
3859
3908
|
function CollapsedPopup({ compact, onItemClick, collapseItems, anchorRef, onClose, }) {
|
|
3860
3909
|
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 },
|
|
3861
|
-
React__default["default"].createElement("div", { className: b$
|
|
3862
|
-
React__default["default"].createElement(uikit.List, { itemClassName: b$
|
|
3910
|
+
React__default["default"].createElement("div", { className: b$l('collapse-items-popup-content') },
|
|
3911
|
+
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) => {
|
|
3863
3912
|
const makeCollapseNode = ({ title: titleEl }) => {
|
|
3864
|
-
const res = (React__default["default"].createElement("div", { className: b$
|
|
3865
|
-
onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(collapseItem, true);
|
|
3913
|
+
const res = (React__default["default"].createElement("div", { className: b$l('collapse-item'), onClick: (event) => {
|
|
3914
|
+
onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(collapseItem, true, event);
|
|
3866
3915
|
} }, titleEl));
|
|
3867
|
-
return collapseItem.link ? (React__default["default"].createElement("a", { href: collapseItem.link, className: b$
|
|
3916
|
+
return collapseItem.link ? (React__default["default"].createElement("a", { href: collapseItem.link, className: b$l('link') }, res)) : (res);
|
|
3868
3917
|
};
|
|
3869
3918
|
const titleNode = renderItemTitle(collapseItem);
|
|
3870
3919
|
const params = { title: titleNode };
|
|
@@ -3878,123 +3927,149 @@ function CollapsedPopup({ compact, onItemClick, collapseItems, anchorRef, onClos
|
|
|
3878
3927
|
} })))) : null;
|
|
3879
3928
|
}
|
|
3880
3929
|
|
|
3881
|
-
var
|
|
3882
|
-
|
|
3883
|
-
var SvgDots = function SvgDots(props) {
|
|
3884
|
-
return /*#__PURE__*/React__namespace.createElement("svg", _extends$2({
|
|
3885
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
3886
|
-
viewBox: "0 0 16 16",
|
|
3887
|
-
width: 16,
|
|
3888
|
-
height: 16
|
|
3889
|
-
}, props), _path$2 || (_path$2 = /*#__PURE__*/React__namespace.createElement("path", {
|
|
3890
|
-
d: "M14 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 14 6.125zm-5.906 0a1.874 1.874 0 1 1 0 3.749 1.874 1.874 0 0 1 0-3.749zM2 6.125a1.874 1.874 0 1 1 .001 3.749A1.874 1.874 0 0 1 2 6.125z",
|
|
3891
|
-
fill: "currentColor",
|
|
3892
|
-
fillRule: "evenodd"
|
|
3893
|
-
})));
|
|
3894
|
-
};
|
|
3895
|
-
var dotsIcon = SvgDots;
|
|
3896
|
-
|
|
3897
|
-
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}";
|
|
3898
|
-
styleInject(css_248z$i);
|
|
3930
|
+
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}";
|
|
3931
|
+
styleInject(css_248z$j);
|
|
3899
3932
|
|
|
3900
|
-
const
|
|
3901
|
-
|
|
3933
|
+
const multipleTooltipContextDefaults = {
|
|
3934
|
+
active: false,
|
|
3935
|
+
activeIndex: undefined,
|
|
3936
|
+
hideCollapseItemTooltip: false,
|
|
3937
|
+
lastClickedItemIndex: undefined,
|
|
3938
|
+
setValue: () => { },
|
|
3939
|
+
};
|
|
3940
|
+
const MultipleTooltipContext = React__default["default"].createContext(multipleTooltipContextDefaults);
|
|
3941
|
+
class MultipleTooltipProvider extends React__default["default"].PureComponent {
|
|
3902
3942
|
constructor() {
|
|
3903
3943
|
super(...arguments);
|
|
3904
|
-
this.state = {
|
|
3905
|
-
|
|
3944
|
+
this.state = Object.assign({}, multipleTooltipContextDefaults);
|
|
3945
|
+
this.setValue = (value) => {
|
|
3946
|
+
this.setState(Object.assign({}, value));
|
|
3906
3947
|
};
|
|
3907
|
-
this.listRef = React__default["default"].createRef();
|
|
3908
3948
|
}
|
|
3909
3949
|
render() {
|
|
3910
|
-
const {
|
|
3911
|
-
|
|
3912
|
-
return null;
|
|
3913
|
-
}
|
|
3914
|
-
if (!enableCollapsing) {
|
|
3915
|
-
return React__default["default"].createElement("div", { className: b$j() }, this.renderMenu());
|
|
3916
|
-
}
|
|
3917
|
-
const minHeight = getItemsMinHeight(items);
|
|
3918
|
-
return (React__default["default"].createElement("div", { className: b$j({ autosizer: true }), style: { minHeight } }, items.length !== 0 && (React__default["default"].createElement(AutoSizer, null, ({ width, height }) => {
|
|
3919
|
-
const style = {
|
|
3920
|
-
width,
|
|
3921
|
-
height,
|
|
3922
|
-
};
|
|
3923
|
-
return React__default["default"].createElement("div", { style: style }, this.renderAutosizeMenu(height));
|
|
3924
|
-
}))));
|
|
3925
|
-
}
|
|
3926
|
-
renderAutosizeMenu(height) {
|
|
3927
|
-
const { compact, onItemClick } = this.props;
|
|
3928
|
-
const { listItems, collapseItems } = this.getAutosizeListItems(height);
|
|
3929
|
-
return (React__default["default"].createElement(uikit.List, { ref: this.listRef, items: listItems, selectedItemIndex: getSelectedItemIndex$1(listItems), itemHeight: getItemHeight$1, itemClassName: b$j('root-menu-item'), itemsHeight: getItemsHeight, virtualized: false, filterable: false, sortable: false, renderItem: (item) => (React__default["default"].createElement(Item$1, { item: item, onMouseLeave: () => {
|
|
3930
|
-
var _a;
|
|
3931
|
-
if (compact) {
|
|
3932
|
-
(_a = this.listRef.current) === null || _a === void 0 ? void 0 : _a.activateItem(undefined);
|
|
3933
|
-
}
|
|
3934
|
-
}, compact: compact, collapseItems: collapseItems, onItemClick: onItemClick })) }));
|
|
3950
|
+
const { children } = this.props;
|
|
3951
|
+
return (React__default["default"].createElement(MultipleTooltipContext.Provider, { value: Object.assign(Object.assign({}, this.state), { setValue: this.setValue }) }, children));
|
|
3935
3952
|
}
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3953
|
+
}
|
|
3954
|
+
|
|
3955
|
+
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(--yc-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(--yc-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(--yc-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}";
|
|
3956
|
+
styleInject(css_248z$i);
|
|
3957
|
+
|
|
3958
|
+
const b$k = block('multiple-tooltip');
|
|
3959
|
+
const POPUP_OFFSET = [-32, 4];
|
|
3960
|
+
const POPUP_MODIFIERS = [
|
|
3961
|
+
{
|
|
3962
|
+
name: 'preventOverflow',
|
|
3963
|
+
enabled: false,
|
|
3964
|
+
},
|
|
3965
|
+
];
|
|
3966
|
+
const MultipleTooltip = ({ items, open, anchorRef, placement, }) => {
|
|
3967
|
+
const { activeIndex, hideCollapseItemTooltip } = React__default["default"].useContext(MultipleTooltipContext);
|
|
3968
|
+
const activeItem = activeIndex === undefined ? null : items[activeIndex];
|
|
3969
|
+
return (React__default["default"].createElement(uikit.Popup, { open: open, anchorRef: anchorRef, placement: placement, offset: POPUP_OFFSET, className: b$k(null), modifiers: POPUP_MODIFIERS },
|
|
3970
|
+
React__default["default"].createElement("div", { className: b$k('items-container') }, items
|
|
3971
|
+
.filter(({ type = 'regular', id }) => !hideCollapseItemTooltip ||
|
|
3972
|
+
(id !== COLLAPSE_ITEM_ID && type !== 'action'))
|
|
3973
|
+
.map((item, idx) => {
|
|
3974
|
+
switch (item.type) {
|
|
3975
|
+
case 'divider':
|
|
3976
|
+
return (React__default["default"].createElement("div", { className: b$k('item', { divider: true }), key: idx }, item.title));
|
|
3977
|
+
default:
|
|
3978
|
+
return (React__default["default"].createElement("div", { className: b$k('item', {
|
|
3979
|
+
active: item === activeItem,
|
|
3980
|
+
}), key: idx }, item.title));
|
|
3981
|
+
}
|
|
3982
|
+
}))));
|
|
3983
|
+
};
|
|
3984
|
+
|
|
3985
|
+
const b$j = block('composite-bar');
|
|
3986
|
+
const CompositeBarView = ({ items, compact, onItemClick, collapseItems, multipleTooltip = true, }) => {
|
|
3987
|
+
const ref = React.useRef(null);
|
|
3988
|
+
const tooltipRef = React.useRef(null);
|
|
3989
|
+
const { setValue: setMultipleTooltipContextValue, active: multipleTooltipActive, activeIndex, lastClickedItemIndex, } = React.useContext(MultipleTooltipContext);
|
|
3990
|
+
const onTooltipMouseEnter = React.useCallback((e) => {
|
|
3991
|
+
if (!multipleTooltipActive &&
|
|
3992
|
+
activeIndex !== lastClickedItemIndex &&
|
|
3993
|
+
e.clientX <= ASIDE_HEADER_COMPACT_WIDTH) {
|
|
3994
|
+
setMultipleTooltipContextValue === null || setMultipleTooltipContextValue === void 0 ? void 0 : setMultipleTooltipContextValue({
|
|
3995
|
+
active: true,
|
|
3996
|
+
});
|
|
3965
3997
|
}
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
|
|
3972
|
-
|
|
3973
|
-
|
|
3974
|
-
|
|
3998
|
+
}, [multipleTooltipActive, activeIndex, lastClickedItemIndex, setMultipleTooltipContextValue]);
|
|
3999
|
+
const onTooltipMouseLeave = React.useCallback(() => {
|
|
4000
|
+
if (multipleTooltipActive) {
|
|
4001
|
+
setMultipleTooltipContextValue === null || setMultipleTooltipContextValue === void 0 ? void 0 : setMultipleTooltipContextValue({
|
|
4002
|
+
active: false,
|
|
4003
|
+
lastClickedItemIndex: undefined,
|
|
4004
|
+
});
|
|
4005
|
+
}
|
|
4006
|
+
}, [multipleTooltipActive, setMultipleTooltipContextValue]);
|
|
4007
|
+
const onMouseEnterByIndex = React.useCallback((itemIndex) => () => {
|
|
4008
|
+
if (multipleTooltip) {
|
|
4009
|
+
let multipleTooltipActiveValue = multipleTooltipActive;
|
|
4010
|
+
if (!multipleTooltipActive && itemIndex !== lastClickedItemIndex) {
|
|
4011
|
+
multipleTooltipActiveValue = true;
|
|
3975
4012
|
}
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
continue;
|
|
4013
|
+
if (activeIndex === itemIndex &&
|
|
4014
|
+
multipleTooltipActive === multipleTooltipActiveValue) {
|
|
4015
|
+
return;
|
|
3980
4016
|
}
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
4017
|
+
setMultipleTooltipContextValue({
|
|
4018
|
+
activeIndex: itemIndex,
|
|
4019
|
+
active: multipleTooltipActiveValue,
|
|
4020
|
+
});
|
|
4021
|
+
}
|
|
4022
|
+
}, [multipleTooltipActive, activeIndex, lastClickedItemIndex, setMultipleTooltipContextValue]);
|
|
4023
|
+
const onMouseLeave = React.useCallback(() => {
|
|
4024
|
+
var _a;
|
|
4025
|
+
if (compact) {
|
|
4026
|
+
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.activateItem(undefined);
|
|
4027
|
+
if (multipleTooltip &&
|
|
4028
|
+
(activeIndex !== undefined || lastClickedItemIndex !== undefined)) {
|
|
4029
|
+
setMultipleTooltipContextValue({
|
|
4030
|
+
activeIndex: undefined,
|
|
4031
|
+
lastClickedItemIndex: undefined,
|
|
4032
|
+
});
|
|
3987
4033
|
}
|
|
3988
|
-
listHeight -= getItemHeight$1(item);
|
|
3989
|
-
collapseItems.unshift(...listItems.splice(index, 1));
|
|
3990
4034
|
}
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
4035
|
+
}, [activeIndex, lastClickedItemIndex, setMultipleTooltipContextValue]);
|
|
4036
|
+
const onItemClickByIndex = React.useCallback((itemIndex) => (item, collapsed) => {
|
|
4037
|
+
if (compact &&
|
|
4038
|
+
multipleTooltip &&
|
|
4039
|
+
itemIndex !== lastClickedItemIndex &&
|
|
4040
|
+
item.id !== COLLAPSE_ITEM_ID) {
|
|
4041
|
+
setMultipleTooltipContextValue({
|
|
4042
|
+
lastClickedItemIndex: itemIndex,
|
|
4043
|
+
active: false,
|
|
4044
|
+
});
|
|
3994
4045
|
}
|
|
3995
|
-
|
|
4046
|
+
onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, collapsed);
|
|
4047
|
+
}, [lastClickedItemIndex, setMultipleTooltipContextValue]);
|
|
4048
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
4049
|
+
React__default["default"].createElement("div", { ref: tooltipRef, onMouseEnter: onTooltipMouseEnter, onMouseLeave: onTooltipMouseLeave },
|
|
4050
|
+
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, compact: compact, collapseItems: collapseItems, enableTooltip: !multipleTooltip })) })),
|
|
4051
|
+
React__default["default"].createElement(MultipleTooltip, { open: compact && multipleTooltip && multipleTooltipActive, anchorRef: tooltipRef, placement: ['right-start'], items: items })));
|
|
4052
|
+
};
|
|
4053
|
+
const CompositeBar = ({ items, compact, enableCollapsing, dict, onItemClick, multipleTooltip = false, }) => {
|
|
4054
|
+
if (items.length === 0) {
|
|
4055
|
+
return null;
|
|
3996
4056
|
}
|
|
3997
|
-
|
|
4057
|
+
let node = null;
|
|
4058
|
+
if (enableCollapsing) {
|
|
4059
|
+
const minHeight = getItemsMinHeight(items);
|
|
4060
|
+
const collapseItem = getMoreButtonItem(dict);
|
|
4061
|
+
node = (React__default["default"].createElement("div", { className: b$j({ autosizer: true }), style: { minHeight } }, items.length !== 0 && (React__default["default"].createElement(AutoSizer, null, ({ width, height }) => {
|
|
4062
|
+
const { listItems, collapseItems } = getAutosizeListItems(items, height, collapseItem);
|
|
4063
|
+
return (React__default["default"].createElement("div", { style: { width, height } },
|
|
4064
|
+
React__default["default"].createElement(CompositeBarView, { items: listItems, compact: compact, onItemClick: onItemClick, collapseItems: collapseItems, multipleTooltip: multipleTooltip })));
|
|
4065
|
+
}))));
|
|
4066
|
+
}
|
|
4067
|
+
else {
|
|
4068
|
+
node = (React__default["default"].createElement("div", { className: b$j() },
|
|
4069
|
+
React__default["default"].createElement(CompositeBarView, { items: items, compact: compact, onItemClick: onItemClick, multipleTooltip: multipleTooltip })));
|
|
4070
|
+
}
|
|
4071
|
+
return React__default["default"].createElement(MultipleTooltipProvider, null, node);
|
|
4072
|
+
};
|
|
3998
4073
|
|
|
3999
4074
|
/* Used by renderContent AsideHeader prop */
|
|
4000
4075
|
const RenderContent = React__default["default"].memo(({ renderContent, size }) => {
|
|
@@ -4044,13 +4119,13 @@ class AsideHeader extends React__default["default"].Component {
|
|
|
4044
4119
|
super(...arguments);
|
|
4045
4120
|
this.asideRef = React__default["default"].createRef();
|
|
4046
4121
|
this.renderFirstPane = (size) => {
|
|
4047
|
-
const { dict, menuItems, panelItems, compact, headerDecoration } = this.props;
|
|
4122
|
+
const { dict, menuItems, panelItems, compact, headerDecoration, multipleTooltip } = this.props;
|
|
4048
4123
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
4049
4124
|
React__default["default"].createElement("div", { className: b$i('aside'), style: { width: size } },
|
|
4050
4125
|
React__default["default"].createElement("div", { className: b$i('aside-popup-anchor'), ref: this.asideRef }),
|
|
4051
4126
|
React__default["default"].createElement("div", { className: b$i('aside-content', { ['with-decoration']: headerDecoration }) },
|
|
4052
4127
|
this.renderHeader(),
|
|
4053
|
-
(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 })) : (React__default["default"].createElement("div", { className: b$i('menu-items') })),
|
|
4128
|
+
(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') })),
|
|
4054
4129
|
this.renderFooter(size),
|
|
4055
4130
|
this.renderCollapseButton())),
|
|
4056
4131
|
panelItems && this.renderPanels(size)));
|