@gravity-ui/navigation 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -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/cjs/index.js
CHANGED
|
@@ -114,48 +114,48 @@ function styleInject(css, ref) {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
var css_248z$
|
|
118
|
-
styleInject(css_248z$
|
|
117
|
+
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}";
|
|
118
|
+
styleInject(css_248z$d);
|
|
119
119
|
|
|
120
|
-
const b$
|
|
120
|
+
const b$e = block('action-bar-group');
|
|
121
121
|
const ActionBarGroup = ({ children, className, pull }) => {
|
|
122
|
-
return (React__default["default"].createElement("ul", { className: b$
|
|
122
|
+
return (React__default["default"].createElement("ul", { className: b$e({ pull }, className), role: "group" }, children));
|
|
123
123
|
};
|
|
124
124
|
ActionBarGroup.displayName = 'ActionBar.Group';
|
|
125
125
|
|
|
126
|
-
var css_248z$
|
|
127
|
-
styleInject(css_248z$
|
|
126
|
+
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}";
|
|
127
|
+
styleInject(css_248z$c);
|
|
128
128
|
|
|
129
|
-
const b$
|
|
129
|
+
const b$d = block('action-bar-item');
|
|
130
130
|
const ActionBarItem = ({ children, className, pull, spacing = true }) => {
|
|
131
|
-
return React__default["default"].createElement("li", { className: b$
|
|
131
|
+
return React__default["default"].createElement("li", { className: b$d({ pull, spacing }, className) }, children);
|
|
132
132
|
};
|
|
133
133
|
ActionBarItem.displayName = 'ActionBar.Item';
|
|
134
134
|
|
|
135
|
-
var css_248z$
|
|
136
|
-
styleInject(css_248z$
|
|
135
|
+
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}";
|
|
136
|
+
styleInject(css_248z$b);
|
|
137
137
|
|
|
138
|
-
const b$
|
|
138
|
+
const b$c = block('action-bar-section');
|
|
139
139
|
const ActionBarSection = ({ children, type = 'primary' }) => {
|
|
140
|
-
return React__default["default"].createElement("div", { className: b$
|
|
140
|
+
return React__default["default"].createElement("div", { className: b$c({ type }) }, children);
|
|
141
141
|
};
|
|
142
142
|
ActionBarSection.displayName = 'ActionBar.Section';
|
|
143
143
|
|
|
144
|
-
var css_248z$
|
|
145
|
-
styleInject(css_248z$
|
|
144
|
+
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}";
|
|
145
|
+
styleInject(css_248z$a);
|
|
146
146
|
|
|
147
|
-
const b$
|
|
147
|
+
const b$b = block('action-bar-separator');
|
|
148
148
|
const ActionBarSeparator = () => {
|
|
149
|
-
return React__default["default"].createElement("li", { role: "separator", className: b$
|
|
149
|
+
return React__default["default"].createElement("li", { role: "separator", className: b$b() });
|
|
150
150
|
};
|
|
151
151
|
ActionBarSeparator.displayName = 'ActionBar.Separator';
|
|
152
152
|
|
|
153
|
-
var css_248z$
|
|
154
|
-
styleInject(css_248z$
|
|
153
|
+
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}";
|
|
154
|
+
styleInject(css_248z$9);
|
|
155
155
|
|
|
156
|
-
const b$
|
|
156
|
+
const b$a = block('action-bar');
|
|
157
157
|
const ActionBar = ({ children, className, 'aria-label': ariaLabel }) => {
|
|
158
|
-
return (React__default["default"].createElement("section", { className: b$
|
|
158
|
+
return (React__default["default"].createElement("section", { className: b$a(null, className), "aria-label": ariaLabel }, children));
|
|
159
159
|
};
|
|
160
160
|
ActionBar.displayName = 'ActionBar';
|
|
161
161
|
const PublicActionBar = Object.assign(ActionBar, {
|
|
@@ -165,6 +165,11 @@ const PublicActionBar = Object.assign(ActionBar, {
|
|
|
165
165
|
Separator: ActionBarSeparator,
|
|
166
166
|
});
|
|
167
167
|
|
|
168
|
+
exports.MobileHeaderDict = void 0;
|
|
169
|
+
(function (MobileHeaderDict) {
|
|
170
|
+
MobileHeaderDict["CloseBurger"] = "button_close-burger";
|
|
171
|
+
MobileHeaderDict["OpenBurger"] = "button_open-burger";
|
|
172
|
+
})(exports.MobileHeaderDict || (exports.MobileHeaderDict = {}));
|
|
168
173
|
exports.Dict = void 0;
|
|
169
174
|
(function (Dict) {
|
|
170
175
|
Dict["ExpandButton"] = "button_expand";
|
|
@@ -179,6 +184,8 @@ const defaultDict$1 = {
|
|
|
179
184
|
[exports.Dict.CollapseButton]: 'Collapse',
|
|
180
185
|
[exports.Dict.ExpandButton]: 'Expand',
|
|
181
186
|
[exports.Dict.MoreButton]: 'More',
|
|
187
|
+
[exports.MobileHeaderDict.CloseBurger]: 'Close menu',
|
|
188
|
+
[exports.MobileHeaderDict.OpenBurger]: 'Open menu',
|
|
182
189
|
};
|
|
183
190
|
|
|
184
191
|
function _extends$4() {
|
|
@@ -3200,15 +3207,15 @@ SwitchTransition.defaultProps = {
|
|
|
3200
3207
|
mode: modes.out
|
|
3201
3208
|
};
|
|
3202
3209
|
|
|
3203
|
-
var css_248z$
|
|
3204
|
-
styleInject(css_248z$
|
|
3210
|
+
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}";
|
|
3211
|
+
styleInject(css_248z$8);
|
|
3205
3212
|
|
|
3206
|
-
const b$
|
|
3213
|
+
const b$9 = block('drawer');
|
|
3207
3214
|
const TIMEOUT = 300;
|
|
3208
|
-
const DrawerItem = ({ visible, content, className }) => {
|
|
3215
|
+
const DrawerItem = ({ visible, content, direction, className }) => {
|
|
3209
3216
|
const itemRef = React__default["default"].useRef(null);
|
|
3210
|
-
return (React__default["default"].createElement(CSSTransition, { in: visible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$
|
|
3211
|
-
React__default["default"].createElement("div", { ref: itemRef, className: b$
|
|
3217
|
+
return (React__default["default"].createElement(CSSTransition, { in: visible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$9('item-transition', { direction }), nodeRef: itemRef },
|
|
3218
|
+
React__default["default"].createElement("div", { ref: itemRef, className: b$9('item', { direction }, className) }, content)));
|
|
3212
3219
|
};
|
|
3213
3220
|
const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScrollBody = true, }) => {
|
|
3214
3221
|
let someItemVisible = false;
|
|
@@ -3266,9 +3273,9 @@ const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScro
|
|
|
3266
3273
|
const veilRef = React__default["default"].useRef(null);
|
|
3267
3274
|
return (React__default["default"].createElement(Transition, { in: someItemVisible, timeout: { enter: 0, exit: TIMEOUT }, mountOnEnter: true, unmountOnExit: true, nodeRef: containerRef }, (state) => {
|
|
3268
3275
|
const childrenVisible = someItemVisible && state === 'entered';
|
|
3269
|
-
return (React__default["default"].createElement("div", { ref: containerRef, className: b$
|
|
3270
|
-
React__default["default"].createElement(CSSTransition, { in: childrenVisible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$
|
|
3271
|
-
React__default["default"].createElement("div", { ref: veilRef, className: b$
|
|
3276
|
+
return (React__default["default"].createElement("div", { ref: containerRef, className: b$9(null, className), style: style },
|
|
3277
|
+
React__default["default"].createElement(CSSTransition, { in: childrenVisible, timeout: TIMEOUT, unmountOnExit: true, classNames: b$9('veil-transition'), nodeRef: veilRef },
|
|
3278
|
+
React__default["default"].createElement("div", { ref: veilRef, className: b$9('veil'), onClick: onVeilClick })),
|
|
3272
3279
|
React__default["default"].Children.map(children, (child) => {
|
|
3273
3280
|
const childElem = child;
|
|
3274
3281
|
if (childElem.type === DrawerItem) {
|
|
@@ -3280,10 +3287,10 @@ const Drawer = ({ className, children, style, onVeilClick, onEscape, preventScro
|
|
|
3280
3287
|
}));
|
|
3281
3288
|
};
|
|
3282
3289
|
|
|
3283
|
-
var css_248z$
|
|
3284
|
-
styleInject(css_248z$
|
|
3290
|
+
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}";
|
|
3291
|
+
styleInject(css_248z$7);
|
|
3285
3292
|
|
|
3286
|
-
const b$
|
|
3293
|
+
const b$8 = block('logo');
|
|
3287
3294
|
const Logo = ({ text, compact, icon, iconSrc, iconClassName, iconSize = 24, textSize = 15, href = '/', wrapper, onClick, }) => {
|
|
3288
3295
|
const hasClickHandler = typeof onClick === 'function';
|
|
3289
3296
|
const hasWrapper = typeof wrapper === 'function';
|
|
@@ -3301,18 +3308,18 @@ const Logo = ({ text, compact, icon, iconSrc, iconClassName, iconSize = 24, text
|
|
|
3301
3308
|
else if (icon) {
|
|
3302
3309
|
buttonIcon = React__default["default"].createElement(uikit.Icon, { data: icon, size: iconSize, className: iconClassName });
|
|
3303
3310
|
}
|
|
3304
|
-
const button = (React__default["default"].createElement(uikit.Button, Object.assign({ view: "flat", size: "l", className: b$
|
|
3311
|
+
const button = (React__default["default"].createElement(uikit.Button, Object.assign({ view: "flat", size: "l", className: b$8('btn-logo'), component: hasWrapper ? 'span' : undefined, onClick: onClick }, linkProps), buttonIcon));
|
|
3305
3312
|
let logo;
|
|
3306
3313
|
if (typeof text === 'function') {
|
|
3307
3314
|
logo = text();
|
|
3308
3315
|
}
|
|
3309
3316
|
else {
|
|
3310
|
-
logo = (React__default["default"].createElement("div", { className: b$
|
|
3317
|
+
logo = (React__default["default"].createElement("div", { className: b$8('logo'), style: { fontSize: textSize } }, text));
|
|
3311
3318
|
}
|
|
3312
|
-
return (React__default["default"].createElement("div", { className: b$
|
|
3313
|
-
React__default["default"].createElement("div", { className: b$
|
|
3319
|
+
return (React__default["default"].createElement("div", { className: b$8() },
|
|
3320
|
+
React__default["default"].createElement("div", { className: b$8('logo-btn-place') }, hasWrapper ? wrapper(button, compact) : button),
|
|
3314
3321
|
!compact &&
|
|
3315
|
-
(hasWrapper ? (React__default["default"].createElement("div", { onClick: onClick }, wrapper(logo, compact))) : (React__default["default"].createElement("a", Object.assign({}, linkProps, { className: b$
|
|
3322
|
+
(hasWrapper ? (React__default["default"].createElement("div", { onClick: onClick }, wrapper(logo, compact))) : (React__default["default"].createElement("a", Object.assign({}, linkProps, { className: b$8('logo-link'), onClick: onClick }), logo)))));
|
|
3316
3323
|
};
|
|
3317
3324
|
|
|
3318
3325
|
var classCallCheck = function (instance, Constructor) {
|
|
@@ -3844,16 +3851,16 @@ function getItemsMinHeight(items) {
|
|
|
3844
3851
|
(pinnedItems.length === items.length ? 0 : ITEM_HEIGHT));
|
|
3845
3852
|
}
|
|
3846
3853
|
|
|
3847
|
-
var css_248z$
|
|
3848
|
-
styleInject(css_248z$
|
|
3854
|
+
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}";
|
|
3855
|
+
styleInject(css_248z$6);
|
|
3849
3856
|
|
|
3850
|
-
const b$
|
|
3857
|
+
const b$7 = block('composite-bar-item');
|
|
3851
3858
|
function renderItemTitle(item) {
|
|
3852
|
-
let titleNode = React__default["default"].createElement("div", { className: b$
|
|
3859
|
+
let titleNode = React__default["default"].createElement("div", { className: b$7('title-text') }, item.title);
|
|
3853
3860
|
if (item.rightAdornment) {
|
|
3854
3861
|
titleNode = (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
3855
3862
|
titleNode,
|
|
3856
|
-
React__default["default"].createElement("div", { className: b$
|
|
3863
|
+
React__default["default"].createElement("div", { className: b$7('title-adornment') }, item.rightAdornment)));
|
|
3857
3864
|
}
|
|
3858
3865
|
return titleNode;
|
|
3859
3866
|
}
|
|
@@ -3862,7 +3869,7 @@ const defaultPopupOffset = [-20, 8];
|
|
|
3862
3869
|
const Item = (props) => {
|
|
3863
3870
|
const { item, compact, className, collapseItems, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupAnchor, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, renderPopupContent, onClosePopup, onItemClick, } = props;
|
|
3864
3871
|
if (item.type === 'divider') {
|
|
3865
|
-
return React__default["default"].createElement("div", { className: b$
|
|
3872
|
+
return React__default["default"].createElement("div", { className: b$7('menu-divider') });
|
|
3866
3873
|
}
|
|
3867
3874
|
const [open, toggleOpen] = React__default["default"].useState(false);
|
|
3868
3875
|
const ref = React__default["default"].useRef(null);
|
|
@@ -3883,7 +3890,7 @@ const Item = (props) => {
|
|
|
3883
3890
|
onClosePopup === null || onClosePopup === void 0 ? void 0 : onClosePopup();
|
|
3884
3891
|
}, [onClosePopup]);
|
|
3885
3892
|
const makeNode = ({ icon: iconEl, title: titleEl }) => {
|
|
3886
|
-
const createdNode = (React__default["default"].createElement("div", { className: b$
|
|
3893
|
+
const createdNode = (React__default["default"].createElement("div", { className: b$7({ type, current, compact }, className), ref: ref, onClick: () => {
|
|
3887
3894
|
if (collapsedItem) {
|
|
3888
3895
|
/**
|
|
3889
3896
|
* If we call onItemClick for collapsedItem then:
|
|
@@ -3904,13 +3911,13 @@ const Item = (props) => {
|
|
|
3904
3911
|
onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave();
|
|
3905
3912
|
}
|
|
3906
3913
|
} },
|
|
3907
|
-
React__default["default"].createElement("div", { className: b$
|
|
3908
|
-
React__default["default"].createElement("div", { onMouseEnter: () => onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(), onMouseLeave: () => onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(), className: b$
|
|
3909
|
-
React__default["default"].createElement("div", { className: b$
|
|
3910
|
-
renderPopupContent && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default["default"].createElement(uikit.Popup, { className: b$
|
|
3911
|
-
return item.link ? (React__default["default"].createElement("a", { href: item.link, className: b$
|
|
3914
|
+
React__default["default"].createElement("div", { className: b$7('icon-place') }, compact ? (React__default["default"].createElement(uikit.Tooltip, { content: tooltipText, disabled: !enableTooltip || (collapsedItem && open), placement: "right", className: b$7('icon-tooltip', { 'item-type': type }) },
|
|
3915
|
+
React__default["default"].createElement("div", { onMouseEnter: () => onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(), onMouseLeave: () => onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(), className: b$7('btn-icon') }, iconEl))) : (iconEl)),
|
|
3916
|
+
React__default["default"].createElement("div", { className: b$7('title'), title: typeof item.title === 'string' ? item.title : undefined }, titleEl),
|
|
3917
|
+
renderPopupContent && Boolean(anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) && (React__default["default"].createElement(uikit.Popup, { className: b$7('popup'), open: popupVisible, placement: popupPlacement, offset: popupOffset, anchorRef: anchorRef, onClose: onClose }, renderPopupContent()))));
|
|
3918
|
+
return item.link ? (React__default["default"].createElement("a", { href: item.link, className: b$7('link') }, createdNode)) : (createdNode);
|
|
3912
3919
|
};
|
|
3913
|
-
const iconNode = icon ? React__default["default"].createElement(uikit.Icon, { data: icon, size: iconSize, className: b$
|
|
3920
|
+
const iconNode = icon ? React__default["default"].createElement(uikit.Icon, { data: icon, size: iconSize, className: b$7('icon') }) : null;
|
|
3914
3921
|
const titleNode = renderItemTitle(item);
|
|
3915
3922
|
const params = { icon: iconNode, title: titleNode };
|
|
3916
3923
|
let node;
|
|
@@ -3928,13 +3935,13 @@ const Item = (props) => {
|
|
|
3928
3935
|
Item.displayName = 'Item';
|
|
3929
3936
|
function CollapsedPopup({ compact, onItemClick, collapseItems, anchorRef, onClose, }) {
|
|
3930
3937
|
return (collapseItems === null || collapseItems === void 0 ? void 0 : collapseItems.length) ? (React__default["default"].createElement(uikit.Popup, { placement: POPUP_PLACEMENT, open: true, anchorRef: anchorRef, onClose: onClose },
|
|
3931
|
-
React__default["default"].createElement("div", { className: b$
|
|
3932
|
-
React__default["default"].createElement(uikit.List, { itemClassName: b$
|
|
3938
|
+
React__default["default"].createElement("div", { className: b$7('collapse-items-popup-content') },
|
|
3939
|
+
React__default["default"].createElement(uikit.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) => {
|
|
3933
3940
|
const makeCollapseNode = ({ title: titleEl }) => {
|
|
3934
|
-
const res = (React__default["default"].createElement("div", { className: b$
|
|
3941
|
+
const res = (React__default["default"].createElement("div", { className: b$7('collapse-item'), onClick: () => {
|
|
3935
3942
|
onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(collapseItem, true);
|
|
3936
3943
|
} }, titleEl));
|
|
3937
|
-
return collapseItem.link ? (React__default["default"].createElement("a", { href: collapseItem.link, className: b$
|
|
3944
|
+
return collapseItem.link ? (React__default["default"].createElement("a", { href: collapseItem.link, className: b$7('link') }, res)) : (res);
|
|
3938
3945
|
};
|
|
3939
3946
|
const titleNode = renderItemTitle(collapseItem);
|
|
3940
3947
|
const params = { title: titleNode };
|
|
@@ -3964,10 +3971,10 @@ var SvgDots = function SvgDots(props) {
|
|
|
3964
3971
|
};
|
|
3965
3972
|
var dotsIcon = SvgDots;
|
|
3966
3973
|
|
|
3967
|
-
var css_248z$
|
|
3968
|
-
styleInject(css_248z$
|
|
3974
|
+
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}";
|
|
3975
|
+
styleInject(css_248z$5);
|
|
3969
3976
|
|
|
3970
|
-
const b$
|
|
3977
|
+
const b$6 = block('composite-bar');
|
|
3971
3978
|
class CompositeBar extends React__default["default"].Component {
|
|
3972
3979
|
constructor() {
|
|
3973
3980
|
super(...arguments);
|
|
@@ -3982,10 +3989,10 @@ class CompositeBar extends React__default["default"].Component {
|
|
|
3982
3989
|
return null;
|
|
3983
3990
|
}
|
|
3984
3991
|
if (!enableCollapsing) {
|
|
3985
|
-
return React__default["default"].createElement("div", { className: b$
|
|
3992
|
+
return React__default["default"].createElement("div", { className: b$6() }, this.renderMenu());
|
|
3986
3993
|
}
|
|
3987
3994
|
const minHeight = getItemsMinHeight(items);
|
|
3988
|
-
return (React__default["default"].createElement("div", { className: b$
|
|
3995
|
+
return (React__default["default"].createElement("div", { className: b$6({ autosizer: true }), style: { minHeight } }, items.length !== 0 && (React__default["default"].createElement(AutoSizer, null, ({ width, height }) => {
|
|
3989
3996
|
const style = {
|
|
3990
3997
|
width,
|
|
3991
3998
|
height,
|
|
@@ -3996,7 +4003,7 @@ class CompositeBar extends React__default["default"].Component {
|
|
|
3996
4003
|
renderAutosizeMenu(height) {
|
|
3997
4004
|
const { compact, onItemClick } = this.props;
|
|
3998
4005
|
const { listItems, collapseItems } = this.getAutosizeListItems(height);
|
|
3999
|
-
return (React__default["default"].createElement(uikit.List, { ref: this.listRef, items: listItems, selectedItemIndex: getSelectedItemIndex(listItems), itemHeight: getItemHeight, itemClassName: b$
|
|
4006
|
+
return (React__default["default"].createElement(uikit.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["default"].createElement(Item, { item: item, onMouseLeave: () => {
|
|
4000
4007
|
var _a;
|
|
4001
4008
|
if (compact) {
|
|
4002
4009
|
(_a = this.listRef.current) === null || _a === void 0 ? void 0 : _a.activateItem(undefined);
|
|
@@ -4005,7 +4012,7 @@ class CompositeBar extends React__default["default"].Component {
|
|
|
4005
4012
|
}
|
|
4006
4013
|
renderMenu() {
|
|
4007
4014
|
const { items, onItemClick, compact } = this.props;
|
|
4008
|
-
return (React__default["default"].createElement(uikit.List, { ref: this.listRef, items: items, selectedItemIndex: getSelectedItemIndex(items), itemHeight: getItemHeight, itemClassName: b$
|
|
4015
|
+
return (React__default["default"].createElement(uikit.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["default"].createElement(Item, { item: item, onMouseLeave: () => {
|
|
4009
4016
|
var _a;
|
|
4010
4017
|
if (compact) {
|
|
4011
4018
|
(_a = this.listRef.current) === null || _a === void 0 ? void 0 : _a.activateItem(undefined);
|
|
@@ -4070,8 +4077,8 @@ const RenderContent = React__default["default"].memo(({ renderContent, size }) =
|
|
|
4070
4077
|
return React__default["default"].createElement(React__default["default"].Fragment, null, renderContent({ size }));
|
|
4071
4078
|
});
|
|
4072
4079
|
RenderContent.displayName = 'RenderContent';
|
|
4073
|
-
const Content = ({ size, className, renderContent }) => {
|
|
4074
|
-
return (React__default["default"].createElement("div", { className: className, style: Object.assign({}, {
|
|
4080
|
+
const Content = ({ size, className, cssSizeVariableName = '--aside-header-size', renderContent, }) => {
|
|
4081
|
+
return (React__default["default"].createElement("div", { className: className, style: Object.assign({}, { [cssSizeVariableName]: `${size}px` }) }, typeof renderContent === 'function' && (React__default["default"].createElement(RenderContent, { size: size, renderContent: renderContent }))));
|
|
4075
4082
|
};
|
|
4076
4083
|
|
|
4077
4084
|
var _path$1;
|
|
@@ -4104,37 +4111,37 @@ var SvgDividerCollapsed = function SvgDividerCollapsed(props) {
|
|
|
4104
4111
|
};
|
|
4105
4112
|
var headerDividerCollapsedIcon = SvgDividerCollapsed;
|
|
4106
4113
|
|
|
4107
|
-
var css_248z$
|
|
4108
|
-
styleInject(css_248z$
|
|
4114
|
+
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}";
|
|
4115
|
+
styleInject(css_248z$4);
|
|
4109
4116
|
|
|
4110
|
-
const b$
|
|
4117
|
+
const b$5 = block('aside-header');
|
|
4111
4118
|
class AsideHeader extends React__default["default"].Component {
|
|
4112
4119
|
constructor() {
|
|
4113
4120
|
super(...arguments);
|
|
4114
4121
|
this.asideRef = React__default["default"].createRef();
|
|
4115
4122
|
this.renderFirstPane = (size) => {
|
|
4116
|
-
const { dict, menuItems, panelItems, compact } = this.props;
|
|
4123
|
+
const { dict, menuItems, panelItems, compact, headerDecoration } = this.props;
|
|
4117
4124
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
4118
|
-
React__default["default"].createElement("div", { className: b$
|
|
4119
|
-
React__default["default"].createElement("div", { className: b$
|
|
4120
|
-
React__default["default"].createElement("div", { className: b$
|
|
4125
|
+
React__default["default"].createElement("div", { className: b$5('aside'), style: { width: size } },
|
|
4126
|
+
React__default["default"].createElement("div", { className: b$5('aside-popup-anchor'), ref: this.asideRef }),
|
|
4127
|
+
React__default["default"].createElement("div", { className: b$5('aside-content', { ['with-decoration']: headerDecoration }) },
|
|
4121
4128
|
this.renderHeader(),
|
|
4122
|
-
(menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) ? (React__default["default"].createElement(CompositeBar, { items: menuItems, compact: compact, enableCollapsing: true, dict: dict, onItemClick: this.onItemClick })) : (React__default["default"].createElement("div", { className: b$
|
|
4129
|
+
(menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) ? (React__default["default"].createElement(CompositeBar, { items: menuItems, compact: compact, enableCollapsing: true, dict: dict, onItemClick: this.onItemClick })) : (React__default["default"].createElement("div", { className: b$5('menu-items') })),
|
|
4123
4130
|
this.renderFooter(size),
|
|
4124
4131
|
this.renderCollapseButton())),
|
|
4125
4132
|
panelItems && this.renderPanels(size)));
|
|
4126
4133
|
};
|
|
4127
4134
|
this.renderSecondPane = (size) => {
|
|
4128
|
-
return (React__default["default"].createElement(Content, { size: size, renderContent: this.props.renderContent, className: b$
|
|
4135
|
+
return (React__default["default"].createElement(Content, { size: size, renderContent: this.props.renderContent, className: b$5('content') }));
|
|
4129
4136
|
};
|
|
4130
4137
|
this.renderLogo = () => (React__default["default"].createElement(Logo, Object.assign({}, this.props.logo, { compact: this.props.compact, onClick: this.onLogoClick })));
|
|
4131
|
-
this.renderHeader = () => (React__default["default"].createElement("div", { className: b$
|
|
4138
|
+
this.renderHeader = () => (React__default["default"].createElement("div", { className: b$5('header', { ['with-decoration']: this.props.headerDecoration }) },
|
|
4132
4139
|
this.renderLogo(),
|
|
4133
4140
|
React__default["default"].createElement(CompositeBar, { items: this.props.subheaderItems, compact: this.props.compact, enableCollapsing: false, onItemClick: this.onItemClick }),
|
|
4134
|
-
React__default["default"].createElement(uikit.Icon, { data: headerDividerCollapsedIcon, className: b$
|
|
4141
|
+
React__default["default"].createElement(uikit.Icon, { data: headerDividerCollapsedIcon, className: b$5('header-divider'), width: ASIDE_HEADER_COMPACT_WIDTH, height: "29" })));
|
|
4135
4142
|
this.renderFooter = (size) => {
|
|
4136
4143
|
const { compact, renderFooter } = this.props;
|
|
4137
|
-
return (React__default["default"].createElement("div", { className: b$
|
|
4144
|
+
return (React__default["default"].createElement("div", { className: b$5('footer') }, renderFooter === null || renderFooter === void 0 ? void 0 : renderFooter({
|
|
4138
4145
|
size,
|
|
4139
4146
|
compact,
|
|
4140
4147
|
asideRef: this.asideRef,
|
|
@@ -4142,14 +4149,14 @@ class AsideHeader extends React__default["default"].Component {
|
|
|
4142
4149
|
};
|
|
4143
4150
|
this.renderPanels = (size) => {
|
|
4144
4151
|
const { panelItems } = this.props;
|
|
4145
|
-
return (React__default["default"].createElement(Drawer, { className: b$
|
|
4152
|
+
return (React__default["default"].createElement(Drawer, { className: b$5('panels'), onVeilClick: this.onCloseDrawer, onEscape: this.onCloseDrawer, style: { left: size } }, panelItems.map((item) => (React__default["default"].createElement(DrawerItem, Object.assign({ key: item.id }, item))))));
|
|
4146
4153
|
};
|
|
4147
4154
|
this.renderCollapseButton = () => {
|
|
4148
4155
|
var _a;
|
|
4149
4156
|
const { compact, dict } = this.props;
|
|
4150
4157
|
const typeButton = compact ? exports.Dict.ExpandButton : exports.Dict.CollapseButton;
|
|
4151
|
-
return (React__default["default"].createElement(uikit.Button, { className: b$
|
|
4152
|
-
React__default["default"].createElement(uikit.Icon, { data: controlMenuButtonIcon, className: b$
|
|
4158
|
+
return (React__default["default"].createElement(uikit.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] },
|
|
4159
|
+
React__default["default"].createElement(uikit.Icon, { data: controlMenuButtonIcon, className: b$5('collapse-icon'), width: "16", height: "10" })));
|
|
4153
4160
|
};
|
|
4154
4161
|
this.onCollapseButtonClick = () => {
|
|
4155
4162
|
var _a, _b;
|
|
@@ -4173,8 +4180,8 @@ class AsideHeader extends React__default["default"].Component {
|
|
|
4173
4180
|
render() {
|
|
4174
4181
|
const { className, compact } = this.props;
|
|
4175
4182
|
const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;
|
|
4176
|
-
return (React__default["default"].createElement("div", { className: b$
|
|
4177
|
-
React__default["default"].createElement("div", { className: b$
|
|
4183
|
+
return (React__default["default"].createElement("div", { className: b$5({ compact }, className) },
|
|
4184
|
+
React__default["default"].createElement("div", { className: b$5('pane-container') },
|
|
4178
4185
|
this.renderFirstPane(size),
|
|
4179
4186
|
this.renderSecondPane(size))));
|
|
4180
4187
|
}
|
|
@@ -4183,6 +4190,7 @@ AsideHeader.defaultProps = {
|
|
|
4183
4190
|
panelItems: [],
|
|
4184
4191
|
subheaderItems: [],
|
|
4185
4192
|
menuItems: [],
|
|
4193
|
+
headerDecoration: true,
|
|
4186
4194
|
};
|
|
4187
4195
|
|
|
4188
4196
|
/******************************************************************************
|
|
@@ -4212,13 +4220,13 @@ function __rest(s, e) {
|
|
|
4212
4220
|
return t;
|
|
4213
4221
|
}
|
|
4214
4222
|
|
|
4215
|
-
var css_248z$
|
|
4216
|
-
styleInject(css_248z$
|
|
4223
|
+
var css_248z$3 = ".ycn-footer-item {\n width: 100%;\n height: 40px;\n}";
|
|
4224
|
+
styleInject(css_248z$3);
|
|
4217
4225
|
|
|
4218
|
-
const b$
|
|
4226
|
+
const b$4 = block('footer-item');
|
|
4219
4227
|
const FooterItem = (_a) => {
|
|
4220
4228
|
var { item } = _a, props = __rest(_a, ["item"]);
|
|
4221
|
-
return (React__default["default"].createElement(Item, Object.assign({}, props, { item: Object.assign({ iconSize: ASIDE_HEADER_FOOTER_ICON_SIZE }, item), className: b$
|
|
4229
|
+
return (React__default["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 })));
|
|
4222
4230
|
};
|
|
4223
4231
|
|
|
4224
4232
|
/**
|
|
@@ -4812,25 +4820,25 @@ function escapeStringForRegExp(input) {
|
|
|
4812
4820
|
return input.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
4813
4821
|
}
|
|
4814
4822
|
|
|
4815
|
-
const b$
|
|
4816
|
-
function SettingsSearch({ className, onChange, debounce = 200, inputRef, placeholder, }) {
|
|
4823
|
+
const b$3 = block('settings-search');
|
|
4824
|
+
function SettingsSearch({ className, onChange, debounce = 200, inputRef, inputSize, placeholder, autoFocus = true, }) {
|
|
4817
4825
|
const onChangeStable = useStableCallback(onChange);
|
|
4818
4826
|
const handleUpdate = React__default["default"].useCallback(debounce_1(onChangeStable, debounce), [debounce]);
|
|
4819
|
-
return (React__default["default"].createElement("div", { className: b$
|
|
4820
|
-
React__default["default"].createElement(uikit.TextInput, { controlRef: inputRef, hasClear: true, autoFocus:
|
|
4827
|
+
return (React__default["default"].createElement("div", { className: b$3(null, className) },
|
|
4828
|
+
React__default["default"].createElement(uikit.TextInput, { controlRef: inputRef, hasClear: true, autoFocus: autoFocus, size: inputSize, placeholder: placeholder, onUpdate: handleUpdate })));
|
|
4821
4829
|
}
|
|
4822
4830
|
|
|
4823
|
-
var css_248z$
|
|
4824
|
-
styleInject(css_248z$
|
|
4831
|
+
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}";
|
|
4832
|
+
styleInject(css_248z$2);
|
|
4825
4833
|
|
|
4826
|
-
const b$
|
|
4834
|
+
const b$2 = block('settings-menu');
|
|
4827
4835
|
const SettingsMenu = React__default["default"].forwardRef(
|
|
4828
4836
|
// eslint-disable-next-line prefer-arrow-callback
|
|
4829
|
-
function SettingsMenu({ items, onChange,
|
|
4830
|
-
const [
|
|
4837
|
+
function SettingsMenu({ items, onChange, activeItemId }, ref) {
|
|
4838
|
+
const [focusItemId, setFocusId] = React__default["default"].useState();
|
|
4831
4839
|
const containerRef = React__default["default"].useRef(null);
|
|
4832
4840
|
const handleChange = useStableCallback(onChange);
|
|
4833
|
-
const getFocused = useCurrent(
|
|
4841
|
+
const getFocused = useCurrent(focusItemId);
|
|
4834
4842
|
React__default["default"].useImperativeHandle(ref, () => ({
|
|
4835
4843
|
handleKeyDown(event) {
|
|
4836
4844
|
if (!containerRef.current) {
|
|
@@ -4842,47 +4850,47 @@ function SettingsMenu({ items, onChange, activeItem }, ref) {
|
|
|
4842
4850
|
return true;
|
|
4843
4851
|
}
|
|
4844
4852
|
else if (event.key === 'ArrowDown') {
|
|
4845
|
-
|
|
4853
|
+
setFocusId(focusNext(containerRef.current, focused, 1));
|
|
4846
4854
|
return true;
|
|
4847
4855
|
}
|
|
4848
4856
|
else if (event.key === 'ArrowUp') {
|
|
4849
|
-
|
|
4857
|
+
setFocusId(focusNext(containerRef.current, focused, -1));
|
|
4850
4858
|
return true;
|
|
4851
4859
|
}
|
|
4852
4860
|
return false;
|
|
4853
4861
|
},
|
|
4854
4862
|
clearFocus() {
|
|
4855
|
-
|
|
4863
|
+
setFocusId(undefined);
|
|
4856
4864
|
},
|
|
4857
4865
|
}), [getFocused, handleChange]);
|
|
4858
|
-
return (React__default["default"].createElement("div", { ref: containerRef, className: b$
|
|
4866
|
+
return (React__default["default"].createElement("div", { ref: containerRef, className: b$2() }, items.map((firstLevelItem) => {
|
|
4859
4867
|
if ('groupTitle' in firstLevelItem) {
|
|
4860
|
-
return (React__default["default"].createElement("div", { key: firstLevelItem.groupTitle, className: b$
|
|
4861
|
-
React__default["default"].createElement("span", { className: b$
|
|
4868
|
+
return (React__default["default"].createElement("div", { key: firstLevelItem.groupTitle, className: b$2('group') },
|
|
4869
|
+
React__default["default"].createElement("span", { className: b$2('group-heading') }, firstLevelItem.groupTitle),
|
|
4862
4870
|
firstLevelItem.items.map((item) => {
|
|
4863
|
-
return renderMenuItem(item, onChange,
|
|
4871
|
+
return renderMenuItem(item, onChange, activeItemId, focusItemId);
|
|
4864
4872
|
})));
|
|
4865
4873
|
}
|
|
4866
|
-
return renderMenuItem(firstLevelItem, onChange,
|
|
4874
|
+
return renderMenuItem(firstLevelItem, onChange, activeItemId, focusItemId);
|
|
4867
4875
|
})));
|
|
4868
4876
|
});
|
|
4869
|
-
function renderMenuItem(item, onChange,
|
|
4870
|
-
return (React__default["default"].createElement("span", { key: item.title, className: b$
|
|
4871
|
-
selected:
|
|
4877
|
+
function renderMenuItem(item, onChange, activeItemId, focusItemId) {
|
|
4878
|
+
return (React__default["default"].createElement("span", { key: item.title, className: b$2('item', {
|
|
4879
|
+
selected: activeItemId === item.id,
|
|
4872
4880
|
disabled: item.disabled,
|
|
4873
|
-
focused:
|
|
4881
|
+
focused: focusItemId === item.id,
|
|
4874
4882
|
badge: item.withBadge,
|
|
4875
4883
|
}), onClick: () => {
|
|
4876
4884
|
if (!item.disabled) {
|
|
4877
4885
|
onChange(item.id);
|
|
4878
4886
|
}
|
|
4879
4887
|
}, "data-id": item.id },
|
|
4880
|
-
item.icon ? React__default["default"].createElement(uikit.Icon, Object.assign({ size: 16 }, item.icon, { className: b$
|
|
4888
|
+
item.icon ? React__default["default"].createElement(uikit.Icon, Object.assign({ size: 16 }, item.icon, { className: b$2('item-icon') })) : undefined,
|
|
4881
4889
|
React__default["default"].createElement("span", null, item.title)));
|
|
4882
4890
|
}
|
|
4883
4891
|
function focusNext(container, focused, direction) {
|
|
4884
4892
|
var _a;
|
|
4885
|
-
const elements = container.querySelectorAll(`.${b$
|
|
4893
|
+
const elements = container.querySelectorAll(`.${b$2('item')}:not(.${b$2('item')}_disabled)`);
|
|
4886
4894
|
if (elements.length === 0) {
|
|
4887
4895
|
return undefined;
|
|
4888
4896
|
}
|
|
@@ -4894,6 +4902,37 @@ function focusNext(container, focused, direction) {
|
|
|
4894
4902
|
return (_a = elements[currentIndex].getAttribute('data-id')) !== null && _a !== void 0 ? _a : undefined;
|
|
4895
4903
|
}
|
|
4896
4904
|
|
|
4905
|
+
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}";
|
|
4906
|
+
styleInject(css_248z$1);
|
|
4907
|
+
|
|
4908
|
+
const b$1 = block('settings-menu-mobile');
|
|
4909
|
+
const SettingsMenuMobile = ({ items, onChange, activeItemId, className, }) => {
|
|
4910
|
+
const ref = React__default["default"].useRef(null);
|
|
4911
|
+
const tabItems = React__default["default"].useMemo(() => {
|
|
4912
|
+
const tabItems = [];
|
|
4913
|
+
items.forEach((firstLevelItem) => {
|
|
4914
|
+
if ('groupTitle' in firstLevelItem) {
|
|
4915
|
+
tabItems.push(...firstLevelItem.items.map(({ id, title, disabled, withBadge }) => ({
|
|
4916
|
+
id,
|
|
4917
|
+
title,
|
|
4918
|
+
disabled,
|
|
4919
|
+
className: b$1('item', { badge: withBadge }),
|
|
4920
|
+
})));
|
|
4921
|
+
}
|
|
4922
|
+
else {
|
|
4923
|
+
const { id, title, disabled, withBadge } = firstLevelItem;
|
|
4924
|
+
tabItems.push({ id, title, disabled, className: b$1('item', { badge: withBadge }) });
|
|
4925
|
+
}
|
|
4926
|
+
});
|
|
4927
|
+
return tabItems;
|
|
4928
|
+
}, [items]);
|
|
4929
|
+
const handleTouchMove = (e) => {
|
|
4930
|
+
e.stopPropagation();
|
|
4931
|
+
};
|
|
4932
|
+
return (React__default["default"].createElement("div", { ref: ref, onTouchMove: handleTouchMove },
|
|
4933
|
+
React__default["default"].createElement(uikit.Tabs, { items: tabItems, className: b$1(null, className), size: "l", activeTab: activeItemId, onSelectTab: onChange })));
|
|
4934
|
+
};
|
|
4935
|
+
|
|
4897
4936
|
function getSettingsFromChildren(children, searchText = '') {
|
|
4898
4937
|
// 'abc def fg' -> abc.*?cde.*?fg
|
|
4899
4938
|
const preparedFilter = escapeStringForRegExp(searchText).replace(/\s+/g, '.*?');
|
|
@@ -4971,7 +5010,7 @@ function getSettingsPageFromChildren(children, filterRe) {
|
|
|
4971
5010
|
page.hidden = hidden && page.hidden;
|
|
4972
5011
|
}
|
|
4973
5012
|
else {
|
|
4974
|
-
const { title, header, withBadge } = element.props;
|
|
5013
|
+
const { title, header, withBadge, showTitle = true } = element.props;
|
|
4975
5014
|
const { items, hidden } = getSettingsItemsFromChildren(element.props.children, filterRe);
|
|
4976
5015
|
page.withBadge = withBadge || page.withBadge;
|
|
4977
5016
|
page.hidden = hidden && page.hidden;
|
|
@@ -4981,6 +5020,7 @@ function getSettingsPageFromChildren(children, filterRe) {
|
|
|
4981
5020
|
withBadge,
|
|
4982
5021
|
items,
|
|
4983
5022
|
hidden,
|
|
5023
|
+
showTitle,
|
|
4984
5024
|
});
|
|
4985
5025
|
}
|
|
4986
5026
|
});
|
|
@@ -5014,7 +5054,7 @@ function getSettingsItemsFromChildren(children, filterRe) {
|
|
|
5014
5054
|
return { items, hidden };
|
|
5015
5055
|
}
|
|
5016
5056
|
|
|
5017
|
-
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-
|
|
5057
|
+
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}";
|
|
5018
5058
|
styleInject(css_248z);
|
|
5019
5059
|
|
|
5020
5060
|
const b = block('settings');
|
|
@@ -5024,16 +5064,16 @@ const defaultDict = {
|
|
|
5024
5064
|
not_found: 'No results found',
|
|
5025
5065
|
};
|
|
5026
5066
|
function Settings(_a) {
|
|
5027
|
-
var { loading, renderLoading, children } = _a, props = __rest(_a, ["loading", "renderLoading", "children"]);
|
|
5067
|
+
var { loading, renderLoading, children, view = 'normal' } = _a, props = __rest(_a, ["loading", "renderLoading", "children", "view"]);
|
|
5028
5068
|
if (loading) {
|
|
5029
|
-
return (React__default["default"].createElement("div", { className: b({ loading: true }) }, typeof renderLoading === 'function' ? (renderLoading()) : (React__default["default"].createElement(uikit.Loader, { className: b('loader'), size: "m" }))));
|
|
5069
|
+
return (React__default["default"].createElement("div", { className: b({ loading: true, view }) }, typeof renderLoading === 'function' ? (renderLoading()) : (React__default["default"].createElement(uikit.Loader, { className: b('loader'), size: "m" }))));
|
|
5030
5070
|
}
|
|
5031
|
-
return React__default["default"].createElement(SettingsContent, Object.assign({}, props), children);
|
|
5071
|
+
return (React__default["default"].createElement(SettingsContent, Object.assign({ view: view }, props), children));
|
|
5032
5072
|
}
|
|
5033
5073
|
Settings.defaultProps = {
|
|
5034
5074
|
dict: defaultDict,
|
|
5035
5075
|
};
|
|
5036
|
-
function SettingsContent({ initialPage, onPageChange, children, renderNotFound, dict, }) {
|
|
5076
|
+
function SettingsContent({ initialPage, onPageChange, children, renderNotFound, dict, view, }) {
|
|
5037
5077
|
var _a, _b;
|
|
5038
5078
|
const [search, setSearch] = React__default["default"].useState('');
|
|
5039
5079
|
const { menu, pages } = getSettingsFromChildren(children, search);
|
|
@@ -5041,6 +5081,7 @@ function SettingsContent({ initialPage, onPageChange, children, renderNotFound,
|
|
|
5041
5081
|
const [selectedPage, setCurrentPage] = React__default["default"].useState(initialPage && pageKeys.includes(initialPage) ? initialPage : undefined);
|
|
5042
5082
|
const searchInputRef = React__default["default"].useRef(null);
|
|
5043
5083
|
const menuRef = React__default["default"].useRef(null);
|
|
5084
|
+
const isMobile = view === 'mobile';
|
|
5044
5085
|
React__default["default"].useEffect(() => {
|
|
5045
5086
|
var _a;
|
|
5046
5087
|
(_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.clearFocus();
|
|
@@ -5079,12 +5120,14 @@ function SettingsContent({ initialPage, onPageChange, children, renderNotFound,
|
|
|
5079
5120
|
return pages[activePage].sections
|
|
5080
5121
|
.filter((section) => !section.hidden)
|
|
5081
5122
|
.map((section) => (React__default["default"].createElement("div", { key: section.title, className: b('section') },
|
|
5082
|
-
React__default["default"].createElement("h3", { className: b('section-heading') }, section.title),
|
|
5083
|
-
section.header ? section.header : null,
|
|
5123
|
+
section.showTitle ? (React__default["default"].createElement("h3", { className: b('section-heading') }, section.title)) : null,
|
|
5124
|
+
section.header ? (isMobile ? (React__default["default"].createElement("div", { className: b('section-subheader') }, section.header)) : (section.header)) : null,
|
|
5084
5125
|
section.items.map(({ hidden, title, element }) => hidden ? null : (React__default["default"].createElement("div", { key: title, className: b('section-item') }, React__default["default"].cloneElement(element, Object.assign(Object.assign({}, element.props), { title: search && title ? prepareTitle(title, search) : title }))))))));
|
|
5085
5126
|
};
|
|
5086
|
-
return (React__default["default"].createElement("div", { className: b() },
|
|
5087
|
-
React__default["default"].createElement("
|
|
5127
|
+
return (React__default["default"].createElement("div", { className: b({ view }) },
|
|
5128
|
+
isMobile ? (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
5129
|
+
React__default["default"].createElement(SettingsSearch, { inputRef: searchInputRef, className: b('search'), onChange: setSearch, autoFocus: false, inputSize: 'l' }),
|
|
5130
|
+
React__default["default"].createElement(SettingsMenuMobile, { items: menu, onChange: handlePageChange, activeItemId: activePage, className: b('tabs') }))) : (React__default["default"].createElement("div", { className: b('menu'), onClick: () => {
|
|
5088
5131
|
if (searchInputRef.current) {
|
|
5089
5132
|
searchInputRef.current.focus();
|
|
5090
5133
|
}
|
|
@@ -5096,8 +5139,8 @@ function SettingsContent({ initialPage, onPageChange, children, renderNotFound,
|
|
|
5096
5139
|
}
|
|
5097
5140
|
} },
|
|
5098
5141
|
React__default["default"].createElement("h2", { className: b('heading') }, dict === null || dict === void 0 ? void 0 : dict.heading_settings),
|
|
5099
|
-
React__default["default"].createElement(SettingsSearch, { inputRef: searchInputRef, className: b('search'), onChange: setSearch, placeholder: dict === null || dict === void 0 ? void 0 : dict.placeholder_search }),
|
|
5100
|
-
React__default["default"].createElement(SettingsMenu, { ref: menuRef, items: menu, onChange: handlePageChange,
|
|
5142
|
+
React__default["default"].createElement(SettingsSearch, { inputRef: searchInputRef, className: b('search'), onChange: setSearch, placeholder: dict === null || dict === void 0 ? void 0 : dict.placeholder_search, autoFocus: true }),
|
|
5143
|
+
React__default["default"].createElement(SettingsMenu, { ref: menuRef, items: menu, onChange: handlePageChange, activeItemId: activePage }))),
|
|
5101
5144
|
React__default["default"].createElement("div", { className: b('page') }, renderPageContent())));
|
|
5102
5145
|
}
|
|
5103
5146
|
Settings.Group = function SettingsGroup({ children }) {
|
|
@@ -5109,10 +5152,12 @@ Settings.Page = function SettingsPage({ children }) {
|
|
|
5109
5152
|
Settings.Section = function SettingsSection({ children }) {
|
|
5110
5153
|
return React__default["default"].createElement(React__default["default"].Fragment, null, children);
|
|
5111
5154
|
};
|
|
5112
|
-
Settings.Item = function SettingsItem({ title, children, align = 'center', withBadge, renderTitleComponent = identity_1, }) {
|
|
5113
|
-
return (React__default["default"].createElement("div", { className: b('item', { align }) },
|
|
5114
|
-
React__default["default"].createElement("label", { className: b('item-heading'
|
|
5115
|
-
|
|
5155
|
+
Settings.Item = function SettingsItem({ title, children, align = 'center', withBadge, renderTitleComponent = identity_1, mode, description, }) {
|
|
5156
|
+
return (React__default["default"].createElement("div", { className: b('item', { align, mode }) },
|
|
5157
|
+
React__default["default"].createElement("label", { className: b('item-heading') },
|
|
5158
|
+
React__default["default"].createElement("span", { className: b('item-title', { badge: withBadge }) }, renderTitleComponent(title)),
|
|
5159
|
+
description ? React__default["default"].createElement("span", { className: b('item-description') }, description) : null),
|
|
5160
|
+
React__default["default"].createElement("div", { className: b('item-content') }, children)));
|
|
5116
5161
|
};
|
|
5117
5162
|
function prepareTitle(string, search) {
|
|
5118
5163
|
let temp = string.slice(0);
|