@itcase/ui 1.8.57 → 1.8.58
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/dist/cjs/components/Accordion.js +7 -7
- package/dist/cjs/components/MenuItem.js +17 -4
- package/dist/cjs/hoc/urlWithAssetPrefix.js +3 -4
- package/dist/components/Accordion.js +7 -7
- package/dist/components/MenuItem.js +19 -6
- package/dist/css/components/MenuItem/MenuItem.css +2 -1
- package/dist/hoc/urlWithAssetPrefix.js +3 -4
- package/dist/types/components/Accordion/appearance/accordionSize.d.ts +7 -7
- package/dist/types/components/MenuItem/MenuItem.interface.d.ts +1 -1
- package/package.json +1 -1
|
@@ -34,48 +34,48 @@ var accordionAppearanceSize = {
|
|
|
34
34
|
titleTextSize: 'h3',
|
|
35
35
|
badgeAppearanceSize: 'sizeXS',
|
|
36
36
|
contentTextSize: 'xxl',
|
|
37
|
-
icon: _default.icons16.Arrow.
|
|
37
|
+
icon: _default.icons16.Arrow.ChevronDown,
|
|
38
38
|
},
|
|
39
39
|
sizeXL: {
|
|
40
40
|
size: 'xl',
|
|
41
41
|
titleTextSize: 'h3',
|
|
42
42
|
badgeAppearanceSize: 'sizeXS',
|
|
43
43
|
contentTextSize: 'l',
|
|
44
|
-
icon: _default.icons16.Arrow.
|
|
44
|
+
icon: _default.icons16.Arrow.ChevronDown,
|
|
45
45
|
},
|
|
46
46
|
sizeL: {
|
|
47
47
|
size: 'l',
|
|
48
48
|
titleTextSize: 'h4',
|
|
49
49
|
badgeAppearanceSize: 'sizeXS',
|
|
50
|
-
icon: _default.icons16.Arrow.
|
|
50
|
+
icon: _default.icons16.Arrow.ChevronDown,
|
|
51
51
|
},
|
|
52
52
|
sizeM: {
|
|
53
53
|
size: 'm',
|
|
54
54
|
titleTextSize: 'h5',
|
|
55
55
|
badgeAppearanceSize: 'sizeXS',
|
|
56
56
|
contentTextSize: 'm',
|
|
57
|
-
icon: _default.icons16.Arrow.
|
|
57
|
+
icon: _default.icons16.Arrow.ChevronDown,
|
|
58
58
|
},
|
|
59
59
|
sizeS: {
|
|
60
60
|
size: 's',
|
|
61
61
|
titleTextSize: 'h6',
|
|
62
62
|
badgeAppearanceSize: 'sizeXS',
|
|
63
63
|
contentTextSize: 's',
|
|
64
|
-
icon: _default.icons16.Arrow.
|
|
64
|
+
icon: _default.icons16.Arrow.ChevronDown,
|
|
65
65
|
},
|
|
66
66
|
sizeXS: {
|
|
67
67
|
size: 'xs',
|
|
68
68
|
titleTextSize: 'h6',
|
|
69
69
|
badgeAppearanceSize: 'sizeXS',
|
|
70
70
|
contentTextSize: 'xs',
|
|
71
|
-
icon: _default.icons16.Arrow.
|
|
71
|
+
icon: _default.icons16.Arrow.ChevronDown,
|
|
72
72
|
},
|
|
73
73
|
sizeXXS: {
|
|
74
74
|
size: 'xxs',
|
|
75
75
|
titleTextSize: 'h6',
|
|
76
76
|
badgeAppearanceSize: 'sizeXS',
|
|
77
77
|
contentTextSize: 'xs',
|
|
78
|
-
icon: _default.icons16.Arrow.
|
|
78
|
+
icon: _default.icons16.Arrow.ChevronDown,
|
|
79
79
|
},
|
|
80
80
|
};
|
|
81
81
|
|
|
@@ -181,20 +181,33 @@ var menuItemConfig = {
|
|
|
181
181
|
},
|
|
182
182
|
};
|
|
183
183
|
function MenuItem(props) {
|
|
184
|
-
var className = props.className, appearance = props.appearance, label = props.label, isDisabled = props.isDisabled, href = props.href, link = props.link, LinkComponent = props.LinkComponent, rel = props.rel, target = props.target, underline = props.underline, before = props.before, after = props.after, isActive = props.isActive, onClick = props.onClick,
|
|
184
|
+
var className = props.className, appearance = props.appearance, label = props.label, isDisabled = props.isDisabled, href = props.href, link = props.link, LinkComponent = props.LinkComponent, rel = props.rel, showTooltip = props.showTooltip, target = props.target, tooltipAppearance = props.tooltipAppearance, underline = props.underline, before = props.before, after = props.after, isActive = props.isActive, onClick = props.onClick, children = props.children;
|
|
185
|
+
var tooltipRef = React.useRef(null);
|
|
186
|
+
var onMouseEnter = React.useCallback(function () {
|
|
187
|
+
var _a;
|
|
188
|
+
if (showTooltip) {
|
|
189
|
+
(_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.openTooltip();
|
|
190
|
+
}
|
|
191
|
+
}, [showTooltip]);
|
|
192
|
+
var onMouseLeave = React.useCallback(function () {
|
|
193
|
+
var _a;
|
|
194
|
+
if (showTooltip) {
|
|
195
|
+
(_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.closeTooltip();
|
|
196
|
+
}
|
|
197
|
+
}, [showTooltip]);
|
|
185
198
|
var appearanceConfig = useAppearanceConfig.useAppearanceConfig(appearance, menuItemConfig);
|
|
186
199
|
var propsGenerator = useDevicePropsGenerator.useDevicePropsGenerator(props, appearanceConfig);
|
|
187
|
-
var directionClass = propsGenerator.directionClass, justifyContentClass = propsGenerator.justifyContentClass, alignClass = propsGenerator.alignClass, alignDirectionClass = propsGenerator.alignDirectionClass, fillActiveClass = propsGenerator.fillActiveClass, fillActiveHoverClass = propsGenerator.fillActiveHoverClass, fillClass = propsGenerator.fillClass, fillHoverClass = propsGenerator.fillHoverClass, labelStyle = propsGenerator.labelStyle, labelTextActiveColor = propsGenerator.labelTextActiveColor, labelTextActiveHoverColor = propsGenerator.labelTextActiveHoverColor, labelTextColor = propsGenerator.labelTextColor, labelTextColorDisabled = propsGenerator.labelTextColorDisabled, labelTextHoverColor = propsGenerator.labelTextHoverColor, labelTextSize = propsGenerator.labelTextSize, labelWeight = propsGenerator.labelWeight, labelWrap = propsGenerator.labelWrap, borderColorClass = propsGenerator.borderColorClass, iconAfter = propsGenerator.iconAfter, iconAfterFill = propsGenerator.iconAfterFill, iconAfterFillIcon = propsGenerator.iconAfterFillIcon, iconAfterFillSize = propsGenerator.iconAfterFillSize, iconAfterShape = propsGenerator.iconAfterShape, iconAfterSize = propsGenerator.iconAfterSize, iconAfterSrc = propsGenerator.iconAfterSrc, iconBadgeAppearance = propsGenerator.iconBadgeAppearance, iconBadgeShape = propsGenerator.iconBadgeShape, iconBadgeSize = propsGenerator.iconBadgeSize, iconBadgeTextColor = propsGenerator.iconBadgeTextColor, iconBadgeTextSize = propsGenerator.iconBadgeTextSize, iconBadgeValue = propsGenerator.iconBadgeValue, iconBefore = propsGenerator.iconBefore, iconBeforeFill = propsGenerator.iconBeforeFill, iconBeforeFillIcon = propsGenerator.iconBeforeFillIcon, iconBeforeFillSize = propsGenerator.iconBeforeFillSize, iconBeforeShape = propsGenerator.iconBeforeShape, iconBeforeSize = propsGenerator.iconBeforeSize, iconBeforeSrc = propsGenerator.iconBeforeSrc, shapeClass = propsGenerator.shapeClass, shapeStrengthClass = propsGenerator.shapeStrengthClass, sizeClass = propsGenerator.sizeClass,
|
|
200
|
+
var directionClass = propsGenerator.directionClass, justifyContentClass = propsGenerator.justifyContentClass, alignClass = propsGenerator.alignClass, alignDirectionClass = propsGenerator.alignDirectionClass, fillActiveClass = propsGenerator.fillActiveClass, fillActiveHoverClass = propsGenerator.fillActiveHoverClass, fillClass = propsGenerator.fillClass, fillHoverClass = propsGenerator.fillHoverClass, labelStyle = propsGenerator.labelStyle, labelTextActiveColor = propsGenerator.labelTextActiveColor, labelTextActiveHoverColor = propsGenerator.labelTextActiveHoverColor, labelTextColor = propsGenerator.labelTextColor, labelTextColorDisabled = propsGenerator.labelTextColorDisabled, labelTextHoverColor = propsGenerator.labelTextHoverColor, labelTextSize = propsGenerator.labelTextSize, labelWeight = propsGenerator.labelWeight, labelWrap = propsGenerator.labelWrap, borderColorClass = propsGenerator.borderColorClass, iconAfter = propsGenerator.iconAfter, iconAfterFill = propsGenerator.iconAfterFill, iconAfterFillIcon = propsGenerator.iconAfterFillIcon, iconAfterFillSize = propsGenerator.iconAfterFillSize, iconAfterShape = propsGenerator.iconAfterShape, iconAfterSize = propsGenerator.iconAfterSize, iconAfterSrc = propsGenerator.iconAfterSrc, iconBadgeAppearance = propsGenerator.iconBadgeAppearance, iconBadgeShape = propsGenerator.iconBadgeShape, iconBadgeSize = propsGenerator.iconBadgeSize, iconBadgeTextColor = propsGenerator.iconBadgeTextColor, iconBadgeTextSize = propsGenerator.iconBadgeTextSize, iconBadgeValue = propsGenerator.iconBadgeValue, iconBefore = propsGenerator.iconBefore, iconBeforeFill = propsGenerator.iconBeforeFill, iconBeforeFillIcon = propsGenerator.iconBeforeFillIcon, iconBeforeFillSize = propsGenerator.iconBeforeFillSize, iconBeforeShape = propsGenerator.iconBeforeShape, iconBeforeSize = propsGenerator.iconBeforeSize, iconBeforeSrc = propsGenerator.iconBeforeSrc, shapeClass = propsGenerator.shapeClass, shapeStrengthClass = propsGenerator.shapeStrengthClass, sizeClass = propsGenerator.sizeClass, tooltipFill = propsGenerator.tooltipFill, tooltipShapeStrength = propsGenerator.tooltipShapeStrength, tooltipText = propsGenerator.tooltipText, tooltipTextColor = propsGenerator.tooltipTextColor, tooltipTitleTextColor = propsGenerator.tooltipTitleTextColor, typeClass = propsGenerator.typeClass, widthClass = propsGenerator.widthClass, isSkeleton = propsGenerator.isSkeleton;
|
|
188
201
|
// @ts-expect-error
|
|
189
202
|
var menuItem = useStyles.useStyles(props).styles;
|
|
190
|
-
return (jsxRuntime.
|
|
203
|
+
return (jsxRuntime.jsxs("div", { className: clsx('menu-item', isActive && 'menu-item_state_active', isDisabled && "menu-item_state_disabled", directionClass && "menu-item_direction_".concat(directionClass), className, sizeClass && "menu-item_size_".concat(sizeClass), borderColorClass && "border-color_".concat(borderColorClass), !isActive
|
|
191
204
|
? fillClass && "fill_".concat(fillClass)
|
|
192
205
|
: fillActiveClass && "fill_active_".concat(fillActiveClass), !isActive
|
|
193
206
|
? fillHoverClass && "fill_hover_".concat(fillHoverClass)
|
|
194
207
|
: fillActiveHoverClass && "fill_active_hover_".concat(fillActiveHoverClass), shapeClass && "shape_".concat(shapeClass), shapeStrengthClass
|
|
195
208
|
? "shape-strength_".concat(shapeStrengthClass)
|
|
196
209
|
: shapeClass === 'rounded' && 'shape-strength_default', typeClass && "menu-item_type_".concat(typeClass), widthClass && "width_".concat(widthClass), justifyContentClass &&
|
|
197
|
-
"menu-item_justify-content_".concat(justifyContentClass), isSkeleton && "menu-item_skeleton"), style: menuItem, onClick: onClick, onMouseEnter: onMouseEnter, children: jsxRuntime.jsxs(Link.Link, { className: clsx('menu-item__wrapper', alignDirectionClass && "align_".concat(alignDirectionClass), alignClass && "align_".concat(alignClass)), href: link || href, LinkComponent: LinkComponent, rel: rel, target: target, underline: underline, children: [before, children || (jsxRuntime.jsxs(React.Fragment, { children: [(iconBefore || iconBeforeSrc) && (jsxRuntime.jsx(Icon.Icon, { className: clsx('menu-item__icon_before', iconBadgeValue && 'menu-item__icon_before-badge'), fill: iconBeforeFill, fillSize: iconBeforeFillSize, badgeAppearance: iconBadgeAppearance, badgeClass: 'menu-item__icon_before_badge', badgeShape: iconBadgeShape, badgeSize: iconBadgeSize, badgeTextColor: iconBadgeTextColor, badgeTextSize: iconBadgeTextSize, badgeValue: iconBadgeValue, iconFill: iconBeforeFillIcon, iconSize: iconBeforeSize, imageSrc: iconBeforeSrc, shape: iconBeforeShape, SvgImage: iconBefore })), label && (jsxRuntime.jsx(Text.Text, { className: "menu-item__label", size: labelTextSize, textColor: labelTextColor, textColorActive: labelTextActiveColor, textColorActiveHover: labelTextActiveHoverColor, textColorDisabled: labelTextColorDisabled, textColorHover: labelTextHoverColor, textStyle: labelStyle, textWeight: labelWeight, textWrap: labelWrap, isDisabled: isDisabled, isActive: isActive, children: label })), (iconAfter || iconAfterSrc) && (jsxRuntime.jsx(Icon.Icon, { className: clsx('menu-item__icon_after', iconBadgeValue && 'menu-item__icon_after-badge'), fill: iconAfterFill, fillSize: iconAfterFillSize, badgeAppearance: iconBadgeAppearance, badgeClass: 'menu-item__icon_after_badge', badgeShape: iconBadgeShape, badgeSize: iconBadgeSize, badgeTextColor: iconBadgeTextColor, badgeTextSize: iconBadgeTextSize, badgeValue: iconBadgeValue, iconFill: iconAfterFillIcon, iconSize: iconAfterSize, imageSrc: iconAfterSrc, shape: iconAfterShape, SvgImage: iconAfter }))] })), after, jsxRuntime.jsx(Icon.Tooltip, { className: "menu-item__tooltip", appearance: tooltipAppearance, minWidth: "auto", fill: tooltipFill, left: "100%", zIndex: "100", titleTextColor: tooltipTitleTextColor, text: tooltipText, textColor: tooltipTextColor, centering: "vertical", shapeStrength: tooltipShapeStrength })] })
|
|
210
|
+
"menu-item_justify-content_".concat(justifyContentClass), isSkeleton && "menu-item_skeleton"), style: menuItem, onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, children: [jsxRuntime.jsxs(Link.Link, { className: clsx('menu-item__wrapper', alignDirectionClass && "align_".concat(alignDirectionClass), alignClass && "align_".concat(alignClass)), href: link || href, LinkComponent: LinkComponent, rel: rel, target: target, underline: underline, children: [before, children || (jsxRuntime.jsxs(React.Fragment, { children: [(iconBefore || iconBeforeSrc) && (jsxRuntime.jsx(Icon.Icon, { className: clsx('menu-item__icon_before', iconBadgeValue && 'menu-item__icon_before-badge'), fill: iconBeforeFill, fillSize: iconBeforeFillSize, badgeAppearance: iconBadgeAppearance, badgeClass: 'menu-item__icon_before_badge', badgeShape: iconBadgeShape, badgeSize: iconBadgeSize, badgeTextColor: iconBadgeTextColor, badgeTextSize: iconBadgeTextSize, badgeValue: iconBadgeValue, iconFill: iconBeforeFillIcon, iconSize: iconBeforeSize, imageSrc: iconBeforeSrc, shape: iconBeforeShape, SvgImage: iconBefore })), label && (jsxRuntime.jsx(Text.Text, { className: "menu-item__label", size: labelTextSize, textColor: labelTextColor, textColorActive: labelTextActiveColor, textColorActiveHover: labelTextActiveHoverColor, textColorDisabled: labelTextColorDisabled, textColorHover: labelTextHoverColor, textStyle: labelStyle, textWeight: labelWeight, textWrap: labelWrap, isDisabled: isDisabled, isActive: isActive, children: label })), (iconAfter || iconAfterSrc) && (jsxRuntime.jsx(Icon.Icon, { className: clsx('menu-item__icon_after', iconBadgeValue && 'menu-item__icon_after-badge'), fill: iconAfterFill, fillSize: iconAfterFillSize, badgeAppearance: iconBadgeAppearance, badgeClass: 'menu-item__icon_after_badge', badgeShape: iconBadgeShape, badgeSize: iconBadgeSize, badgeTextColor: iconBadgeTextColor, badgeTextSize: iconBadgeTextSize, badgeValue: iconBadgeValue, iconFill: iconAfterFillIcon, iconSize: iconAfterSize, imageSrc: iconAfterSrc, shape: iconAfterShape, SvgImage: iconAfter }))] })), after] }), showTooltip && (jsxRuntime.jsx(Icon.Tooltip, { className: "menu-item__tooltip", appearance: tooltipAppearance, minWidth: "auto", fill: tooltipFill, left: "100%", zIndex: "100", titleTextColor: tooltipTitleTextColor, text: tooltipText, textColor: tooltipTextColor, centering: "vertical", ref: tooltipRef, shapeStrength: tooltipShapeStrength }))] }));
|
|
198
211
|
}
|
|
199
212
|
|
|
200
213
|
exports.MenuItem = MenuItem;
|
|
@@ -14,11 +14,10 @@ var urlWithAssetPrefix = function (WrappedComponent) {
|
|
|
14
14
|
var url = props[propKey];
|
|
15
15
|
if (url && typeof url === 'string') {
|
|
16
16
|
if (assetPrefix) {
|
|
17
|
-
var
|
|
18
|
-
var isNeedAssetPrefix = checkIsNeedAssetPrefix(cleanUrl, assetPrefix, ignorePathsList);
|
|
17
|
+
var isNeedAssetPrefix = checkIsNeedAssetPrefix(url, assetPrefix, ignorePathsList);
|
|
19
18
|
if (isNeedAssetPrefix) {
|
|
20
19
|
var prefixPath = common.formatURL(assetPrefix).slice(0, -1);
|
|
21
|
-
url = "".concat(prefixPath).concat(
|
|
20
|
+
url = "".concat(prefixPath).concat(url);
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
23
|
resultProps[propKey] = url;
|
|
@@ -52,7 +51,7 @@ var checkIsNeedAssetPrefix = function (url, assetPrefix, ignorePathsList) {
|
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
else {
|
|
55
|
-
if (url.startsWith(common.formatURL(urlPath))) {
|
|
54
|
+
if (common.formatURL(url).startsWith(common.formatURL(urlPath))) {
|
|
56
55
|
return false;
|
|
57
56
|
}
|
|
58
57
|
}
|
|
@@ -32,48 +32,48 @@ var accordionAppearanceSize = {
|
|
|
32
32
|
titleTextSize: 'h3',
|
|
33
33
|
badgeAppearanceSize: 'sizeXS',
|
|
34
34
|
contentTextSize: 'xxl',
|
|
35
|
-
icon: icons16.Arrow.
|
|
35
|
+
icon: icons16.Arrow.ChevronDown,
|
|
36
36
|
},
|
|
37
37
|
sizeXL: {
|
|
38
38
|
size: 'xl',
|
|
39
39
|
titleTextSize: 'h3',
|
|
40
40
|
badgeAppearanceSize: 'sizeXS',
|
|
41
41
|
contentTextSize: 'l',
|
|
42
|
-
icon: icons16.Arrow.
|
|
42
|
+
icon: icons16.Arrow.ChevronDown,
|
|
43
43
|
},
|
|
44
44
|
sizeL: {
|
|
45
45
|
size: 'l',
|
|
46
46
|
titleTextSize: 'h4',
|
|
47
47
|
badgeAppearanceSize: 'sizeXS',
|
|
48
|
-
icon: icons16.Arrow.
|
|
48
|
+
icon: icons16.Arrow.ChevronDown,
|
|
49
49
|
},
|
|
50
50
|
sizeM: {
|
|
51
51
|
size: 'm',
|
|
52
52
|
titleTextSize: 'h5',
|
|
53
53
|
badgeAppearanceSize: 'sizeXS',
|
|
54
54
|
contentTextSize: 'm',
|
|
55
|
-
icon: icons16.Arrow.
|
|
55
|
+
icon: icons16.Arrow.ChevronDown,
|
|
56
56
|
},
|
|
57
57
|
sizeS: {
|
|
58
58
|
size: 's',
|
|
59
59
|
titleTextSize: 'h6',
|
|
60
60
|
badgeAppearanceSize: 'sizeXS',
|
|
61
61
|
contentTextSize: 's',
|
|
62
|
-
icon: icons16.Arrow.
|
|
62
|
+
icon: icons16.Arrow.ChevronDown,
|
|
63
63
|
},
|
|
64
64
|
sizeXS: {
|
|
65
65
|
size: 'xs',
|
|
66
66
|
titleTextSize: 'h6',
|
|
67
67
|
badgeAppearanceSize: 'sizeXS',
|
|
68
68
|
contentTextSize: 'xs',
|
|
69
|
-
icon: icons16.Arrow.
|
|
69
|
+
icon: icons16.Arrow.ChevronDown,
|
|
70
70
|
},
|
|
71
71
|
sizeXXS: {
|
|
72
72
|
size: 'xxs',
|
|
73
73
|
titleTextSize: 'h6',
|
|
74
74
|
badgeAppearanceSize: 'sizeXS',
|
|
75
75
|
contentTextSize: 'xs',
|
|
76
|
-
icon: icons16.Arrow.
|
|
76
|
+
icon: icons16.Arrow.ChevronDown,
|
|
77
77
|
},
|
|
78
78
|
};
|
|
79
79
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import React from 'react';
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import React, { useRef, useCallback } from 'react';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { useAppearanceConfig } from '../hooks/useAppearanceConfig/useAppearanceConfig.js';
|
|
5
5
|
import { useDevicePropsGenerator } from '../hooks/useDevicePropsGenerator/useDevicePropsGenerator.js';
|
|
@@ -179,20 +179,33 @@ var menuItemConfig = {
|
|
|
179
179
|
},
|
|
180
180
|
};
|
|
181
181
|
function MenuItem(props) {
|
|
182
|
-
var className = props.className, appearance = props.appearance, label = props.label, isDisabled = props.isDisabled, href = props.href, link = props.link, LinkComponent = props.LinkComponent, rel = props.rel, target = props.target, underline = props.underline, before = props.before, after = props.after, isActive = props.isActive, onClick = props.onClick,
|
|
182
|
+
var className = props.className, appearance = props.appearance, label = props.label, isDisabled = props.isDisabled, href = props.href, link = props.link, LinkComponent = props.LinkComponent, rel = props.rel, showTooltip = props.showTooltip, target = props.target, tooltipAppearance = props.tooltipAppearance, underline = props.underline, before = props.before, after = props.after, isActive = props.isActive, onClick = props.onClick, children = props.children;
|
|
183
|
+
var tooltipRef = useRef(null);
|
|
184
|
+
var onMouseEnter = useCallback(function () {
|
|
185
|
+
var _a;
|
|
186
|
+
if (showTooltip) {
|
|
187
|
+
(_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.openTooltip();
|
|
188
|
+
}
|
|
189
|
+
}, [showTooltip]);
|
|
190
|
+
var onMouseLeave = useCallback(function () {
|
|
191
|
+
var _a;
|
|
192
|
+
if (showTooltip) {
|
|
193
|
+
(_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.closeTooltip();
|
|
194
|
+
}
|
|
195
|
+
}, [showTooltip]);
|
|
183
196
|
var appearanceConfig = useAppearanceConfig(appearance, menuItemConfig);
|
|
184
197
|
var propsGenerator = useDevicePropsGenerator(props, appearanceConfig);
|
|
185
|
-
var directionClass = propsGenerator.directionClass, justifyContentClass = propsGenerator.justifyContentClass, alignClass = propsGenerator.alignClass, alignDirectionClass = propsGenerator.alignDirectionClass, fillActiveClass = propsGenerator.fillActiveClass, fillActiveHoverClass = propsGenerator.fillActiveHoverClass, fillClass = propsGenerator.fillClass, fillHoverClass = propsGenerator.fillHoverClass, labelStyle = propsGenerator.labelStyle, labelTextActiveColor = propsGenerator.labelTextActiveColor, labelTextActiveHoverColor = propsGenerator.labelTextActiveHoverColor, labelTextColor = propsGenerator.labelTextColor, labelTextColorDisabled = propsGenerator.labelTextColorDisabled, labelTextHoverColor = propsGenerator.labelTextHoverColor, labelTextSize = propsGenerator.labelTextSize, labelWeight = propsGenerator.labelWeight, labelWrap = propsGenerator.labelWrap, borderColorClass = propsGenerator.borderColorClass, iconAfter = propsGenerator.iconAfter, iconAfterFill = propsGenerator.iconAfterFill, iconAfterFillIcon = propsGenerator.iconAfterFillIcon, iconAfterFillSize = propsGenerator.iconAfterFillSize, iconAfterShape = propsGenerator.iconAfterShape, iconAfterSize = propsGenerator.iconAfterSize, iconAfterSrc = propsGenerator.iconAfterSrc, iconBadgeAppearance = propsGenerator.iconBadgeAppearance, iconBadgeShape = propsGenerator.iconBadgeShape, iconBadgeSize = propsGenerator.iconBadgeSize, iconBadgeTextColor = propsGenerator.iconBadgeTextColor, iconBadgeTextSize = propsGenerator.iconBadgeTextSize, iconBadgeValue = propsGenerator.iconBadgeValue, iconBefore = propsGenerator.iconBefore, iconBeforeFill = propsGenerator.iconBeforeFill, iconBeforeFillIcon = propsGenerator.iconBeforeFillIcon, iconBeforeFillSize = propsGenerator.iconBeforeFillSize, iconBeforeShape = propsGenerator.iconBeforeShape, iconBeforeSize = propsGenerator.iconBeforeSize, iconBeforeSrc = propsGenerator.iconBeforeSrc, shapeClass = propsGenerator.shapeClass, shapeStrengthClass = propsGenerator.shapeStrengthClass, sizeClass = propsGenerator.sizeClass,
|
|
198
|
+
var directionClass = propsGenerator.directionClass, justifyContentClass = propsGenerator.justifyContentClass, alignClass = propsGenerator.alignClass, alignDirectionClass = propsGenerator.alignDirectionClass, fillActiveClass = propsGenerator.fillActiveClass, fillActiveHoverClass = propsGenerator.fillActiveHoverClass, fillClass = propsGenerator.fillClass, fillHoverClass = propsGenerator.fillHoverClass, labelStyle = propsGenerator.labelStyle, labelTextActiveColor = propsGenerator.labelTextActiveColor, labelTextActiveHoverColor = propsGenerator.labelTextActiveHoverColor, labelTextColor = propsGenerator.labelTextColor, labelTextColorDisabled = propsGenerator.labelTextColorDisabled, labelTextHoverColor = propsGenerator.labelTextHoverColor, labelTextSize = propsGenerator.labelTextSize, labelWeight = propsGenerator.labelWeight, labelWrap = propsGenerator.labelWrap, borderColorClass = propsGenerator.borderColorClass, iconAfter = propsGenerator.iconAfter, iconAfterFill = propsGenerator.iconAfterFill, iconAfterFillIcon = propsGenerator.iconAfterFillIcon, iconAfterFillSize = propsGenerator.iconAfterFillSize, iconAfterShape = propsGenerator.iconAfterShape, iconAfterSize = propsGenerator.iconAfterSize, iconAfterSrc = propsGenerator.iconAfterSrc, iconBadgeAppearance = propsGenerator.iconBadgeAppearance, iconBadgeShape = propsGenerator.iconBadgeShape, iconBadgeSize = propsGenerator.iconBadgeSize, iconBadgeTextColor = propsGenerator.iconBadgeTextColor, iconBadgeTextSize = propsGenerator.iconBadgeTextSize, iconBadgeValue = propsGenerator.iconBadgeValue, iconBefore = propsGenerator.iconBefore, iconBeforeFill = propsGenerator.iconBeforeFill, iconBeforeFillIcon = propsGenerator.iconBeforeFillIcon, iconBeforeFillSize = propsGenerator.iconBeforeFillSize, iconBeforeShape = propsGenerator.iconBeforeShape, iconBeforeSize = propsGenerator.iconBeforeSize, iconBeforeSrc = propsGenerator.iconBeforeSrc, shapeClass = propsGenerator.shapeClass, shapeStrengthClass = propsGenerator.shapeStrengthClass, sizeClass = propsGenerator.sizeClass, tooltipFill = propsGenerator.tooltipFill, tooltipShapeStrength = propsGenerator.tooltipShapeStrength, tooltipText = propsGenerator.tooltipText, tooltipTextColor = propsGenerator.tooltipTextColor, tooltipTitleTextColor = propsGenerator.tooltipTitleTextColor, typeClass = propsGenerator.typeClass, widthClass = propsGenerator.widthClass, isSkeleton = propsGenerator.isSkeleton;
|
|
186
199
|
// @ts-expect-error
|
|
187
200
|
var menuItem = useStyles(props).styles;
|
|
188
|
-
return (
|
|
201
|
+
return (jsxs("div", { className: clsx('menu-item', isActive && 'menu-item_state_active', isDisabled && "menu-item_state_disabled", directionClass && "menu-item_direction_".concat(directionClass), className, sizeClass && "menu-item_size_".concat(sizeClass), borderColorClass && "border-color_".concat(borderColorClass), !isActive
|
|
189
202
|
? fillClass && "fill_".concat(fillClass)
|
|
190
203
|
: fillActiveClass && "fill_active_".concat(fillActiveClass), !isActive
|
|
191
204
|
? fillHoverClass && "fill_hover_".concat(fillHoverClass)
|
|
192
205
|
: fillActiveHoverClass && "fill_active_hover_".concat(fillActiveHoverClass), shapeClass && "shape_".concat(shapeClass), shapeStrengthClass
|
|
193
206
|
? "shape-strength_".concat(shapeStrengthClass)
|
|
194
207
|
: shapeClass === 'rounded' && 'shape-strength_default', typeClass && "menu-item_type_".concat(typeClass), widthClass && "width_".concat(widthClass), justifyContentClass &&
|
|
195
|
-
"menu-item_justify-content_".concat(justifyContentClass), isSkeleton && "menu-item_skeleton"), style: menuItem, onClick: onClick, onMouseEnter: onMouseEnter, children: jsxs(Link, { className: clsx('menu-item__wrapper', alignDirectionClass && "align_".concat(alignDirectionClass), alignClass && "align_".concat(alignClass)), href: link || href, LinkComponent: LinkComponent, rel: rel, target: target, underline: underline, children: [before, children || (jsxs(React.Fragment, { children: [(iconBefore || iconBeforeSrc) && (jsx(Icon, { className: clsx('menu-item__icon_before', iconBadgeValue && 'menu-item__icon_before-badge'), fill: iconBeforeFill, fillSize: iconBeforeFillSize, badgeAppearance: iconBadgeAppearance, badgeClass: 'menu-item__icon_before_badge', badgeShape: iconBadgeShape, badgeSize: iconBadgeSize, badgeTextColor: iconBadgeTextColor, badgeTextSize: iconBadgeTextSize, badgeValue: iconBadgeValue, iconFill: iconBeforeFillIcon, iconSize: iconBeforeSize, imageSrc: iconBeforeSrc, shape: iconBeforeShape, SvgImage: iconBefore })), label && (jsx(Text, { className: "menu-item__label", size: labelTextSize, textColor: labelTextColor, textColorActive: labelTextActiveColor, textColorActiveHover: labelTextActiveHoverColor, textColorDisabled: labelTextColorDisabled, textColorHover: labelTextHoverColor, textStyle: labelStyle, textWeight: labelWeight, textWrap: labelWrap, isDisabled: isDisabled, isActive: isActive, children: label })), (iconAfter || iconAfterSrc) && (jsx(Icon, { className: clsx('menu-item__icon_after', iconBadgeValue && 'menu-item__icon_after-badge'), fill: iconAfterFill, fillSize: iconAfterFillSize, badgeAppearance: iconBadgeAppearance, badgeClass: 'menu-item__icon_after_badge', badgeShape: iconBadgeShape, badgeSize: iconBadgeSize, badgeTextColor: iconBadgeTextColor, badgeTextSize: iconBadgeTextSize, badgeValue: iconBadgeValue, iconFill: iconAfterFillIcon, iconSize: iconAfterSize, imageSrc: iconAfterSrc, shape: iconAfterShape, SvgImage: iconAfter }))] })), after, jsx(Tooltip, { className: "menu-item__tooltip", appearance: tooltipAppearance, minWidth: "auto", fill: tooltipFill, left: "100%", zIndex: "100", titleTextColor: tooltipTitleTextColor, text: tooltipText, textColor: tooltipTextColor, centering: "vertical", shapeStrength: tooltipShapeStrength })] })
|
|
208
|
+
"menu-item_justify-content_".concat(justifyContentClass), isSkeleton && "menu-item_skeleton"), style: menuItem, onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, children: [jsxs(Link, { className: clsx('menu-item__wrapper', alignDirectionClass && "align_".concat(alignDirectionClass), alignClass && "align_".concat(alignClass)), href: link || href, LinkComponent: LinkComponent, rel: rel, target: target, underline: underline, children: [before, children || (jsxs(React.Fragment, { children: [(iconBefore || iconBeforeSrc) && (jsx(Icon, { className: clsx('menu-item__icon_before', iconBadgeValue && 'menu-item__icon_before-badge'), fill: iconBeforeFill, fillSize: iconBeforeFillSize, badgeAppearance: iconBadgeAppearance, badgeClass: 'menu-item__icon_before_badge', badgeShape: iconBadgeShape, badgeSize: iconBadgeSize, badgeTextColor: iconBadgeTextColor, badgeTextSize: iconBadgeTextSize, badgeValue: iconBadgeValue, iconFill: iconBeforeFillIcon, iconSize: iconBeforeSize, imageSrc: iconBeforeSrc, shape: iconBeforeShape, SvgImage: iconBefore })), label && (jsx(Text, { className: "menu-item__label", size: labelTextSize, textColor: labelTextColor, textColorActive: labelTextActiveColor, textColorActiveHover: labelTextActiveHoverColor, textColorDisabled: labelTextColorDisabled, textColorHover: labelTextHoverColor, textStyle: labelStyle, textWeight: labelWeight, textWrap: labelWrap, isDisabled: isDisabled, isActive: isActive, children: label })), (iconAfter || iconAfterSrc) && (jsx(Icon, { className: clsx('menu-item__icon_after', iconBadgeValue && 'menu-item__icon_after-badge'), fill: iconAfterFill, fillSize: iconAfterFillSize, badgeAppearance: iconBadgeAppearance, badgeClass: 'menu-item__icon_after_badge', badgeShape: iconBadgeShape, badgeSize: iconBadgeSize, badgeTextColor: iconBadgeTextColor, badgeTextSize: iconBadgeTextSize, badgeValue: iconBadgeValue, iconFill: iconAfterFillIcon, iconSize: iconAfterSize, imageSrc: iconAfterSrc, shape: iconAfterShape, SvgImage: iconAfter }))] })), after] }), showTooltip && (jsx(Tooltip, { className: "menu-item__tooltip", appearance: tooltipAppearance, minWidth: "auto", fill: tooltipFill, left: "100%", zIndex: "100", titleTextColor: tooltipTitleTextColor, text: tooltipText, textColor: tooltipTextColor, centering: "vertical", ref: tooltipRef, shapeStrength: tooltipShapeStrength }))] }));
|
|
196
209
|
}
|
|
197
210
|
|
|
198
211
|
export { MenuItem, menuItemAppearance, menuItemConfig };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
.menu-item {
|
|
2
|
+
position: relative;
|
|
2
3
|
display: flex;
|
|
3
4
|
align-items: center;
|
|
4
5
|
&:hover {
|
|
@@ -10,7 +11,7 @@
|
|
|
10
11
|
}
|
|
11
12
|
&__wrapper {
|
|
12
13
|
width: 100%;
|
|
13
|
-
position: relative;
|
|
14
|
+
position: relative !important;
|
|
14
15
|
display: flex;
|
|
15
16
|
align-items: center;
|
|
16
17
|
align-content: center;
|
|
@@ -12,11 +12,10 @@ var urlWithAssetPrefix = function (WrappedComponent) {
|
|
|
12
12
|
var url = props[propKey];
|
|
13
13
|
if (url && typeof url === 'string') {
|
|
14
14
|
if (assetPrefix) {
|
|
15
|
-
var
|
|
16
|
-
var isNeedAssetPrefix = checkIsNeedAssetPrefix(cleanUrl, assetPrefix, ignorePathsList);
|
|
15
|
+
var isNeedAssetPrefix = checkIsNeedAssetPrefix(url, assetPrefix, ignorePathsList);
|
|
17
16
|
if (isNeedAssetPrefix) {
|
|
18
17
|
var prefixPath = formatURL(assetPrefix).slice(0, -1);
|
|
19
|
-
url = "".concat(prefixPath).concat(
|
|
18
|
+
url = "".concat(prefixPath).concat(url);
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
21
|
resultProps[propKey] = url;
|
|
@@ -50,7 +49,7 @@ var checkIsNeedAssetPrefix = function (url, assetPrefix, ignorePathsList) {
|
|
|
50
49
|
}
|
|
51
50
|
}
|
|
52
51
|
else {
|
|
53
|
-
if (url.startsWith(formatURL(urlPath))) {
|
|
52
|
+
if (formatURL(url).startsWith(formatURL(urlPath))) {
|
|
54
53
|
return false;
|
|
55
54
|
}
|
|
56
55
|
}
|
|
@@ -4,48 +4,48 @@ declare const accordionAppearanceSize: {
|
|
|
4
4
|
titleTextSize: string;
|
|
5
5
|
badgeAppearanceSize: string;
|
|
6
6
|
contentTextSize: string;
|
|
7
|
-
icon:
|
|
7
|
+
icon: string;
|
|
8
8
|
};
|
|
9
9
|
sizeXL: {
|
|
10
10
|
size: string;
|
|
11
11
|
titleTextSize: string;
|
|
12
12
|
badgeAppearanceSize: string;
|
|
13
13
|
contentTextSize: string;
|
|
14
|
-
icon:
|
|
14
|
+
icon: string;
|
|
15
15
|
};
|
|
16
16
|
sizeL: {
|
|
17
17
|
size: string;
|
|
18
18
|
titleTextSize: string;
|
|
19
19
|
badgeAppearanceSize: string;
|
|
20
|
-
icon:
|
|
20
|
+
icon: string;
|
|
21
21
|
};
|
|
22
22
|
sizeM: {
|
|
23
23
|
size: string;
|
|
24
24
|
titleTextSize: string;
|
|
25
25
|
badgeAppearanceSize: string;
|
|
26
26
|
contentTextSize: string;
|
|
27
|
-
icon:
|
|
27
|
+
icon: string;
|
|
28
28
|
};
|
|
29
29
|
sizeS: {
|
|
30
30
|
size: string;
|
|
31
31
|
titleTextSize: string;
|
|
32
32
|
badgeAppearanceSize: string;
|
|
33
33
|
contentTextSize: string;
|
|
34
|
-
icon:
|
|
34
|
+
icon: string;
|
|
35
35
|
};
|
|
36
36
|
sizeXS: {
|
|
37
37
|
size: string;
|
|
38
38
|
titleTextSize: string;
|
|
39
39
|
badgeAppearanceSize: string;
|
|
40
40
|
contentTextSize: string;
|
|
41
|
-
icon:
|
|
41
|
+
icon: string;
|
|
42
42
|
};
|
|
43
43
|
sizeXXS: {
|
|
44
44
|
size: string;
|
|
45
45
|
titleTextSize: string;
|
|
46
46
|
badgeAppearanceSize: string;
|
|
47
47
|
contentTextSize: string;
|
|
48
|
-
icon:
|
|
48
|
+
icon: string;
|
|
49
49
|
};
|
|
50
50
|
};
|
|
51
51
|
export { accordionAppearanceSize };
|
|
@@ -55,6 +55,7 @@ export interface MenuItemProps extends MenuItemThemeColor, StyleAttributes {
|
|
|
55
55
|
label?: string;
|
|
56
56
|
link?: string;
|
|
57
57
|
rel?: string;
|
|
58
|
+
showTooltip: boolean;
|
|
58
59
|
style?: CSSProperties;
|
|
59
60
|
target?: string;
|
|
60
61
|
type?: string;
|
|
@@ -62,7 +63,6 @@ export interface MenuItemProps extends MenuItemThemeColor, StyleAttributes {
|
|
|
62
63
|
isHover?: boolean;
|
|
63
64
|
isSkeleton?: boolean;
|
|
64
65
|
onClick?: () => void;
|
|
65
|
-
onMouseEnter?: () => void;
|
|
66
66
|
set?: string;
|
|
67
67
|
}
|
|
68
68
|
export {};
|