@gravity-ui/navigation 0.5.0 → 0.6.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.
- package/CHANGELOG.md +15 -0
- package/README.md +2 -0
- package/build/cjs/components/AsideHeader/AsideHeader.d.ts +3 -4
- package/build/cjs/components/{AsideHeader → Content}/Content.d.ts +3 -2
- package/build/cjs/components/Content/index.d.ts +1 -0
- package/build/cjs/components/Drawer/Drawer.d.ts +1 -0
- package/build/cjs/components/Logo/Logo.d.ts +1 -12
- package/build/cjs/components/MobileHeader/Burger/Burger.d.ts +8 -0
- package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.d.ts +9 -0
- package/build/cjs/components/MobileHeader/BurgerMenu/BurgerMenu.d.ts +11 -0
- package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +7 -0
- package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +2 -0
- package/build/cjs/components/MobileHeader/FooterItem/FooterItem.d.ts +12 -0
- package/build/cjs/components/MobileHeader/Logo/Logo.d.ts +8 -0
- package/build/cjs/components/MobileHeader/MobileHeader.d.ts +27 -0
- package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +4 -0
- package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +3 -0
- package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +1 -0
- package/build/cjs/components/MobileHeader/constants.d.ts +7 -0
- package/build/cjs/components/MobileHeader/index.d.ts +3 -0
- package/build/cjs/components/MobileHeader/types.d.ts +28 -0
- package/build/cjs/components/MobileHeader/utils.d.ts +3 -0
- package/build/cjs/components/Settings/Settings.d.ts +7 -3
- package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.d.ts +1 -20
- package/build/cjs/components/Settings/SettingsMenuMobile/SettingsMenuMobile.d.ts +3 -0
- package/build/cjs/components/Settings/SettingsSearch/SettingsSearch.d.ts +4 -1
- package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +1 -0
- package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +8 -0
- package/build/cjs/components/Settings/collect-settings.d.ts +1 -0
- package/build/cjs/components/Settings/types.d.ts +21 -0
- package/build/cjs/components/constants.d.ts +2 -0
- package/build/cjs/components/types.d.ts +15 -0
- package/build/cjs/hooks/useForwardRef.d.ts +2 -0
- package/build/cjs/index.js +169 -124
- package/build/cjs/index.js.map +1 -1
- package/build/esm/components/AsideHeader/AsideHeader.d.ts +3 -4
- package/build/esm/components/{AsideHeader → Content}/Content.d.ts +3 -2
- package/build/esm/components/Content/index.d.ts +1 -0
- package/build/esm/components/Drawer/Drawer.d.ts +1 -0
- package/build/esm/components/Logo/Logo.d.ts +1 -12
- package/build/esm/components/MobileHeader/Burger/Burger.d.ts +8 -0
- package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.d.ts +9 -0
- package/build/esm/components/MobileHeader/BurgerMenu/BurgerMenu.d.ts +11 -0
- package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +7 -0
- package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +2 -0
- package/build/esm/components/MobileHeader/FooterItem/FooterItem.d.ts +12 -0
- package/build/esm/components/MobileHeader/Logo/Logo.d.ts +8 -0
- package/build/esm/components/MobileHeader/MobileHeader.d.ts +27 -0
- package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +4 -0
- package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +3 -0
- package/build/esm/components/MobileHeader/__stories__/moc.d.ts +1 -0
- package/build/esm/components/MobileHeader/constants.d.ts +7 -0
- package/build/esm/components/MobileHeader/index.d.ts +3 -0
- package/build/esm/components/MobileHeader/types.d.ts +28 -0
- package/build/esm/components/MobileHeader/utils.d.ts +3 -0
- package/build/esm/components/Settings/Settings.d.ts +7 -3
- package/build/esm/components/Settings/SettingsMenu/SettingsMenu.d.ts +1 -20
- package/build/esm/components/Settings/SettingsMenuMobile/SettingsMenuMobile.d.ts +3 -0
- package/build/esm/components/Settings/SettingsSearch/SettingsSearch.d.ts +4 -1
- package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +1 -0
- package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +8 -0
- package/build/esm/components/Settings/collect-settings.d.ts +1 -0
- package/build/esm/components/Settings/types.d.ts +21 -0
- package/build/esm/components/constants.d.ts +2 -0
- package/build/esm/components/types.d.ts +15 -0
- package/build/esm/hooks/useForwardRef.d.ts +2 -0
- package/build/esm/index.js +171 -126
- package/build/esm/index.js.map +1 -1
- package/package.json +1 -1
package/build/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default, { Children, isValidElement, cloneElement, createElement, PureComponent } from 'react';
|
|
3
|
-
import { Button, Icon, Popup, List, Tooltip, TextInput, Loader } from '@gravity-ui/uikit';
|
|
3
|
+
import { Button, Icon, Popup, List, Tooltip, TextInput, Tabs, Loader } from '@gravity-ui/uikit';
|
|
4
4
|
import ReactDOM from 'react-dom';
|
|
5
5
|
|
|
6
6
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
@@ -87,48 +87,48 @@ function styleInject(css, ref) {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
var css_248z$
|
|
91
|
-
styleInject(css_248z$
|
|
90
|
+
var css_248z$d = ".ycn-action-bar-group {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-start;\n margin: 0;\n padding: 0;\n}\n.ycn-action-bar-group_pull_left {\n margin-left: 0;\n margin-right: auto;\n}\n.ycn-action-bar-group_pull_right {\n margin-left: auto;\n margin-right: 0;\n}\n.ycn-action-bar-group_pull_center {\n margin-left: auto;\n margin-right: auto;\n}";
|
|
91
|
+
styleInject(css_248z$d);
|
|
92
92
|
|
|
93
|
-
const b$
|
|
93
|
+
const b$e = block('action-bar-group');
|
|
94
94
|
const ActionBarGroup = ({ children, className, pull }) => {
|
|
95
|
-
return (React__default.createElement("ul", { className: b$
|
|
95
|
+
return (React__default.createElement("ul", { className: b$e({ pull }, className), role: "group" }, children));
|
|
96
96
|
};
|
|
97
97
|
ActionBarGroup.displayName = 'ActionBar.Group';
|
|
98
98
|
|
|
99
|
-
var css_248z$
|
|
100
|
-
styleInject(css_248z$
|
|
99
|
+
var css_248z$c = ".ycn-action-bar-item {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.ycn-action-bar-item_pull_left {\n margin-left: 0;\n margin-right: auto;\n}\n.ycn-action-bar-item_pull_right {\n margin-left: auto;\n margin-right: 0;\n}\n.ycn-action-bar-item_pull_center {\n margin-left: auto;\n margin-right: auto;\n}\n.ycn-action-bar-item + .ycn-action-bar-item_spacing {\n margin-left: 8px;\n}";
|
|
100
|
+
styleInject(css_248z$c);
|
|
101
101
|
|
|
102
|
-
const b$
|
|
102
|
+
const b$d = block('action-bar-item');
|
|
103
103
|
const ActionBarItem = ({ children, className, pull, spacing = true }) => {
|
|
104
|
-
return React__default.createElement("li", { className: b$
|
|
104
|
+
return React__default.createElement("li", { className: b$d({ pull, spacing }, className) }, children);
|
|
105
105
|
};
|
|
106
106
|
ActionBarItem.displayName = 'ActionBar.Item';
|
|
107
107
|
|
|
108
|
-
var css_248z$
|
|
109
|
-
styleInject(css_248z$
|
|
108
|
+
var css_248z$b = ".ycn-action-bar-section {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n align-items: stretch;\n}\n.ycn-action-bar-section + .ycn-action-bar-section {\n border-left: solid 1px var(--yc-color-line-generic);\n}\n.ycn-action-bar-section_type_primary {\n flex: 1 1 auto;\n padding-left: 20px;\n padding-right: 20px;\n}\n.ycn-action-bar-section_type_secondary {\n padding-left: 6px;\n padding-right: 6px;\n}";
|
|
109
|
+
styleInject(css_248z$b);
|
|
110
110
|
|
|
111
|
-
const b$
|
|
111
|
+
const b$c = block('action-bar-section');
|
|
112
112
|
const ActionBarSection = ({ children, type = 'primary' }) => {
|
|
113
|
-
return React__default.createElement("div", { className: b$
|
|
113
|
+
return React__default.createElement("div", { className: b$c({ type }) }, children);
|
|
114
114
|
};
|
|
115
115
|
ActionBarSection.displayName = 'ActionBar.Section';
|
|
116
116
|
|
|
117
|
-
var css_248z$
|
|
118
|
-
styleInject(css_248z$
|
|
117
|
+
var css_248z$a = ".ycn-action-bar-separator {\n list-style: none;\n margin: 0;\n padding: 0;\n margin-left: 6px;\n margin-right: 6px;\n border-right: solid 1px var(--yc-color-line-generic);\n height: 40px;\n}";
|
|
118
|
+
styleInject(css_248z$a);
|
|
119
119
|
|
|
120
|
-
const b$
|
|
120
|
+
const b$b = block('action-bar-separator');
|
|
121
121
|
const ActionBarSeparator = () => {
|
|
122
|
-
return React__default.createElement("li", { role: "separator", className: b$
|
|
122
|
+
return React__default.createElement("li", { role: "separator", className: b$b() });
|
|
123
123
|
};
|
|
124
124
|
ActionBarSeparator.displayName = 'ActionBar.Separator';
|
|
125
125
|
|
|
126
|
-
var css_248z$
|
|
127
|
-
styleInject(css_248z$
|
|
126
|
+
var css_248z$9 = ".ycn-action-bar {\n box-sizing: border-box;\n height: 40px;\n border-bottom: solid 1px var(--yc-color-line-generic);\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n align-items: stretch;\n}";
|
|
127
|
+
styleInject(css_248z$9);
|
|
128
128
|
|
|
129
|
-
const b$
|
|
129
|
+
const b$a = block('action-bar');
|
|
130
130
|
const ActionBar = ({ children, className, 'aria-label': ariaLabel }) => {
|
|
131
|
-
return (React__default.createElement("section", { className: b$
|
|
131
|
+
return (React__default.createElement("section", { className: b$a(null, className), "aria-label": ariaLabel }, children));
|
|
132
132
|
};
|
|
133
133
|
ActionBar.displayName = 'ActionBar';
|
|
134
134
|
const PublicActionBar = Object.assign(ActionBar, {
|
|
@@ -138,6 +138,11 @@ const PublicActionBar = Object.assign(ActionBar, {
|
|
|
138
138
|
Separator: ActionBarSeparator,
|
|
139
139
|
});
|
|
140
140
|
|
|
141
|
+
var MobileHeaderDict;
|
|
142
|
+
(function (MobileHeaderDict) {
|
|
143
|
+
MobileHeaderDict["CloseBurger"] = "button_close-burger";
|
|
144
|
+
MobileHeaderDict["OpenBurger"] = "button_open-burger";
|
|
145
|
+
})(MobileHeaderDict || (MobileHeaderDict = {}));
|
|
141
146
|
var Dict;
|
|
142
147
|
(function (Dict) {
|
|
143
148
|
Dict["ExpandButton"] = "button_expand";
|
|
@@ -152,6 +157,8 @@ const defaultDict$1 = {
|
|
|
152
157
|
[Dict.CollapseButton]: 'Collapse',
|
|
153
158
|
[Dict.ExpandButton]: 'Expand',
|
|
154
159
|
[Dict.MoreButton]: 'More',
|
|
160
|
+
[MobileHeaderDict.CloseBurger]: 'Close menu',
|
|
161
|
+
[MobileHeaderDict.OpenBurger]: 'Open menu',
|
|
155
162
|
};
|
|
156
163
|
|
|
157
164
|
function _extends$4() {
|
|
@@ -3173,15 +3180,15 @@ SwitchTransition.defaultProps = {
|
|
|
3173
3180
|
mode: modes.out
|
|
3174
3181
|
};
|
|
3175
3182
|
|
|
3176
|
-
var css_248z$
|
|
3177
|
-
styleInject(css_248z$
|
|
3183
|
+
var css_248z$8 = ".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}";
|
|
3184
|
+
styleInject(css_248z$8);
|
|
3178
3185
|
|
|
3179
|
-
const b$
|
|
3186
|
+
const b$9 = block('drawer');
|
|
3180
3187
|
const TIMEOUT = 300;
|
|
3181
|
-
const DrawerItem = ({ visible, content, className }) => {
|
|
3188
|
+
const DrawerItem = ({ visible, content, direction, className }) => {
|
|
3182
3189
|
const itemRef = React__default.useRef(null);
|
|
3183
|
-
return (React__default.createElement(CSSTransition, { in: visible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$
|
|
3184
|
-
React__default.createElement("div", { ref: itemRef, className: b$
|
|
3190
|
+
return (React__default.createElement(CSSTransition, { in: visible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$9('item-transition', { direction }), nodeRef: itemRef },
|
|
3191
|
+
React__default.createElement("div", { ref: itemRef, className: b$9('item', { direction }, className) }, content)));
|
|
3185
3192
|
};
|
|
3186
3193
|
const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScrollBody = true, }) => {
|
|
3187
3194
|
let someItemVisible = false;
|
|
@@ -3239,9 +3246,9 @@ const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScro
|
|
|
3239
3246
|
const veilRef = React__default.useRef(null);
|
|
3240
3247
|
return (React__default.createElement(Transition, { in: someItemVisible, timeout: { enter: 0, exit: TIMEOUT }, mountOnEnter: true, unmountOnExit: true, nodeRef: containerRef }, (state) => {
|
|
3241
3248
|
const childrenVisible = someItemVisible && state === 'entered';
|
|
3242
|
-
return (React__default.createElement("div", { ref: containerRef, className: b$
|
|
3243
|
-
React__default.createElement(CSSTransition, { in: childrenVisible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$
|
|
3244
|
-
React__default.createElement("div", { ref: veilRef, className: b$
|
|
3249
|
+
return (React__default.createElement("div", { ref: containerRef, className: b$9(null, className), style: style },
|
|
3250
|
+
React__default.createElement(CSSTransition, { in: childrenVisible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$9('veil-transition'), nodeRef: veilRef },
|
|
3251
|
+
React__default.createElement("div", { ref: veilRef, className: b$9('veil'), onClick: onVeilClick })),
|
|
3245
3252
|
React__default.Children.map(children, (child) => {
|
|
3246
3253
|
const childElem = child;
|
|
3247
3254
|
if (childElem.type === DrawerItem) {
|
|
@@ -3253,10 +3260,10 @@ const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScro
|
|
|
3253
3260
|
}));
|
|
3254
3261
|
};
|
|
3255
3262
|
|
|
3256
|
-
var css_248z$
|
|
3257
|
-
styleInject(css_248z$
|
|
3263
|
+
var css_248z$7 = ".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}\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}\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}";
|
|
3264
|
+
styleInject(css_248z$7);
|
|
3258
3265
|
|
|
3259
|
-
const b$
|
|
3266
|
+
const b$8 = block('logo');
|
|
3260
3267
|
const Logo = ({ text, compact, icon, iconSrc, iconClassName, iconSize = 24, textSize = 15, href = '/', wrapper, onClick, }) => {
|
|
3261
3268
|
const hasClickHandler = typeof onClick === 'function';
|
|
3262
3269
|
const hasWrapper = typeof wrapper === 'function';
|
|
@@ -3274,18 +3281,18 @@ const Logo = ({ text, compact, icon, iconSrc, iconClassName, iconSize = 24, text
|
|
|
3274
3281
|
else if (icon) {
|
|
3275
3282
|
buttonIcon = React__default.createElement(Icon, { data: icon, size: iconSize, className: iconClassName });
|
|
3276
3283
|
}
|
|
3277
|
-
const button = (React__default.createElement(Button, Object.assign({ view: "flat", size: "l", className: b$
|
|
3284
|
+
const button = (React__default.createElement(Button, Object.assign({ view: "flat", size: "l", className: b$8('btn-logo'), component: hasWrapper ? 'span' : undefined, onClick: onClick }, linkProps), buttonIcon));
|
|
3278
3285
|
let logo;
|
|
3279
3286
|
if (typeof text === 'function') {
|
|
3280
3287
|
logo = text();
|
|
3281
3288
|
}
|
|
3282
3289
|
else {
|
|
3283
|
-
logo = (React__default.createElement("div", { className: b$
|
|
3290
|
+
logo = (React__default.createElement("div", { className: b$8('logo'), style: { fontSize: textSize } }, text));
|
|
3284
3291
|
}
|
|
3285
|
-
return (React__default.createElement("div", { className: b$
|
|
3286
|
-
React__default.createElement("div", { className: b$
|
|
3292
|
+
return (React__default.createElement("div", { className: b$8() },
|
|
3293
|
+
React__default.createElement("div", { className: b$8('logo-btn-place') }, hasWrapper ? wrapper(button, compact) : button),
|
|
3287
3294
|
!compact &&
|
|
3288
|
-
(hasWrapper ? (React__default.createElement("div", { onClick: onClick }, wrapper(logo, compact))) : (React__default.createElement("a", Object.assign({}, linkProps, { className: b$
|
|
3295
|
+
(hasWrapper ? (React__default.createElement("div", { onClick: onClick }, wrapper(logo, compact))) : (React__default.createElement("a", Object.assign({}, linkProps, { className: b$8('logo-link'), onClick: onClick }), logo)))));
|
|
3289
3296
|
};
|
|
3290
3297
|
|
|
3291
3298
|
var classCallCheck = function (instance, Constructor) {
|
|
@@ -3817,16 +3824,16 @@ function getItemsMinHeight(items) {
|
|
|
3817
3824
|
(pinnedItems.length === items.length ? 0 : ITEM_HEIGHT));
|
|
3818
3825
|
}
|
|
3819
3826
|
|
|
3820
|
-
var css_248z$
|
|
3821
|
-
styleInject(css_248z$
|
|
3827
|
+
var css_248z$6 = ".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}";
|
|
3828
|
+
styleInject(css_248z$6);
|
|
3822
3829
|
|
|
3823
|
-
const b$
|
|
3830
|
+
const b$7 = block('composite-bar-item');
|
|
3824
3831
|
function renderItemTitle(item) {
|
|
3825
|
-
let titleNode = React__default.createElement("div", { className: b$
|
|
3832
|
+
let titleNode = React__default.createElement("div", { className: b$7('title-text') }, item.title);
|
|
3826
3833
|
if (item.rightAdornment) {
|
|
3827
3834
|
titleNode = (React__default.createElement(React__default.Fragment, null,
|
|
3828
3835
|
titleNode,
|
|
3829
|
-
React__default.createElement("div", { className: b$
|
|
3836
|
+
React__default.createElement("div", { className: b$7('title-adornment') }, item.rightAdornment)));
|
|
3830
3837
|
}
|
|
3831
3838
|
return titleNode;
|
|
3832
3839
|
}
|
|
@@ -3835,7 +3842,7 @@ const defaultPopupOffset = [-20, 8];
|
|
|
3835
3842
|
const Item = (props) => {
|
|
3836
3843
|
const { item, compact, className, collapseItems, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupAnchor, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, renderPopupContent, onClosePopup, onItemClick, } = props;
|
|
3837
3844
|
if (item.type === 'divider') {
|
|
3838
|
-
return React__default.createElement("div", { className: b$
|
|
3845
|
+
return React__default.createElement("div", { className: b$7('menu-divider') });
|
|
3839
3846
|
}
|
|
3840
3847
|
const [open, toggleOpen] = React__default.useState(false);
|
|
3841
3848
|
const ref = React__default.useRef(null);
|
|
@@ -3856,7 +3863,7 @@ const Item = (props) => {
|
|
|
3856
3863
|
onClosePopup === null || onClosePopup === void 0 ? void 0 : onClosePopup();
|
|
3857
3864
|
}, [onClosePopup]);
|
|
3858
3865
|
const makeNode = ({ icon: iconEl, title: titleEl }) => {
|
|
3859
|
-
const createdNode = (React__default.createElement("div", { className: b$
|
|
3866
|
+
const createdNode = (React__default.createElement("div", { className: b$7({ type, current, compact }, className), ref: ref, onClick: () => {
|
|
3860
3867
|
if (collapsedItem) {
|
|
3861
3868
|
/**
|
|
3862
3869
|
* If we call onItemClick for collapsedItem then:
|
|
@@ -3877,13 +3884,13 @@ const Item = (props) => {
|
|
|
3877
3884
|
onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave();
|
|
3878
3885
|
}
|
|
3879
3886
|
} },
|
|
3880
|
-
React__default.createElement("div", { className: b$
|
|
3881
|
-
React__default.createElement("div", { onMouseEnter: () => onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(), onMouseLeave: () => onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(), className: b$
|
|
3882
|
-
React__default.createElement("div", { className: b$
|
|
3883
|
-
renderPopupContent && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default.createElement(Popup, { className: b$
|
|
3884
|
-
return item.link ? (React__default.createElement("a", { href: item.link, className: b$
|
|
3887
|
+
React__default.createElement("div", { className: b$7('icon-place') }, compact ? (React__default.createElement(Tooltip, { content: tooltipText, disabled: !enableTooltip || (collapsedItem && open), placement: "right", className: b$7('icon-tooltip', { 'item-type': type }) },
|
|
3888
|
+
React__default.createElement("div", { onMouseEnter: () => onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(), onMouseLeave: () => onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(), className: b$7('btn-icon') }, iconEl))) : (iconEl)),
|
|
3889
|
+
React__default.createElement("div", { className: b$7('title'), title: typeof item.title === 'string' ? item.title : undefined }, titleEl),
|
|
3890
|
+
renderPopupContent && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default.createElement(Popup, { className: b$7('popup'), open: popupVisible, placement: popupPlacement, offset: popupOffset, anchorRef: anchorRef, onClose: onClose }, renderPopupContent()))));
|
|
3891
|
+
return item.link ? (React__default.createElement("a", { href: item.link, className: b$7('link') }, createdNode)) : (createdNode);
|
|
3885
3892
|
};
|
|
3886
|
-
const iconNode = icon ? React__default.createElement(Icon, { data: icon, size: iconSize, className: b$
|
|
3893
|
+
const iconNode = icon ? React__default.createElement(Icon, { data: icon, size: iconSize, className: b$7('icon') }) : null;
|
|
3887
3894
|
const titleNode = renderItemTitle(item);
|
|
3888
3895
|
const params = { icon: iconNode, title: titleNode };
|
|
3889
3896
|
let node;
|
|
@@ -3901,13 +3908,13 @@ const Item = (props) => {
|
|
|
3901
3908
|
Item.displayName = 'Item';
|
|
3902
3909
|
function CollapsedPopup({ compact, onItemClick, collapseItems, anchorRef, onClose, }) {
|
|
3903
3910
|
return (collapseItems === null || collapseItems === void 0 ? void 0 : collapseItems.length) ? (React__default.createElement(Popup, { placement: POPUP_PLACEMENT, open: true, anchorRef: anchorRef, onClose: onClose },
|
|
3904
|
-
React__default.createElement("div", { className: b$
|
|
3905
|
-
React__default.createElement(List, { itemClassName: b$
|
|
3911
|
+
React__default.createElement("div", { className: b$7('collapse-items-popup-content') },
|
|
3912
|
+
React__default.createElement(List, { itemClassName: b$7('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) => {
|
|
3906
3913
|
const makeCollapseNode = ({ title: titleEl }) => {
|
|
3907
|
-
const res = (React__default.createElement("div", { className: b$
|
|
3914
|
+
const res = (React__default.createElement("div", { className: b$7('collapse-item'), onClick: () => {
|
|
3908
3915
|
onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(collapseItem, true);
|
|
3909
3916
|
} }, titleEl));
|
|
3910
|
-
return collapseItem.link ? (React__default.createElement("a", { href: collapseItem.link, className: b$
|
|
3917
|
+
return collapseItem.link ? (React__default.createElement("a", { href: collapseItem.link, className: b$7('link') }, res)) : (res);
|
|
3911
3918
|
};
|
|
3912
3919
|
const titleNode = renderItemTitle(collapseItem);
|
|
3913
3920
|
const params = { title: titleNode };
|
|
@@ -3937,10 +3944,10 @@ var SvgDots = function SvgDots(props) {
|
|
|
3937
3944
|
};
|
|
3938
3945
|
var dotsIcon = SvgDots;
|
|
3939
3946
|
|
|
3940
|
-
var css_248z$
|
|
3941
|
-
styleInject(css_248z$
|
|
3947
|
+
var css_248z$5 = ".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}";
|
|
3948
|
+
styleInject(css_248z$5);
|
|
3942
3949
|
|
|
3943
|
-
const b$
|
|
3950
|
+
const b$6 = block('composite-bar');
|
|
3944
3951
|
class CompositeBar extends React__default.Component {
|
|
3945
3952
|
constructor() {
|
|
3946
3953
|
super(...arguments);
|
|
@@ -3955,10 +3962,10 @@ class CompositeBar extends React__default.Component {
|
|
|
3955
3962
|
return null;
|
|
3956
3963
|
}
|
|
3957
3964
|
if (!enableCollapsing) {
|
|
3958
|
-
return React__default.createElement("div", { className: b$
|
|
3965
|
+
return React__default.createElement("div", { className: b$6() }, this.renderMenu());
|
|
3959
3966
|
}
|
|
3960
3967
|
const minHeight = getItemsMinHeight(items);
|
|
3961
|
-
return (React__default.createElement("div", { className: b$
|
|
3968
|
+
return (React__default.createElement("div", { className: b$6({ autosizer: true }), style: { minHeight } }, items.length !== 0 && (React__default.createElement(AutoSizer, null, ({ width, height }) => {
|
|
3962
3969
|
const style = {
|
|
3963
3970
|
width,
|
|
3964
3971
|
height,
|
|
@@ -3969,7 +3976,7 @@ class CompositeBar extends React__default.Component {
|
|
|
3969
3976
|
renderAutosizeMenu(height) {
|
|
3970
3977
|
const { compact, onItemClick } = this.props;
|
|
3971
3978
|
const { listItems, collapseItems } = this.getAutosizeListItems(height);
|
|
3972
|
-
return (React__default.createElement(List, { ref: this.listRef, items: listItems, selectedItemIndex: getSelectedItemIndex(listItems), itemHeight: getItemHeight, itemClassName: b$
|
|
3979
|
+
return (React__default.createElement(List, { ref: this.listRef, items: listItems, selectedItemIndex: getSelectedItemIndex(listItems), itemHeight: getItemHeight, itemClassName: b$6('root-menu-item'), itemsHeight: getItemsHeight, virtualized: false, filterable: false, sortable: false, renderItem: (item) => (React__default.createElement(Item, { item: item, onMouseLeave: () => {
|
|
3973
3980
|
var _a;
|
|
3974
3981
|
if (compact) {
|
|
3975
3982
|
(_a = this.listRef.current) === null || _a === void 0 ? void 0 : _a.activateItem(undefined);
|
|
@@ -3978,7 +3985,7 @@ class CompositeBar extends React__default.Component {
|
|
|
3978
3985
|
}
|
|
3979
3986
|
renderMenu() {
|
|
3980
3987
|
const { items, onItemClick, compact } = this.props;
|
|
3981
|
-
return (React__default.createElement(List, { ref: this.listRef, items: items, selectedItemIndex: getSelectedItemIndex(items), itemHeight: getItemHeight, itemClassName: b$
|
|
3988
|
+
return (React__default.createElement(List, { ref: this.listRef, items: items, selectedItemIndex: getSelectedItemIndex(items), itemHeight: getItemHeight, itemClassName: b$6('root-menu-item'), itemsHeight: getItemsHeight, virtualized: false, filterable: false, sortable: false, renderItem: (item) => (React__default.createElement(Item, { item: item, onMouseLeave: () => {
|
|
3982
3989
|
var _a;
|
|
3983
3990
|
if (compact) {
|
|
3984
3991
|
(_a = this.listRef.current) === null || _a === void 0 ? void 0 : _a.activateItem(undefined);
|
|
@@ -4043,8 +4050,8 @@ const RenderContent = React__default.memo(({ renderContent, size }) => {
|
|
|
4043
4050
|
return React__default.createElement(React__default.Fragment, null, renderContent({ size }));
|
|
4044
4051
|
});
|
|
4045
4052
|
RenderContent.displayName = 'RenderContent';
|
|
4046
|
-
const Content = ({ size, className, renderContent }) => {
|
|
4047
|
-
return (React__default.createElement("div", { className: className, style: Object.assign({}, {
|
|
4053
|
+
const Content = ({ size, className, cssSizeVariableName = '--aside-header-size', renderContent, }) => {
|
|
4054
|
+
return (React__default.createElement("div", { className: className, style: Object.assign({}, { [cssSizeVariableName]: `${size}px` }) }, typeof renderContent === 'function' && (React__default.createElement(RenderContent, { size: size, renderContent: renderContent }))));
|
|
4048
4055
|
};
|
|
4049
4056
|
|
|
4050
4057
|
var _path$1;
|
|
@@ -4077,37 +4084,37 @@ var SvgDividerCollapsed = function SvgDividerCollapsed(props) {
|
|
|
4077
4084
|
};
|
|
4078
4085
|
var headerDividerCollapsedIcon = SvgDividerCollapsed;
|
|
4079
4086
|
|
|
4080
|
-
var css_248z$
|
|
4081
|
-
styleInject(css_248z$
|
|
4087
|
+
var css_248z$4 = ".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.yc-root_theme_light-hc {\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.yc-root_theme_dark-hc {\n --aside-header-divider-line-color: var(--yc-color-line-solid);\n --aside-header-header-divider-line-color: var(--yc-color-line-solid);\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}\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__aside-content_with-decoration {\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_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_with-decoration::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_with-decoration .ycn-aside-header__header-divider {\n display: block;\n}\n.ycn-aside-header_compact .ycn-aside-header__header_with-decoration::after {\n display: none;\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}";
|
|
4088
|
+
styleInject(css_248z$4);
|
|
4082
4089
|
|
|
4083
|
-
const b$
|
|
4090
|
+
const b$5 = block('aside-header');
|
|
4084
4091
|
class AsideHeader extends React__default.Component {
|
|
4085
4092
|
constructor() {
|
|
4086
4093
|
super(...arguments);
|
|
4087
4094
|
this.asideRef = React__default.createRef();
|
|
4088
4095
|
this.renderFirstPane = (size) => {
|
|
4089
|
-
const { dict, menuItems, panelItems, compact } = this.props;
|
|
4096
|
+
const { dict, menuItems, panelItems, compact, headerDecoration } = this.props;
|
|
4090
4097
|
return (React__default.createElement(React__default.Fragment, null,
|
|
4091
|
-
React__default.createElement("div", { className: b$
|
|
4092
|
-
React__default.createElement("div", { className: b$
|
|
4093
|
-
React__default.createElement("div", { className: b$
|
|
4098
|
+
React__default.createElement("div", { className: b$5('aside'), style: { width: size } },
|
|
4099
|
+
React__default.createElement("div", { className: b$5('aside-popup-anchor'), ref: this.asideRef }),
|
|
4100
|
+
React__default.createElement("div", { className: b$5('aside-content', { ['with-decoration']: headerDecoration }) },
|
|
4094
4101
|
this.renderHeader(),
|
|
4095
|
-
(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$
|
|
4102
|
+
(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$5('menu-items') })),
|
|
4096
4103
|
this.renderFooter(size),
|
|
4097
4104
|
this.renderCollapseButton())),
|
|
4098
4105
|
panelItems && this.renderPanels(size)));
|
|
4099
4106
|
};
|
|
4100
4107
|
this.renderSecondPane = (size) => {
|
|
4101
|
-
return (React__default.createElement(Content, { size: size, renderContent: this.props.renderContent, className: b$
|
|
4108
|
+
return (React__default.createElement(Content, { size: size, renderContent: this.props.renderContent, className: b$5('content') }));
|
|
4102
4109
|
};
|
|
4103
4110
|
this.renderLogo = () => (React__default.createElement(Logo, Object.assign({}, this.props.logo, { compact: this.props.compact, onClick: this.onLogoClick })));
|
|
4104
|
-
this.renderHeader = () => (React__default.createElement("div", { className: b$
|
|
4111
|
+
this.renderHeader = () => (React__default.createElement("div", { className: b$5('header', { ['with-decoration']: this.props.headerDecoration }) },
|
|
4105
4112
|
this.renderLogo(),
|
|
4106
4113
|
React__default.createElement(CompositeBar, { items: this.props.subheaderItems, compact: this.props.compact, enableCollapsing: false, onItemClick: this.onItemClick }),
|
|
4107
|
-
React__default.createElement(Icon, { data: headerDividerCollapsedIcon, className: b$
|
|
4114
|
+
React__default.createElement(Icon, { data: headerDividerCollapsedIcon, className: b$5('header-divider'), width: ASIDE_HEADER_COMPACT_WIDTH, height: "29" })));
|
|
4108
4115
|
this.renderFooter = (size) => {
|
|
4109
4116
|
const { compact, renderFooter } = this.props;
|
|
4110
|
-
return (React__default.createElement("div", { className: b$
|
|
4117
|
+
return (React__default.createElement("div", { className: b$5('footer') }, renderFooter === null || renderFooter === void 0 ? void 0 : renderFooter({
|
|
4111
4118
|
size,
|
|
4112
4119
|
compact,
|
|
4113
4120
|
asideRef: this.asideRef,
|
|
@@ -4115,14 +4122,14 @@ class AsideHeader extends React__default.Component {
|
|
|
4115
4122
|
};
|
|
4116
4123
|
this.renderPanels = (size) => {
|
|
4117
4124
|
const { panelItems } = this.props;
|
|
4118
|
-
return (React__default.createElement(Drawer, { className: b$
|
|
4125
|
+
return (React__default.createElement(Drawer, { className: b$5('panels'), onVeilClick: this.onCloseDrawer, onEscape: this.onCloseDrawer, style: { left: size } }, panelItems.map((item) => (React__default.createElement(DrawerItem, Object.assign({ key: item.id }, item))))));
|
|
4119
4126
|
};
|
|
4120
4127
|
this.renderCollapseButton = () => {
|
|
4121
4128
|
var _a;
|
|
4122
4129
|
const { compact, dict } = this.props;
|
|
4123
4130
|
const typeButton = compact ? Dict.ExpandButton : Dict.CollapseButton;
|
|
4124
|
-
return (React__default.createElement(Button, { className: b$
|
|
4125
|
-
React__default.createElement(Icon, { data: controlMenuButtonIcon, className: b$
|
|
4131
|
+
return (React__default.createElement(Button, { className: b$5('collapse-button', { compact }), view: "flat", onClick: this.onCollapseButtonClick, title: (_a = dict === null || dict === void 0 ? void 0 : dict[typeButton]) !== null && _a !== void 0 ? _a : defaultDict$1[typeButton] },
|
|
4132
|
+
React__default.createElement(Icon, { data: controlMenuButtonIcon, className: b$5('collapse-icon'), width: "16", height: "10" })));
|
|
4126
4133
|
};
|
|
4127
4134
|
this.onCollapseButtonClick = () => {
|
|
4128
4135
|
var _a, _b;
|
|
@@ -4146,8 +4153,8 @@ class AsideHeader extends React__default.Component {
|
|
|
4146
4153
|
render() {
|
|
4147
4154
|
const { className, compact } = this.props;
|
|
4148
4155
|
const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;
|
|
4149
|
-
return (React__default.createElement("div", { className: b$
|
|
4150
|
-
React__default.createElement("div", { className: b$
|
|
4156
|
+
return (React__default.createElement("div", { className: b$5({ compact }, className) },
|
|
4157
|
+
React__default.createElement("div", { className: b$5('pane-container') },
|
|
4151
4158
|
this.renderFirstPane(size),
|
|
4152
4159
|
this.renderSecondPane(size))));
|
|
4153
4160
|
}
|
|
@@ -4156,6 +4163,7 @@ AsideHeader.defaultProps = {
|
|
|
4156
4163
|
panelItems: [],
|
|
4157
4164
|
subheaderItems: [],
|
|
4158
4165
|
menuItems: [],
|
|
4166
|
+
headerDecoration: true,
|
|
4159
4167
|
};
|
|
4160
4168
|
|
|
4161
4169
|
/******************************************************************************
|
|
@@ -4185,13 +4193,13 @@ function __rest(s, e) {
|
|
|
4185
4193
|
return t;
|
|
4186
4194
|
}
|
|
4187
4195
|
|
|
4188
|
-
var css_248z$
|
|
4189
|
-
styleInject(css_248z$
|
|
4196
|
+
var css_248z$3 = ".ycn-footer-item {\n width: 100%;\n height: 40px;\n}";
|
|
4197
|
+
styleInject(css_248z$3);
|
|
4190
4198
|
|
|
4191
|
-
const b$
|
|
4199
|
+
const b$4 = block('footer-item');
|
|
4192
4200
|
const FooterItem = (_a) => {
|
|
4193
4201
|
var { item } = _a, props = __rest(_a, ["item"]);
|
|
4194
|
-
return (React__default.createElement(Item, Object.assign({}, props, { item: Object.assign({ iconSize: ASIDE_HEADER_FOOTER_ICON_SIZE }, item), className: b$
|
|
4202
|
+
return (React__default.createElement(Item, Object.assign({}, props, { item: Object.assign({ iconSize: ASIDE_HEADER_FOOTER_ICON_SIZE }, item), className: b$4({ compact: props.compact }), onItemClick: item.onItemClick })));
|
|
4195
4203
|
};
|
|
4196
4204
|
|
|
4197
4205
|
/**
|
|
@@ -4785,25 +4793,25 @@ function escapeStringForRegExp(input) {
|
|
|
4785
4793
|
return input.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
4786
4794
|
}
|
|
4787
4795
|
|
|
4788
|
-
const b$
|
|
4789
|
-
function SettingsSearch({ className, onChange, debounce = 200, inputRef, placeholder, }) {
|
|
4796
|
+
const b$3 = block('settings-search');
|
|
4797
|
+
function SettingsSearch({ className, onChange, debounce = 200, inputRef, inputSize, placeholder, autoFocus = true, }) {
|
|
4790
4798
|
const onChangeStable = useStableCallback(onChange);
|
|
4791
4799
|
const handleUpdate = React__default.useCallback(debounce_1(onChangeStable, debounce), [debounce]);
|
|
4792
|
-
return (React__default.createElement("div", { className: b$
|
|
4793
|
-
React__default.createElement(TextInput, { controlRef: inputRef, hasClear: true, autoFocus:
|
|
4800
|
+
return (React__default.createElement("div", { className: b$3(null, className) },
|
|
4801
|
+
React__default.createElement(TextInput, { controlRef: inputRef, hasClear: true, autoFocus: autoFocus, size: inputSize, placeholder: placeholder, onUpdate: handleUpdate })));
|
|
4794
4802
|
}
|
|
4795
4803
|
|
|
4796
|
-
var css_248z$
|
|
4797
|
-
styleInject(css_248z$
|
|
4804
|
+
var css_248z$2 = ".ycn-settings-menu__group-heading {\n font-weight: var(--yc-text-accent-font-weight);\n display: inline-block;\n padding: 0 20px;\n margin-bottom: 12px;\n line-height: 18px;\n}\n.ycn-settings-menu__group + .ycn-settings-menu__group {\n margin-top: 24px;\n}\n.ycn-settings-menu__item {\n display: flex;\n align-items: center;\n height: 40px;\n padding: 0 20px;\n cursor: pointer;\n color: var(--yc-color-text-primary);\n}\n.ycn-settings-menu__item-icon {\n color: var(--yc-color-text-misc);\n margin-right: 5px;\n}\n.ycn-settings-menu__item:hover, .ycn-settings-menu__item_focused {\n background: var(--yc-color-base-simple-hover);\n}\n.ycn-settings-menu__item_selected {\n background: var(--yc-color-base-selection);\n}\n.ycn-settings-menu__item_selected:hover, .ycn-settings-menu__item_selected.ycn-settings-menu__item_focused {\n background: var(--yc-color-base-selection-hover);\n}\n.ycn-settings-menu__item_disabled {\n color: var(--yc-color-text-secondary);\n cursor: auto;\n}\n.ycn-settings-menu__item_disabled:hover {\n background: none;\n}\n.ycn-settings-menu__item_disabled .ycn-settings-menu__item-icon {\n color: var(--yc-color-base-misc-heavy);\n}\n.ycn-settings-menu__item_badge {\n position: relative;\n}\n.ycn-settings-menu__item_badge::after {\n content: \"\";\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--yc-color-text-danger);\n position: absolute;\n right: 9px;\n top: calc(50% - 3px);\n}";
|
|
4805
|
+
styleInject(css_248z$2);
|
|
4798
4806
|
|
|
4799
|
-
const b$
|
|
4807
|
+
const b$2 = block('settings-menu');
|
|
4800
4808
|
const SettingsMenu = React__default.forwardRef(
|
|
4801
4809
|
// eslint-disable-next-line prefer-arrow-callback
|
|
4802
|
-
function SettingsMenu({ items, onChange,
|
|
4803
|
-
const [
|
|
4810
|
+
function SettingsMenu({ items, onChange, activeItemId }, ref) {
|
|
4811
|
+
const [focusItemId, setFocusId] = React__default.useState();
|
|
4804
4812
|
const containerRef = React__default.useRef(null);
|
|
4805
4813
|
const handleChange = useStableCallback(onChange);
|
|
4806
|
-
const getFocused = useCurrent(
|
|
4814
|
+
const getFocused = useCurrent(focusItemId);
|
|
4807
4815
|
React__default.useImperativeHandle(ref, () => ({
|
|
4808
4816
|
handleKeyDown(event) {
|
|
4809
4817
|
if (!containerRef.current) {
|
|
@@ -4815,47 +4823,47 @@ function SettingsMenu({ items, onChange, activeItem }, ref) {
|
|
|
4815
4823
|
return true;
|
|
4816
4824
|
}
|
|
4817
4825
|
else if (event.key === 'ArrowDown') {
|
|
4818
|
-
|
|
4826
|
+
setFocusId(focusNext(containerRef.current, focused, 1));
|
|
4819
4827
|
return true;
|
|
4820
4828
|
}
|
|
4821
4829
|
else if (event.key === 'ArrowUp') {
|
|
4822
|
-
|
|
4830
|
+
setFocusId(focusNext(containerRef.current, focused, -1));
|
|
4823
4831
|
return true;
|
|
4824
4832
|
}
|
|
4825
4833
|
return false;
|
|
4826
4834
|
},
|
|
4827
4835
|
clearFocus() {
|
|
4828
|
-
|
|
4836
|
+
setFocusId(undefined);
|
|
4829
4837
|
},
|
|
4830
4838
|
}), [getFocused, handleChange]);
|
|
4831
|
-
return (React__default.createElement("div", { ref: containerRef, className: b$
|
|
4839
|
+
return (React__default.createElement("div", { ref: containerRef, className: b$2() }, items.map((firstLevelItem) => {
|
|
4832
4840
|
if ('groupTitle' in firstLevelItem) {
|
|
4833
|
-
return (React__default.createElement("div", { key: firstLevelItem.groupTitle, className: b$
|
|
4834
|
-
React__default.createElement("span", { className: b$
|
|
4841
|
+
return (React__default.createElement("div", { key: firstLevelItem.groupTitle, className: b$2('group') },
|
|
4842
|
+
React__default.createElement("span", { className: b$2('group-heading') }, firstLevelItem.groupTitle),
|
|
4835
4843
|
firstLevelItem.items.map((item) => {
|
|
4836
|
-
return renderMenuItem(item, onChange,
|
|
4844
|
+
return renderMenuItem(item, onChange, activeItemId, focusItemId);
|
|
4837
4845
|
})));
|
|
4838
4846
|
}
|
|
4839
|
-
return renderMenuItem(firstLevelItem, onChange,
|
|
4847
|
+
return renderMenuItem(firstLevelItem, onChange, activeItemId, focusItemId);
|
|
4840
4848
|
})));
|
|
4841
4849
|
});
|
|
4842
|
-
function renderMenuItem(item, onChange,
|
|
4843
|
-
return (React__default.createElement("span", { key: item.title, className: b$
|
|
4844
|
-
selected:
|
|
4850
|
+
function renderMenuItem(item, onChange, activeItemId, focusItemId) {
|
|
4851
|
+
return (React__default.createElement("span", { key: item.title, className: b$2('item', {
|
|
4852
|
+
selected: activeItemId === item.id,
|
|
4845
4853
|
disabled: item.disabled,
|
|
4846
|
-
focused:
|
|
4854
|
+
focused: focusItemId === item.id,
|
|
4847
4855
|
badge: item.withBadge,
|
|
4848
4856
|
}), onClick: () => {
|
|
4849
4857
|
if (!item.disabled) {
|
|
4850
4858
|
onChange(item.id);
|
|
4851
4859
|
}
|
|
4852
4860
|
}, "data-id": item.id },
|
|
4853
|
-
item.icon ? React__default.createElement(Icon, Object.assign({ size: 16 }, item.icon, { className: b$
|
|
4861
|
+
item.icon ? React__default.createElement(Icon, Object.assign({ size: 16 }, item.icon, { className: b$2('item-icon') })) : undefined,
|
|
4854
4862
|
React__default.createElement("span", null, item.title)));
|
|
4855
4863
|
}
|
|
4856
4864
|
function focusNext(container, focused, direction) {
|
|
4857
4865
|
var _a;
|
|
4858
|
-
const elements = container.querySelectorAll(`.${b$
|
|
4866
|
+
const elements = container.querySelectorAll(`.${b$2('item')}:not(.${b$2('item')}_disabled)`);
|
|
4859
4867
|
if (elements.length === 0) {
|
|
4860
4868
|
return undefined;
|
|
4861
4869
|
}
|
|
@@ -4867,6 +4875,37 @@ function focusNext(container, focused, direction) {
|
|
|
4867
4875
|
return (_a = elements[currentIndex].getAttribute('data-id')) !== null && _a !== void 0 ? _a : undefined;
|
|
4868
4876
|
}
|
|
4869
4877
|
|
|
4878
|
+
var css_248z$1 = ".ycn-settings-menu-mobile.yc-tabs_direction_horizontal {\n overflow-x: auto;\n flex-wrap: nowrap;\n overscroll-behavior-x: none;\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n.ycn-settings-menu-mobile.yc-tabs_direction_horizontal::-webkit-scrollbar {\n display: none;\n}\n.ycn-settings-menu-mobile__item_badge {\n position: relative;\n}\n.ycn-settings-menu-mobile__item_badge::after {\n content: \"\";\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--yc-color-text-danger);\n position: absolute;\n right: -8px;\n top: 11px;\n}";
|
|
4879
|
+
styleInject(css_248z$1);
|
|
4880
|
+
|
|
4881
|
+
const b$1 = block('settings-menu-mobile');
|
|
4882
|
+
const SettingsMenuMobile = ({ items, onChange, activeItemId, className, }) => {
|
|
4883
|
+
const ref = React__default.useRef(null);
|
|
4884
|
+
const tabItems = React__default.useMemo(() => {
|
|
4885
|
+
const tabItems = [];
|
|
4886
|
+
items.forEach((firstLevelItem) => {
|
|
4887
|
+
if ('groupTitle' in firstLevelItem) {
|
|
4888
|
+
tabItems.push(...firstLevelItem.items.map(({ id, title, disabled, withBadge }) => ({
|
|
4889
|
+
id,
|
|
4890
|
+
title,
|
|
4891
|
+
disabled,
|
|
4892
|
+
className: b$1('item', { badge: withBadge }),
|
|
4893
|
+
})));
|
|
4894
|
+
}
|
|
4895
|
+
else {
|
|
4896
|
+
const { id, title, disabled, withBadge } = firstLevelItem;
|
|
4897
|
+
tabItems.push({ id, title, disabled, className: b$1('item', { badge: withBadge }) });
|
|
4898
|
+
}
|
|
4899
|
+
});
|
|
4900
|
+
return tabItems;
|
|
4901
|
+
}, [items]);
|
|
4902
|
+
const handleTouchMove = (e) => {
|
|
4903
|
+
e.stopPropagation();
|
|
4904
|
+
};
|
|
4905
|
+
return (React__default.createElement("div", { ref: ref, onTouchMove: handleTouchMove },
|
|
4906
|
+
React__default.createElement(Tabs, { items: tabItems, className: b$1(null, className), size: "l", activeTab: activeItemId, onSelectTab: onChange })));
|
|
4907
|
+
};
|
|
4908
|
+
|
|
4870
4909
|
function getSettingsFromChildren(children, searchText = '') {
|
|
4871
4910
|
// 'abc def fg' -> abc.*?cde.*?fg
|
|
4872
4911
|
const preparedFilter = escapeStringForRegExp(searchText).replace(/\s+/g, '.*?');
|
|
@@ -4944,7 +4983,7 @@ function getSettingsPageFromChildren(children, filterRe) {
|
|
|
4944
4983
|
page.hidden = hidden && page.hidden;
|
|
4945
4984
|
}
|
|
4946
4985
|
else {
|
|
4947
|
-
const { title, header, withBadge } = element.props;
|
|
4986
|
+
const { title, header, withBadge, showTitle = true } = element.props;
|
|
4948
4987
|
const { items, hidden } = getSettingsItemsFromChildren(element.props.children, filterRe);
|
|
4949
4988
|
page.withBadge = withBadge || page.withBadge;
|
|
4950
4989
|
page.hidden = hidden && page.hidden;
|
|
@@ -4954,6 +4993,7 @@ function getSettingsPageFromChildren(children, filterRe) {
|
|
|
4954
4993
|
withBadge,
|
|
4955
4994
|
items,
|
|
4956
4995
|
hidden,
|
|
4996
|
+
showTitle,
|
|
4957
4997
|
});
|
|
4958
4998
|
}
|
|
4959
4999
|
});
|
|
@@ -4987,7 +5027,7 @@ function getSettingsItemsFromChildren(children, filterRe) {
|
|
|
4987
5027
|
return { items, hidden };
|
|
4988
5028
|
}
|
|
4989
5029
|
|
|
4990
|
-
var css_248z = ".ycn-settings {\n display: grid;\n grid-template-columns: 216px 1fr;\n width: 834px;\n height: 100%;\n}\n.ycn-settings_loading {\n grid-template-columns: auto;\n}\n.ycn-settings__loader {\n align-self: center;\n justify-self: center;\n}\n.ycn-settings__not-found {\n display: grid;\n align-items: center;\n justify-items: center;\n height: 100%;\n}\n.ycn-settings__menu {\n border-right: 1px solid var(--yc-color-line-generic);\n}\n.ycn-settings__heading {\n font-size: var(--yc-text-subheader-2-font-size);\n line-height: var(--yc-text-subheader-2-line-height);\n font-weight: var(--yc-text-subheader-font-weight);\n margin: 20px 20px 0;\n}\n.ycn-settings__search {\n margin: 12px 20px 16px;\n}\n.ycn-settings__page {\n padding: 20px;\n overflow-y: auto;\n}\n.ycn-settings__section-heading {\n font-size: var(--yc-text-subheader-2-font-size);\n line-height: var(--yc-text-subheader-2-line-height);\n font-weight: var(--yc-text-subheader-font-weight);\n margin: 0;\n}\n.ycn-settings__section-item {\n margin-top: 24px;\n}\n.ycn-settings__section + .ycn-settings__section {\n margin-top: 32px;\n}\n.ycn-settings__item {\n display: grid;\n grid-template-columns: 216px 1fr;\n justify-items: start;\n}\n.ycn-settings__item_align_top {\n align-items: start;\n}\n.ycn-settings__item_align_center {\n align-items: center;\n}\n.ycn-settings__item-
|
|
5030
|
+
var css_248z = ".ycn-settings {\n display: grid;\n grid-template-columns: 216px 1fr;\n width: 834px;\n height: 100%;\n}\n.ycn-settings_view_mobile {\n display: block;\n width: auto;\n height: calc(90vh - 56px);\n}\n.ycn-settings_view_mobile.ycn-settings_loading {\n text-align: center;\n}\n.ycn-settings_view_mobile .ycn-settings__loader {\n margin-top: 20px;\n}\n.ycn-settings_view_mobile .ycn-settings__search {\n padding: 0 20px;\n margin: 4px 0 16px;\n}\n.ycn-settings_view_mobile .ycn-settings__page {\n padding: 20px 20px;\n overflow-y: visible;\n}\n.ycn-settings_view_mobile .ycn-settings__tabs .yc-tabs__item:first-child {\n margin-left: 20px;\n}\n.ycn-settings_view_mobile .ycn-settings__tabs .yc-tabs__item:last-child {\n margin-right: 20px;\n}\n.ycn-settings_view_mobile .ycn-settings__section-heading {\n font-size: var(--yc-text-subheader-3-font-size);\n line-height: var(--yc-text-subheader-3-line-height);\n font-weight: var(--yc-text-subheader-font-weight);\n}\n.ycn-settings_view_mobile .ycn-settings__section-subheader {\n color: var(--yc-color-text-secondary);\n}\n.ycn-settings_view_mobile .ycn-settings__section-heading + .ycn-settings-subheader {\n margin-top: 8px;\n}\n.ycn-settings_view_mobile .ycn-settings__section-item {\n margin-top: 0;\n}\n.ycn-settings_view_mobile .ycn-settings__section-heading + .ycn-settings__section-item, .ycn-settings_view_mobile .ycn-settings__section-subheader + .ycn-settings__section-item {\n margin-top: 30px;\n}\n.ycn-settings_view_mobile .ycn-settings__section-item + .ycn-settings__section-item {\n margin-top: 22px;\n}\n.ycn-settings_view_mobile .ycn-settings__item:not(.ycn-settings_view_mobile .ycn-settings__item_mode_row) {\n grid-template-columns: 1fr;\n gap: 8px;\n}\n.ycn-settings_view_mobile .ycn-settings__item-heading {\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}\n.ycn-settings_view_mobile .ycn-settings__item-description {\n font-size: var(--yc-text-body-1-font-size);\n line-height: var(--yc-text-body-1-line-height);\n font-weight: var(--yc-text-body-font-weight);\n}\n.ycn-settings_view_mobile .ycn-settings__item_mode_row {\n grid-template-columns: 1fr auto;\n}\n.ycn-settings_view_mobile .ycn-settings__item_mode_row .ycn-settings__item-heading {\n padding-right: 20px;\n}\n.ycn-settings_view_mobile .ycn-settings__item-content {\n width: 100%;\n}\n.ycn-settings_loading {\n grid-template-columns: auto;\n}\n.ycn-settings__loader {\n align-self: center;\n justify-self: center;\n}\n.ycn-settings__not-found {\n display: grid;\n align-items: center;\n justify-items: center;\n height: 100%;\n}\n.ycn-settings__menu {\n border-right: 1px solid var(--yc-color-line-generic);\n}\n.ycn-settings__heading {\n font-size: var(--yc-text-subheader-2-font-size);\n line-height: var(--yc-text-subheader-2-line-height);\n font-weight: var(--yc-text-subheader-font-weight);\n margin: 20px 20px 0;\n}\n.ycn-settings__search {\n margin: 12px 20px 16px;\n}\n.ycn-settings__page {\n padding: 20px;\n overflow-y: auto;\n}\n.ycn-settings__section-heading {\n font-size: var(--yc-text-subheader-2-font-size);\n line-height: var(--yc-text-subheader-2-line-height);\n font-weight: var(--yc-text-subheader-font-weight);\n margin: 0;\n}\n.ycn-settings__section-item {\n margin-top: 24px;\n}\n.ycn-settings__section + .ycn-settings__section {\n margin-top: 32px;\n}\n.ycn-settings__item {\n display: grid;\n grid-template-columns: 216px 1fr;\n justify-items: start;\n}\n.ycn-settings__item_align_top {\n align-items: start;\n}\n.ycn-settings__item_align_center {\n align-items: center;\n}\n.ycn-settings__item-title_badge {\n position: relative;\n}\n.ycn-settings__item-title_badge::after {\n content: \"\";\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--yc-color-text-danger);\n position: absolute;\n right: -8px;\n top: 1px;\n}\n.ycn-settings__item-description {\n font-size: var(--yc-text-caption-2-font-size);\n line-height: var(--yc-text-caption-2-line-height);\n font-weight: var(--yc-text-caption-font-weight);\n display: block;\n margin-top: 2px;\n padding-right: 20px;\n color: var(--yc-color-text-secondary);\n}\n.ycn-settings__found {\n font-weight: var(--yc-text-accent-font-weight);\n background: var(--yc-color-base-selection);\n}";
|
|
4991
5031
|
styleInject(css_248z);
|
|
4992
5032
|
|
|
4993
5033
|
const b = block('settings');
|
|
@@ -4997,16 +5037,16 @@ const defaultDict = {
|
|
|
4997
5037
|
not_found: 'No results found',
|
|
4998
5038
|
};
|
|
4999
5039
|
function Settings(_a) {
|
|
5000
|
-
var { loading, renderLoading, children } = _a, props = __rest(_a, ["loading", "renderLoading", "children"]);
|
|
5040
|
+
var { loading, renderLoading, children, view = 'normal' } = _a, props = __rest(_a, ["loading", "renderLoading", "children", "view"]);
|
|
5001
5041
|
if (loading) {
|
|
5002
|
-
return (React__default.createElement("div", { className: b({ loading: true }) }, typeof renderLoading === 'function' ? (renderLoading()) : (React__default.createElement(Loader, { className: b('loader'), size: "m" }))));
|
|
5042
|
+
return (React__default.createElement("div", { className: b({ loading: true, view }) }, typeof renderLoading === 'function' ? (renderLoading()) : (React__default.createElement(Loader, { className: b('loader'), size: "m" }))));
|
|
5003
5043
|
}
|
|
5004
|
-
return React__default.createElement(SettingsContent, Object.assign({}, props), children);
|
|
5044
|
+
return (React__default.createElement(SettingsContent, Object.assign({ view: view }, props), children));
|
|
5005
5045
|
}
|
|
5006
5046
|
Settings.defaultProps = {
|
|
5007
5047
|
dict: defaultDict,
|
|
5008
5048
|
};
|
|
5009
|
-
function SettingsContent({ initialPage, onPageChange, children, renderNotFound, dict, }) {
|
|
5049
|
+
function SettingsContent({ initialPage, onPageChange, children, renderNotFound, dict, view, }) {
|
|
5010
5050
|
var _a, _b;
|
|
5011
5051
|
const [search, setSearch] = React__default.useState('');
|
|
5012
5052
|
const { menu, pages } = getSettingsFromChildren(children, search);
|
|
@@ -5014,6 +5054,7 @@ function SettingsContent({ initialPage, onPageChange, children, renderNotFound,
|
|
|
5014
5054
|
const [selectedPage, setCurrentPage] = React__default.useState(initialPage && pageKeys.includes(initialPage) ? initialPage : undefined);
|
|
5015
5055
|
const searchInputRef = React__default.useRef(null);
|
|
5016
5056
|
const menuRef = React__default.useRef(null);
|
|
5057
|
+
const isMobile = view === 'mobile';
|
|
5017
5058
|
React__default.useEffect(() => {
|
|
5018
5059
|
var _a;
|
|
5019
5060
|
(_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.clearFocus();
|
|
@@ -5052,12 +5093,14 @@ function SettingsContent({ initialPage, onPageChange, children, renderNotFound,
|
|
|
5052
5093
|
return pages[activePage].sections
|
|
5053
5094
|
.filter((section) => !section.hidden)
|
|
5054
5095
|
.map((section) => (React__default.createElement("div", { key: section.title, className: b('section') },
|
|
5055
|
-
React__default.createElement("h3", { className: b('section-heading') }, section.title),
|
|
5056
|
-
section.header ? section.header : null,
|
|
5096
|
+
section.showTitle ? (React__default.createElement("h3", { className: b('section-heading') }, section.title)) : null,
|
|
5097
|
+
section.header ? (isMobile ? (React__default.createElement("div", { className: b('section-subheader') }, section.header)) : (section.header)) : null,
|
|
5057
5098
|
section.items.map(({ hidden, title, element }) => hidden ? null : (React__default.createElement("div", { key: title, className: b('section-item') }, React__default.cloneElement(element, Object.assign(Object.assign({}, element.props), { title: search && title ? prepareTitle(title, search) : title }))))))));
|
|
5058
5099
|
};
|
|
5059
|
-
return (React__default.createElement("div", { className: b() },
|
|
5060
|
-
React__default.createElement(
|
|
5100
|
+
return (React__default.createElement("div", { className: b({ view }) },
|
|
5101
|
+
isMobile ? (React__default.createElement(React__default.Fragment, null,
|
|
5102
|
+
React__default.createElement(SettingsSearch, { inputRef: searchInputRef, className: b('search'), onChange: setSearch, autoFocus: false, inputSize: 'l' }),
|
|
5103
|
+
React__default.createElement(SettingsMenuMobile, { items: menu, onChange: handlePageChange, activeItemId: activePage, className: b('tabs') }))) : (React__default.createElement("div", { className: b('menu'), onClick: () => {
|
|
5061
5104
|
if (searchInputRef.current) {
|
|
5062
5105
|
searchInputRef.current.focus();
|
|
5063
5106
|
}
|
|
@@ -5069,8 +5112,8 @@ function SettingsContent({ initialPage, onPageChange, children, renderNotFound,
|
|
|
5069
5112
|
}
|
|
5070
5113
|
} },
|
|
5071
5114
|
React__default.createElement("h2", { className: b('heading') }, dict === null || dict === void 0 ? void 0 : dict.heading_settings),
|
|
5072
|
-
React__default.createElement(SettingsSearch, { inputRef: searchInputRef, className: b('search'), onChange: setSearch, placeholder: dict === null || dict === void 0 ? void 0 : dict.placeholder_search }),
|
|
5073
|
-
React__default.createElement(SettingsMenu, { ref: menuRef, items: menu, onChange: handlePageChange,
|
|
5115
|
+
React__default.createElement(SettingsSearch, { inputRef: searchInputRef, className: b('search'), onChange: setSearch, placeholder: dict === null || dict === void 0 ? void 0 : dict.placeholder_search, autoFocus: true }),
|
|
5116
|
+
React__default.createElement(SettingsMenu, { ref: menuRef, items: menu, onChange: handlePageChange, activeItemId: activePage }))),
|
|
5074
5117
|
React__default.createElement("div", { className: b('page') }, renderPageContent())));
|
|
5075
5118
|
}
|
|
5076
5119
|
Settings.Group = function SettingsGroup({ children }) {
|
|
@@ -5082,10 +5125,12 @@ Settings.Page = function SettingsPage({ children }) {
|
|
|
5082
5125
|
Settings.Section = function SettingsSection({ children }) {
|
|
5083
5126
|
return React__default.createElement(React__default.Fragment, null, children);
|
|
5084
5127
|
};
|
|
5085
|
-
Settings.Item = function SettingsItem({ title, children, align = 'center', withBadge, renderTitleComponent = identity_1, }) {
|
|
5086
|
-
return (React__default.createElement("div", { className: b('item', { align }) },
|
|
5087
|
-
React__default.createElement("label", { className: b('item-heading'
|
|
5088
|
-
|
|
5128
|
+
Settings.Item = function SettingsItem({ title, children, align = 'center', withBadge, renderTitleComponent = identity_1, mode, description, }) {
|
|
5129
|
+
return (React__default.createElement("div", { className: b('item', { align, mode }) },
|
|
5130
|
+
React__default.createElement("label", { className: b('item-heading') },
|
|
5131
|
+
React__default.createElement("span", { className: b('item-title', { badge: withBadge }) }, renderTitleComponent(title)),
|
|
5132
|
+
description ? React__default.createElement("span", { className: b('item-description') }, description) : null),
|
|
5133
|
+
React__default.createElement("div", { className: b('item-content') }, children)));
|
|
5089
5134
|
};
|
|
5090
5135
|
function prepareTitle(string, search) {
|
|
5091
5136
|
let temp = string.slice(0);
|
|
@@ -5111,5 +5156,5 @@ function prepareTitle(string, search) {
|
|
|
5111
5156
|
return title;
|
|
5112
5157
|
}
|
|
5113
5158
|
|
|
5114
|
-
export { PublicActionBar as ActionBar, AsideHeader, Dict, Drawer, DrawerItem, FooterItem, Settings };
|
|
5159
|
+
export { PublicActionBar as ActionBar, AsideHeader, Dict, Drawer, DrawerItem, FooterItem, MobileHeaderDict, Settings };
|
|
5115
5160
|
//# sourceMappingURL=index.js.map
|